PREME/G/MU392011

0676115058003267703640500424193238254322739067410603483855623511099888529371848330483751434161186089024653386497091262280115359129856218451164005093605394585615740688966957606877198742421181887660385860396953876882089414696859261575767557734574337964351853476022945040220348326488775027145978067313889774300656284685416209617176191957843276603436171486442878108372190404855721997910354667477504766227077171866059326040829306515689004691877333785982119690857932648929220667635952041966005193277471600066998438096955720918521035830793710135380908771351082706600373612754851232130917038183168462281515117925880381592057598652056835251904752518979418382367732017233707004387681302797895095767501374217607941835736033004745283508956274042828158900279016061880609554639653521647771417489490440747636761731303007447466265387774615340152846544119511094577307691299102139654840397760950969791472132758962773601193903655504427540406969799824529737996279680082758390813573342908551126046695797027623778872331027161129853197374745497747587344021512349534413845093541094262314871085534635671826807167312553352483169704867876190416939836589229509061631438690979339275727733251194792106843184438943430883851834392037913589908717173623015269689752698747668384412159080631957977085484374408346156347085737789560852947143240772046737537607896219716163899369043150216332670590631835948656093807740171010101773304679138032970123820403531924112243904337868494442204207928324308197257551005778992346485242035622989488698218745625218185452408627138777813032492829651922979651557432916189575833640960488995187091545180310759217315913742483610091764908079082301103604349747332346777400768995292096000056353481194736985044293092725950524310992329851904738377812972431997608667909444139465273626829324697629591110214970348860391585855434881846228405610691044943324736894065418048291151133566174054188422607869943648242473609781174177923376577627807975987531104620406003828131140873165930815826196741594298963599432313530621273860158401061777824136634258184948747506884356104067222648113531547605065827298406617207116159092225889220457358842107077244282555220415597109318120207958117155347887325605758643974716538012052887352503307844680304272859823095795800523894165953405351369306664397438000783429612742308593396141611120628435046314064714756929204110493531660820660834245292573928013059238824995711712375030616742927273202160176548271444237531300498053131563592048337278965205047178211065443503387396904970770694053210289171986303211859623028891647184212423490983374876030593556710157019904574791802084447452231807230695066963774579972239010806040124132110137724592346839670098847104817784495036143441487019160783547805564322436056280919799014633657167929037441132199271648189734653616676625144266214333579835127925839814444355318956298416771910328352977930263201042341010761312137244186213290122806079126941368466844949960579168708057369291184188525155344248306805006867249619791049837440944132644985110560797792184850232726188048992921348455256772756465526790415190536155665651370007512183469761092850629539420518000807354538091568268970910001198599231729619637956201557971643994004802531977253956284962176678543901519466045918346813434190116718324279787524825398178987292985889646697840032085797684667719635357983938286695798891899282038408727914713413791209555200786104053904524337208254906598056209691688738054759473156307999115387575654887741575820214294600106225873335268358679755202998834699744182595066269866689981313503270578046639704748108313147513227918760099853331696318090896380858433732502418004804514141582040443601627764246065108317400676686754636679175369882461129381762146192427167371757744214012670996703574489588746750400149586858819727669347234070419524333975506679229518394733910433231544365618908325521783341230085697972404567125057925393380961910919756672229945958960332644899221545623280097547537324127351841535290847548789028994732504671800882225656434625456060538593284174887754345118957240531681901195900748875187497218114499045774977961967751431530439052516139033014558483818387499097525772178661219671238529412641013919804997048202599881565795654320003870957634344245600960688083061924994222153312260512983119676972605267941047075619331850380796137828256619596671732701528918849823079783549538415437894520594642929052635964501561688780137117903977433315609005641746490430424402829225495254479777539850647387649220523685539302915373283834974043414737802977950837782892510580049863361169594772697863324879213044058150247972758558056485742470643503138621340653459850001384260564712177232263692038574122585457813511448505548849049662607596847868613004214760743075037744728888045526372906275464895312994107991320447656107912978420378308624994416430984045166300944871273819741851296798016604633323423812438085248296226465139126628937400276718333838189867587485392129992461970185577905288503084662541075400049802172351431830056262411675427292007428725680868182724293305600764214172734335567924927431040696693122457252156414805591394553943925368184773374664341038021881375355976113728555279317604029443514986516109884113923032320800602315015735371642811433842467001971419899548928482163315245758430412583146519846634332795641998625818639132038905279607718581697469307679115885154305745114195774596504297695576667089187640030661110580391002602276099035767679246121731181950047633281843888652949472227970401283478690823503403010292236908955890301158626413575770758263824838027131399179248218092201605036757476869998435128743247803520230577579963865044768197282776269928077993069597341167718820925783942703987355021030999724891553567207564231539977264285652119238128867611856754908988469153563821535824491762277085069682248715223120872774757296856302961709549690978421665536608882184347296532418645297119933966425230182505005464941584476195822262010083340442841783855862968771357189185086073285964311563474723764256272073622639041418098563566519398019329253976367430790891323307589390811835112752710469033925606148549501944312320186178055240679368245733872376046240712488500507305419162764397279290927488165651469934502240341926558731468981323318846190937490010448316934342201640910481418686355849007256464014125231633252790081554274884126186326893421472169678303629348638724455180390376137557701027976177836833622057932850265383588965880674570394598802080342301321744173223448989572018341942133591246535119989484128295341382307160804944721213481612563398642315953720126031884058335194611325369375232475599673967348721532598658394939936762549307242942297383488884740895961532305776212435947334822435832988591355202636139060431544970713135392688341686415292349019899268711495361008275882038096143853248940901379129134238211850385307413450194583019342179988569214994979985372800526624513569417810083658263547170474824240637130079255821375902195857501598464918343146591427761775590620592845726433843350132279248126894590649557033895348861930265532588891378112067705580313600973637282237198627062553221208670732585310011483948959394415546677536738513913686505073163788079749225882241230355660167650427762386622921916443309120208717262470517991512860732775644138427795937555044408501949356234615189599758303050530728763188798003062267091722443659535998353738070300737974903706237604397100919488223708527582554953249328131132675107978921301062600636966121825464003993333052137188212822848854217311243666060246955761435522939919026092364108562616930774088903684972385812193709871481997896762128533447162772971691996144167580443932613720259832443061788435540760006570811001594558752669512960956628429955997694041315222114268189121526902563508794495210273975995189556056663248341492462091349583094080077727144763213431848869808464165699679337202520374638735358002391285898495245805380025139086487618093226306489682044744225284054672990788888334770765272745835026174306857745507750405377191384132166372819778454768832497689169818365633790801927351614592112833161458111277035460105699644257108956283898236117558590801530388440348473974491955774909252741798764469613349964648270573910628522435081273633627454837183582904933354388692810595371607934722940693912664151556340288646040059379911413690952925925858010875643680374938678800160301764386258277806992230794183532628163610319253277937019459586076643344939739585458832510385479784850724353786973441710027598482565870653874400901537475736501927269866722738814763523941764708945939143898083625488349907052410877227934909629252633584245008001238554212148415216961055217637340907648669147021215673098559625308739736051762148252957740230804295565663802087436179937466688560966660474230588410474890363573539620012002493631396143848594655478785803805376228703272548284549080574056040579878772723472701799151599712049303130344817320243522717365392456028306144089485351922685528139626010307750538747820302396798097170490616954875873188447062743897026118484319361902721017077882705513884353855089369107956194184533024103753590396132325449774863192785501854840930569212924234414986409935351575256605597775886246702644153446075086732687826254101590916229804233890509808537883704902663870057988551005801859861321339112075138637474338870439367936674092395014980765826335665262170061116563318933846832952261757201591939676688381680086557362833613753235903167146156700702247129300427177263104445810964659867988296293554646946221847154808504869344452077522351857337663087517754854933160420826472549794870766531030230475368255467271732311568864281382562839335471354723991198373532656070507871793136660365754272573019275942752365196361139538707111923538895837921027796570726355889500580550161743039489162490138950089128259446483126471776723339744187087240903725136406305603470876154567183909235692233569028615994764836602931516444574773441863615406778806458214307771997238412635420438424589261668135887208005149520082205177623032849740664533582338496100192207854765148795713228600410650467573396501593619658748297366295397708369046877942524976315082706544439446696805775434790678768250449516923917717149829671005341537808621781542177914529151276083100655472745458129331794915745589299399711264114154318822919442302825752886226491280053522573214159613958396074109814015172052254317453315224809444398719741257996314747878250137598881721811861472776552790215552217652348594293402561160892898842403962587459442378108299713376476947478236002471312275606592710370522518068008616863083037637013347126761238536652982521540119665085607363824714610979431040194323058245370794737511677862139198084510562276802444488561760087895548376089058959250245931497140196611274388597019845045474723729382305503188060802738974169662909921050123030627799560764620388388713923788332285852659149801112383617965993578644710106905413658650637474501467104482271977983313492281232219784906716492682472847687391623505738896816016363083583856514033082110746601775864006383663420473218523824455041250264758841316122973425940250763705088219477397625610164895469368353603107445225780287041207143267709950616097287639078504966381276530858310240151586198450028662189033461984893929885543582976585352730752464706676799520655096917522518939393254445152918638245402380249215929071129984267803812591577574318539231949742183786653216209053389979456095079111875252583408631574630378546195367826830222839548245416148437929885832031518256114718357771490353071722105398959109887800096092020628073954579327259616358864545202593746477819980162093562523882752160333656633583472525075824912217493179495753124445170407431398809526889004016940374726967089349943041530053208270486128608188994453802151646155361985523888257164671734443552293048665493554621775859368180615936195686379827114878058006595386398843265049492664125114879506982003468276065404073676943602252208647609390494611455003069783655132469261100391200819702133653545070567329755828984133097540229040818068992654548442521933322311871142188507508310423029386078038880541220425692988674266940843620361046255866485648954460647107631618051326109393224620133522922863434110814677805440624113036986919560319758036179090530587214758598330880104060840083871275672834039160174312278182443983189217295858970436500551441110826535514996919540993361693099252363759456179795327190034425408483386795919074674684397307093421434834272220472943569361358182938993558068372815865895626585615235148447955337026222867010160948059573943386188210194119522018739014421829702990749485183701693403378446886381547117727557198655643130075666499377536717387500055821285824591762847560817385573023765457712350422001225983928854207095488769865007285649067253586437493591497898102854656455733460543290893276685381638326290744511102195639523819030159718081911571880837212858020195209268195532850856230698177598027756692253876149609332577521196194056097027000624245660980397503739672969001750904312521543409763349351697205683658021740642049420016815313011083541304160208315697652863765973272341019676139872712427118930989560941914127037570611360992049674119887646548085727738276103044445502801254580708103494659089992082057590067443948217942378883305294087692031424270867548100873942406146764287621854352910465552685990061841371671714987832228859939519974124248274353841114685081828029399467085671482828518781556128936358911001720428789779706593112180995434525466625410415479714266533438477174281197392880010723464653288682842577889540476165062344687673624653356094609123830051308753254566161488196779886701226054898135193185607327090586458347965469685595496531792263586864438044709544927918270806205773601135415688091262657129496208515116926842209637337159133113051340325526035801485291243408332322685694486992366025955327046600692882856929193130036640957768130775218345683840804372245550404098491494779584672950914678290282025705897750920237114551127726048098254832316829214237584604070248728451905274355043229626637982169376589255633623750997025627945661093332580392474817505885737390592498441926113532684946724876057113590056760971959066535287554415196679186124029771021835674736944686211656190534456989791284925850758801138159980089714352293056834316101880898111069364098292232266207148119554268196319111935552774525876667037019578572006700393871939992701978647276068479943493493046518374674727785935776407837269172842221842701174098245299863388693351597206211207954735703530259933370171117389678489259796818557959816797847767611652254280618820814036089373399787552216317998732124738918474963246013225549709285173578402822049021259059291327647116230921819045044573305650123474071783464387096088660596950696465856126002157421553208259001761079675273597723257672102266963857679888904826745306037701434751297244887955230432423378906728681637448621547168873872987083271751736995425904168020845301299372712319065338499522939100255843759958751227093064304114905406017243781550484055179545847338816091065724963378070916465011296773916759725498022817577605000308356907730243267638307843696004256663560618107858108970267667421451695551136691104684235594405211360117109573031032853418110589376861750796233703073518362081793616432599142943047733190613407065429729997364645755070908509250279260292137357949392081129796960662877730655012861994295325684123657434579460383268386504859042859438132762125613542659733478412578554782502294354140626583856832402200077017487662618980370699028685894573770511758937220489550913118515689126895713856784307850692954407031394543107462419365446014051129837822565553327531536554342138223044764733253392929347747679878458243409439889907689230610337642382372385803223322628208056016362885568273854194881131330805902735731991210206637931446581348459032082306546569580207994464944204651619329638074193668303788989488217451695573400377006914417875869068132908886823604842655826127628712409984576315690468009745341086946877378100705045155444318213786675076317322066712811576460466480225712187302205919427075556943951499766454716768477945278519571975802252058067077572683699698584457647647372799785242592124212097251233572090302970417846992065031030098236637334603667543284272280210405133126193459345687180948771183239481008503105378263785130034293020523648941107479703045005688362415270359501074500809254310873606230664342579255323954978688623598630533197502862457617853622930780934713047463471901113951463345256453450780594776332574840463891752534434243341823185956703524475963330651723259091920623149595181720722902761551599774264043400820297486560390047329950439671829898419557768774547203716081846789081342563198200078528054307269072952953824373234893410168930868010454015700836148404174196402090006731154684196732403479058011292713180970351589206488002510177394008057354382400602067819344216573106866396260277182356857478836158571421120035840316865335724088948119528734074111824883282404745256711233481152213278038701260568531223897608695826334562532615787280136208267079109941975445934884598110952432207238725390028924579366285626987219670936241464994994595159774674917596974772907019182928192631613227483416101687573334669377909467804975447952482126978539300640297653286452053062451938235901891786149457368464585540042642527574982573901292467941948922270252133883099969137283802190672024127846198864693311632675281897709567794811583347116791385625408339357767739912623925080841122032596086143573615342990575322455812029785196452517926727619174970338560417144057281340775272237229122077518222373590429636264955254978831955970744889457507567239918170999435292730778928058196624271213565578800906208271203891288171622870796749198537682721236133135709812368504043567087559418930859867621731286874106869414912707991091783449425163136850022397751276182392154575053398556154700738709913037612817749981330356940070842922777501008148411530495588148963680539032645101742737638772105062882447066552032314641902776729009091018211020455403046437690172368276699409572683343486459689471713582663195239896757624729379057424463651754787767508750645110639105759544178183107283182884947720725567976291993839595899111102328746272019871131192054711710681364496275325434715195186783222446075716198057629555624576158235195444504749724887803003534348588344757841626455250176125727016777409624996877708810468282397434809751621954208415787111162517801591149043786123979848681745566059701618060374024527377727436050486716294228331432039170111668597757511275743495651229617701090676081887876771621589026454240174494480256952115208527468505721897329743103984500385789185474123311966702977134794543449732965489053188599682677728752396094776694671800915488826954386564452703831049069764813712373857327783940821652812438681055501808462257757460393925603336788162184669196967650333485691433579841154923532774817934771173119081378684929108743948218037070614099585660260201173800091425408343067742898423918668123848539381819302226493296163715412382267583552944331872968695136941150481495500785820764517917195026301764592606160933514894102964733371840864521283374557874529315201267500625450582428574059945250747108399138106308273664370500189809902595165107522223110908389712306733471832650102243159455408341329584817939050532708392744459776440752220326803841809228031624030533160846679218706744791394439590954686778977055449546570616062988426258307593786913083097696930723297852931840293229631926803474257515245353219758765046757370811000651102617970849646710739527260718854696211193314540026295793147100876142419348540040787938840537759354414001009429280100128614079463834330508943565183984528940731453809865590336712570105080841523635290602098185518893326127089917694943081575348747917433816809574441904974632645128720757755072283773311348826092398734021063218213170658023241440704656217310278386555605710067222741844966405490976324968013260916617503002828796368033309856335761915084706534738298724498264906071408277484454326636083039153604785738221310017188985925732722776000645254077619495228197554672614624820848446013455040093002377136966541168599728136964705205291586982347589170557869060001255220877232734408807076260050216056502429020866707684439840685494702798529610877178623568607180655871365047043171303158563497201879621511424032632856096928799991552605696286978240139574205959064815612879392426697612477317171500004356618211633384199086118390497809999952543335171166438592770892518305386789770642013108514972272779816165201943038222426934178786805502244714637381143181948418428768795235808552720012909728320244985712479107248754471676683289392989929918216590668706679381090842262129722780810812392449765252006896106191224428557949775860755169323161575085676123412072959546865600958758971260765106807288857159361635606540015315329446091560758876431053062048792401797069363332160974201376630119981671948238792935422518416818678696909424539137404630814514663323494541743799362969382048153365373711946849829910499323551274621657890998184794156539801745544108592746206914553293735702014020939486038131915968698836356760938794133264909167017435134684398995012413694439182667494002752630241502647383196563819214682890627806291415432103184731125008038579230890921446565047800026972933933295900828449799871375916506208848725653415327971928908746933386950059475022990248312041272387425067988206815191685164943778407756761636486160694740872806704320999127117872897792790665235041862125326523163242417391627063392766028696522907380069191129515718300382174596114545098149820692225302898217857461082883587909235764219446497540539108886595502757986668200534896050026844524353697637669931210883706431009970648470682576111612448025683993657867521095590835634376631854563118616302299810602472145633926906215370610468203770869603661768690063483747218454885717460218196398252839743339494187801988651727886964375299475190587138870683019229101447419005216480056501052846337025038612940036716859855748049273590489617613390729406673610959104242800579500408090842814870393648378871120006786206652244893588944448461828113075643627660344664867789507236382732675857021802161703350285242330456602394516426293671096279720482387558621512643788199533280004548554809442059936198273565796841314769859871162905818807950271792602276035930236790547890288209001673701828811976600342765814960578651589134483928159738729462903232976370194770102302536127729746411118801090582544410898528401806339125871591622584501566851601414353777396155453293496682628793224682762702800969522702907672881370968914605454874539128614692692902909566512696217541511479838254652039200227187405826378906422904477601476449603652429703985200925941517491156277939336392829636449050754643945401993820870204440346686017149170465230166351832354848413922325468034840437959854595926773918731289677353581422761306886201450047873448660760901566754558369818761088393113852622764026901358910568307589488970339381317031926781503444544260712674579304839238607701522737853446475050358531203073908846808891860991431590490680335173432095854612133730308030359347550061766699503390969854279417058786367823791124933065325383140733204545526030928149814964476302106665120062797108596923874151155619844876984731934148282788497566586559461381043246912501601316302710914590372525067660038148270146571249984575246351905313291788639848400778855315216439470318654962327106833276230967421718895244907447799283409758784918625296019794127142294379126361451114446409558718547708133415589224116153565452305143875782771813134261392138278683834199507705189379750799496414445553060863035601715785859871076329619350790594831745334815928508038961822086112945434520454896453572150267590593252945547454440630590209725110031134329874272244749024366964758671732980931786287936316758741111378165931216099287976324582137503450683187909269288038602699397148605648344700661391258178933375085201118630728403876621289361377214758044856082262908537944999142876463902132165478205096948057264267928750318267987695019686192105610926150259772315370047490750291691970923461678406466571070380970433640920285101937804258337661176229704922228753823859025857834609136840444098427212911771648743987346356338072253144797547839935989970549129827357323678873449632676778044859005358234011146422870741388154420111064367911323679928913801933392181064520502571234984037366941878911793889336005404700454079341581336417513696510340510937515215746341509580795086799029989525182766159611188705335269794434289520710988853680637986759679988132984192128071875776755411870217971021921757581794092195727818495017341669775743645800905149289979942818255915654015648188494042505636617473921021645421998820343625398126685905672205293778039624334210967027873052601139691204111098721953301440626608726215763173494298248432820800440086104491793538523716947310538996351390842072663250653345632758397552564429151173352500797328299660091170978064355338163701461070288376695486000822805360585772274146313419735348676925091692186913359976371621699283179118185352397647909896282208040279156708790847900527204435279789026065019306176946931742722067798082348789790076008259961056930927141771458283704976659587471354777376171754238761111561502556492787901494772691674901955588282559174570699076075168133029161722410019493510009544763060310715398812987392109484001546635410483954332780005610230439881151119278934472846902254299276681073690719988461642490088096862269511067501168679849929286567987833702430778988725890779994158384401129367692749777567365789335485971845774450410981861640267199433234732513023610450768005565671690243144059273108789412356186145229660456147324758831556775917069125933245098739810726402733895907056286199146168650745155372283216964189105248438526601340991896102646356523711461094821310771116381367857048684377224090473795368069514574907710191652718198795403912823399137963818358069374425232815784519107999395030276186723858783913547839447035992060782304163443532396291409331153604047062453935815964890325157345945138023448454378495369462630753788492753462851164152662149830763781621646558413899808578052416989928368429949062667044450958772002443568431708672479358354091155665848631652498303787097247003321752444399340566937417896326784836143903631974380425685912148975453144830552437926748909820515705207000806084022221428228453922892469466819690324698665188578768036275601371801821605690899273984536487508785213714511376365120460395493157112706324754830597392822465083375961847591606707930036590103599171401463010407076180353458662527030445912999004669258296944525897204422445802687947577855859934252958436306698196937980157463511217426156978319809785171074911994428702678018031499057491855947390138968425955610091094387602330848962566774247921739031264593331502427787350264300208050457787579630368097544397544624792763793710449503773934977379592259636597457455319563686163190744191416879094253466110218668391631131597844517131521127236160050358734480742915496738235641385055977672216321672618010267051227089191048961624956409528455929300875377671403314726850094237977842973426815037669502185069341758204757063439845197856246401827074246834032360419056506972844038001628533039387817031316926712506054572386944366188205973279299187429864643388273777482433079311991926354096046916581362134117745780515687724317570281133302445164288179241234747728316476054170011052083016709381270173778433617301320491847287729638945485439319506456804616889329612395293258866278621134203494296297731528119748746349017741041927225693847075334056344196173308159641185129130263335737132789225349193379514713595362344886635317011097520532666502114950234494272719577928811956685772071099174958685673051265358752460309738794876069886420691992968245984428386539831852757857257244465972260232164364145938713051736863172915805461819032783459028581209956456670793639199921369852580952804373378528261441609824982178436916629929997754856174275681022237723805854663977031092650847357957113562802787003071371274854752736678188455244093322410423636399277319732724458882267266470195661780751952256018683380971594764711898023945054272485930183682247877555962125359289513249865707887734507169083280111018607416370509253786404327240475621081699769867137575052921058879950613903911629251168341217353471809952881114948323087178586046612213620145997280507408682499782016913723933365160396825444461707935258625828098754177604098581773413849126257850425925181255837163364351474426077478070470304555223456272681139534143040099338374015352203876089554907388694370123073721020621000014169871281260947058786393413941689649369134553108292737302662600392758493492431726873979769191124114984044256123268118807825626575313463214303571422015058676259131323396581866753995655900211303640151922258703158437242417570346339113481587162086748653918572156077862638216642374062672914866212006729099219627123430521385772786873425942696906425021224489893637318179007377381620523068371834383397783083033394582317498163505065837100202124172711503442547081104367886566848450554423395667159180327133754458102294493878696853719926028673346574941758768515427555800762614215502363355926201055789971945491691854646018126022462803087431597770660599941341932518348173493912613436348943840595137015204906438147607055889366237272745354851490227432681826202809962715545677747511659378824076422029887561615319135902652423220987114154291989199067517942720090460144044734603106324315914912370896826244056289675469295585126853612100714413160265539059374900447121777647719922945578468575205295141808883474547576297545251346125743362101276565477626786145573939346836577827858806088601364164199507548916240510060626572922346629655284513835246605612195834406330141405962430603144908565763271433751116775147782258614699565068596819063954121001581268554919950266270564243022695518967298903370740981840539771309906547790021850711895040302397408027087659294936769715838811751395285390836160693111420585403431030105867001294848967771683159850781575036823559893478300708104271861480734146414091757511916346974450550361090528192968038965127963000424345937885540793798745753114971533726766753432308651238410306429402035239627086402051415377599126875467344901708128474495880703338691504497224914979367428155287001242920514435834928851768269701889122300744228170506068158087761664059389991457686681733298695912793117928821194936559916244702724344403883724891938094529072032347652147071970792911260456810147562081319969834831975292181255893380926385855115377725254287567867297098327343249111947032462767585877079476621542233740850618323640035211718837595017091454164880547292991905952714010152694929058854890873003114460215926591006168620179797205176924411605275526944309903151514027576226146532509805540440152787116441423180839297947636861910755509616970008098124513212197053744090176027825385077338616520682815698432559848914149251464689782079671129635518722900572402838904653985532767645866900690131880093522778213881550894406922433115825394357106873429993386040410646120004602948891807919627310972331277784430671434327966698353690454351057423489499016327089566660539252167495573921519712227009474250253353648306831481216506891222462156879642583347519455568608726911927303817821334293033591122599574329518508880977024855079518611712231278825048862970812673865197808832322463750974802889648947757712688623749514228244985556013207639411453595697937569940874032913430740345788120397586234359081871437189427326828321343258013897659778433610677297878586165563645414707427936110568806451872695326284491023730851373082344360392745868537831279260942850742384548935738116507258381671164358547045053195213249766181114613088133236963676094214537034471658748349903701527298145725804007225361540589495613515182766833861845064844387331048593548629885232555035097660442044237784183489527684182141084563426652865521131614984955562728537214139552434287296114404909958288683690084511848159929105992981389825455096954406404159740663832119318171133369408044926672478956500655418854534604802405054523858639125663974163291062873344882868324609403597841852655499683579800040285934103447994457716977579578304216015782520523663112865639571302365779666812960144123987059479886109706760553865350710123550192139287744483595028026235731756136629254822036818137219539581904493666010061433870169154309292126770266811413981732129272632587435173935742823936587566648373390877678360691549662858546031700456668947371772065486422486640316294336961378802591112612870439177048529520562420945805806686219708541561341652542793897553755803425737806436927917900905470714484350736884336584086178765017620598271310592644495944189632563103786708291913604161102812677917783941779578221164552581380320736899726169369519938090826355350337803261227268106587320917063826049985777219771876110906047092398230004298743111454674749566138978952501589425538800645507366735607556237940155896689613817616892956340223121504067451619086253258558568085577409129002774082072265935834633005327833114559484186929440518408042332274225908736977387749235580353933406033360863600659553141570101829614301577065802722943236737154358434790265402698662467521434704449212138069464804012595176101780096312837902895969011762033282397452331785550058023841981815098259887852244828113167580643360088743849505081808191172772315687777591337267767057790959418475046521981415424123392304540492424295865103781169316549748120634771982981974032909166170905153286605798628007595430823904852563780723569845334471817505644662186994528420047305129094095637928690311160959657222305433854749757167267131342233757910863342567950394726604909041451986512499797854917786338791357071375910659177648527047804809381294081241520591937303607648393385941405457892087105912333453840161080170469311291771790125646135947006559533724091187636482979378320288019804099331074462292304902428993905631905958332269372199029133987711031718225519623301996411996303647803443142820257776555844617587765832625161515280452499523261601913070735887174398253051900897882032849330492520266033805440873136605667460136490888974598606207594458871731034053050967649174849202738572313355236808501516067233060914793920092264766348223729969830422015514949003014548912609206058718991892271612478223616920268846574600379417559887984088079394861365873017085855842015554981662495303991695749851888891122023354121544027570528584855048798906678210191230202712463314669941531643253584515494861875292841012887825770769105805224133596456334793808072997275682506805236706365650066882074071049353790263741533983136658746954707487253928300577282892974274690308921576976920904061830484853443040264092577681977889561596879138858674473036908449494277617175754644156642008021503578974126907762923879877748141151205842422419865678013749234694376835627465627578745903693882399558249462043811190483976917632368402525840498731452455372671441343326992083095551759490810168312947259775276353220005157203567955947713828556249030372470448814829048578423748490501379124401939529487540689914338235156858213341595528921609101056065799692434977146822431582546816178685046308703217079986935091344928583284682418346110423711487340954231120147712900455511314243553755166642274514993608350889454386265003789952544637491979775076233651028310261015912763915955485229483770257028577780973881166636487588029252540240257938062979696528769762002052921614081178690679142443873680744344142995867556232667969015696873363947306955208695223959885263880343167922720244537644935941925353245809222077383311995521655222235784241236381940927955558057239438062508889099826327135307084903258342496552309529440798234968556395999278868449981536527611712523562039227654747902639433913409780898671371423262094131011102467025788367140320114478398696796156701450248862184106100011541766043632695771828419328119636501593197110532980568824646207028790015608095675951247565531381595237810644039564033767471607391976035135437179560272224655210744582149398434597292962837828591356918527522453429007769281183432792107157694528320279454247524819038394843228783769801144462503921212197318364810415268980038458184121810839178442457990836300496284859730641938814810350320443990160729890968166924296384246912956384684025058285507418852175763866505930102297830614525347139781935188813629260597919051253225142801506133164815498232313481339609875533230704394246335903131554952730205950924891925631889885441073431234145355244186767278423320809072867702552958663963312284551253733224422029023056031402213160738812297897775904005143505180905041102186999930439410823499700316355655580734688196170244712818994787555919957828231485612078879800524223503352597526122510904801603828296378709546392751468238607261990194656412189965190609801825933941931195112802051027233796847743655509637716383307609557216165412252830330538767704602037980479007429124752652747004144672037809879325789886696002947745231520132748513643417795094500578293275357362238145655676757187463378731883558635203759799512159277610032818618624106594241853206132270045899218175989895509432029038151329988929434950604527697468602317821315675687295877035224744277522963271517917785258921545825121366383463176090570136235220571693532614477309217023459280521199075932419415477745586019582127392555148547014682592695939584230458078392313590218685864604960847172350200633628289070687761741480711006775961318803826418058018945639474647501642298585135038521151803500717273463499645689650417830089707708177011610831364704552439726499129394805943598008646891620198869558378165640735733536377476010858536934997569359152399942236994088818444650252366628144603416822961836613762758503335490522774366149597383708798191757315073596761175500197704500591765194243703048836093997816048574255698077407694640031527414031171465151576485471860134027635244824502414182205949768091773087655306225845592614795917943787136195519988666857915177265628945411983261830046022290781499690532784027382391988736492630534037062430031455084878411342785111736872213432992863433809090013972882602151229132221614293729352638716139568966362040203293575914216795627885715103818499104301017420445469047853555797204546142420496536199223279257406057545614105853488083850305038923307059130712878643074337437945450069891718083636885151917687271031203820020691887596609756784505734840050102300855142407434486730573763315164958887412622144267920790372835993962981843169545075007636580400655538994564780073634340199821881291448575366050680222730095010082300565823481307475611420102340686030746809686719297972683823711331782967072613422766071830513691266544945142423688517045534198187190602690013743695717174625269325365512522340583207286235349099389435559816605192187502020283523187364955640647251702144845366595500998849777431230213318922956013412765484044570688209558274996961718730226572756773280537299382004109114136595987008939023113760700953006568122690132851015529598481397003068175806218559010677654873627431355533633509557143612665917000804153515017165009437269998539627224001770051848615458117390516390442373790102646853972538706999133813639805278367581075976420622106036171931835845657299484952505870608064222159771999878640373408520036020149411723165683374351678254961813406097672791151606616318064120804908661661305806110166167304562054897335788279493143871261922655500504864063448601615335258308348054399391053952402702098347975520213661081281742667807232054547495468647692488951361856550418019867176399049379975013468850211252517497366400212971913293297988770682403793982507453161435479983385977590344782842733716519058783437174733489406961684108109708543976497518926616167165053525757245358262046343765110664064148818675206473205539350488694037870639866057817093317403349589122661236476856166597989191799289955523703998094246930012269778803168169772099923767962510918258039292322705447980810354631474634895936807227820409021130532475591711375689068810668530922711775814784599227882508755434254320029604732395966767326485435634719783895961418205778758630557341208365974487636940613323860033699689039437665924966287570941291283921939454234092975253938007103476949829756714555790747604440996967890101889152184311632761624415959458472774114168171029116250426430193308483837908502322914982589190863744195475635940277552765576505105717245179975211362959365384953521103411816272484365946287629243451826608558365178917736043627736050964019583232175417246160109834091578252133621981066060641889147350087213298903215936760794118852533190366759613310978926794401258166717215865125659532881250633394859364866406549453755839159044381583633869475484853472337457001584260895668603560195025749409604846151833993923248062822966282861948139145170667185516033579017498542206924173078465123895861499123534326309931727284854156874759564548605288151230595220526692161974980471325724641746390779807873854112837918796058155948626237101789913142350406048918783727345354203669153796861471291373974892185911160951009444841387303765263305235814446185560708972899805695680067575652926377450886883150916242837379556223501402790317107629356565875424405513503596596922345058965893313418891299343148345862648087527026926145811008068294211085404568624528081992753963377910981689968137017434801281747768872905415591041317837444036442426191514218334275491857976259168540665731742290699444156995361013905410755701640154026608050675512425706376630298691086132877145095076191935930141380124453054328281053375585911953117434381315795908206531380860837992998369257703731774268022538783130704066463952563972621352660844420513928883545993000186211280043974276900263627687357403782093259660892234337942180021033359575236508890268547689564507041729946932520154063632048872479074464618733775888856097279343907125767226999414659545022817359893179081977042318632955758672318691371538502882592931054164456442028136313537889836032320147822139448038888996537649993750396502489863910019091119976105333138952824898633148465242357178368312848214928374881861100665373583755043421138726073876925621875996832468864965851178874655451779846526585902126334625560746234188471303415037300105679769735501724020520061697370573775334204037323357874326490471109874300755549355319485896965021297900514396526019027136782301245654294615199534213598488191710362448930110891599515919975925703126417264135209768581667870136584754218433981634230426214665087127182448727642332998563428297657510831630630682397863373419638406114507717015808242337848339553107349124860673039530100233217234369254514108346984498004782121446423939238990987465023671049459458081567070702770978199557406018620789650546374741595643551130425034724743238234974800628750820982251236527227440068764136108520156205851540966803876397399285980104012170328162045022866140877031334274014757659382616241255077039833450418719266192975174863045604348924931763083146435641831810982045061006645614985868898210445500910990743652873616879844412248418118441425192234093685476091631723170572636516460187891881234128726585935737311597344556400980359461461156395137185437539817600481498336311830738626295385507481060021655216202989195536208466274937280592244188191050005900310138410656621941367699328757177009825960618369186255832831943257831835755128862761729013688844679875036269627962726044090180182143889856358723764023402947050321890342487763301936158813549175128951348823785849348754250991732596095356508779636636136582529794922560959896919523662319603230251033083737135602687606512301451905438573519010304954348111894668139040345626566571844287823478972113898613354453150702441270960614983618589317594889656352621696003566552118401757793684488932582246636328050201515248301891141930381198089960619515421826575176151648709875135328579487222920396183658949445389705447016154883367840266651718525631035788765013217279828288306883055351919987896491068504516803533434004572201748307296795416185046209336757301797366443065874152329213502827168016131933641684215865222772383521716265268239669412808354241439872747890819970976886827272569764225009897729352515630319434178412909460294217750506792495348679531304805919105345666978082348044390315750243978420757044135362374998731222756544687404230582856861027749787524934083799362373211203116057775473437523167020991439591577828068880867518843134161101883878348399549805575301029283768478331883939714197764470424877353943305374453514817891195576184880790239350060066156951606288626606451665241674660604027174012570749367144257941708357069572455624046944094972118172181939001355146342114040894345882795090270323649094390456531242300295945277239453457146214489416963447472533312511458383418477477849717040834525457254305953729940468742265913289190370820387513756226305698465954914888215602682520148913935646710868095318006980413838351707333957785712731206200467667847233142424012575959994071417015019258661226550050067541638540386771681741212972880889042343580371893385629612033186610997452890433859410281745215897138270134304028274189763324371487194068034859604072912817048305845082774135504022255031489860150250241275331678167042967910964267896312572072918260428306788631171755407533035340674054168228131166243227592829337148218857808737179161563932380795395416886556175798265983065956291332292009628047207147119486114010006659835123014690352070118919830545955536318049756590308640565793689311337506557567140350618284857261752789231891926499921927362049894877158208821015799392603877921470182334157057065396900266484176164543864638705150661235081012297670716976065636756493638409432412321428219993763015336306610930199889275412788364891383536724643772654747276637272865834296806452000875244142129125063028934606686715486084110000315682121231923651967851515595906938264275109428451545789528951178750686099987946342280140051398135593404196803718104147868270394021642539677186894583707709336130392267505920442563082162801844084805504456588476274811274575573756653473440618332606122494824445165410013104816776331304320349487970813590677002931855438476068804855023472669703636444181045300828528276578554075569327499673973986038473067631004827616757022600039816361180156060473876842047925085966008734904768719183630902968805239292898966406676046251006631558431625294385348053981462310878318608364728375245805998993639184543144870154842472733566937470312975443510453144271944955110961168304849115206072432410227737718788717074399093104494358179373997900284261429299856603458732450842248876949659647270488117881584801354297470544660180327884989768649518599044905652259816502514249556057539554778862611984367948924939829987029028608035414135398564321816779385848158796709823989872965156557306202025433698555727621466247797327099185917989821304851827809482845525234358052757036619490354355540333224835059921871434725226591794839062241590512213194754709800544158769417234153656161330981259046754572328687907187076003627162598237379448103943875748156102561631493868622183234280299837915512102345384545104655368480339652408660043912623668328200912977011768376682117796011503328773941853900842213363304341359799939231865304143744465930433138589776017190380601442978275303786794383477884234350207322258304176098788853186854999875895240167649435921403073572993798216316072027812126821987499517964360166538046136492551764972808180546605441742605419932703152656815868321701008012618260418679545537431381124816221475480081838038435570657837145849684561074286425960134364321874464159723453272478393545353726155430793562769422429138565416589486349964839094215300458323865762731444351276966925858137791050507067594296475141367181985834280095668979306205440443784784842406708458483663072326595840755204359690576214717804381660734671138380175814517927632554102204316538121046842760933835753154864288168113874236551265687192697110787077663300051385444718237102708484051269943420528696496681027381630321098696873886449275364672278529869676480891566346715146748145144754923372734015735749681453861506157557202271494760211064650266804647264243765342452750982098344771810967548562967602336153330192119516229177140347028499058154806456630190864416202592395198739881697484360681937188961087175286522611468093828685414522175411365509556342851413826062414225975200405849517476913695768771621325385750232629323940445913972873943585962639470823021978933083110914879821356876947893855139469576874056222278456497473173546236043133506747389512610880195405318736278974357030074220183870131533583621409424333592613654055981191689286447776393019592014835423098056449652350714339963003358964185915981692030460491595781298322645085062779936295027181802736669696138502247121651128582681480434266651982414943506545520792974492699159822768217738179006382577448597008769524392507114038690675029171038616821811792414296710740185463823214157381859192309711333292614842304586413321760203254757481430726888415940821484873404018805502534985675874429408715825970968374303863683450649662762867652081959394913527627756403397189207512660593019001560338176229089947742445954825241153364643677009244554790380406146308775876466774763077136583163575962850820392272312044491816321034428088241804225931665884178852060354293438484532122692281052726235754206028501821146455169482254096301034930577770290854995336258085447550657472006517726841497704704370058622131714427147014767843717954434380908033418908826884899169296108610598685448500990104820015982573566718758649604614526525933501870120955730979004788751469399293002013073721221570375430672516187424317221628779416652946230962545071038612853111006895518055766676951694750322679645450694846201270600228676141947248385041150230625632879000618827951378171340818612857442329521709836150615819612302365441811275321500627477212251231159255834441613650747252506936776170217539595872504310128360200033517925840878819761994617160740521023434325273439035361339535654507274333150266178099098171241220525995147952965667832974210993687867930090570556088138589457317600248616136651533280365901143870956746495569203550338098347932288968883292380253736090209048170130412842344464091163161237890254374565847990367772945816711264477427251467313172377687849840673489804212611371527989310905111597003513726575571994013815315735327055678939799323562339437730494653748677427247387013357859621919376070111831061832917608983719706350391195032949190071175717351060482205821407539178128635949295550423091237641171392541290128526371320100196652907734493803544918600871837636317985818724045827138033453844602560533033045093193529840365569546937891901406025888562241609291106892455948799378999386135693620483696417057524792090720965470256173136469507856367803703287671594023468045826538984662872727303438651337830059635384879449428727422387373003962305295322226387922727560226183615007589188443332304756006299729278152552911571670728591081882418671628225232929960741512266980617042190018738161972200102371329837770456787987512338542629033488875470502509745985297892670700185212212884934038982447547002962601400407865324902712761108226544253532472896822044061081170520693375503596890451406093324148156987776388784775690436424236784418422259494088566483472973398244088709532953844409990008776278103886371623312665136824405226080071356441179710751874652696468089946098363861280780830007735555553705257445095160186943813881839698634082635240143963501482835126136283737758261840526743002021687268402559668327738041096433199826337372660120701340750916728482300741484520892005436571661972855515728390827259426200396913526329407339315571131626922133836510607620397669471771055249539336739389450364740526989261110584958834167914856122710827622667338108451589604965249175094117537543228772545629789352289967359605390005072903428018964409845266160226442574880720480971583106894874314968317645650772133222955621238079376194003813103712827501100977007417470907215683341180514495833369934461465825594362935738748304709297566939840931690652207705720638428184858966389347543185851186136384197833606645636838665283111001909187151902564477469755361843417996021053227797149071895598530490510406587168057029995820019117692778374120657177734856940943209989191451250384252527914404885933245545687652892813989066279773565702658164463652031571799393112404341723179298060977878964868206292964784540368041526940731403504745762308206441049151509348663016481562325126242845230521889639193261062018453014239129930031918452139282484709014013008811766527102901385813429386769898292905303083519615671177006802675007784130830982972692999436821259579784712048739087014580832171734414968987618125051281982829837341659803799598673025122400809936801430166471472416701857269777981749905380158593357890355794739982454611183588774882330343645421268527297727032601107011405593188943679988858115400575576246580749514361224962751116016280684102401382405519006437884614776249384015469167930930461818132437278691856039586078703907828276713180356145112333793944356742784788196126399557552208313763885295430725444795159038564432645211659765208400588868887365494950295197017576744325539061257598605156991488001625243399582589389708258010325678711227523214570489643940376952364095036912464093030262801043356065175299695542918596362973374432082900597465199854909844783190372272994589804775663608601133867461098757845224955131447363456811679644278742428224531265456657484737563255355386297081221193764504326969748011739911693529015963474336713430296681974795630107242699407497548848307921127560321273688095680125025359487015726315277001848780781011020394564026138491306893328525689277974144846449430173395063162702913159205018399400178386422727600701913388327680519883373874580594439792234805682521791754685467448442780375538766226915378005545757415390660348447667513314733867282282660535590570408263863357820053932529807984440522143564926093059247543281868411457415811657756535204867171548784423529769698340642842680036736011632174336821682368671833359525890982247878109938906520472157534861462852783913019953446551955416792219439750275179266062298385489324643234951483865175996355983913125384893055235786064490916987803087785768074294405664670745994362054439461923598708772265933795787060325436992048234091702923008301399518448528260622094495464659707238317805825805295042321794162320281177056950584132217979740448703038850966170250021982072261547711698245587244179094284801032494762199018833315391540803671919941478904870667234219824719890967879608917182909767665013309826604762174055306648008960835660961461406708627300508989765495499157312168319828486267003684079114881256049104450367438503887498857958710246967047736396735380571342854591895487939940370640160740057602860965612434955452448693104657871818263408083289183865324462210649233937381642401501692562239628129741742885796980266054996778913116150922286089076606385846236293470990846852423413905746633890427671760536384332668649231206190304886365326652595025854656867097341559368472423921530741626695562215596224306947606881704400621465739809472547194379145706911249407398019933755451187144052815085034880277512562210559580025346191128972806929070799371550689981599966288007237799502429629772548945810701260771728610673775755866792657126029320861818248245500528256522389509055604928933477570380707884192809362125143203492038292549472166822520520095315175227579995223290468624116943048678203791980054636763882223007077082221731033561439524547039576094817887983881918804258251109000023753691277083139540116294083289142874812176440822226299303245320491066051722844954014360903201821318283118675780214360584862710845072443438796535580520841536868482757360331694089885627046713341194525150648545978114407420401622265701832318610798293034051690515503205881514861648780365780962810522473880817147450996268109814875147630077204040114667313222706776039172942557152828529983119996842950054412193120004776732686534421750469942149552575963736476091144161764723748643161246268521279095377563687454320999095116324533610960429820776933312745196542858326233807867265755299265349678187468435713492385107555825197124285211351730952670199116063617235819966749467605489553040925744366055060217916342024328664531313280632307312907030448294412662376581728439342069822823321906041298681967290601390749466941743558071939721553768170378553627422667642014706681301542452542093006758232012932335527839763476307567029458718044065517075284284777046524968480833498203982586957715816385266885501546171870657054300907963895472785805377621269592257009870436453202209879195981833703812880013856586661821598160850397585100677384099825984231171832587821003732141201484191348273278231035397501819874058949698380061334104764778020419128172737034831902895869924640750932172736999330309586857736448805757117487171660646087296283387444394189771719013418267336105602688877002698280472762112351708464903436718815218346557671373618765423798577358664514940180813051960650283483100884452786627228702594229231435884014943825249289221892281664751851386017063207652442135839721375630840575333430260827434813161809391310618522628413576045022079560206937112066834091618706788145139098114134770961614826447043265581112828886534275033455018206602643217214775585525079889312148845055216799089907685195674039031260437238339936674520519875621376011729436339980237428006859137323664890832608981019892034983899723683047929145479441280434601020792005745767708825655275117972557731011824605169990897932512630918769006612030862164044872001672269853531575836731147348084534539104899816921350921078151107552022780626679362241412287400292676085121404405220204903655014443145990408728615883912662246338631669077995011096580970246254989054017372475044128458917585476620503018196832939978891770337378186162568538614190033272508143143859756825498365755286690530366750737945096583786876567063228173849037928186126776135506106024123641004301219853178454787640506536050738754138663536395194836229294685622986438123420184686781512281654685030896243298385181679613337485409074058216709876368521342394003672312351894981737223024565950486093188317493586062877885970982506819947293385284202650231167809516313664929793533032377042156991239302319245038547450855259282161983989171852914506592632982038929636635015028154591046427128115952763488698005244383638556375811922889119726314607797862523462410039646989904271297475140818078649646550388552149629528866416906689402167059013269552595535107246392788749452057456436733172112033152235906941355013789412862232590121807073839257827935205827137493664351091775770669044460361047583345366599205131451972502760672102483115174802340437165493459076723500163146473830738167948420647954549798177277307680164404313209505823086190869767204502928815867517055081739335731641626109921988020600625810636353363244841844289780867098704360986188051295397769632134557681161159257383762033700570267918398259707511624285009702007482170617587668710385416018851857637910366691779171009766790206090097770934170901568897639600780136047866737330124067498343308706710890797112540605836425901282713882899137282468802938337719493482543818116667856495092751394685358031793786733665423158516006585904564308123128123491105942843496725413566003813727914602897636151648917382367414361340822232676417818569026408588150287709693990428106586466250419438929885106338710151445356196914393484355805768231951210589187103591376412608466678891807889029811636073507906092225470424279636586068658076299919736538635064266392087695233240605504236120718170325523203538618009802411844525180910583371010872711736107222678169397988566751907297752289166812583593617710370001891416426273765140502601323182586771142291515354789463449341164182887201004536164542170404322336721677786213752551821331547418612002664050397574602456002806062535678151810476798901862389090029782473001853010089521261659676119629921969204679750859657042639069637645493319720821218219358866457036175523973418458577527088940095114951001598240310433425729215128436105984032140745729118090411356123300153599959338628990361242918109471721701864770847732776004962274451644302452364382910827824320869761128927516460022029055946859851337553249293267689535472206747781118486758811845002004241216352065793260659132417816400412946477077152096113497423663529855674154201198383621013863996648304175595054044473899834108119283749233139828225894593879928375230392997168888465349282189353243960817191270879045103362640932368079021388320075912219742844912589819472555956998077888592303599776146102979325805423984577660295999362830616490358576505416631858218847471827527417739247890373534025351418546220154432947845819193035302097682651648602057626046194836274522739759082110270563554299327676586545543274483427010156609946731101731679567507043752869965600538074364997789258570110603592009128082756695121211621471258828994894341812292564107727707469989139097627438787898039200519284481465860447393547402077129112756368950836272640022400086874358805362739325847392427958683794223129044035980391574041713928736654359337365798452754816904375211984461818138699962042122990900514834833827564063468244207184958741229173906906347245179095366903269664159860671386668701410872792073011287849321434653744301083133628331942547974746045232213131335424906473206690785353925123230628279661896048450272973040982559905712287871740978370085797202103343334727826669447988435318765264721023288079069736175648209511831091970473330394964329563256377870633178085609926399028895715601669459277894991189463159230082739916876019949025084793379485144042412214666888866491343964621139024939145087639383925120570136050483536078344845046419859369461744355931593020000817503352304423608727396148123921354572465863715641774982287078212666990147154798124392655383869513220140317350624457602580617439031154048556587263121678701414650363060960160585586118664876883539865932177310720438602243650211846312320057704685168066114028982391591589979505479214630719913129965555235883229890415604255679834166071080082547606836535115896139902658330901300694515125044575672383772792218038127313415250154518344248639965444903932411079906811038749349621320143368647534922485408371481507337897576344743252821351766847393280003757596814642389338078780981567077792182641792942337672711232196822390993609372292601817748228328836310777167479353455332221644910162373321464502020720158412601666871446972132791271015121271543926378739672115595676446497480433216297969671375286008265388276660329656734281504990463587489749426133571514647485411263917219194103817784775312891811135305981644609292275531759592547622986490531593220718605695389837756749540855464034111173775157984827592139796646693263013912286423867185960204401100829873574923254420961028299316729528446008854193138398708954887872795646886561512246020495211938197217141704538988822796124529798111717035822918698445204385994023610119968405786261231359742550749005946806886657658595358684408341184041272893739707048106361938906673201452004670957860602474861661974110281036188773952759280837568867261378699633233801446886177473259345070502305546259162311344696485914175306269123491955720459165120728600838480046106847657880594047775227549535502614195335062728598001008040913101625514227879625767228767633640386132174596748100131632152613942040415560263025091583265830118246325436069133973803448376105526640641152297420923891063946306537138686930137502857459262351875730066882814080065092699698595522656078314150019908743660763839025868501628540712797486150049681891800030663169964554832860281716619655797561426666584821642510305975686761086266707056911736638671965614085884419801715098799739402248650581431452861468731382006233739536608262916244708225949304474971650562061604399247209731010820335712793268198566915024215320542244285849209654683171007964677020900399960424053996827410244993209937735402819879859807025819973294176074023718771814688345009326085386842561334149040144131382434406680236054743524461561759182777118555692430354106627061205503896388106831965243855267430840248213859321832917215365385883007806977915696687967953909385465657698799128502905498947336332788124381864324146800775005002891644081041431445557730373844599160024897646278608298601296468669061230223804241575030419170746332822503369903209425348765901964723466812621380073061400003847312031922286631280878413928611422303235186673751779014424025977531015547048075195366819466538441247764433950690700216377390434775317342796360388813739197956567377118988976255619512702348006603625910855974207232704845526374420101510496703211454795347732466853603504325278854038917290939923493541423394135798493610933312677703312799155043961613931489985494836588256924062371394584545388352130316759809216547455236536279059106007244100155190888936704264906561742806696458792061235949438367397587449623803956947821161174333886118590583784162513272359543055685914222656840881220227190767853769529739786468255002230550711247208763494191305809029837152666375522783425339263366601683240941690705164838794113678448204653731447353700999853352722534758187835730177114822525657595223368639273706500037862823603039163078290238410432040517272680232469972170519620791197222552258467699492477295322482424925300881579420960696372601015093618400434908107836091680110971534573593683744744540273099648038700551385814683087217525466320828883932887157544365302440808015770119498732714837976257519602861797557035170298773335960580131601515183874668888432630520193036135974074810508732038961621889263625865141375616459848880437379195880522744695167129126727384025938881596140723546335948410051824339800324946519743044350206233948430613493237172263425101256640503651271736526666919271381481498115396776164250494489572599965480743698954011519048964314244564106632796426818023426489532173327684286459449883095378689476053903257817578954414366995061466939677005524541409726325878150480905360308426462165212892793622001118396291284417145039176488369424414618136054105401651708384021645435030207301346566679995331914713845613575855268181787980888625990236639173590470862893891743070007171533307274900600037691077317196057808598718590512133406970376814283638720157328880475078447254327207676590015676207462043684963262765318196727706135140160045782171564735149284156273818748806796530983698684932775985266883257729190744089959408608233856346359181459968189096922499646332612204655115716292978429483272147593501847031103119773224641392371270391540929108769393686790870974854445976770881513194168046175927693422683723015584732571307400134020940416086378920732706674113883589849828584136130278105488365693951786031122694949972464534473833675017782597746192396557400132527215507424808445699409364267165306101482757290719073191226433085539036038184581001026333692492668982052349342118940307208456310082537083755291959199012134226211749882468332279341398263914518012136343519540346533040584413719350256579745386732691705382499195225038842617474635520545522277504124672637405462745006289518810792192134199589629448667742990914734621082139482473587753042538674960766589110919559260553771003376365658183358480715887071755025537175869108987748721665248248621189677978903295351142409878455614598058892492115711371307698949043906995148163759631476460985187229167302068172822755658106169248634229038703801613800101565475372025432433613462499424209641556693647139780116574735831168226099808484308128357347440405556526778238425976383570636976414814351577844566703611306430297971700894072761343891797113711195885360902122666893999984631257421497114332238087884050105153244178204624947585100583150849680560335099949680959237675362669791059415376950909952960359769861605785117465365484640698376899824612101305084359769138820354144436350105777587208928828376703143689832131724511530787863654572024406227220657336718955592289667024972960709013805020945557511551989363404540071035097700323664251155549479576267181424654452977836419406902382854037939617896160818439173879958480213563189909567898663200974751833530384429801110736564359696552550031779478673947796602110508929461325715823858112545895952049430888573513179412399677150590618051558894135772197383503622346712394846074018631180413850596022114622823554174744090872872230228137304100032005727463725345651827980378225536279879245494955215637135261749777489125447215295682385621178729185009416512264544771051199551375158238603546589861323791391621299250683580547486872300107010045394817801856485726725473034380294194859170694544790885771365153044923095348891323407146337174305793449594407002854424918871646661706562638008526338381145314634839273780596027343034634084430614209384280784931480957677069039547240598200123652794271309766195673914467059314063353397886203411568418805133260812335357869722175998595707305136030740438752930274270720940466875928056109985327911332444237907594859981172627218101960219415679106754889782075607777139726826743731144124620472821143278974113067540893597530068707849878496553429111516529269488647713723260864739367278075212632222629854413349342155096204152085897960433827764442098604310170906496648693102251456287812491696202099444149996745592347920746190368826300343072192613003795289684247960336764908118105952149840092888037761778683865856378643625203322607677728630816272483580073431099288014224696480934047185230891800284478801440743905459326925070543972113816829567223406644380022357643495551392756553071942257714125044209947723757197123147928551234767869709076231662652260847640734599470467601407538676646651605151745470910315883307248878209415954349227569600727562640365501673538146442996020008533492930368302117648750061052461429825098957760287051960384375945846580559370352282885997773669649692372147921593187893178455259785870563433427221668039547129372102805163201041642137766796434611019701469750966289133292557062654266333912863301522998882167463929927041835671968058228791334955453930167631412759137084020651455729438696595812821583655622356002501693903732382768374133427930629191982099139684727427206034878553371312359634478707740834233758160549498437632578600559798941010868523613807007558837977812766804937917547301016560093985654974360116061366223512860132239428726306779454408369494450680310837606623304137388872632988993547172056407269223189959290022785390180792383696216838090105573154535939991764119260335562660221220449737280942710167848232577893389173694540520049146438750246548829175112247875864413493010122477898634667961978334436746157423406355407132870281656122147613046163038741976422020531504740765476589818296815032674290935106013597436266547603393068932590147829168829241711835684999863966922599665911075910561978124953994050834323749967400562108325261830791361908894224084463333433759842643591160733378187755859016825518701721400231620270691049455070583979426745078548140323460818898574798930691661368401197446957549884181107010563516629134762398893441776046124615863357712717271217679128154852631510535971541014668954485618899363658258046724361921972326280023937690480746132901948624834476235623032522699802121131649480246795952525081233628496797385912346502477669651374139916244373741242886173802840557968843128001965271224225575472681401494569405772913955742373080286466299798268604237584754734185568636029176126538846314139903241390281350820762070047028916123467105673937783112572904557123515353235217537124216912869020117110283249329957807559329359966293670887492128816861456023553862955633326735190258002067406418994987791706597053425111626910731323537485999971643221364250037328337752899191885736812845650464473438192091052219575417869138149896318957496759617912100017051462344944628534403407600663059731147328393247779910905779282672850859409936707649972066721120142382278936321579978766465384697214456683966533793625751435017541476624570137718081999520744633936351301275373202210341605226662838856278762749244644790926190671881556851738902808130301679410122747927746745507063832686673671236877050440179112657814334847719690455135384128615205478092571600643610075273279597857260721040429101736767569395368457453580441850022025306515964528340461594114673500956299124143502989172807489698822201295566383658218271350442246014362308353531084661672565219553130528397750394879806580807953501246829843059172273758035114005147945134711271812052908406888549897901429221103164693567535758184194181978721424775931247877590076705394113150451306330044765615573093380530689482240717905234877337460320656404052070595130704369116262780624070338048762319008824743660804734016101321094533914221941101189573654697476359332942231040294731196637342634974017742441289339501031370130813948630553288752425343363687302990586435981944622058402381955915015050372677730631773204458942288266085163705325543101741095661242616735592674295009567085052511954520675011033097119341942009554201928918296305276608131382693863783194184495657514097906872715064505428194842890418536776894290348217992372459422225205159824849936879626595764227874311155953086148552993582794070780405985497002780193984148406023199764477498148353261750302652992793698213242851644495975708103254557764725452058914482791267791444505422170786518933311234425561843590650336263208736572829632055599046423034489237321444570119832052834631914501349650125767245688349357366709334795031548059613083042366392789557412398740699942426473741054169204483421419631002956144075812242327592189532662791388251751856928384642775004957446662151528911016289240510506298674302405807583697235651724785142132733240590678740639226470863123795143348518132199651964910319793498843626224692959063310986005627503084293503116216223005887139439155056943020222094692394009204128784451639027894216056389738074308585598995589195283829629016326814920845937946564236342391804156513107420806978062138212444860397890706359187443970643704793324452405368213340063996376594543434873197206079926628526436728693017560543429788960638902421501152903287876748243014159584438393505517281455756412205205958693246652541084888547126976847077361603354917372604437034327160674677442232930384511638958686980693253187922335209419733093089436467400825331235355172111543233593291280142533016912103483698968831142823703034881124213969889779254057310318155619267062767218107997511438000823121495415596807711820304446091635349759864629112540598847574875782408754132099662312203771554253739642515978651542029878057818368419594305484739690706480795815810111490938880423357126043123718546978733276406059880315570167994500823489599773651783311254059515262609131390932617598337340746860070601078497599311349401763475160460859996140240119498194577615107655777632913601092106492479145787737699053319500622957320086803350920027713749428776334047830989207113779027129395829002439745729170413874804110001147005806508459971040488980376670492262745701741499482256269276432750946916029704528667617147893880279773712911460863689964654163736510798054609744852085020369050470923377037179720931346716093882468735072038117021486897188186403518563656112788601357021284159944732758334388679061357749327348575442996268624693273674218992011137555422065953040190912124422700041926966003830417645285440718869700341989741442474101366876521558362197988120183957781803201596930739522119699635411986198224233100295318148291344728061967350535601350184008601054340686817772640106573223247862717406569828885297930041479684905028656173794689916225874142923507591950457080299082547483516818386585700919717846717476636784461705105448177605576815526048822975405832752146610214692605103885924946869339059451794769922216192118031709930629481931627949527962967435601487229088422710765978306264864734756614648055204937206799253616415881693790814615655221487063670152487195201795422151239013645239540249437406907430540817473446108682695236028264284394841395935035875652561357969714462331641729873204102986490464691862370236919121287403423392715611254201928180874360972922000596450055965552456904690415085606423472881774717498695241951410518735481801301262818515765075336024452506346948133047418625211203339951375610127469060809492043866571760274257555825353891266041880967576190495660343820023126020692729346327709348566312882482195337759225497743179036009470620448893817789679750440669795039244076425737336283769106874277592165336700971349704243074983534785467337815273476192782392942728203721977578601838381318838666453439865247749457941395296944241767863283530863325086811270037176461463460776956231792748456713987733972712946807011721421440425243132304304388477301720884197635481745605539203116031656398811159076309703855588694220398181665780563259566111547509058582075982863734200936982379374845452494509128755959210601057386106497670661792903547212833749650831731655701238964648372873672611243508923778672649187204477077188455281915772832638794650937801183591050432811006387997845026327441770417847074004260943451727228447692419751981141979472089358530158861439825816138901798626576583392443468428842378693759376890895044056822522894227712867570287663118686783224525018202640444243945458174750811162974201248000157434864846730580805005449839241189885384727388776334675432213866072318063253362709250061994808662445173196181664800520768975740594897704118012387227738186134131635441382759610661176860117316419274785216894563841578447037319802546766080151236117005068500113940730826096367839009271580734067113349541509891476816911801300227846051429744747693052188640910059184862105657912893502406619294201158603112865492213092055912528814232129678575111261594930832682371172572177658169869149268859323272117856238898868760092496981962049864081143594219753472610722664086313010779365520532651646191660472801427782681351856997485713888199872405762331459052960644709897538266571434657859842037147236897814821741174320171337689212461388367973732222469729544074611855003427994552089831543601677730441091886726413235820870325458713863257184459464033094755713675058454364112503233564085331551857577136923074785432649186384621975647358637660935379449853771726228296904117309575801344856686676828513189700661689308284453226828515334600716081363658271580377239022036456838853627504908757178580415349694218235320564066814545019018774990071314874377132302746093642274426650549736672830000482620765365668253885323967318791597575885711420223327077834239389008886340321196784827038789290853347650744779081721213108229146288904205657982168986587903181167987238062480420067362812504918937430506769135296416845806776027949358012543415290139948082820489226914404468906574251761604040484797387787197422821181923560469036147761902674251437318790163252573750764982258521027428877378381533303975359484568488462340701547649792827671736111583229554625966263482599303195568231645537597064204497010393486268369235179894179449958841286504924305479897488167318196942112239221944013568302155714455628124049068713050627835990838179928701158379420494598292777382711625720766904735589984575822597135314487720846136424308544734762783909783603644165694944737731388560834075576975791136552395069117372369352438282136133758691464675889591147932418867515683892305611763561264391079626631916062755834568226468975031667299684359767923616746507782931396516509077227882712103770559612963195624589328665635618276551222535580538907782517941759678993335746800345866845744900965031014359954604351233886569932793134370277277123710769456110137784511460776945292282821857781315209264125884622861741222301719773800720421644930878449271259752344569367338574221036063464922520110044054001656429951653728489663190157508006040432822581051332977843007170118776557379470185504324119788784384291758640497418701440981993741947717570836118327507229318298185865646016850382654228970384998860443675674706276323263368647692213660922309206600032640327633842993300302911752719796290069662848088418347734926337184815020725031917496506315090515745037634817885162606340444026855438202239961388442787985763988519314025607430556658208646282377313745632131735465001661978034746633841886797103702306297777492556020359415948664116921604661466171578957354091811716615441991575641932924102881416130840476696023710110435156324941644724368796786997297902690714532988073493890133436046227458077119393705109022533891555567618733380624758195136865781409046894638568551082862250415431369181111564106218520515986199049887025951293580091234130411409668246488589383327741072672546922716989532234869865131685819697856832196109385903424727470859006137277608192761588601856146798858966969028231534588509340803179705552161779037334444427331732337551886282810756573508406230555303791640533732294619534685766194015935157587005141238692473937128717822211319908336045337528398169641372784474246839434785123774070808830841641832111706303472341153957860870123661683140177657979816279102558107278708765829328658881829188959513671653496387911599303131802253381700776109374543917704125536948430580531064294438128791339894769907757146997192412086579534635076001441975572220265500790144952561902875180248525341633211630301547756307283323591680363912289544572409197711758320353458817247960178666412468406433381977451290485597946728749845689343172158357683432709954496360366396317453408949496904762065656551936292901504308751848260517048943164519614932770958847958669997709523623549171968575159878157506710335502500597885367976607958065713490690031865065379091102578973315531250304855497335079629625328545218736869128747086935722859965725571399487453500530673071400481734139961685491758400375133662839575699171473599629999976655379603244888863353822659710862107233903192497722863400239709493473976201715124575008674681816656321048654899318857796447471306155094804050102447186780594446447825729639219270027075031800026916694308779813037387982424053637330582706351219125748537258820990760078577233502091174478097251768111370109162679820032542995657590875203730019142071356564127475999469748363801335195662414175959974092107240589933745979663535816081266661094621702713890363717401287866225666741478363593495403756790071121738874177575143757569114417579427832789816597112956002537291446207916401508562152476786387816998957114278991744606277496124518451998346387969611113838515349344001388566665304419482301136623307567814818570941936485928986243501724779317881954013809944902194032809375906266323081892015549959666828149951875264050837322899117790303555480738388009118420980100449600121599467486433440241479767234735692739376924163215473235982352164493341425801477235236178823697818658110823451304232348957434617292289539176039563530154623460871623510522494100247519804048155710716827838682224338153807190534002490349263708147530026197661855489737271823335665302937398406186114356898573672008252923775080081831616380715420997715290855267482396554107046326330219631745660618273628061504166577021218896597547412935328865137997697269408709571072409418465286830730175905825374110750650041622564723740700305174516106649534150848546215388200452317304675442261552594892779872185166801279818079307123901169242050177743888032260878905181758210944947494259543934434492804697952283846572070865150887815172369134395407826180675390297841531104212019572933369151082750723915005512441976134825328797239972033884646558695528576515801518513496625260637693460713498000521821040554184224333265214535482183668647290035148707033576334581046984076562179889642748217099446554521250528467529539502416220410951905377653031860892943348258070308783399771220503505672941943407488425007140605240206167287755228643771995013011137511421972686426168364084052167732500830269372884463707393828437649640853749636611905922589035121087440680486022533711406280482864456789455403762515128635571120783230392645444565156304963927998501402080198891843738521974682322167401419089614661682968783734862897233717889463432661771962832681173310907765390052580724341672650493581672401792254235930074796110073164241272260158949238526709638062363509674841539506092577178738318075700830666755821984151166758604518472918183507615433276293367521364339247430008030442334736550616762940596835591142030598185732626845830329807650673293841756874143232941793444018325867210124709684912635809010773935669784461510243320649689974929515537690651877284203215890967864453796212949671387719630193496449282428963203353410341319319748562640344479000739714550124440827022649903471189594061836393978483380199093113948757842703197724380403953091172288152775472417530619983315563069840123473736056064189551104739692546774696720560539673160823290716230904502026548490601818221567949445146243818343889891439654012986632233825248878703850290650191302854272765959574690590064013201409208141580899123240610694679133442033797840687998401146493153575144958501532465982711509692108188614602447700335320534295877973621032887597453049087517589504998765887035855173339659616939037883713780375202047710385095117427896846255514413436902825654907394370067769916832827333502772875651711528989727008614616262531426152696363876161765091402280177124213023405940258819078129560311724559760022527368219388670716090402412286759030841859440403045704999384065898559147798528882554516029957929709656414691728446465576520209961087042170408160758393960856405332117028007871659757673438541896436169308825544295305719898540532325616933469005398894826005981027279183245711414706273731795510246372485479662551488193685513402531827724504113447198162318032825499556545071907816420247958100706091203799968539250909634226089193935322856024219977839636003259772895600048673991717257982134798853136234843088433432489294134543862375572441754187336716564979708980390027579962944666160507735344583896228381760329283569489656202563023599081730895499303579273531349945016406700715921497603378087701493743433918257636283821702346080792582730474010858265031759853764995094189445909736996978185612178620566457344349898439420137419152172355738113721274905525273720537165047065079585099612468855089192347183968501872934645586671765432600580375029507004911555229649149742224586250292200551910785962118017313696734793327092191134496690419851345792134758059080157894980645445913435627380703476044642329748341417149862736062442612277579496615576781601766137460342255740654704913664757674057848925748023089877910836332752140279659026396080506564693648111105373603996502970545505894958449110400626890109522678049650576040497992322639995937973939445895923677566034754287204829184387565420237068428249850488112089623842774503819395868119249418019633009580884241425440069371635801685516946543275217071053756754178919803365191839270919047938990362106299122483602251860292623800693885196399295255375787608581405334101221964226295172460484562523964119392016682332758279924651857821641096701229417722439546561032709038087513746809252639419313696513573365465301715907689140421792230886769017467521508364761740173043795836352165043736486785625387157538987885480453992128097805866288145665919643953516587902944542174888504077238417232186782969294352291395664829374399269163104519150856347656484930438208901440789801821026835458455841735295907911583177283361166240312109805337189376544765153783139788907427359339723133342546262892219414594463574494339759600282557256839732183372186403752607771221785881537768968611593001012347939422919861691556315277129967305411496825504168687802024744564378293568627400968970007052739520635149017710144735954782317317787643027241018010684819367093904597805969646462802112151358665662570376446920786172516656894849495079216871444844247142105780065017002107744260156641252122519225454069023693494351017536998415381260816275655468668686941589500425045024541517041350900261688550260107018518525315989519575849609897922015384633118034744566100141078735021941666206356721005392322039420532119253906454809948369823086713317514868421286453588832756574467673737359565322474280827901479936368088722400972044821073208659935785554732951127857933279087761195767661563770447511974582173963458702656616875311053128171782792788412001548686038960646685617303019772742767806177832978868039916208705132723971779111035806727741225262229954399484833534140245002192834024664889503195536937647523343995816779000201376076253341240456831269041511876126438680664753770927727814874922767355820294696235792375077337568853611710463602991028630369259911357104123077411671245184928319312099766107926933646515987683456783000325958957270470140259752758056353481543287397463962489658963850983711743451157933318996422492188405064346435465922667265444718291715596240971471582461616089705016048168827305792042717413966976606687595644723137071107541471091877211691737095498833108733794241169807857508790512339290702089702049921229177841644865517697008001342457596888417494672156588934900035552931956581896686565682697119777924195752828656316777445474335034431920548101777334578931094226449320898621354695010138176348718107406297178948230380411072666182471426267648514722833610777056535527383701517849351050597750954439835886156713193026256045131511818440805243872178957975131794312149600597210616302485468885326508262180385637147207720900731904369087605366013454097977293911312978085789358921136207919435779426168413905621593055043593915714779960526483374076600388461685663265953349397505999367440250247699817466749022033874661286930247755430675620126836191399292383943419216569176168699625641947736932398697348833808653810622043875349032765648826889127325208528985123263765915594838151756782778442286189604840347577911203294790587397877667839649756182247072041100976166736744655762211658045685430908615169390631806658312659482049333070922774333061998267041118571411746014615335481807396965201183883030045517439639424428788735150535400912575430700986505803125088019035067781433239253803808317927931000395029015498294501906727975571827017973803132083929388459684649816276596500739499859071880137268999452513025527500141442886559561774342773642169614416208575161881712969034687528451698560910341219125282707873167684949407358556054277990430957546132396064642778255985063807029109115523581253615197036830062280063446623050958282981061193150211435323792637307741298034110558973751909853041112613885809090506578361604802655979404545902604716862011785793407133361553819366030500136865569577724925456296735402970176001989429742237589436750377305998860010719943343790469643510189847722507453551266696091754794097129342967182954922906945462857469803543981025467369973005859478436778618093824041621678014906712346122353556610176116955325230868889321347468667049643393591990219844581237909445375165828748988907113873642942057725325165491575011632679365487501754945084784061459757844494574220455982058075316345089532775527317682629238173683332527324464640144177240836148349636628328222893430952462813437234214213824678029901927363870978768737626295237583911210360576936798516175433759722394637306081586136642421284300277320861761018068452442668550581175011730897341833129952097059283215758246819027533514722224277285139524823750258305839539537362648430913893436743336750029072632064645261610249742605924780049140915356453708081583219846415051758779337714598518307098824353420602041246967237123440390111714673514281577538818551838964752563347167847360745377117372227065107651101085551794259001032057789357885540986383498822503491412073615255938168828821675423416720970862953812014497392203165437452716508804920281634822294495221422474369003627377594435289201401450259627448032759440125750113066351743475609977061390508203383236571164795785661796611728770930455755590756555442152752617577395825501888614498342348335579541853379310011753369300029000663737802995607000710657773870095727404488322807096468373739535548049313695375341144376015949648888061721143790868394211010539043155096610387113679198124680500754880108437987879671213503114112118778403013546653720804067778223395138077066267859071357616565870233424281673396219291650087846932518715462805504477726614043016684308625215350669275489060161566357086207171198921821799124630636405159673233190708123084472135789434539931641429063115284662391954875969566568497324141653121491863427816376905147333294777017074411051197570800928877550917299522099342948495823095127723295030016378679921446681192030813842920440817782583899071078998512201601684976734928011085920024134812064506011068547407502384856101139825192846719064582021487107911823594524590789312902147824662334309761942301574255596882746449616114543851551868528584351533405495958220238681024572244926890280755853219612108627924191320959294184824650497435107646302751587197904349868982284028745016485530387007599651460247459435614274080852410507599654606882509330818664641005490004775101982454591121991347256361759087082617228071566203812396100411868587080376558902259933315403688069110635652116000820810683001260412709421190753191516875894689653390529122264430095157751245263552776869249218595120348672054040146550496517292580448617416377984439190789637664772737349278406743040681848807753200421541028408350431927316135617332212791244728027548653891183093984735445970475595864805361335564601227359712305472392304075443626315700602749647421107483414532874186800900150682275902757646605400390224695015522279340518355251725878418236645856016214342459367764864215085502801165701752418293528523789872654301997517871170121581102233908480102182084093335842876512582282414219402963658368396573597559311205781666747441638867413032570947101527443064764158144914845857150423480292017020803236261895473098524250848774708035754924437337624027987218920769802149504959272417348986452350441685924370423768509388868593841194889786595015863035991147949554046438171437288465461915374044506180469601222334520401658882228780695764880527104079818377635354678845880997049648391198489426743331182731327667336198759149439728530440387038689001400332009740968211919445161041779340690134015471241841778289254028966629027015204843444893665926866577370098638014674148630157771388033691492229354345617003526977801317797045372957051915384239315454651340658557879271217330109423035120252257907600931562638643162801148967303884031890137182779981659642128388927991558625554122662264170962593301105755772526577589222413915624554579907179029156972595674423610163218860852781742183862953296248858369519049348990562605284964349890635230108396055914998310965504481305601955166958008253608364959158700202837044775222879898649228101991381269755462562479612417712119770982387987202818207553955594270905478499524465895641936110707976926981986804533251088650290443373976792882996459788353195158270506786654929693239758360004790282931015190395918090042144456468384740828087606080345282272122875206309635012218669104171707157363372435691461648092272891288610064400532605688488080762229157391305260537671128352067779890466531089569360341445621579050840196876036353436236757486633163230498504150760647689080495945766057102290300046187259198723280161955316356797113945169229943944366038344326205542933584442745098787440486296050771353065746240918995728043627501756037378767734019248631727074543018861185863913523552444971500714234059151423916955931484571509008844225569161383997256928634924994861986923172227634618544762619679836979812182422329835680755484551094350333038157304759992393442541434736804409435012329375065412621854813753431875988695258106974459927873340827613650120024867647917243523944740290781071068799320287096702345631024951876210257066925222831589577650465949942262947518663838532854485347404260972484651206582474876110538002542670688995648769671936895119513783795122862777203094735990755967421373944741228346136811554361049472808864369347782727037904486843279037092505158488685873543820735952889674630332726636397001413393572533601363728502877278401453138977788504818319019257253059502555345592024419707102371839336495895717666063806673493767115927186180633157184337778049642750445255827758083418781233558761836718467634922443507308860233267168918482467259276388633309398334901218275347893118204417548144496958224108796690424972460044417858962011784073951970373452100570209888178019324591704597020725801788822781979729702264623927801175178817824941648989307547940379417151583839196395707215961728008980851079268708335980883984567439177899854226358575220954807026258908689366244599767678109853530897805257425173871237236569683771030771159118735056234381984446710634395319699844239140478512934686149250423427601064850045162252394558220059056749268001098640162885722269938876299137840850289664676338991647449143368413965138975038692161608050054763148095007203260856798716703333533590576915686214641447497882405170652249728779375975015748761745001634016578577429907506345538356949643203633596817507074733476891128648341779626059142373302722650285116181608264745628820106765878938175195771782832684306599763767665172379796688537388297255993346718062428147200572999001611620006824531412034090281722130827537722035506786086898442352207341669210620318563434050643049491186462251472938010194079588950586199616351623567295714128206861134837739945418547952198355339346100756315711293553259126752913543424254754834467254820706016528285669795412528070937037319644841961998012444227734413928011585674464275196822819400087049590309020537112953671858137373816834108824909763469923183422141483677812506772902671999299587159082435411073920146424799454846975090344928987071530302586563674331350701183614413946673731778650205242847612046563971370709308814643714476844839928877839937728424638967828778436772610902939002434655732295746281374474389010355420970914287230279126316508796992851325434935642471228571242178350291954008047581303442296527295723489144080804671724486099738628552732528270951471396659788339835911381092533398091712999533999042608182135746112136170506999457393785153276003206861430873527131070303291586818494377301408386129329514202969641635963746662179812388061985523614271757992473973440776835922108434115707335053530757344559155221693215162596520989634075630690913795054674359796122167663295525333470178923265398991588123336274739016642429701644312584515763762599618259429933992722937200567413457454387789203155264327368241804963935264859746045515146155226977377223205234466206327041692916339661658198762086311899549518040354366929979382266968631163822960109556175811898642579633574183286297845908855135587128295673885960128621046949582050901041387498219439103694790122652295652138973750822754747537478712245262038496891272164713878165252076869726318273255727247138551423563759097668548187558314111641147730269774627248361729470205236087841730054084333492541970610335914900068964251217644168479074171969604755065994046657210149321777947905320768272808350906354267657279109032304330624354007553980172697562252972060220773345006402164782881231220433316601786634813152603895113773375163272754810936584610072638405819796982790231122650678026507825955771733943430758043845657571946060500227058003614061083663160585159105047124426949437835938600120062914898329596243669750128833867042109530520482062240530983800028886255152118331797081125186677542485312628759537431190620744309113897131925205075183528958381680226616042216250895114200173026890595462409548163901232653589885064639311007811994330665180050822540808373951817205586442760442238691478899362264646140895174749817300762108114969174661076593672890220726415214315241858301194741926479171360971362276145577064326116603909386330915288594830985097078435356063297261700619171405424167645609737056571137552635866566578012873680419118745833785128944828807407563993341489007936466625602629251745519993591922149608909749165274610843667570578863770835648317277656509252423249449078844110486643183551529129774569809940952340484243444712590802091085757939169152689687342285789589267120856201896984990920095984727693398414247898624117680230862469753972389340454391819515222018618963185244837807801056307470090276656003795705555167648481076333302767612457961526929672989643030199603173850491491486560258478386146442516794025104759237684761005942185998775155973108761027186678308233971233185116337914379104389722055211394670303844381078663021198486867830548279312067683466445029302351118049638472268865322039905509609001284511305381464672399095248640078083357482862986869008168092331353033651284812369108159268711665833613063828447850819375466583201260651552122037415532896048339848926237886904749520470601326952803849600663966264672745998370825485744395592419562295090315699877182234607026609179601378855649899016948818875727720858040693881984694402018606686586384443617491324428128378833970914863701158188460420140706066075033942248087906956247877920332850316691890274415430053987645054079025570791637305606569787531156639959897672254014482417539960911577039526005033588545571618043498833367011930477733997663526545877684243151964766829392800403556149668996225322285966195593507214165753495992038748873368115860081339319069538589617551101191800455609442236238176125537602495027174580759499190682450364184165017683007713323300992939153278717453711706185686554093299125604608544284409495568887714698786620545620921100275539598348371762898725510142912851140120725086051703643563262469672127849858837622325167223627997207783258418205125573969107030251418469579717119945323413536750942813853219823938002856698273435385816678417453719661902423975600300149019457698134508765020408607915147301291516336061220161468015969821741732452401196861306907381430687500554915342763459354511443586510956260760717106225386888952394161105313443613394405045443004435234670988332045511977810751717817880158162777077136025289132088454678884965462083183221057256650011314117182876447205299393178961497864847675663645447364855920444392414275102653300385317677204463840423578556187239192884540180908710474389727981095332768958592144678056575418878482724378414243446534239633738758409359815091650535670023480055513475853472530849449416923297849309830924895875783543337889313093196373255012883448514885811404476148004347869698494215718272827021529551470100376982494972374019014102235392796007514065277266054768261609505611090365837706458605451282361263790889177707376762712806945312956209550840041072709713869092455868506806683681486760927620778176837793685282612504272124238915922535256366456954408438965758373332867005152613511399913808065389104862118693415825632559700159778438630467781106293400032467605276983470056140385980999100633498732751000055141058238944585143015457717684111834679901469227422909095917714227417856990855267569864985570923956903336525713587267855937149221391651712146138318565849467666729432077144553244290415992268804823589868311967375527586910272320540336938642875748935749344419105625474336387057205797583440133995651523328399653679543465062198107538414134324787860873608085605195009220658622793997315853707802135206207086916786052792709583774386739809179632758338345029855925842562721396440750694859633732467424194509409949731994555311856344628122561172765823857724577913660486151387390251386100333670277647393511357243763419384294145874611091678451177984757680894011901892567786860309157414046647572680914408455866400198600695135251703211104267527264909340187390713644700276000833512321448805983753880543670843511333827560522778385152441906591413766649425922813066334812675133967926983858794055276458652787170109123287552902385869943547713029548184306824141471646865628730821081008961866894679525052607467089449694369963567617079222055668523341019235713058811082617537259539323721919833535126942570238735238193634991120268309579510314800647215606888715011765063855577585015056661706440901801106761099744250244480479040829387483781471996015371604865912180771666279266585646424915600273846435043178446392487370998036748728948942207670162951395689590143103071061639239991075748426669568328737097565273187915030639035582447039014233862489990309662417807023827522068178771589943640748647599793979088147092451755254214251938468753549964501846310741956876633179481799462657212652798319154524861624195862159474203072873304567754637900878935175736331260978341815228811402189366261223586476055315413047166232843180511154161131215217684703976637574486642388097338548207476107473096447000389028889902128252450327493082121998035701600810790293229386808324264680008495837478486369689202074190640386959017335300759136677810026683040680636103488397396846450631510332115277766247605563154656401422153114490691663122343361453551585764353765452866276585724880859101425376979633032353577680911043466541809778286505503995404296310545019280659424785361569552706956123839908386823684829291297419953919799991659690482176816335289721281255841374797266737555819972810827556357704719563509771191121676341594949831885462268056708707409461117267679095690544081173401793706312770725372410115873342128188704743481913492391844234567069282976377029934250585693558443095885069847166616745341800671373066696308865132403122937566047016951273967430532250241231415701959142827777225638186982976904538619252781857168506243914870803250162029427932727668426876494807777932310412682322207094519904028339883165970329033202834512322491962989571832940725630981915871083122407110763674675151954029155649663477158544893161083188314160705002244402706436642113231577618176827710875766960276148121840477560142200056812672522931900062778941042517514083394628300942404042041476659112338075506990294716640012988183610638916360276278613708483843684120377907510206609861208971896205821580454837264257521709679278324983573377704085278762235379947481500724598075940048448336546685449806569637105717757897992761207217111915764841457064679116705394736798104630385734257806175424443638833775332777306287567800540487022722937051268814639791545157951524786511156773378833420961060638368499345541175422349578832269239963013039846721087904382678549524075840863063899296849588265866108090826328436829998437701236087070739604235758588253970303578828780774541455919927148919790227599532152572105635980683162530408504624494430730000864268354419345043596386189462776064550221934745294874433156878112762647874774008090429938554550113950741018000850570674704445595607056956418564205774047844564741969533958397690810414170783382302666831543110751815129633467576337803095710574941851079034346111710422771839533773834813840027841470704771908288829759942008192458390968791257849235471229868810798844636300815444844799194572571232173574179834056074850797382828074358071444619829652859040448021594707948238435023729818466550261447869779961647657771829526999395723606733649188053342783372456899640082179662692631350917107210153733115927386889099689288112882194643580157897658931477740586390390562935430364192568035004323053474180244396197067811115911251900789502444575238405592036590529419884414696391661859461309362209920703992885159077421578506850842016258077276180303550785638976160345145567874800776184415505913552251257374096055816257780884919747035114172238516426666250681063677658668833583678995615576870492413007448594816812099914488017037611817163185987103286390277197192610600064547243792404937474680337466953966143293690877757799555570454532276961339891508171553031059929396282503374479689927339517857512552418792178062616251136350960562617116726959606157718643996644589296715214080873262282757591307103342253052633332017853072981349064113393969983143592752935582035904619405098695664373475328837607689822257422384210172056905838822082628222273333866685880137791113672026006414811541479132120262858666992928040099319910446343112485952308701962614048709677533296869940934687870137091559207817109175323492827585575348913509070535369904270551815774352822164444795376444490662512625129963994083090706784649239138132121052548113519060029823974979269777704392115677972964381062418498691136212631204917286410799049928993212261314098407104817577066584261590843497884573539907783295519912494823117295250274002846963284300295953267631437318015004146285328768874579649545443926387164975328788457633663463268181792893003596976473221914283984555133296225394181291514144101373071657004792716044682289644582783843284829044588193704236445628217288132722627027107353641759260460886136807984704818564079465130172740202677197005483428992383887015810595434399039828301329000233706241083978271577969133263356101412778327986008900697775786951583724412687109508223338408972401889997216251318519601475590894323668647745511384095633148244416906338204871635901041429132822243883634681738908103521293744907455630187289725413433865231819044827795262151921663020060460111869337836246903390304421039216255885880589499354607857076702790131779415836784349620883494484472106456551000168286434534766667828049451539779345552682735517301303574104593480476999831516329893444719942832922431125894439066579740044005632380222643245665489541334991891349787383374081856640296287463918542559517061115734084736371344764432042549549786436899189492591451003038153304599972368615769618468874469657106416913895822338141391758549222750312435791548964383139921716086138888216787055246475115266681989128100035695748949389606434262362111157238129048909522498490468391937913019384792601575054702703163495943623584728801735852032878106661135840678972895346926805216403398398210142454685749867531891175595618203611771665457020321978553122559348232640327259082051243236525092619647949451679545862895418672259663992916221079749095708609305664226808469068265182020495478563161602003223496253230313404689755257930573757920015598950796942362330040763869745079847248700830188744096387671652677709426400223140053033705562856976863899388592638908902484185664761068115600093099854608942973718313142635855049813075410604103265176136162427853049762557840426157754486584586420597066613005722983374142102405508680624159813572574810454961207524786760430760497076863671567881637090865281165960667125823278308847144330795847887276193249242448757948635453417157151175636523230724637144150513635229841783450171831232885132335413196610306286457786585655517681224504597404029607490058937732609860542137167666007689536185415748682327797485010317227814579163303470430636468276286121940219195428864109490655642709219064506503036034979608459647416085390335527670884660495001466456707397510212829917988238731059472918562218562722776425983911839232779150523939476774976827541257212040845443880274216428099626063437689408906249523753309522949976224322783136701945649437304181954932171537973720911523349467585434455626501057164214242412529384412342448562793522633643842614309578321293297352347918341488293538363895404748914212698454892958235272652053378757454262607160602989876384812706282689772209937070080074711239236173668452949391037826003633789023821726123144175085490434279836897275829229331439646531080318184684013665315611561572229597559608580693532321894775396171669447239582534635169313844501107425871801220820452338981185905359268435336802032901535961397549097127662381796075592837696954472546433844934090613087190269956420321095803786402832000407480525551887648971637526560786586093553830537053987115185637521901877509175803526655761323454688978603447517747001700438861224465771708654696608832787751861599364023573252942605412630473313318787650252379653882072224210043029016837590234282879886491683985347382468563455233661860589718223455292323890898304271515413839109826477651426632051326389810289141424073740217687737351641929934628145175147220005402537155995099396692435698050784652247890378294397009582827220655825868237389439152394121021944482081052492244701963877035565557999365373462683574959377968228351240107165537176138104407528215984441868676966408994530710114988063220431091723567344886782011571797656566577744575899475117884558417643701358416101220015508116252949401795869606296081308423397400324562515270732997728646943575543249890498270521390330621973190399649057445465297633408387680064599855923725522144662437176815170587708284673828286258045451661130130261150938298039400750183604963815265537803634249083243844864120551425142216742677647848073955324089803737407507621913814596206174384686664790605295361364057285915542959371820325298719608786798286444009374412184133710066634163513222944980388185970210480321404351293389113266262053621959543242127185825132241943874818256454541024664905690644650616173747550016732772046170379799718285208312994057546854950904081030617274870492723355019540450487937586292437887489842284798019448487686006312941447953218323294147972957055528420433379144943940097849586208825648502395368198537062830724437670015251330108488298193140806603507958201934134998238159653512535670962837823421774212972738937991035933353833185057187376479290403521906660420629207323096469297841164014184165456259587913895690014299464952238894923089791452463013251966206522174803040945396456837528005495252906279776568151336598734810010950658135528217641029282561423847118749912519885179555822891604536493912629962321064531479824380747121429243420109523364526442702695234417896544375110573824595264155681149979126430666381646999186985935290227143788490060151806652029842714663545133627742376020523187122223174177580419894105833472401430338243498567688084715350865197959997290763881476485725226133895184925956462518434742615498302349556494986345267440446421874492460218813554974702304533598786714444660477552828173954084082115062178813137560661545996330740094731259142415894115021072963624390826917357083167363733038907017615265559277914831213574509297018716517873436797559256333232806217349981513356686943153117361175721116273557600150085581843587711322441164203062352284420289247532088619690126121506030650237935253420747938066611465473339405290212932508250836628282470095388139129502750060752951259336753791390319630003744523296001165174429218507599642618008752732327149162868046105950636093798199714598446922828216941949366076477676832303524627372674093315056915157086553433748877459178419792596455882533560405003110681240805265507514324371802806486549125367222355911640342796714495023514604758424591483988404331916769274908552258875859119274388376718700086412066654814250317268329344749956360390803206012508638758829012314737301989327115292071542442024030708770768943557781317710514363563408514252132564441866103030064731161507301814190673557189123285033691062698406981113975389960039478545872951146372563568275766852255824265265341910282811165169675267744476644379994787327516447670909272699481775235736350199620648661480098025850870195078317213929009731543402886009940152992756641598225284105662262690079453098059925089710099209687389255156725707996879323888030756036748793863539327272432456032081275183886498519435948155837372660259921033627286385458243197619700497905888869888081512956869890463989450411614795684755694385009754472857210433484829177439256416614353401688245468638512596218179131440228372416422248486504671909106767206973214839063310240746115732719302334228119410416188151981332870845014994264467618008595370843933779122726738246773459759829552900513574275276479205510393662950830842970920012975663831105132586224090717141736509503032697518005353453897858921034885050285330819542400143150285287712417342859509176862581261950224396880297691365491349342804777004861072940951954619117432663131921306286565835905826188539349354711687960060960419156888353929641142005272020869854728932976462673280647347406141819064019046328559717181143083991905089713866610964343219884359439895422842034388777587774575009600514953516733094328702257407925700196476576961330574654943600045734961212607562050663443178765191516598875842184699110443765594597516720014301573876907531507629745590022332400961085772863387278293554519874413670853568029631493185036345456375808662866650172995198032272764883126592013378390345453149614348173604757467598755998572490745641019251305923686399519297813456636350940049323191017943436308947752861395143890361387258380950461654966226630944349335042277895471205331722257074107082046911271506995946522097468209617432174300898615980897112886916957492322121742562273924641954328465213010394928079039636549967966885040904987066551824526824792434576514705504354691720517615723219722452227121207077212734411639796998002202548135071410066066992320465583911669757027809251949405783441779940662973523391879425005340784107569494908687594199344123544127148984557089917673989031863270502935930494603032370014326752540598364371632405407687811083013959133236541173076702897857640149427538472780578317029626799480769317654408461499787181108262451188539133444160850337502455771149574277549630483679960131199389522245443338520642231512437288478334000404065066883061765056577394806204368553701480877007281709402650670970008417805095350684152375885436924976970100693690803773284365542307161397912908184641579661796133034055446457705856374504793803431361193755811993006361627502636824414412299138558185060147802453939227300719261075985302542232645212324706462540201966919700178191688903362518509874718321884831253508266785534990872943473973866134386510342559389369829543627926962967016654309041854204087185014726565409990656796863388545265225053400290868070749558738347929936389199477561096270732445189679637207575900655470995683947452313952834202638248975975936150795659426391395122133847918552020240581337988613984141212379710734382535288650460712813255237770741346841933838890248035002990875077389378683571332911695853771323826782202664636251665842994767240686941002772318825028764832460067772539124260884414085667544455593467761828525878349021889060607021596338870429944922923173833057174540820855916770117958873581230203059300575785400754377192347569911218629139156025295502277414367134050720327935736347803892433055862126262711361424435639268966750829767072347573472487290867634242795885764562042465315640244395044316704247520387376979356386622716297198100478370908844362301694195481152112323228480337405486735939481362994864047368995327140040207479183551121720165756362683438143426840188284841780876554754167458563929296613350203701461265959956131579443426142139496798801055411751079910656817377309284640355681007149476721374990011785389485762427089929117847753027742512144980264992305533789021066743279533598050380381094755587967940023360484778154182609801190200564877407873428443055281501981379546908837665664348942890609860375362910780860075088095929363289406669204050555080272272391082516339000573965605443386027052163685832878868289166031393416992551281243615520899767256358277475239448960340646943699736065151560213556218425304448935344317448989006173909158075725003724633125291411804850090843521919637958600314364520668414583339079420749236031841284137895429217008241977838981634714765441912475306961262712228932191165589611996308113906660412652329422694653198489989868306784888109227069506892557794898785199096917616671647650275124012686777002470600751050964184099824017391903978778273442689117374619553924500373304053159190305111741085067074781641532800227111006438919166182445287539903219501710872366393990900787497913591870221457363314720537269845387436001546628700180760153321643474055525577958544079567813478809659065744947611062789313759394072463376516616254339747325603861587046897907843095463301386721518862657214692802338020754031917897414951234492644912350435635562730605656063179239260012775827900120156536000385212077929691877285552087227919522170601940880042029165906991312035225269046496821569794379812270592998391328905771010329167707919218531086281435540822651166796036515829224415557744798711113574457547689106917164094071385887414130840660427460887915731247576955540714184734226687312672019789527150303951877737182110488492419662056776014605856138859171352937724337776883512899758243953803678040230640448924121575000756811899742089040361703705589668708029780609403365200152626960695188928973720515738249930508487253711147239462905555726812609103778675570815407551525870006489022904596790449178007630762208693615030342141050074180741189235981475206374771898484357786244884876439018231025926899340669657880196917517149163628046240830132309706590695443070846262054620185188175810707175729487660933374827057854203305417939419146657341648358176005732107788589480972529853986831158931558869146244565772935466985684049849471255021158229316573877242279512943854373463477929217830438650547998134043182808303048526585389684878549341671608424232529780056454032218532320699106147836933187797588535824745593024435980360712602422728947450566018538545326587636015651096627800286627032052797150468646265671251235593646961829507017499916809345760628167366932328579424221117951900589565976268475323517636990048694220148321342700098421540196286676485358520400354191416130758850000406012762180968536376581979720691480684699799665897555580141612049531464900239242692919190577820456044123781642146135623098420781861665772380753084727145141665195756877030226046929792179489394424384225598701945119908753029686252799071861288358242548138824138203279240296338704469187217025766755500029834617999772514230252188327824968207993382864243100865226326940850551947092386267975612284856882063455514423974860138880214733030617522424627176325792662109711874353010500472544612827957680164767470832371623543972780081764107119602498290575890933063181437443227584365066938293492049610615654967886170131086505706592865773266227675693760165368475588647245045162160086681767435914959039164872956033223892155813511643713593926422326537004050556385070081960072157313291717218524195119277733958690923050504524758667401902521089193515911595229107633279102179953601135523468051247262094927298977369124359112277795471530215878693870330652255233112520082131146024642022158325066995837323507317383981046010149529694034996643326558471433269830377094250896915356811658817666438341963545742419859495099722493707355649209594003738877489959281256026186683678790737492878769402432233041561826979316911504984693867730849643107035605564103975575518146289906799997246380935080806180141180672021770556754539796661222294385403103651787055109139848263005703414981301699419830667740337085955115917005144943995697715652493363099824746306920362511893097896889244631391854897145375128758086519197047633250460211418038888953309025947705209954738933533663007610503266442817661702178765202234710173873514636651633684529229281683929773045066406992436882617142969830407453536175327547015534446918650157850890643298831995207588771549130632417258823367565841902347039886151367368733488457951096211097288420748427728561337890947428810178370492239727503264109155523567687621580766479843870483185704464446764112098502716280760994712798677843929545840324863708887313618015342517612137149677725073288661011848885143580452521718539048304529029408316857025770553833893938891235341275015841397868895198063187589486706147307193814983383401079485482447971776875930107774645420566563284992631204966402851630172203978640687988795470672865481512982595343921666916289095213885805991346042109223266884866880266871635324332610291010577892134092176790217069076041256377771962594747636680988151347758583779741544185548575342965100294125198896551995826824420434194001761155508696595719914952877068186883219068427531943821757966432015021131333657436039170686313478083228177096484868557232900150252669062522529156177071645450200899978435580594493790045357882967548604080099495262957763476564635410009337192338666506362724265681870776143124967358589203414985842900147051969090389568020239176141405199588307846223685045770241621890052203842937735078495622719268013674760631622256972628122022402712834056568759912358865693092531285984500818244825581776002754733623195294489803518342918119170507777256619759447805661130254530397932274497058495307213022795163942349804045005885323467163490913175320189288745822043092327853907371398171524203489795369174246608465943831059560125834974972671630467152671470334686496723260251706196884662059902334668469727103223856042370464461549150877572127529595242500900518748454094080478439458332529365329476610136460090016636093289279314333698045965659402207122445949448257741341907424085668996477329020590175042982370148385092996818849644755510710452495645866309115247691283781403676891292703664855152191166454381293490352638901572337675646459699347170090279960188458674658702719928617367400731476896700398482091256107160756953708251770483062775765955965696756411806045202002231408209757223355108815945168202564951424161747359964162122311587554082588155051125081288528281461196644073642465279393903981703033804037260837949885244114424971089506765988118278857480678667107682521948683543341564065102081229133520006215271085567749309364213456889439947201235634198313836818560406514658773956397324149220323818767578230809859259657556293030858805329045799071414810031150243611053479359127244868606184783207028854655769982041506396924656073428092184947700190817716513814135089301893329819659102144067824156024949459589769477414022355759243739578908433631994215268062213058232839042852450652131196060253959741387490174836000187272976580960938236593933733798647285112936547207437016728973659888948222332448078290262984901657384860311133255562377850578709917643960275830349804042530829919298802058201348010216724165794402142017014777596474564878104006585808863597361967874052153232439330113704780281402730063441487656902475809268129619194629147467074839390650844929773779183189009456103753263959236645820930837157169825355256627686509185019616739913758752553318864408564207502907007121649848737811019321237285417401350555370196653927125574756276664652664122083254606080609289761038679519825432636620076771680367008231885685176102444940659856274256131318776053205649696182258276412895852069675931469671848614577937560691263859924298750315807446331965298954495892897246241868681879412155628096997690913772595261575452219431054869800289690821728827510937128591416415114414967663311699764363737155191753801595745947009676316493173642433897909224665555470345805759157417253749461233351093450652812509747923582680101764886969898553553499285436269557525669469632765880458837913731771653253925807306618984722537329521357262741557088803975704773185578002016266909136275317200583403510931816567783435035005096682589411568975979418334502797546046812347675461008767508691148258906449567429756584833319025028451990493656021571996103913760108924398441514958325038602323096150166864120296959213834373312858652529867572423210867147933838025814129880192482718256506805821784029220348020872350600086070753021634495386388049580837367568066518840865482844458953353784001192188940905126998810689011793692595690181435568107261427261425012313392801716326365685113429405133057629947592322613651968769311466231882201603078334596057508698433461893246043398226990887533493267303383643913414452788991474044288553989725126167845442610857655838556221896708653832457529890305822138830754186821260186250871347403400140548931373215924340976447038530754988060264674071040052542925577185614934721726795288497832071523230443236752952808087474497585021119026326995772992896694537088476773315753353655077108886855367876028487429415797341600398689578344715574420419377207580822356898435901051185588349813765224529360059441178202874880332184515623705581283153381850926955946268112014758762223483551257460636806772862210485603956198515798002687980868186535243285104636326389078817787854101277546363037608083077408204460384962653098779936624949458675286148839149119092981679749525371013768102228550568881132619747403636384176944161036783058268743978403933800595452265131263037552739836514307364074482631900452371448616100446591622612909224164929189090861876279416672811191338070015743017090570356394047228918090091736801528976903889404581823653316007843102086315368756110438722184856650615861521451219873829999637379228911136392418912936949549842620160993210388416042621202898874215016213085416634102326117780727428368201719710238940595327694312896044645618306701945690521207259329498098808134844948942568569352145543380626521826109074507033525573890021706654217752660484861029142753418279673706958216494886126954096307514844203722863756996373355512311556030947228172795123092329806468939041133163770449343533590842986618396057021277871524159833457338414413041149795997797769905260426750167257290739148261945927925245328142659104427169098761603888072151150931945825516606998614111410411883212746360722357697058245095509043864619872980636944482121342307355608809522885924265008988162599022214857027045704410066087982235656246121448993630011523851065414087440424666973886494619632100226561854470609869718670018861359230004405111745434272794775271359582067188209197299114173010645320688635274711040431865267202754431953600795055538755332380539640565193784406984902132109713603717896273924710706660703840272840954834204993502245886584641765756074974411502943512268863312851842919156047814146467834492418702606404630806492898435005897443324565627618389445933355974601437261775748349728229002531990688944577612455845450393304959053157464579339801397078639633051279122067491287825077521994519489393395529758439614302437963600890780526942700465120538352380276160731124932465019632044574652845441731696002555225505076607903320073066966061008878784795903289688175417479994471948199748469440144698794789461318986124923020626158693640528397393447993748570322182369196701962486292504514281010257319108770987113702084718418655659484462574484954422875678677254265250805254057931478675841750526272534149489023730957334107075336802233905032010527275141592126290773482918159322509885035297478672847073750602710239819883077802914103098415393137405143788836003057244674279121493611511604033791145783199122172001758452773346191095756459762024116683390340955713711302048779106218354327692782179481955064095413701701189793796454927542028478370998326038288713764894347702927885671649227460017947135597813081437807901598788126771985337820780961647071558500409013857264168960087830624204224387881669590695801640338083149380910690986249705748237881619414196885429072100490905576707702686409340592489026270308255167390900440934407402509531599986135518976427773446671370867620695336986315701571510386252153341074108471946600640436317115621363372546263198559777574856957530762018506793413227773248637412320149464851240985915578866657348466465449496334919347107100309652175769638309261786685859328559675705778667492737156819531896245211304908824178680212778829146315220847794185402112527521089009751623141513527943325974642043656635046489320999591288397874181763503028078822475679772364842753882061415939013364977171739901612927374459595891603930100847410100261463825382136424351912919576808700357824543209388142606132956084594522419161230916942514983405511141354855343919248734778282219589245114776017136013761856496777067189403755973563911260599205465506844823771448132969367884845167947734747800091373966801954810161186635718229423086472980858694075871313763536518275690627836036339433298445505486688283198648277612704990390934170340232358623368169833141160702897957412326558186017318355777326261500716425324110529673210249978619684304630009496498372969718714748542708684347017852807498602192241538612049496723387308282204064888867172771891808490757301219255573378333592520772758773513367969774292814552231615057266819810078655838607982677677349869395232740840780362226910476388318746576493619413188045902559582152349163055159621983109285154661672125696622324041931734846409955444759889382407602533870209062232347143308296926935275966037055780158621222077004862455651285777267132307993160205395569067779726457096931637899644047559862910829627794932467584148010091434120286246219092538596295458232034122208680371559597350986377154928198040330346421043904949655733308926926866801317315867170337736322795706993522451537941218076854800088543451565444456932037628392636394910473030377901567334068632178334641525017871520989531997280786292131415328598780565390976382749246513887328787531828242655260199409301006836837453135043145442720608563864058061633471067138413995088104660371690335911230435946018736480628674118122929426558218192516044983510970250502692226379885101641947918382865596653234399874174783496177477949808424868005940971138564456820974558104511852933752930670398320629697827800652040554352204229028969453326094200248069841916510406286968067210307943106232414386637249399448879394158428007052513796414480123765886576518850130712843732075884551671959958812650164277229729298941267920192720428637434080097688309922192611302799592063081121018717212072935608027866456160258731526713829072225911280239585355340804183984854286366152182584955678721400500167759316436162334338511829571639172534447464745902363403970768316881150206714537330479780228670053704580649714315301985300198351700428868045411955605744814316416675359294161362481629368567836560966610940422908715347659996230247712608610137297559877568746542531631659490475804690485445831539987344707399401740028488605754284014464523452194694694695749413253098090576057962458534131432603469480017365894355641355057528509844640177420186571325134863967461470793060110030542505462173512899385390120882599204456473731469189109233921120477210323980177706266604889962919421523971724184648804477282460788098208159092680580386016007427129352945608476079336636628763478593027627568407679546188606692076231826473276375437524739555099787727556065698560698148258917010962704306232418065483545518972502603418143226094887771972396673839009325342577782525450439912569499959648543456824863626330543101918962736271428132396841787818607028903958706042707107608263966052205862801255100664555720820798408941812613612796564150551638085830637357549443245298243967518180720442905598135823879757060444278946610044705154332420610350430409422602371416719727857658500842555112130175023395972063785182694870683993827586131157343350932383145287327159398550139910082490323861536426280719249666209867455115508716804990400809409774206823415208718610105332892867820808825497540581085242927755870804862155752970420821413197057760465179588735844186965276852436470797786430139260162410937737500438710706713266856045921103923662207422100322646017310868713254786487185337599674207001021404306262557216387878605704228834391069448409525699123861253929669027493480627748914590231535255136396179479721035152030295820169815661042266000435134158766560944421797623273587788872496007923874487411558299984120720302208317312025998177813923977410279305383741460718855321032833739130257527984389433673151743394107751586354255807201483668709677362561732516336641790106925218612545740436047254815225809539710624541264662095742720525318425507414264026602279345580606315508317175213626845741632845624639271718870338202192794719499015306426254602069781360684973011457486030286919455892100646737189165719564959752863194774770939650368259007246417442582306849501904105926647497690241144245293851322087021154942223578913852111218319362800417364093855436704953012450372826516323605977747313231207210730219515436290526425011485553914473475220810681029143148151215327285316905484031583848811062694136912445930697711745876614910333752987403363854626320427944264404965185702569454935619629385069012707683615375760890862742885793948427378240653442421954781059531736603332620757904243259123082320104876315876093243082516864817289612431325867008923186318581793957063962555117032527051407887276188355412735766112092278275205963753360521950207017876109144549806032548546725504267336367818248284093609221671997859300322131820941515892896384344460461127525039183073606629091073228583676786939091844092939565534392798419060493405696178483949334239110863285857518161006686630136442211556583151885106915331570474833145413809609073919325707493964463131487142027994589916422223280973825945103492005147449582402027524949653749642102519582937166748544023406393872754509163473852888668198344456644135823593327303530146668970340304584547936634874951712873250335829003818850739623106695858204381197769570183982732317853824765300364494447564787897329244694943076806167700073605698245423215355662399582575316336256623020769377829326929561067856882604545806263808571227510701568628591841644730234814965743547080009840259299585028794622781461419893835136496073690007274939454020428557400322940584747976133331254788299186113310641369701242923465290842620314924333167652594026022324327566997882463302032530922774231877406769808869871585009075360463772065335069674329813635273828030186574114018451825089247783916853564087730383649436488917559864916888195631675084416213480594865063100674428773136449855050306755866483160029668854053191229439934838498447794870528055804479079922578013972604339553844530630203806008226404047309477117604180818991314364901169992077802301009965778477046323881443608532490559917016423821117143959960311164253401623650914860518865835950140713233362884437257307858153861574842457966437015113831055356675475409188707577287206990555482995094623824706437219099327086876368066382052300825113834525163465207009985644277363725245313137558329043032076890955573093009691926640981163539588695064416379768893951169427000072123593879950542975102584844229255549480027319098769621691149068464298509093815571960166496600984536952263613934882791488993252774067140099724192297536353222686745076876700459884581181866009408478616285612963762808144569739222886635921583105125745327902146244053384033232321644859262524070279994684558233258047847645981635061212038604503572385739891562761719412040600018449691107458390494084719793417100671867854434212585132665879777090155882590471986771984518843052514640838864658036742102148945762493433057148167163876993964169840131965618984199600303150081068741979580273819423544586722794680344701588903123684322601250220126555601480335637389078975968688834232163241793465810034052258636060606570534961501277009059092260196497609838460923844613802410498790674593283968672674214724557958516738034668462670612246598825205452073160794977413053643794147883346589780578554405400208145990819223205729353435945887546418582808709590317043415727397687975392324854790245971486022409103934946693037069938406749472637202145050552722045325413780709675287445233594118140218890768881498027600616115893630279576750447455512725186759732437135123310556326126132726455971610932143018854619034508283676757541280678785656892153109953238964584206163119121079219975852099782188704358771377838120088879475414917171616181018950626621473797718369999733176159735135971000452603300685104699459283415963012680333597772518932884959589469183683172513546466236462943101702627170377126085832228555773623210515770895872170010787980799361799577049326568220360577820113823213774895014257860228886463102081869665471642496151355670634130363021462769939958621186185856680431317888338290151958634943195690046767370326297168764227426006913554890413328640085607881419557231957965297112202959278621788250139893352862448363733611157635601608137527225284826147808452967024063278102147551971266819088473086386014115385189935166217091519343671639983692495634330180395647391885344151526062971731806862470617050250491067756199123236837601888427166490920856127859960591414742413280612910248331994374694002330447631719550882779262053984928804330405692382403653000406821518536382453867873798181636846655158390859473557237500031839352988579451540150665827167358132095941613630721140479798727372585664105460404066765162269067643268163426406765861813540670750489108559800977353028527730657635976116467003371816147386340498962364183709779372862566036898961491127416269867203705048136417796861204285919394827006185364745568308083200083641087247968120116568204103579557598290744350009319637394695089244791190938102786145873649507265717497334933980319028205427738777518511564185813999055145174539041672325750249582632822305868124652293777570776158347467793875774561928207978973985699472356554702471952418022132236235109668172537623347590457556792609982480207384658511298217264964157140305238574694666655173602779564103438541905555370285499248899129310386070867496753656072979731379506620424108899972463588899900149125426946005436023979197092400397151407820048953554265440254038197404905786778766152173986422991195842631839260836051149582813192072087547056507529949477479052646466515200402504997130593943335516478281106365920335618414358798056534600679582156185062325574643385197701578367257758674272154158698286485248846544551941224291917555791533193117092230045715936178984942107770676686345311915742833881523926760121467580874577391868567357920755257797905302665831143086592179559340544037884080190601683332016622261436600752835563132069817698943220274173499797222781854262668336883237248238630174506710128348321947144430455635589736086967158150543167369043533738902925751508966341611333853067994940553025104014780610709988083085679792530181840063879343120540326671472857449925642784359871205833468115403551726882931943071358112339059128204763617769936734396573997365475607442989736115780389461880070677273450544208953322801321643940146309165758738601871034515155188273952141222724409881206923789876853081529080755580973722731174463903446853656135804031012757900585649249143726127013835760237569512807762357564617855634810005450822828189668847564908741227818330373342196173771192410571861730612862309283894642198938256073212499413288543258560040210488518375484392287004256756698045332657206152130590904403318743372349090992218193036368557759308832815990282665470761138326200456736446799033927155099601223614795869868051304924067134787661141437063781474384596941278993578700588384726425734914225792981414322793159784835331436047910144907875045404843351971560960129398369208044472142338309625782242578715506281216207637634101967779014890092149373854620069753531299966683183274027423897342210280696499629236032734431260388265581022391382753101106055819292474219177159155750039225334754737981851887812416922827430816307146111796378697525847597874967970501589440403537795412898557049809038779124725597050489802686140233575112157045331867936896100557741858308330750591186903113654278217742052638397223138411935432689833182009812984568166513399530453152495221582416171051633459886589932777278612603120214329107163242248381812416538808008359980845888272130500232981345687585180120596528882610570881187480188417387579384998707971073216508491734925893405419734357166522302392996909088537007304677545019957108135699833970040359599957142327449242783695875527793331933565006642848310547339502486692379680373508168128351383679181612542920547513283466328001453202672550347762266611801674866161138402418661884120658318372298692931310384664719135581947319196850804722777616455735478553490015969349756391822560120835425836798305013829141860659925128580573963680464235268534297817200059192185029171810422621287165585975362645123048838210694863567964174213908908393950270732830350072939576785119345564546876898901627210703021906402062607206866978762819021030397036872808169914580956415071699273745765183633979535385871619104471584002013672455215806119635673187344557375092531416228358152128420770047158483250051135408001370059941963450456533735577155595324135582446052840816564856388613843924334086185692236743489647449823365813887381420426737709518507996117790868659866400469670128999390513524926086601060860305242143726929235060370000905386861275956265270210406998838162692356888233045939551935481629764232884669866716415102308404077445565738174879255456524733762218905627940340654035560817268465125031189786666965869781374008255561928076154853962018127224871258558300161094771222671593486369273415627855500836629968619191745152917683604176485125117698442974324191710868556374588486389648319662153314946963336770568635616879995769019582126148887533946013781974275117108912016389461991386649963841265117442271139430639944105505526742950897712169364294185625805807564077567243201659398406186171282372744448194029257187705070552343109524311816554108170622381765925535351021495340015082973576150489984461080835513256301459267729279923336276247927870879222752727178396965022020540502961470514199453745895438313446399733213145713914040966463884012351008521830515978303285891945337400050759026527910321325541600204219619436708373165053176137687638784471315055563324462793922887153049081083725015405599030374486179484470441553875843699393173583203294162265451969614776760151458811585564207189870352281592716070107745431991769042835295018740064837877249247253805024394454444388029361860277352560885481268882496219588643744805079984083052308876970775963026918207619450714270686600622621561707277231341595772377415614399375108238822128233378840532843603931007534525988967784907999338136933858800230041295470191802324945431839857194664333153766565761937396128579874507680269819534640915177611686047753286911872318495184050780605244877543365736600784363464348576001190248868526985848680204101596627300363566090308539404242449944755598538170531293158868307670091186546373987647822163871520151806022405670045632341782781383115182294687568573712093932958796341384364303670779939290359814260266098941862810932971453053400300084005729213592808462752950287221201069099257716344419606658789932349007225963130350383291075826217487202102318306270537543699826093208114152939735809043383316743196836215956235440927230775107947102504200970960633946126415607465658830415673294939125744363299900921356369418713487777587637390398699834531201842872109539668658678751485617490136867131820402337379429080499441878422977613033351113796821555048263953283948542285812690012535199292440169495415438290214592191691148638708289420082426888949895437013391328200540407008607961413803013931006258811718971831894140184970437495390271067530611641834310326120625028406236332119746139758754643031652447285206870388272142416613394386214115038542059053572023774099554478595528159652720998840657647449008854370885113912613358527071151452575426723056734778547421364619381548078278126165410893485949949122043178705843715040345347379976444469599545091701790018550178750389055973918880459426649867931190316687463209545275137275327177948716481265531718308405637193329837572518650818139352781083653165062330838657405924255420626718359519232393304786156022989111873936759462547120800584062699912540584681081141905246165403082372696163533604861310151558657385430646044426966070759369829065653153678693141631972846059967828056888406982449667301003393779966432170118203709382029873917826808619768178118013358173148257208260805529733456921644231654322838432361417928251961699611406557567785504360222893763671050280651350381635499188836306317753035850301876473604576438560546394349254709755509803473837836365386031948473604621027672747403642385115312296024169979385299551112971083977431140101270752080340247658265461539679706831598796531980402126245521047588197837083831505106146945096229466625484279562608439801589748063485979676224123474804036103411533535081850331095878253095604497918010100727806752717989508233767923139248047565451735631968199902684088705537542655402845740390216829818971990157913019860065076479272763794365118776217083668758479074062976130541516391031650767122219214347674410330423198290225017086623211764904293483553477173398154665034707883850892253739144192215599434172312898926449885789762016794114532894837632829599084488579299690642716056711599143924873505959705054941151835230307716256452131220726686534161431228720806427226437702619977538456180243715594570223412188560530360420268531094242343727594292006149082431542351079785359276721217705745492016944160207535410148440864451101188231252115032375970004220696661327934957993431741871942653254977904037131247680782411638979912829080869412556235241960084935786522944163863549099267255821578329503068073722761851578087823000737906354288861701699993468682341067143819536274852357582455774087534806928867574662771748866882890977476537984457946364878297028839323649133853186005529768932737118769343019853646199402384565635240424242163117645489900646972547370781478274513414789333263961373831921081472765771133630281723751909736133244320473715078513125908005622647801907872403081013911828758076551509289036748567021863627568289162810047412607879816996736800996592320455715170413320882518893381509890067159113725034265325684902913663967609579210480749795847316127025897532245692828355691233976878597681487575886853626899481631268305978131271770880565953400333981339134844432709762766940566805398404995923634266430611240168906807149658955984411248029070584391811583601811588253848933264595314480830732993127907718128702430395200149790171810479203560307672740213434551129002654214899402826425787124838532113152155837645650237743813862327632059556305710573052227841457452407660285146530497982302181809666142412135527261983546000598972294819693370342488564995428425736751485597175005417999382952042583634908357520211380451488984253145466010479349927262150702341218374793107263274629761687395250408582816352737849356878109899936342368477651429980542663059017617223209408909925872265198530135620764648674316214355051500309040053299312836924936644287800345639651703435925375386201874586383136232891672271196722458703053918460126535463524386859352207329295399340749784198797355525971095854961756702192182646987599396007256066833706672403413661353275939691394109134790703871389033436526173657021028598919527656158817988387346478180392062219797248683796679838229605387890862430537396020354779213808983785396707403679418951179119677812054584750330860670192184392264273185866276291395018830372348286400548849802325665085266739509419051454930668541857605402223564216442304244168808993996514225812857874735955774562016817726619967963476031303070663332097937295176274753571719002835774240407635756415528072230548115843666080768604876386593220494697722354147672268074075013228411322397344959078678164158073348312415538940378818347144500090944751528818369740158679261246724962242778948835713975439822908818169849056950406612304731174155318523556681984661306840760069704002970961709096576979371050453214673794745100232878505703608271624060582959671301939873568635882069038351305751769601696588031236366515809787076253529720227873686944639393686772859158907005613584767186781546307369604576547395315720831185265324194818189136879091630346534560422544935108630840550475828186905074134661137776467212440935096086573304086123825343670585931736606106326819096758467987582019103316253438216142114518115891469099131674146706218293150673806706962803356881082592486320150703560364415557596510073567519796882928266258130505311035026028721319230247036756797675134903406461076000445187701916619555048658400741497753271289171414050393508158998118534488003628407273934672490263156488333957465046066920368426947054022319637901121357060234375695116268152404191920192025759524398120467419074665677270948664442112331598004603928192915818247632676308541022047330790270875141630605443675648349955408380686532714760625306817701916695270487508404114638793572291147338461053554217842719140369996997239648845977971210060424912579392901645745133186820772202317790394458266617941992696314124984605103187507404809056126178118686573000859470270003326934826996494937318443834546177731922640356882248286958968556447434657554397912007472563411861187249896513831735572683760779618043249255311778536636082577191589065797556994705332684200459268207921151841305114275985786574923486224549508361160194849399317023391036212245859745077510371588825541573104014498805689881257478353245822164188548818008339432568124765234735157959881824923769571116789424478520652231849250592104255536358513722938905528306723564362230547529500609070698515384991757210478080173194164775870138770922518612939142837953090419503278724843519277285976251148009579343945883104776407681748319483119805872359306790806982101882752671541825792659584317509770903406653977432944141049712166735668867944061903244051362695403935119804935365625746093571143703355236485081273840024796061990000124452100970113607296662258950961739926812287092774519423134311483373465302638805519380398143255278324141074419899790520466600869639597530486084086274116197475710620997167011837143138166358631366108447617089546994634993602837365399581420290401135414945188234293563132256015092413223720322220490573548467331392565765735276945914493944516485735582171773764824956119472964994084837507929809383109822170298138865468366045081795208134553908668033455237558665771299089478544321058683826008727380007833623616136503523674307483805013040022015654750007806441487933618331729398575841471305214524976658645190331818875548922305170801485228753392535548936273822884679230831243562277970036900094088884784552426137439049316789486453308231704667915456036532723511065898702680169300970107239934682258730737422096789263616040339391830807053251919937421925721967087753014471579379956141620041947929404361500476191298441494927376478971803721804270403610645209365390721627768939779329425449870349400054358254655186377342207678209581561889856691059462354216825514777592462341955268722327000900730266814397709260086674805771423066053786018375297489496892103927877539303814541547095085906826966017915658374812731830568080727317221200424004931116730621862197345855799137923461602798375186284069772796283653958383645175113683876358032157628005651557841128146991485913987659988711552356644467294304065564805189236591742727242580346127159779996873083000876790715330487559777868000979089460451739994512021402227662482799439335601129650866168221080159475700105463689085948716155690771205815927342676637621288964657750283242283561384202670171385058598847136505517004238837694517003257300522602968319061843562141581102971148839312430963370368687266761507990085044677523937670997336575539840465133277585761636515502590153109673825267020656366521613051226882659194405577037877521828352168520000845473341420903278700712686034908718259980636592181761596706886790488645975631302614418891238675462723501284316761509888288853739374940929337875995543435264880333154830966549736206576110971876298591032412061008335752756688251233031424182656174341738326717104735614521112225676179904694893011987572518746699199779642022139714353280463094796640458098989856577160302551696590556984250303570404981572909514685551763993292504628123949205958249662609351778220628286419060875675149088819070221518375580041735792963953971674790870758723427393488986417093966998661860990345188539173789961649295058919008444243245203085271873011395186196464113002427146131325402746026917357536866567363572996419905243787567657059675003763222493626361925491823163214442439391610708511000471072163928660763999528978814307635615582167710959224799037230196466943829718117939916508854927989817505227028319777458157365817383287823673518213340931716747299276671275595609035628701928862425028725380613140627958750194088732337213847584549835416894574916435807695833980293312254790263642235882399429646500902805917379329872708323594917494630300712668538232618951809833302601328644844146015853814329930720586438758913006869527776274583361195753677113262027034848374387861215981704573251805570398420732662640356010271895333561234317995639607983787021537851177460170070409459121227125388586913247204374918841909994288731537956395079508512189724211159504068800600873356359937418915988379297431242759180699594356433560617083584140733083365391998027508138027683345379307797456640072318834150690635926103467303229974674535540899408001554590688714633823874297106330018581430231443025672534611936367980343650294013143645378365233757311694408112858802434298799377176212481193270717197809012076739119509978471565727581490138513806913285373602597642894040837778978274709678806198633498765466471474565039201927933243420727116105054665296247949044729341570584431479037815936815196225830468648060971108710141774304128342096773732203232095010647078762178140012458749097333762681518093879967418359627666872028981692149571566610416280458655448343232341839164776435874562516041329456071149156409724855449413013498422012236948057120490968254945237066218802185730636068694878582837425010690348573190433658225732943345476064250104214699585492570107382869035735142247177606260528896660523332201380673260610144058268493237435013287149525018769558265657745425465743174623470689302501691849966408562747971786540377673565981501651407269067659470850051857027321338844562172119461646310220981847498035441671772625008869785397823714545454000138011290289366077526543201249616223429459274613045935807992249160196273698728399206515074371729686636498345442559963719928480085299589705090321158295577815066421122528510967702505650097977645793380225315438886624131140457750152572995521976098427304736708250961018296136146988314609000919537408159645288974915088336541209250467978526309713745479616129901648618387257340205422599488939025604956482320715432843640920978837064548109547912114810920403629873943340636209722932725931310195846301806287601715691639513537483898020088615693164376896707834240926341693863214930664473572471557856125554040398642862750935353020009085132810880377179733770538848533379540194875949599688753322765463760250214722742766080811724699286753226620644587607983444539646734708563081158916954297938511331097845820197757500019888938400332078970859554754211578321473510285872226814626751934944528419986559680109682176022492901803686442257092834812745103019100220642845386100911047806950533696917477152371545278879583899132188883210046017743516295791059029023485731466888938830687555916299674133556569634502786895609380950116116284578798831561828122404051409522336476862930276375064780519517926624414711244392834997992387967301044093687837415694993770950188780109945536289781803844651780290333086064568462327766336998774473576439097027890454552538315152703767386187945797880556280267128041999041677347363045749014163566081878793372756518187542824825750134180505827945394778160538251255641359690538095864231108546473214032834946604972040806948052453182921929667883644216754526354972563508859031403802070048815282432206912685262825058008721304855584966949930588990021990171501821808179986108389785593610369796402969288813446345861980802065853862176721134937707023072938106367889094550048805261848385380490125132450881965486341695625933665593718361589745131863303751925496395993667231733840609307424221517028411423498774055414863316907147333072584300115449728983947604809709572322129968444063947907818311333138423141414545453294564093037283834288990850789950377591034931603683554863370351807496604068898840457614953015094509395021428210608442412936485258583145365451554130830676442126098720038798280423086229399474434234674992448400849099200575363751436024416496295383623910409890569932607166974449220788780182976772344491569683892054078648927438169421497129576246222118708459502392848873227451686826657889005300324458894066279123346822052778634996767975146897937518537739426079757000224065215066592987923401120210892895282675237382301585339668638526903749338839127882746880155602268633217504765933344567826568608612228596845681336806018405119584051869713830491725962888934387085258342189189869231804356078833607734433378101904331238218591339527262610062830418894656401192990262006018493658308822542468552365469731756558655600725699246477272063507260609405462256483793529744098527092200006305538012855165944729504023219742536385584379659244124700251863816127092765051276167254897829190117776719162311273597771042494090389216859201014258411545435184315392668629105734433166621704010813486966032621790116274471552822322614993803991965926223125645500680721742213216988344934110820337682108939941475110228048194889745166502994265899204623101313873614766473617949457933165253868662371422740641443999088102472018879209821034888161659416402339077024477319462429815855798269800688642601510975073836139001384104442356169060557555649730986080123867604457156710952022472095848470608189377806613047814035692672290431576096429400268980569931917416131551928785537199154897792387295987991005442167750989055566713456643445274451258044196977804585775165680424713538065633568596648311892423343592800461538762832416549390978590687060690753166108275098143626202255526025648463451598114627169981098760871267224678739082127529638854422845302823768267647502753900890276922828257623578917112244208160307145836693780744631188723388468743037315321049144772794046763489246456928815761698658541770689427325748016468370572495941498510808401481597706355145599072521183917045427619889815344967404220293800957457970871726031201664353527395925641541564100375617198693649856290057323810907332058894386906210977467525459384902271985532587501091994414091739025673890533366523748457437260664156284420130489576938676721872029329038820878743680998338081400747098646047863717966343309323714028643768338881435216453947656107243566235768315266911133165576170406706684291519275155958455120870178941427870333126150345873809004699572213352719362283674110297674902280558470131076300879712753141151950086812416749556891952663292400557595713609591797274130959459815706501489085211745520471417377603776290644367499291999319034448261472845873954460377082169115287015831356840776816955997801428036581424406755703862641009404803201958756170853245909778335932538142138585910988442612471807009135704585168620740247118228545737650413747796620365250316202708340555223349489089240945558227318795960306264914243201891776547144408038930757008922299135251256807380834221455613542455045527266740066444433861452352310207369918205423019305061111833555953717342658219698103042465800126590181880233483124297168137053586497448279645550335748066205923100483643553353151250254125229204650621038590539126788022737398070679826181030787335942606982311889187041254895369279242258029744577006807321636809530651335856702406593997367416074336716406473037269633401639382517624783704473575374389888000489760317229898133075110112434355732947922402616823937580429034647380244178895028164220270843288927106244763386401055474172278285762485232941388138279039373653850861537464693894553309388289750343037019659248659219447607698521893658781543251545702189453921238198959556728693156986556383916121305946377532138617996240146336828047565730629780598683284554620162506179302851281567539440003863012350931499495548984540192333184527482087982862680946133524967302175619205544604042754036386062805701277506479853602749140695107549150257140479021494335104303042845413640517288349146401159124695952505054998323803199920275859820763865342688215783597045015553331959217542253142905662226012969091379818144150910255204386673683466490943393451724102600127974379126038116546702281159177335291387166885070864510663861127586117135223917065630332214254497880936106773607814286834472983030650471224646884701324588953902591898720138956742566273363754565435932915531818597705129098065158978232713252322301215319112455840851578360400282260848005696692124789102760286063084292504467364743333959253340448457694046751018565825521810111818442347491486371654845477577634061567397532326252711910838373160432569138517023560529173036347296996882012045088733917639630741079917993840246915216623136625620279420284973613452725422923011226298030529968218810508796504530445147749342807632489064067301862174763555700840210149504063341646334210638422512261237781817753245936952410216228010516128732487903433522446560697341853674192205220710113207153648879078469641803068084913019982309565518271340024403272120114677535325282970190480381979591530595704346107657269783786720116047024678309440002408359452881695639574412970948463227590931213386915171850825950449327764258781716473338584696522131876176331010770261842141816463202158952116589038167871364250876220521605486809942095695730319345819423202994871575064090822964116620682277541688128840139968071187158009363038361280729228165849668043894871397919214126845351226539432404895666457405876813040253773705992950278670967021590955185494647473856029367613939558693439512826368273339368960423874507489270528037856363044946082632876838786211954919181004049512103080670353640915410659399144799897436913323172254699030156645351166676664193359142712696453174256074704157495693247046880042865426411880231231232847900932607755660266782764610532702640043521439682249983660104303841658210135519650711803874998072669344509526354777879990844796494202973382318625927859647340745130386617366066379487687364416634662042548587250658862292719421459008253785998875601728320924870907530701392301654698109549463375356228735689016179190174047573340827687211438185049035941271501464619296592505353515782248718088333366830705389226656693415805175526233181283485610513447944457117086092171350445046447445691958727330502860307649340853851438713244365376899117532698000739150249790377055462386721054166977827581380995213069812539448483466563552461653306575071833378038558232377232897838404551595542235820805438214735141824422896709769844819989858023200961439025371425045286813383428872317469474225220205903863231820908416998970108794670497266902878576398343557702135314299112683296788403758076490060797390054379799421109915407761025633377297409064117213632312841005017432034311347003098734435547746603995635414632493041154691139269786224608432669718647162839318532299382756472599668407635284510645936813959282639523419249704895458882599891420204631410875357155468876220691469769604008250923611017230875940916919786984724152744181261794982445051990073250752088057026203987380160895344798801611084193256486455548763979233734876332423173351466742250360152945350636551644992904659018942125892757371654282047954222592405328707435832904065028728906888481277150483806393434486068423257164084628455115127064647432277980601066959743606189037138307225311140383516510353743220774757057300192205156381350560051578119276947706095306359810848353991879458500143312708485104230108534725021953022484785174537463090671499141288292345803871738140198437015072434623740642866704962507872220623617906855753659542470832930909836071335778048917606423772485409278484014406782519611776821769675259784566706971365982105189263082013037828285670643593133170408767247881160309368481261111855436351554621116048294234534059247357444062334952999206726172470909055632737484822456102250860827095167294775991954847278784270418979016890681765732507853312908233892670958770207433223804649249568286943471118694222566707297417361858448276393940385096344047951262591362585057735068836016858581176183353531670972146184124274589452623961359632014696545100943046307339900910962841860116582708239515496547613985640643854853286299762469964198547274762915601796765608579563949958837723432547596325822165765967949508630011136808149786469066436854779943833193445432901383489217100765540198666941999204213481795385892189618881390668636618496231423666110696869887308048894354207358783236264217266659857308250966814172743940051390521975779429334738082961987783430869130009453699662489377927491039143645107644357016293997497623830413983196227800461304731294991639118089651862400955546940643695871362430522102778118520159333008976280968110387223694979195480937884818664826388163998831165151882661140844613821750033131885518624843723687315024070608168012758430025638583048696247190108169341558388220954291567744888597511018568237920922929689429336529361447969977949192525264689071654509557783436030502336445864286058016914300745663806137764686209247521887562706575996133196942010086275581507231432933968649145960376084121320853781652505201580169900879893510683278944468774445692374844643039906624424190591159494334158601708629600116476590971579769244498290946860895398793743442459046697630564873298973018018211426406030969608487222040356879034712427502670005836412128244958081784155868867134164845880892904393441633760966996066397962750484078119650641802585254398406189665074280738322450204194603934461485478769721070878810969097719957726791172505794505839305219275519386730851017518489784881801602306880494402486034696420232176374878768262065699371464430281615312586577730262328396140499903910364833216180119637123946150597558004793451037556702449375694290828290448806913041155835892827828417940517073360377977553742730028067572718158165308224447324570530024410219338495892792232193980916192051719721367351219057997707793520432744215612223946202234575177384229374632616129609865320326115020851633375177244723514618240679891499598974028115692326164283467711492878180671347255496365733601533744656503502025870353344048168812182290612068769786178510907276230510399148641899095888994974264134664550202500263751160383416058040560225241240069622720648709410244416985386663558862243523076076436538758449753268497546726644543888226729140845598499907861562100231767887004974092801664140994541134393924373445909268258254821618719072020054391644091086442624562385731230508890091128158907965820911915562193365676294234527430442698876033873904314810076260823508557445864190144260374434783484700235731041542996477545096959509420858160880232935680663237410947771758641859767065769751545223688624382346722182273927869263662314310898099062367926468438961307175506690210637408243303344592235678387980291717989090813017612380411084944670866943590380334414726260952196816120626483710021959628758991197384757136173234177109178545057635640539523474709606627928210205377553448273239788933525267218637857297154315347929351165115913600599187368733316875969930147352864615026616754972828675493886456586936717180391634820977608221466622891371457840257737166006622222052617681884389607140985968542013062797925904025927152869441584998356833325448215472366063828491468013456693408770423262617314773129953201610918243695688312033418644857366158379931970703236639355392908357987970880955788475253966816669502632225999416204059537587210131455376799616901541018432465108718102973388478307290136834003551410257032967747194375086748451043087537246452881108907425995704655925438799038411091083630727994703001574276922357561523458252713234743773314066464045376658317875205082967958719990792419486369331060491424170414872595749535552283633451781107604714622213472380971696971242503983240222142007882649211456877737341799114212521395801842611641706382618913354734876148751849725947257996637976194369057230103900112983365790733303120137847068349388926751878994013947719613303997256083111839173276622835114343275979767615044305337655032207124532648659755513700466381372476408037796129627741872765019792909573417227713950821554988972443064203733940047973797946217506613407538831376416960270960429804561547429765775201224397626792564662728932070759242662309340689319297573045930938605486425783161464991471493644431632003330002219481225714966845662321767675689498554400944769938475177540340040615602834436423856825353948954121036393204570014210305615672228437706458489227476489019602553719250702027975717341612529373243979302513584463275244922601886030907753303407906607276659969498702549319821704302798003268620383290343583151782426844296777521938665946977524735449681297080483265347749131520635647656829373774570749712830274327333739324299524541213377040708311625121544601361643617839912093694079489544414786295732846888537768919603944839810325546003740447739157643606611563221903655220109055439262364707029927948318728629522821153692917780688304029591673716053296267726964737980458901038698071180625820877644749854575366329401572764887893323228591942849244029276214065868768711153536462608028312843656437751218299685531192181198441891353420744863763766810339511897565937449443987626120844961344928072215634846162314317349795577441214906098574357796456919330656177324698546288303551907482326504912607343843325016090695687265432710045049208903123183881627211623801225579497004751725570993244629428256901922941169405962094177027426034133791192179718176953298622718322253133301688408626023125628340757537390230876310313358387212625057501180797603865429024835510905222001834505519433442973838954564415376848635324603928617549862800829216847014487528716362508053158464761685813418377137938122473180972847408998855639512832324532895555497200768129834284652896486990895756265029589562342144021223180507894079503042821458987148681065713506015988545134128060166941904953326239102474879057548123290416828806500689113963186703575502470603506972001077281000576486914428834584091070637961741210917611226511712777494945914488329749675151259680441783854258767162443616609930978945855418459489126812081678558447749681143298727375067090336911611501724174494531810052561278865783437502729725343649270397045338902113344477932697733313870158569607837361999154766148392994666143682171929944977288160707379624864545673213910475742065724943150621486999653941672952227221048107396391226413202542839680220857626378102286223058343356526727395188612956285618460867860113433755141683249410966855697773661249035410594678772705647081666976289205990266111318192411839179198960424317744030843703462981466823188938182566979127430195303627062319783122053971131866097963428648805497639782400752357562980416843501054789592771638663213337487745331429305057001619566270995657448943658313440996029454265690805867399829755254119198001222221877398888157377398681032177321782074771992562040635318249146857851745183165746078389130405693545780856360204052528454984044458669487456981424903541630427642096698908673569630988994167113689982647195553673809344501286036650329802213183701562927300297816522276946202744028520480912753215505491166801498418644005454529938349876116345526294886404904072849660870075752284541508524712672131084938595277798916121822428223869703492300096472588488394290703334089998452823652077769404312357811263802469310154676900995290785740679552547125957003356722027447630300565083506683012838864854188845829882289828479162743547598843308026415016050697133702873685462149183754922840893120281837688330984569717710855214740229958314385653658919624399849222740133811320243543929326535717727893025671489313649617345465199426242786519235038374384796563414882318324930439875657754258969821933042336377978403800111252687637217379060866642718891196345128631522602859113672358018120497457833208866178419340089505373551007206442269502117879513860457330729445863401428284994706942105568590899345508091836014277685216436833923106077919972586097402268460114829785938203151595282820920185414357188668127843427632207716593627220762684056678395057837278991932100122866077722497128175037098996741462221943430386220075463486254655325934226768963665666647167212166761745992050316349100954932483603002948389995013491363378982686575202397714218363760516125186228297462016979253244404047149521763440576294004353558971380194280059424729906434824265158682818670574822104788035997090489414112141805088916412955969031339879968360294427320041906861563560512329958202038143146896602903125034242837007564966943371798374186800059563400539740460296684569691784517525628660148597358832913836097192969771371499936803279136981825051020409852020693875100985370175485639736495771628200408659037879065520545765343056338899975388073244992021295234193814810588531722125680127549904192200603348461866130645799993739176246694170497815235772400378321705853428604529736688165027525159958320946589892984623088337941968467631971294106124372763164810421877880047592172961378730366482686782312753189782205228383165360308413078220622196367440946926785951505859476609678016963501975123117219976577721187623914040672875819932713642314792516300918408509206968074473415304472667624490691376866458202487767863348540609493154814719742857055475447503218676872832093179453018805593908142576645780823436186612042955864667277819224322130561270185246750984255034853081999912333952019230228940282734180454944719525254581279398442442689751699912111814764905608442288555162393280518812440983875118766374460822780201427434308705745883342013281970653784186141117898152940348613957186771694137962349398538832100861514323500962073638474487923728994177128045580321334586682370031155339497022724363542120601785522377467007288878721486775205055794671925441501169456214504757809103522054455594289441701485536295454260008799968107996831759614627632218235952394083777603844658965861499026603442648537714136328906007703250265179203473752931314948619188903815981895332915171374046192730788031122767413312202827840022625551178844031604258150833690410517841304467585296870140424917802877995605187014709421584131588617224663845626014041772491724619566079576308210094018284650525255075210508779057666942270076664964779268814141093515482019868317683964695386107125557113832678703683417677610872168013519557145055314180383949987676906919186801757820541135742059139523235444016114289062948412498019199146967084649647421430940303388398932554393233919618374569016893239779437793857288308844743750831610992451579123181811630412291356423335894287882059801778951629068040290932677122062733220382276504476993511425684159112864416298294195072855464886574375786267015430634302895857971388729305171851513037271185952386279148374275337207841505380463704095671831334291659989419634111619632359349277692078432697611358899587346104182807428478362863318915241545763728456394225103825628606980821482972858143750312568450969910613906272657318749291793697841896539817608911774036968325903815629925463238310834008886603927135918158768458790006713403738584698783967344287243245853074170800370037955246290484605763410384757297084206232901901333072992691355325490539501724455082541440452243086014203650852492606615369098800067219569093279469106852064358956010376348524646792013756013593848613918392056375370493905225754042399476030060019746754393037818022459370970001013544103799625328115142986658150671462476546606659066291736500728708435837538704258889185543827519755414427123179662950856582574133411855407736244607434313521012947511265977620252247399674881972336972822801233006757895351048021382136806212574458018964952721500346322595229695259160929598954646304274842257023708513325530017775956019422710287901155111520502493343974150369348409137655943815861824804468551258252220467749355699004458733589911960728654597537368260737937081517784229647597977329935452937850738312696765298109149512035057696554856186335017765786023632178648552140279721635016729477911245541793764863117912035482294930066094738985329797540937739332065388064990152800747666670967935479319497822422354389129304587504110385802843256238168739443855908856980919460097457932708527785708772608741570958543501534384052598253852041221924623045895983637806028946255234986332157040224143876091743167532551503687956917778507884038382921276860523600075246805979974370252392052358531155681937299903830785421295443920957039717895026760048253297319702139705465077440309818458886745338192561742159611477780252219002425506255047214569160031153581414749162801400945509611565668146033361246508682859149955582019136489312832243840826974791127698606800732022727447202978700433813382424012959776917117579733133002400461647363890548071178996671544111248920575948902502407535197333713412693380443704580390641306672372921509519084721970946864855275754026966942275097132265983973922609449952649689108918795550769094598269643375514929341245374057146857275255835221387514970400249924037911055896306005859483975312057464693034581617002897811243109849632516059153878135479290005616571683885260996351484689587583480715648407084562427399462546394830440915760684480303877377534918615753550038137032033217867384868837346302429116033695539247912814230545148832582415517694712018800540251925122476220136577116717781487658761618189058296702140158990800912512961134093973891768725997934671834147284383094582154675456711479155690483963557478076075617702124361369815069034287444730489692087643783230041139947610374889841220133464964450794655931282301074528107066278097635268253917948932062779399198135427357403610195361683394756297280107960290868650368961436770848535817712611806473394781885087247099698166300376399342211540653186021875560300449516164480739223167414549746769872532036078299524875080246089138624874808878066523105539242294950312485224456234152430368648263559781736762028039130021274228192308884231623076505823748522914412916732355314067846982531771545780290808494443936100907711325029594097865658908908059039861069577096529427459170182332104908243283652962963385422031542192267582822941113601509559641654122944265636149258104441279165830934138167423329453974551836358041816595125182853958858464155705898685721274825155163494763343341869827081203611548540383349732302153632742795257456330585239782542372026966528312334935173278986439057138488555272171438664501827075507906261808524629665867453847141686647172543571368816056892270585573257812118243514114654672761904677052820300199116618423163475418242053408634426699509090709151164217518013921815960579223374069245973959976738541920557092659070220057909354893456634862376288718021343700957116090795407346801096211840870401559216956660563929248457775340816794169630640353200982785139800161852282896508937372512551096386885426609155072789983362816834353324483314058465910144314191475949234164024275992541075751158217746673319950543290772795013141477439439989952606846360917208202806752914111445666795891944206216499809128671627752787635600464130557904075961031564568891002957401924616525805327673880219155378079269924700707091008323664586976417468661401206026906383192811411289601030728012460551730716979602896788667203491078508633706690765001901984701635969222248710475323834451363821900242636243053935587835976537724676221663793301151986873996508844181227303072838087767185898145357500674080855459814359828485751245198837979511805751245247471313065709267343225823537195162668193217508233949113479310900115217654188903064591825117694446833406931426648586770771882368178473347977731201571183452561149070604848516571039656779978034373944514738362802478820263822624290376103311068725570333575282659862359406524966495252058759955363997721273049224652615199153632110728296342504548720446538578433831188461721174759527462171144328142218778015895131777055567428571624386778083728523390677094245720904561560713919647512957280790790391293934117935350683331443000613716573389672192328072826021491919267717858699886821238674470289964314545758577084651236041755431298361340185210374545440724995277552229367508790805130857271297883323457374215936551151150936323280515597329884097371596417863425886009084965095423913996316847585263333493728877554527499596632148719285249829856524217749257698355779901441172754861401296183025254113373622863334158578082339764191992015825610127229605307596536009952809723695130984326897683412495360775736685693295727149844671602876708778217529092688088885963512425009269645012673888030187372069909237102902700889912500100347027085121149897875494976790754144245548835764102376824081381257147855539345067927818905233390985517052625485708546994110163607298084233978709428371454930669693415883307273106503154174144014315895264100007601986441949224498062207306047991743533120894035619882779587036032393975635785334849234557228030955766083999574338916223256476623612243897530436159873565984153098988392918258553103288394331205939168506497331391781199676982670887118693777525377829515459100075090565017686494219362266989915394601817536101527713821380506839202263895383041044302350505513840388181812317393554021767353001439610568177948309617314445342898207489516169571701424880548410468089729349454748918253894339007495289187293817984710613745777015032247074384541575731022257766500654782741959038170200987257480973369943801173526128645411879872485158017736822183183736405726075501457289857946546820818359941082629342056555300531229344993398321537491762733426414673814764663347207637339125841788730482264850733126414797027455174742297948623349286753508642882643781833310023749439106989301738969791361974538750288103786100915983550482801614255514178489750093579482835617527345100156915547067231190271711464682692964654728985082059741687262824944240649716496064901000161774699782262389078289842985264157461039101333008575895517772166309254248491492584649832499417265641727760554351415505493274641637736764032834780706517498495256337430329116128840801342093713609223024597493306972602521571156129458684114074570316499366861696312717180393979308243949781780492358552690928631404749766944780395013567575115492428561064668858727218522771200355643889542999864861370290048582824251681579356690327092126762341955605097144023439365565454035624844060752697858890503897462510857548723220656488881235514377500434174097580967641462741779223464274915646040445452411960691554293137889618355201310631750471779544462786374208234004276138095021565094365941287510183633663586477570087233913027905890696087010777881901938221336926548995965400998077221948933445508976129763510006245106854136102345802000200937683240053479710985293808242828683206300360545442533264651745676552933092117108176207152556398785302389957378752953669380854142943731106357809488829940593219223373967632648128441338694720559806149169961858859337254119694587997057154313560629934971731861113533396433307665802411324918415402014386362323849066689961853918793142705211474254253017494235138865737962196636307383707619342215609825188733380742055457423665641334632599172870276131133939702641870387994223828239170405710983515876430685409186938829788857484890034422759950575450827189764348292467512286397226749095144376865113939573877071512841433541437976106695464860680725231986619514851478627446527372565634434589287264231723809308905093373588016322595702454584764514893760928455221762950344719982579449009204180656985567118456196324080905904186712861002024691710301332339707041834714477282735910592868489702552812950388446198212637127834587305306959751431730248051707135931251507480652924152339924704202215765509760298523671534153976559448963913363232487176769872309372654231988860813891227485334162359809760536230553397804422313204631047422960207785062913881366927734834906065788006190507280309306020329168506199235889620266955918546401968747620800886735059346027425112507039377127349182120142560444543303710547677026474275938153018499347055564874058611970233461834553175774472396745824175036984964048850485332398651877860589942884317004418664569578123995565703941257924864220991680868160664592126612305330842305776813149938098959799497979666432587470982233662368777120835828069279437434472382375256626526557384489702883943005662631534177612548209890525977637456376716230409577904872823683360137187011349493980384778859952070455719191218630843937399720007116745612857998725039896565893735118231772429665203507845905836084575079228648951914986281575577856905540368715099768336033878026272658110156618320355195748094901233400856470264597128393507133605749939574495299006587126307419824282752696033600906656790257081164523078288789552017431272970140929960515830181136690875235765637797316790107645042418445888938328520550080241918726712545288335459383054196230086332134428853991989955272460014088637363404247751928542143881441773782064320654424225928271534435552177533907604385085183863849849744636201512753006514013318155801381475053517188333053941030105692024187470026985002954963417145339063337723220925916144166371249332873815138735886803725950151425559337201642509865091765646873282663966799581541182261065912276131952785700205127037420383137651513788064874489423817243090690646638979687995920965400686845467542791494337274609712240502450438503027638028057576175266461408641653665419067895777466751132536025598142820112819938275590933691884290638658755490706071817354429598281002447201350962387252035387412604475597524749666801140792650327541501475614471651487635509677640669458467200482951085117692397492634230975069728087540261922844862094073377906008979842361583346361141218665168864828784442186983806627506339164982829986797272763288040735783196124516634462970255555233233476122560558354316421599241563749292486888411033585867460218083271830887559197204260174572894353614811788243942493485337884566609412162394404091975718947135057139423915733659374111939649408717201916429122184788877963523993261416381494779720225245215105482334607739502743860528934115248457180821235120537218966819024458123158944209356324195291528166306521093475979395712514595640412639646398892304803357658642984256817937431175202988470349658313130135624589501642565911275505397625937666855173235260221123795105540388712968141524367542293053192399405107307208531188236387524331222755228824577941138631724845964657778047154073984361237248761962182068515718838202948875950676642779419538624781047913480596334126118247155019218261880447917694213700032047192575947720151975351803124883701699743075833735576956151044171018488679423124973332187518995152009934861362881734522159490372851935051514288277189332870051367804056082980005163536403593848392335498603786153672518689765961813408912450109156154951558908367041535310910037481166759678399404872147530324932717719819951431400992927775985673514120961484964423617248406082164565905829876317118213486384945545640910151172910859110207767439684714670427384831799124290588914706452520703803655119282539467673966366130121397447739032542778050385125019180107155330689086002163931295602046752151090079514181705642493483342951922465068837963987547023410433778950788117754381492631349491314150337782332063960560914140501596563500331572226984005778247391355864096795524274571104152055733164823013118444178373809593656221563300288593068892910599775836469486816834171066548463341241156638423128854989066208323320339520497553417144470241427041893888507010645649836737345054357571286138650298885421926857741907675585575650608169490836793896941001076155402803354883546247383661448263903749497216679856184509263230235745403031945400285650126715068856464807436643939030315891694018238208016928964431507231792417427238418732975141377617566457660816535298163140210963216769811676332809109719515984664499276009503290259568284735266953782935620927837453285997751685690156562730529468199086324085486748028607068301657626969130277282117281270615986569261963812945014867969734755046780772721577438056940161993861944749818115528467072445173154127189074845175851414901833322280391031694930127467640196433894399494811102753671689392625228384278442107432861933346885756805626627577559412927817689207629021352047488295897471221064923954218308946112266454259575036580066539057580100968144848221153833668096002157123365279254882784721907509650100917696863107633900912405066265693874148639741047688632589539198067429081429121761477311996897948848355102712740455262647844370167317114143441802388203184847183706109630527624599607567149944131245692862172047603832357057124172825323992835220185153033500478689733338559210385321993819040914200186809212791412641604191614788363838098362445139625580824284488582653974188647522374533506073664535643622080586936120363858449373383748047029661219961601542038297261643402935968262040456887869722323393603795521959505950462467432931110410372930778147915530964085723992498945409539477108489917198074856505417103449017992837819176546021264296394253924049124779594784303606930466898789230557571862235572083516854020200811813449455653894732565367807629379205592044812991011410447241071486001668051877852940241881239024766318273930005906486022081300551877445750393773996928911174975614119641201881203237574420555449914455314243902515533502765493650479692358842718594833535714160946395738091290596741486523460122015914217097479760244973197182371450752775343066832927575814508597898473827120289118114537202012260941637794919898713962350238764625805189737862062233182648587994306208329327583910311805728566474543075102303307630723972687960370831705420853811451332156791517783968796213523547517010740898992914695631169541281824844560857125774609413940112034607171124639514437368024068766298844934850519469063694757157180336168433220537250836552298927072422363618414673084272490088845973859083594934945220892050726548982951784202248520987244356436121927954063836806270161835681909286168349671823091338427435996151680881799856159904727919467780226499419051279842521497692919099858689373601912841857457761434887066997358255730895458547285781945354441970829112963179168838676441089350438561253284200422859406813270634639332946839112780699698909685661263981894225485372671238499988981742402110553706845034346260680046654211125363899610735732547681108764750080729117530572250422867383962791068998643488751465915326117279459172781372440994568643822627946935620014189851924519433874422959386259552296756069150447012009671267179898605771712999647060459136026598060834672411072480253334763037565457011120948596760623667821679728879133922574511455031025557824907239755285278046201207861261039248245104503781212786847986788829584355724790801829031585681801825935833137953164912540979150351778669333580290366201363121828377653968898148014329044662128222126371223149261248361087434916003194799705822760139364886141558892701646949787563728691422790669920873506085418846322418251397589582048501064606624392900769964196882109166964587835566773837248433193225056620095921469023346301062555590783022232841786511100248745495692883780471899380986029091146747260275533945301267065029629468962100264167745233042487530639797141893580840191561140631353835798512766241033828368846809431903282227353744532984082026160481453354518945484830827838942370767572449188209370415064007017365565212195398280723363274789751401662571617889460411219903951873628220550114342634265266243905586038977246857180035832860375799184053538102826151828155780657289838550680150467273076213472956436401740669043491510384477500638233614387269387556261546471207989816875116944879367299125895838779645886271713853180380224626337775487569242794383180196314274970259911352754319240120559860565850272904532864188979159731741141126856902461492103434918565837336517589304289932819691448734419094304969555692527570855165330354496015392918444132991717280237537864013300252619761627568489980228952528276839146909501118520182725995981905732470302266393436534983933284986155554011884325383135966115729088439725725809882896114217663719273221597257262434481461230532685688817781672793825272428260032944278306650429490849412264445514605274652727715613202279528458930993681794043425812541420818824186103805726769439145456035880379767460102965283116503962962531434815592170789926990559182061204662102679718593896218791604154902435570381288585265642162852537391216395158935865514671214607809133677525163337124607749370405073238850904266878582171898357028700286314418519524288958287432248544374324940251593450603137108599950661271071702537981316168892930467092410206736067270156319938286578089083621815501472970832450421876027885726050158128697268114605015290355032468876141931995067327800901574077098690521478979727583506317376945534952348855676754624653813387026235254708239534532890920075143279395047076363115074427047892205085763130066019018122888295763926397067192439015957565179566974758068152285600787197940480299308182676246671085762599366164538785825598854999677063789015493155137746679110520227786343961307214831728008582727775536827725704784145451932470259299459636496791811320580766397102671099122941619754281126152993219261861613882348566231921499900518502119974059264410085202740123610771170278779745947838222987364827782459473767979225702974528428659682400074615479758840778786187291865477809842575638497490608648888484427539868347701463122804602562745068658157621980890217622083852178482606583589958875309150665488687660622561480712064504944345587337211864307889846679128666489778246918571363457740228283354620661585003144383757388176774708512942258426751626409031103006597352185451497073446210335597449375428366429627840393705498509024266079751549538079890171879651946991345324761975694125517556536951061913028485567339458472910811103124757035908819845938051335544484120446495281635039529036707732707764555185552986516086796828442776990873506742342375153404181264317471388341425052821440942758159418071728669330909998476903545300252848274780148361048880603705384797594617139997056586044232852760266454601179220004505009858949558761614501220346537361502272518373512340591913438296704828775772081693426744894623486675750644742317058340990339250074469977914305086330889727940354223654417502698724478743393427512671227238872116411971680942397449478514738085165830322710978098811018051937423220667468763847775067581474596648659886619420242975644877588703881627096037024229106473369225989623256490113296511743319085566830389083899523835885461717409048154258082463099200035454424433534413498736284749244651043264307764642164270593840499161521179387054543878013844266030750260184419586480722579050679202467190793121643887946425063006313092099586721278345305251903883766565039289633660719905944672830820405421433732365496177560661935556681835081674613829321668755399953497559535579370666300709454822464197286231573403749578822758616126481543440366289055610572850910019045324281604329595366005409965913368090728724689610709656789726445463542457817321366291869467622324082872125421029410549451498668738343521345376511963784001391070491565643662592813500014957356504715009121746173035675925949926166268672303486502217661066358748004325775289712045957180476276611251926229219241773340862254466839858085809683187011563082917830244547268851748198632663879048347539077340735167949884394143541193723592997950227972850934217404871006747110242721627789941576546233039479759452661062341108266174509551336726605035733964502560661224955008806917014356824532035205695282746026555778724873083063556170315728849998838570184693529661805183288186074560565859015717485682707105779000969670488445319271118041984849389375063964236437617638310170043705296434083283127385830699710690856188801497277085064725022096745877175902226000967458464976418721979255809749652766879037525308427240791200930688405318787044451268597645933031206974893362887615151208572144328834606897592153231259223050383907840893736260557996046792919202849505668938004511610335391462225892922713408950783738773989858806379037849859918693549727395383587166602427328404906814473256885983993652383219463367558773120334119636485455628581234579208526530621264731926033288730688127847115500514217156563342459390698392640659540793865656480753560206334617999780276214696520286708362522062684036254429554833756421302781664799668984147040199547782383152881213157601637190980671106996882485089891798143314266622731422921324628612010583618162247645932152538684118844750826454580287057347322189388407472942543358822624753152059940092404234101749154950916920606500340679569244196557040263244156505849570247784351095306740887771750746703549595723124447312322914672456435867820030774562081492941067641729273257120506849710751997605107362472967047002006380902191284215288266747952549423243083644747768739477987117436686011681846138472478910565647143283402614478293562970160188693765335310713942060663866280987527019624286729634960474189998633289351496531835845092691507532702355025587202201582559686588103561229116877940967237797190649979121348201030671684705505102329315904378000279410035692400648632094056221560501286289989617698371326964293557994172539843496109922102995838303869160913522013748576296889031071656576542287992236686483852787235634179459708709337683856258291956192879676297766038321166722114757650384143121747907105977376456900665919682129469572915961288012266964631752026496219092227763590982397784848472504392841363623984384401271835412132389259555972271335975599513826705413930210838181384670499689712942916301910473414384415643109499380034634442429531904634069311256144380947548870837734588065632647709413624394002596887039156601193979423444853042602436101335390270925920928887096996894065669799756152843026186974646144536621729008397792548597756543062346080803941293763057485283995839402652130001238974319468693840178470269581916606995644784594355438512112894142486278686759290680557957626746763538693608410613588880030601421779051310399344020525218896832039603445032603353880204635670018980392760787215365041286346965319897719053520340870583135096026546490972592413289397856355124284942220955319762544029950899398410093863898294264727907351850209707053458364860528988369185292721628929844233967269782149027893008760458466620745688597861663321625372039305049600972503811865275115014591841460687514175337545602225517243645464453273207474327599159626663885773605074618094552257713296771177117723144584921967604399095428642669946936258510798118090000085633457179663311607133208764269170468155515377521589338519277077728920648883638161296745449065085462516789248237471003281357779816506268091504782503803251512238304405129628756221226032750161277338521203592387608293262820506037955781516756418517349749402568469254217918977055465747614740716047560254306950677736555598087049115867629038224334197022071194211483857836238463640748768069315203019207468590102042041679549669757582142622880124820395532960307442119668370674184381496827827520634590981409362284501075184651583065237993386486837492500928375546846300093957903574361808358794606957971111256321442372571281246855150293087353797247737240648719004201959297122142851107826439100232114711460101416232737587626205805475691753775363396441942175295783019225441075970391422950785601186021112035607121569456232765851624436699613212016952643080395108918309909220154967750085329010811202838286812450618047902464498831542927875353376980247059653516226396871800490030632232477398602413831246884294184280292191040594441380357821080246262627095294153487611223235258868806978746995897146137630701314108679812914647071730134706275824072219546285644379983877846398494437314242703043941944382793362718146602340259581039130651540653782167240451916256907786348073739951051140868050122637787051752080976078139393579812828887901696754277917456461399665190271794176150154841724143018552621506204184965321479358253435021104278729998879565290708926545555803060890135658198396516894154759448849549567456388759216458325030360790498788423303125439823590923714875334635853834533270005900538899439579557951822014672699824466168635184150764309216236579735614743470644320707683491707417077718227750858852391771628483761342989719006036089506613012994180318451423658285239357171003609136071470684901913007108858900850385460999300887354059776592472856536261125438373211429108807914152838781097489852901428103246615538200262888172056185568872221734719175562553308998766749158256452771422177566956504405027144549260570630810382376081163562372637963707488817880130102371642103305697716636519545977595014007649875946972398016133316588429082449365292417606716571302326344214796045008427055361979007976454208925770165021926714098858577354355628367179048979903125497712334604952061766974883893706065238516632873873835266189508065334715188898862316675113494527551573074078367645252864246660202864844897043704348669613598594646344610646434570089113853120181439599827745838791217063170320999365466751701263763593582119182709169054444938676003355936358694039734106669226850767229631159126158260807292155352644389035338424268477881964537288177508836311303660550262312039705628045620667693983249753321713012277984925368678382027112666991447440706561272267486795743257831403720357147358391685945188566371397056785105762040030375436659627353169044171199185507019002484234240989933249420715918688050624241443023232837243902005212229008723090066619075759587081761545591365686486898533849943034134567512246549160811371124393506970755892627386447916365334954501308407053536411780019719004718304744239758428420645215354874053783050856640127782732293473895420956481309072377893759290036892833747783201327622530775877433786255788997807306072470364049291841945448389260237545996564531213504035828700614335509597333221129943153426952937375301463627426825186093821624424663519239507408431757757926512361467987709902000080342786495071305348386274084692779222942494707236691332677358069021119014152314815319306507020917032499178262105260943211362799778452920368447206741854367726171367435506214955746303728781376003179801630568554858593856959785130563756472167327880929399538788033912392680070031131416664442521368551917997482633855013235575036483974239151432754757647768213071470450504529590952735980950753134097698787143682480751578970541587019232582541675833608719168671289849074527024465016808403044738954947830700996964434168651941061857615959227393803165048976749816555198659961922864898234033536055785942330770168670020374545414518793326903127035272144875868407268309894444257238610981285710231908807441939313681781966809935901438586269929934422461282819013997360675208647883987314265160359239626046067885249182504971874125987890858869639955768463493507145816866279301110185708752189321120182433703899431667120597282302428108161672565361312742411163910903384778088454235775111196296569691745383641821446697501438692443596732484155205679732825676502419489076278880949246333745369589268491166893830040827781136699647765842685881088855032522797413916182787724465805864040909620891045506227756824223323308211135523715928388459352400095475883570899800537501005130567223168684415875395159224480264325849156929993506211929135395473252340226574194005584629786973922186553360074142772451637674278450108269589907766015159100854318796137260436995984265762314488408218342778231450404527810630839958283245256620650753898152787394105517758251874884316520254721408199657201694961260336886849894231083512728501917634085536384692637432451530353572262987116257862222680301047077280996419199470060390497352818359783749460354919840872338854739498478030063110370829691409990921963159955374055145453758849354682903077052475072775104583206992816771456317889370204453324359156072874319320228213711539332439694494090541830408350238590022396360077375493950423334061376127109530809401477671242740263416208226886878934936896967677612236701761346425580703505413352738377172934999925992648828232313668014903615307955674278688108051274080991429667457162616642248993121986013491491854909495314113696996332336725234137080836833374465083808564758201547341896076500400818118692177910347732882654889249003423163985796075959940511777581669156457645803500429801223109490860435308103658192593924340488556550286916455432176077354158854634397165817389805759755627687836434892392509053308482307329724961218410806354419379790891199487153526065221392876777700494295771361410973931099934082651322305280955106650916478195758391307522596387133494585778148992622866774643416027092695776400234848599686556066790724685351270173032764242489446544314430345415150164834404198990485735473559145091912259448280460077294603728333978738261469337880382570217310513693742173951822070010860636095083521310903660765994655906875358011375162704493598685011989665540586641625031459661967615059739108462365840087464103646252688271462243917508660181893643020854758512590777908192759298231347569092019824881839820724642532835097289483307607050519340817916851101839905984948103689733196335999795573885955073331977602313216477150981283512342131843134885092936763445531251682179056869978147911105206901554974821116875580309098904270830395995976516432017181912731415929309463160279811072644782456285475116035349366812155341846275272981910382192905380212026542907253774539179754479787427915067173122718765336967966808852735031620906794713580733011218093757008424624225937011579133051447648970340000858442438772871641147391547536900472373897673421353738454818462288831255116838214569701836951993337953821355360166108268554705233529783921841344555322777230032370073284288319992264958610334207482246709919151676151280195207970614630404147561805094131264597321318642128998133777141276457301883121738755725306196156975924039729632817512395302564557133423946887790704542591002872638378202013031312631868958863636431725554591976845155050512847362354890097388657015585996101611637834193107879937706150555282049124704568031236793738729647133617943678533891040066365232718817059356233858700825919321743368108937694848576216531048245850307635420917285133974992225460516722576366429017360639646828645784296599276557670930840102364494063128681874931368167829098651014041229218648241569535379739121785189484222673948101996007905273903105940607375637450555224319360513536726820580694346542666870384713856423379153138705421377759428291945373998253908930930117989041373424505151502510157230870074489857874381826240872486331462861632317139529516985779935087742828905001807868027132122534991862576889060287384960747868495530770584409273989310982709235294114133528104231602213838368580544547865169876461255299562220185872706232205035169822547901856851697195270956721518566668093399107703822719258580218896636678276772358216954349932537884412188153012345010723724075261037130469837854351821084684658452609374872299889720330644938666823347472179630097334630937111297169766023787561305037964809248885180405172992181428786858158804371219831983602647917032950000879653668765367583171607850852177954546170879371282026235059869551077745939750162445492342392841904955004307619671009724532295932051500612305851455040694486902241681306018492807363896283850998013854472228762632645031879000982847448523532901297054668625564779566013819715954691782258850839903725380846619363731411009412248110382980302006523360116623177832797279327683399500399222769248890116715143402870167942199256522928336176950266419348118453351667330445860847514081976996505585748766957318156480254986656234789150809483276265279592583900904188536483677743964401483431441826197354718826264533698680006904325819638304321843998934446218050073489448823787852737223455415788750449624770364082873940219416767933506234473784730732108888047884587085213774539417173098930514899767446292697940380029951040170168487362071417804230248917814187520210625877370753792644866413845267212784875105460844016193000595304484857849360534073970931267994633599728580316157684390318357668574226984013206909612666538611417540401811109728513965184670763774719636972984238895897511781512747818958696060005603107461836789672082392262551449243133993042427687885844272679978975687537053310473095981136972202046567120886373549722431580199235639177517313937187821347864223662747947568669158135971788089260960744426981847425233674679026105619743993578182617654644248681726289531220910069541246529672634222051369484811507505837080947158498489133768177283891019538659676066537445077524958715408188344257250571653511862968873235060989714536716402808127361222887132024783179322722670404228286165198520822509360946239916737242963850359290813957543259248541866195559306769445865979809902511066262743025938450428721459611990258993243378881519878569976556806914836333066037293182541531784877345128479951415158703368948322719397548729135351018637277114121426246957071377455789619677967089697510396670882402256777853944449310459636638719012179483658572794431075935390756952470610089855312760279463425596068579491135022161584374509555388406824431797449419653260450074712314252321679883096995575516330951320859293519050362249383779980930283976536848857300222362145196925726663990339159068677917277899055396512926024309407791422967741712520910177974339453823775042523688015548660088038359434547075397772169816533370771185233408875696559444514785702017443097743695257026540134761735863159459723348634404561826690325059335544953125117092684244780510526834373316332268264790068530989352150072417287402352785499973495157106221084696036507681588430292855597233086715981491459029165167552883940298941429650893044544125147057353716264913049536814097853999918623948763469472601737776240118543908291794382784852678318720050453309828083400890019224595808411889287041152417760759629969061162022931300396549356141488081519086898916105430691718226317150258847588438412534321883761735921982447047380316132749672190086479481797649216956963023716755830067538254568540074299549033449600065792939573793913892745109648854710216428211915510146060630187977796021578012685456457937340621307378293990075879614411899741935325768613619852253954688178871168401205792486525345413750976897138466932446958418469232065649309575664743115002791959473572728420081921437806329226159315181535615262830401594055322483985620642249369957417676211961936321983169436171361248707897965537607848784603609319086187288542861099403127487380944326719211949155945581845936630282540813021231463052940992426756493960408646346845501194938618367386092574971101273953372870675857176748480098542216042288742873092926154603152473839759667578806654182184597568229956760792265414185487708112619105412453593079609328611979187536839480239183464133340397443358327354068795555415901918092374844461746684568409679381518444349417144417981962605437923138004179749052797341256676654301112433585200450775284022604192002930962551638301057179079529130482264623178249639305651779172249790771842522165425338587425186140501465725725489976334120484109534708597619518935676567046575436690768212409813356069459779045680977019508336717967104789897112314894762849279698045312021679702372776266623087346959209723390548704312727298279144237454401227445173743228989006650669253291859589845935721408491280721084702549483784522642985445025494641206022158958653183667078640993692361808712908036493700376420987492469589340510544964633355407890737533364787030228386571736244849633304346932217152407677038360898576507091794018822287908224342907472150465653741030995619601335246448004058681516705926106780601897969346926613730947940361190605455487764094682303161542815325464988524038156286761481454521297407334777488748752887915546694043457887746743278716757644256428945260426821789821849719079920257359103689690149398731502312454284096175567050121705985687105129541402950319254443276633911906111398376375794303904884111138678322920209197330278129575387639585464183994255447130374167126194276612628922838622794606032065680830700491648168814982451263712173282138179279454942480058692137761388370142521436066621922396568335535843531912882893109939377487308440504454345334193950219042414853255780983223337935050009980709954621655295474424909215440715744280955897034542649595949459259426793005848896145841412146269713977635829352256951990457839526197257706071196674987476572515109569388850195114380012566608389706473152263721939918886299705041082108850179061899455383680629052114884996171541360991333265346503306345322002320829877648406704937304051211908642182811328809104795187792308688559473767334934112666765648979592230249200080507462721184594408595266798921724726392039988599837424089956382767646449387509188071944522766280458267715718083558576388934192216960303708587921953082523407014982539932691890159306046358224003498138465250714972917839841406206853058033135180061060608725306436827158468320242595806649261445637618607661820133844382110882391773186373358249850838640961593880545673691570211786970313858150049040820139375134420863290122959552993328817700107745962887476818833082660525210318799729418141971538516585119183744395645339311903739327570994635581310212215250697284230956570636656709730699833106381599029331940096104452499763880630944001744105370922998930702200747839590207713261481978694775635168886148109355152495284321680469480407636418089365681579711168241376928080002248817019555159752232060530903262599712274608012208547571764647291579447726896968216914098992911809147169326682825610658869538802873252747501371681300042332578019861538407890316180069477598850821289387319281032923350727778766701421891974089409695898373754468307623076708492713809121152945032497930739218109945104051805575745526898024627046684487227276939309957386233290704360165842295278051860329028634357416604690582620314184609730610097073390860869669181877473098763096813377253461437876814340862498456473391701258539655633869574411661465131946881794133561677654228795101273413459128062595170745362141651163257097657410890483976150208628403054033975340217147208749851720775581515301828070516210125014710985140133667844784335412325161424173505665069411902898309601913569056038087538466617997304635153262190491530692518437196098313743182105342466191809843582659330454926778121046818446981567516292499522605713405129605339844575170763940358790526094203675157924482358871498852414438498360361498653248548322497059957065905862320545273104279905603116732598829293923821811200214673905490665566908156886036264271250617915393474632354742604849971732494690109288164524729118914193123368767346477925192490755107171718245708298750349099531151972013390785992017263469402589248866342911916987193915436295563078893589262320553494827617900418992675590348186912768330970219234173124247710617064163042094839361429623220579080048664669860461696516142484544153815613385642879942158383903276162719498025246031594413365177265908886378804222123357659484550720398725985747433738740441479684610444144250206595280055753342982200829692021822914588022479239418791694351716445686782664279463242887127902146729117108886180696793900202269608935947006320736559176300033614507905977845471944067879012296039536759480771529584370318821961278196011406091417309329713343769922168530522432263900843846160492196594682941606449032607267322490375236801395159560529463219751313905356510866615915959016625250656779161196443057882251408195783692169731134883030392270851255593200664117866912562004692894211626196792332196664140068641130906050824732011993834652392381877846644148632555071229766670748342266875737200022209214309256770526258703178889394535822753887689100440823834953514000398377464376914554576738361287713142254883597220362059490620147766355183778587584473326245456723355843340301319704218571468566822469787336877470531496054689030869591201719529970767280331536489472280540474079647824181512278878257555947713195028472827002644798285428157490057313422917619572868181851012983356277306227958627720956935678316379889407371870328005679898736911421927993690332177730677458765027470990248670347921568536423966249088846845492565377039805087580702617213850948663019599251106738732681376086744833682510313918094077621933569758121359790945817558645634971261279983977477346665623370438936000566011354738505820007519446457227843409376601492646060467381701485538369487502440660193273191942521152290644705610962990196387525890899403231839599202574097292215874648934351497108071500918960914242325961516423091931669643392193487877714408346564121093559025899389281892112542446452857563006021742947396116194246160461682024747554042750471551602078797440448039319313558876828904991655747059726872241384721904760947321504604710599032139011574613055197433217188717241097043515921427514726418964559406233578531135760504491573494622215520679379966248580392134315361985821319849091633343090978455381651548967076564336796534555381561884069293287964795649413149517066343409916226626316917685612410057590011823336891049617772554997690600832642360783226749733901924333167967552202255354741822266788034857977157244145254622741005287345538384491454747923302931577529994073119373888088583749210070589254459918039249920528083881677552862088924447342993484375116101640091231611406779355644005227451495056113496282582147974096811766014936519774379107736046566576030934148789254132755598827860118903140070081433897848266911083918130156939201812114820296864379107987314161209633378862674238361631907641619294866138661456903685704088472956561623641091688123497435865622473052210234879418590668304089120549981688910060507780042990203836244806215903135726201445911977757497869261734969160485767311670579321092669633294052392269396811583357430047079936044672854227749300683469992592154762951733858694063420964020944222866544746147155755375535302457906744865827706882815250667398707795035665950946435002954462320455813322160577231947864176346849485195917546743810027599403225949559150507183109788609197020435467522911583540659277290506723813336270298490345536764770909561283460578968580429188129045287628510442382242059350602969158618327767173250204513990942905117561828055106885059159815490914664736054725503866527766329569904691066070331071170121607374464237904312653454966605430418416758276901342448525201626010773135176679005767458171832894717668141251697447373004898381217020598494910590984284975003635246347861629248151755814731516909300016859324704918870569433377286548101690615686331453116170174715112828141830151571664076290028881217161367046938622986638393763841791615204510601718740703788847935161107673068020856454698794953198960398002584527846359420162504941721297230546894059321040690729315106052964087725028742938323282926950101432068674902707348666063164579343831801131802343991825982256196618140508454637329562679682186789862134184806069809739278662285005383094630146747633995144224787114507690624786769824566052589731340417387722382996451289271061694845551839294933568139625554621343411131852416227147883143024047114222553762288998060145918654032890574919571206608519903951476337748520849980036841445947751555936866140979061660490345482872370509894001425132297132690397197498124567192772746373601507238603358279022345398842382535679733296607835422592898854657594634660382549742503699237636831364909159401955365937835424407877549360827657039720952783043775161913173853978216698081527641151422912837948969369682596522627253744316106712372270165353520804533790365033863755635859567141912313499909340548429534181683313695231240491292600561554677632161017562240821506385351792746836766833531601277352325731609446102131736921976687175069361008919407060948876382370485108087527438876949059634265080072807188770105666601085970259328161638092779967449773547526592034770213074521936364449898062139983556384358610832122385368009154177795124035003419631011934007433064042404464565541998612589082631317074080754102742227336584891703850031129720572881866233075892124705065704742390452974858551876974115336926310531789117627251798504225088873432172131162485876385953876198170487473155178454758066443785970350347144562901084190991045942379079809550218844211976682616311578995767441137792776624755296848212978021897992603206169277058058858611840922680274691736984041494564846599035753859880458138928700612240455952061073679379308676642113073775260493580140055074110381408804916113862241944092668306279307087814765300912502313759984852976386991068545060966035190282826534513745037802452738047880124523808767188828176411288936245716428183350233097830846823848822310395133981096391648360673642451923926761853420837582754138458875479872087744178944331394631206345500614824080637348321075299694493813922613331861631296500197790325271799612176441354141821123906120260284816776232272706479246252753338224695362544584034505603671152936828477662965251642291167797187102600387212096770403819013842165996850250243563479974729108146762367642066499066381377212384324310087597206832576068370597455614910934087106072558745748848879553945458919532284438067983503602813013855780936932888125774038018367177989486501259081383265140293164852496572056398337410991086318712662545308341737258781974837158228739263066688090566715374135505371009181583918599484551800593732970964969661495037569748945884889669573295897780586364791559790252335817208508219692212289504320102948808692426967256364664518668320266246810690065279294396709420956798620972012800425920881020559473195139190851821703250468319818070340345037673955227517259696219560222892031003827070511355559220832668044959496713402363137944456437251613715693777582791201491827648796109868115706210391258352061756937146416597446809509683763730414549203905307069654135990692120073773138364005916698314892120830142978560288606241138211353009155894680097241126480461759307129311130185346813123701853272920713065675093222319272077970385144644083724481184641641316793144899821104290497882474234540342021489770260280202189370958506342972092860599896841389326172516786727202673998564965032637122237038928059303677524751507569187458864598582748795857800544202668482337686069368313404538318776504406543680406966791260418345450054831577926778802571331347740409230523889583963738609414545750793185382223847007828718478094612955268594361063368866376721403786643475874436426931349353542786740490002432675707745289549759221766334551503957799056078723365596226843915773715442769524263136211284650906045940908829920817258554882125022697984517102794194228254178281726387615916591924703247077292685359031863781713500604016296458403966912681173244430392484513604235257802880018543982260167666281209674059511568278558907577668709996737933609092299472357619966664565008970133514993779481242013003293292293959786614970295812373511350707273428519348415666242249289807702275733573413489866982811183157068695470401089482396827472178544123107192682681644352678808588818844084808207832819063311291518957966896601580742635388638886602285157789513348396457169999213133757883408407547092764147550857088264783820108481611891863259318766507432628091600064782468062271030580918054433300372728600457879062404598775880635121373316550504276393582523158296721972119478947884512203524457433364665957039882102271677651345255588419737386834002401838473463205695594990172821345821686026925506111671746951531817119364445513245215044158674533208699841199385922540878995978785766388556650786335584368671767178894604415762950013741154226844079801351640146385761774187420853742795524851597017417388404435192624471338460924937836315895810137584687281834157747352690183911321592714218626253186001797608047545141595114126589792690392140413458309525473396100426533497035720378199579183468925539627037134017768823033197994792585760754089410784657692771762183696877009905454439503111201223143706013716984387275798838056836009266744977745329850640426755565299609688999534443081085735821710806437675633834168965307949899494864024796062696407736229251796068231486755841899553602736472967330377568460482257457355525689839099931132320560870138940962666299985926332889848863239480292626519701453652164787152915895898286770881992917747791565948932244895007829735427001341759933399226415466063479826740190511238501862329934806773545063483499331047855909516015438983139027416593680604627925088304046341223662029746139595321254608827263554394562355926412472150179684294113496856703191987694552955371096167398635656082430741912529265989625583924556546554715431274445457743508225458128329061325950821375972708819307907600455599489695763765801936324822833097168778759513377545549788583630842701368826359789863922894631750999088952366100026377803108942245939543763652205352394798470938044379494073382302156444571444644506358811749907898190400996914723896550263790049097427664810786961262929840124550069006932279648714390048382856126777755024018199817901181111060011548374600698660324564433535098541374870998111038191440255634498865554128358815860892671826067972611540164574136508480700942281725002322663262058129949990174497774098853494183338974853547724579785735150074489114007062247466791151313309461837506457991110269565776438821804213926215014218260001618775723303533565983873832291271904785950009666131107977637722165447431842393597007138344857066242816186807824404743863279093839306312816289103460009089454269682783361978411128518071340055951102648589550342722371987135144184675986758752521832044874650045431957159385112533733625797264034046617036817717150566611561722595857197820423137584710000662111730558602917747776795673788588531548208916564580477700665174658089251082548360759662147633450810373054804808315250659532039691367625263837903884978175054813946847404049954126509102534833935410949086027532004209490118759879923709262358640621907137699722503062900546659605398078815370590838989163000556050813368355064560735063198331891608853072965462720092281375526171262293404365174132839051949480354480321528180750909949392827633674462979162720657204793967944499863349833889149698821470209585963669218742691664712130077739270979858054390524254510510693954264556239943179719823876937027028875221727972289525963653911043820201946423783820393012236813419659616649021065077928280428464909710056619817773833386948308382528485210334000437132173806933709078685224617837269525909125720856188137920635649142351202600239875305199919115274749507655079420638625524938950643357099102878571786673721432779702190776343444784433348198577243831763625500053752466407866331943807634169211973581244041317973786118717155758028214633198898135617488461823863256862836542348726519632678119745025840315428265844243614277896756933517796278198982007843938246454168291074853853678933817469112923614177553788693998323456852031243323505090715171165651711306768273152466709955981287459648349262626063774584656472416621630219315755146479267867872708865671198379186029023281318329180825266669629490645214186501348283676206927446508994336459840614845479177099810827021122755836184454937408377356628840173211053491033517170897631668232788670425867824616436367506385301665182797038674145315209135949161821546550289454861886288698491781258902625340208600206465720123979820518766358108588910290852147803387004777728126508404978477266947349872914765472470563873471935631954449330628257966442368685793068290846093560923308841078152595122664002718785010663069168303340273212954714983225416435775236430554133868902520433815268750400916088750760808419828228867758313362037384659835724884266366331542665076712452752084813569273927683064567241708477567622892157293655811850753791301226438565605364280343479850852500312624804571803541034864041770681160125035903824763270748139128408193680781466609175837680916655173087596607016007667588289139520228298508966377551558229348349657113300286246479279701467676840621436902927855993987527899352962444897903530609976509348542764993529455802800257860536242537547643493629855085926804796261953222888178147780911593506516843625944788947949564445522709007650350666264542245766200562392032915773533288317730970927442520858744720106651237016993856335095012939878627502389416241237941548437219094159300568546748765834003118252544702209046979923973800148988778436153086763529249280136139453903212451431690497772231892987129574787285336688233501736554459682172380196506774958543455600921116907151571362149258555936097734934076436676971857007958177709545713465790706390550616198693598202542549490988734138135273438294284658922672234720652048711636511669934792126201098817175989843808792061735041787858799606119335445966261658952451661699668667857663802711110100621761601226033551027861585051611375858266296923949639031445282329156165344436430204646184616118737807961055386296968294323321134474481290244724830080195494778239528830202582394897111078927133378122714666219045109287966942341326827785725637238031397426854220262641066823448635103349681373696947380845539528850402803716183892869099275936593930915121516854350081523062165848886701534398853551357892164049185225589693459645476766043546615155742945204743080072579507769724644204619150450467473115928258686272958094810254156800183765088724034163952678467076736651445651449232515319656971866606718930771907145753245291645640521367376510770130406710211533474372343891195386358128539297250010780957938736113748815472749317227102519690891952577781135022955775969573935986410566382845224234219445652839348177671503651169938982412166878343334294288994880578697950910818878942417873851040637351819082538233770372149661952558750981481172456078635312568353607334858892329274469633833375134055550661432688237751108703138715482828025895720726675752461115260546923777246244361823016313659076240979679928757992875467317572419017332197455751127516456219199376201173401050019364291470485083016240595982128001748164947162099370627490855540093981378465035773331172135583089266891151260134255216680278625901605658051839970570396375899010432407099606792975028677432745278248135706504736988484032862033403313361961574206437430321337890553170880275819158055781425021670951815604131722524967570738885030665395826655395153236493587257938941621093240246095813629807345518580103277729223390892262288514116354186814498173875157828316810631340348349206502293346114103422818775290036700668411337025924317691824002044649347027894739489971429800991212743281334452365526801895853216278415526460939661107385547943656709962167164821097703881588576113703659342253453379124303005714613720029301316427537344198422163611984776028360938442060650214124079705005030082484785360206470750401605779449564285591957207863476770273735835108173857404370264030272144149942245626198285538615931869772437872517461466825017077190937044065933619402182684633303757088077024035601031341016772932332210993875515860809960546023839652615005898820727725556344587806900809827683500414803702218915146433823200948941446304414255641255037674108348634243496729087275796530987775235079139706727949289269132683526155319219358972103180181642588810308244422119576284970194732192527382986039498070089214493364649435734903751273990057660407508196141210131966653971732627307568252755923228518052988738788630106619984364733729299580396369262064238666226762954435564809105871213180190889822843124897979775943243591241046338840004930028754753332187092435943833639824482073140482087478144540510187857459118256674770567061701924658060907486194705190095684745632681204674484599719174543009023227628963367749773554225733175950292846977405902677484688233148973562852272640107588360571646276989290880857490102105140629735290319150353628606177823184840231657146391159450962501952317052614089472155539648410601148103845266536584978546549314849634826687750904964658331809226241174238139419463348084590353203168487167991506376292314901292731367211969731299057918347145610605965366590576418105448003076476207446104326888937390939980906209667813646116583356882486567143534259761685104834185478557399207592675284927492825752549306000022122662836177145853680908758005243004196633943092774616773743609166393132237220540325931211475175581495992260113965274445305236513357619055371820667593047760597705804029672742285407836380640302280483155235287462113825065819537407090304576709169796052954503398323572719215380568007175679250758578723900040032396484324273734397710413632693639996635631872138292248384453514865652016411353459713453114707984575319020477080537952535132410627851720331091031153106107198709046124823529502155477913358185206181602263633459052003643759833290019789338947249629016082804516823486711836224460782213489977712467718582644920901847151889851919176941599739604428492335504930205916362808921763371928615696296879932194951897144843360245950677543394968988099137343487401693544595681934707900240050189517883756743266376765558022596738529452344945402805494297912328080005181694115303744415096688581662034463994864297406167543521716621735433939526635404299366961511804020529518685097701043782969787266437474650883693445784293039472317413981951597925224003345017482232878805469247617378954748594294495496847041634355855330734954332491928661099056568384521939816721450405355010098957933880826644082080565724855461104880742256493067321873430255131839399249861182070439923416755675560423337550257708758989554295661838098359278220220228146812177968008337378738613857029098335846990018291630882249987022795076738452979494378580990974228322921233359886575917507931026124006049962835090226453726425332203542778527627377281872310298301371675473454419982249247118649013996056818522254542971074786868665060257886344390293810471625801329949646962985551500224091520967986622351442793894698188782094715983508392814642422726627211632702508692446667371435816794908380702511240102030541762228675390856705460692710378809874059720312989654112293109212607698748986570169119434825267156158599166612657286815643919881004184305520172095807012789972524624685446830661340180598225594704797517337357411636697988757974010173738097375496644932582471055032707240294792751279480811174340341954938965706415896983080719669680988876667377594587505121950439331027968730847215550631287798219262834286315672985395248828885036487140396972355626789535706849858514189053109773567183242513545475709774115107692273828442718995707270268096779554573868745639845244542626448185055451265764679001275860698674420185751757260799363781532583521959271473932194472581266422995816822674458292994663144470918234226274679336349530518139741353084966428138547419137328764960635441004882666558621498919317496607760108578012725483088697755895705895518438883069894812847127313281900716136475511058745231594133361755116471128214785343618933478535083511319045115050206879902721284931147655651262520770639865672472963605502209651669105724695719219975286647186314640353294337725999576905546446450339491596380668998378871095528654145585130181474248659508363403680200989426691597372182664107156689832074439573639097925956785002451891023008012577419228950840501747391547634498756360114685559752876015763085469748414529767502099699399549235883439723541376023855146087243853176355292267655496695198920926259896329373528899748743066318407957414355721394593950521674420435531578244042896349498262342976720922043362912726500425890615114824941657132365849470025029031752043606070008426406444204950338534261368307794394140970732711301898338761911428906754813124247907549895745663648794768778695030701774719613301766720457452509831827167726055260491261706246298465314645106483732869574099647333660113505437808539525166125960862400043721713266419025951466988619111375476086030990505020103529845201506348198452429981476089313895550690354758882393995668709298950062732394898325215689938251323025330653549737809416726093744648830224191999140255904165479301463356751827802967412902809843657017312387495516475950646570501278323538475487895642728651336508123065274756833742912416997452463681092574597586884892197887122163106665675570908329837436018648337114451243242702248688898279824006364390247015151254135700690658620417845685294249810789793357686789824664348407459817544499518962792284257844262977191759822266842091234158860533606953380438827111879958839882473334179299918692456110449988358923931515216637567770312106472058510260757826955724627855107910689195192585142899898226688219710938852382994335299113114304085413597901609783959205751606365688094908955674823718517720852236559850780356284122454152012687843404808463646483633989798387128728460136172623305704850189422206604284881461037072985492085861154818355841984814354322681866402845809108077510191461393784744322817720396594171548076509005641031087175484422650149090447762906628722952826967601938778800323662616233805492444967393446479756773719413684114513902445377034344569005345577422991879454269082483067805100344622613701923546903180990465543245937303562312154876815116821059784299807602895821394879867763347547099072468367026299576558630546764115590047946663600778517216627884269131098186075029120736241633371925972377602972005141938598722923996080199252893431248249968007219363070843838152215700251938202990249395137247112746435517133735354437378805667988957551769497864934554387544978551016700189116806961588847412499245320794037313979111053036569213268704810759825497586872628557641621817347140833755587554229020536419896455676523656414004659279074759017157679893213575407766906169506101998246339850353966052995942041281621914214137176180464671864001717136775144885918424664651517302478607840238610353666741978716208842446839460736109553332763506047928513461379934702964721919952329156019395607818138685534008754283354694328060910382121820222509044637293992990583873943704326935304315380502644123042807354943755761047056739021330725869712381944914370066006803286104563968473408810951067860431414755433953708695277090967215086665772747070216483524801570553901776350095321956286436770751092319834666732621221873994294638582404367868676764564483661466687682373009752413546280638396963559953548404651896467343238383907753982873666190843300584768815508690880377007320218663742845135780346916774740920947588370484562033274867526731736486657125043355668453668429924535003140572978958352262083094309468756877903198274144591044016123095260095692789309854163278098227622642690997870705559836416466310490577664683744505718676988424172967686100541866169280822422873870582109714542452595374937991639620493090359412423396946722896533507564030104363481636439953936154543047379663937637629611009639429460640676577495471924277518152268121742644679286962978899555791839600064236620480771732493528810220467736423686259604957768640176155382650388714137933472254666506687963456854277235759228424165478772011846051139450245656184427069885887699717389196776262930622225079701404972316619208221297005560204039289392000102516689341946451403998546038155973661708485211304316060122589795311203180979731902447304812582548408971061155379578498380410679246211678302299231025396820491194511220845660997189090762075873501540200420042842895370257190702992317176442525951793777601344581080109814909254421898675081651215765713163322813774703964338760323001182353896495274882249518530466577580614462293418972757248052868689354267370980859759807368361811048626120156800647997850296423554000138843203869160340873113934132035031555208731524062313444488382896793826652674386351163219614723989462610213456782840230995361675017119999588981757649398055250142763575355290134331750542669389739541578281508607082403269759079537036378658115189225590208324732183899498005702813065030051197927590679017053829539368802260534898529748959500818506903866844448445385255682849406524697756647631856594339662440336567603799700154697975660142699900272374044991486518770935161228176770084084065077909761212507314466437917703402566040220559938213942732825112114412240685130586531963177459862770158872147361128668618397307920649133714323147732004534630757241753286320135232863186651869699741810703094421620045731902583567119321091083477512934088096269964201032537455438377079182152273830304659835919309176432015977575125788322916535643100631222922761858646856108339458002073230385913017662574766208087827764699579636899144054938206198580158329789922718963879217042131586927645198167810080481729344444931857930709825544455342419277356434984933522871118772485588459916800874871243673906433871839505353030610329188716023483021475800918280602314007446371542680672893511748750542516268861230244024946763762441835534238569186710655147927480420072591066138786580145311501018417259658949046767330106420823230712511108266092024665320840757372581607508646404703705046945094377088048769720686897591901538136955738950382359745732017449459237420913208640636120241338169586484335208317288548211653321921629481702929550237113659447541143712387240290301543207784797271751963139628499879999217394374023391509639931516966346818768836306843989350139022854317657767014466752906579133533902332911961542740825675751490016011528579136032123234244994060815224628576595103252721658106298870375108058231672026543471391988227946390914811248322645718362107207707484407976543521773392312069871183595959041216028985181623740274371639965242235073358712834393359631220553921074005908345437325769278985403611028651028364695765911707618077385358972740452200574810297225811723763369114243056416047235862771627630582892274171331078274141205374861010902333865163875386335682571967676278326722400589727424680368903093364503708080134985542430672902348272456780919486700551295423796077834386438296463075962113184550083162228352607791934838458411965979634226076695846911318640906021309622386921378514245723351756369708946466824665021237626609063075475059220582924362956715729384351410750289824893145023394494363314964878487287699064822056714340201645443602290323458519482701208959620231176932329676076589781745009506390794164247580934725975340521162797047482584053445904968832548301997635266792489836792422947085543309226276011277470370849152437538417269615196119270468223877890860696506082737878531157404729092526194734254161041459143121640512597113630450891361688327786078610527591965567745923062168668202038572605499274772462884809090288868213796090706041296310764976481012602554918673849663675731571334401262164756577325954606285760905041888366339134515173108157609114733705669739764886018451248297411521236488101519942260977350751196751671701924252120712573779423194255777238808622330412267840561476734482098731592642669460826284442361598418816867946170291868370061926546912884537903281476243567064882853049052845734434531562489329625428412227138218284795292361809824473877166084411134467021716895590066215641062092069466946825464386141904182352749144516894671923879350884084197483698187241475130294868314277577243167440918457525139160073698936009095286301974227654900360927308639539491058723746365010873929526066550562979268561105922800768399846074531493643050395003785116166140328079127357387505318640433194180523547333727574303157869319142370392675341082071664660065889599469083261557926361336175194389840170907781586651520622089934834252889472441248170041697055314724701256010169397267286142206927239202339499634953805436148128071438777492787034118107560966954683099768617508385486382453433339665636616962818954430190078434302669341014684883374071272185020567944219367083570877334128262548689189390777960108811631067560649370147240986273240898466398193389274966267460505488323419326095381232019712998756311697789851902964838383686930483067605170472525580824226642876729310316265830785039844994266135516856979270533037912416717156044443540812020140433560027338210508958772957070262881147899573572097105435480807650725245123618868321167011558432920459201921251998196793887981406834179668376781956432709491090042896673820609890448865459519904748901869102533939001904963179354746408149562597072798165623434645882038949970947619263909656808733768664043574059854092359935494006113749267040935784511221904559540890975031551274156975638047976366655626980338518221193764166942658214034336439488556080431211293649452717136968875236926237450659018636679464861060896609253207317865031346312605624184432537502629863619873018552506702069544903267964720846281248474074844218292242418975068788245851884676019007632174698760656280922360058574186097151896903716236120550076408092985336836183880183477307724659787026961173116272406745777432858020837435042030111488136304451805260489680133356367777029463305775653620581671337996859959263783422532985301766802592529669020597041713245204299001629821752656663748593535347084797228179888276740398255271954198086904900937388066428609901314681767848565835758182914333353769174774155637477667530672316160736129619392947426239565351607603197779567586242030847315670540625869187548847330986133222082302895102001198505543462899965983700369160506394734115738795913906861718506694171600841482447955413892735229768904577124770422375539248877868910098458479631564448400091955506771221047645791363271770635235658369663701410150293879583883451098472248214301594897845388026383015681406295163968594372686240708973768484201165866337481485164018387667310380767873207119097578612299321804823078699401914832581706771259683443363210099540622193267672681601151182060343756282135678322040141707130345864173446403371476725519455662111471446525702364903834392302687535786476753963627336430188668916894469807532447664293180212188582473665925826730435896336929976063393687454330667301078142432530994362644093196897308678049239816968953506441630874487113188614261075057292651685000720659605675633905903459119589262203490650404001293693955044182734325107250506840184813058464351397357970953191611873643116860348705473113588840743065926540370166716879575780857957315687451528370293415600945164672083807913771728882475843985455447867200645322089261761001463091916299483318500966501458589019674940089562424847767437933596985397880016869818674528313745606763968270558633934353583490036227461450565842918326022169983412272966360235707228061094061221269734708820406558124092260071244602857443014491486351198326197779413981178673160025098785667557044640450406701412728942413222843505007841572665431600618349803295832057503365174015262064922006253200687596180171388225794803369383602712171769927199237030254425728657641962022388881884812140771059119176892605947035540839610782179019124188619258615064148896223341716880365001854838850997878447125992456141950229030860870508488531397915655671812948775190294052651136951328938483461513350229354003577280850664391758336373407766518202035376511936732421642994249551883409857461219061167389448762081490202729041218763494235008574311808740514345673438979705943337489283023693465317051498597648045713792838727018177740355422701545001595836345486261972428287308278897025030234865852333876759356423665762924014463983412886732521640702801854973325359904760681958180390714276680788527225384714353670702510303568470528288139510664230610915831793527108965518848320658944809399763245033977609130262583784142813949718258312935464975129736798890156654022412723357217908577376299784386603852209323414665963259967871473782698625441442516925871250395387475335645374877271649459279476879130762753404851920847540258227231759773768983264205029335952854399997061946620009580315193146163984186998610126100577245820650588959057577584108605141919215924918746966387046597908317782690118068069240152928916412465392322619756888271798940753563996592594304470454952691594710345077218075910414596795152236700821351848544827096812374796504048704893954396947547063791125339151697775239506120563040274047618690304072568079065921629965739723521404994527787949065797249250436492922452233744265597110971713690404657871434156672805055531877813126964387465529512879698846671969140849912970800746037142284130293852263180091745835054705377815207989603925516719086350057558926372347252372821864396358625909375936014101194890791246955962888696117033785258897126178678844290834086273030035865370138579677633313405078801076295311644321161394466053481652181256307258945792814538393428235019764939710666800823869298143423831547113070864653369906912022008184401347092070767356413701292050198587463845207530564994383641136569903155749053201705515817710268513508629226779066106976413689576628750325258036064139003130308268622566934055207039361133438656798623354856213016638540042321130249229989532968711617979036459159393626152570426195814486839346382839036965886698564460637494133179890756830193151018953576521420887303457786261593370880399714641803271571609300326956610121351968696262993950640610418444207615111775357011840728830856189519472315123544854481716282194269781170542866003489032171621424683492375678750793183053850234280096222786421231176113016305871163205159687859554278110308465423103295697998647727678467944481389104366206829457166910593379153581603483865404770142806551122633896815123046724569148814589002282212158559629844329496993874181281949555137726738755985460601186836511531488097965204129941705059850229726963455418052971760746192233699879640565297956664089796028936584247434756691040147294254582749783491536024524030773879920628330362678055552765252259769167568921313859341437075449185773134211255843054493448724390449179118740456010523637128615437551340657768268921915329040575515153367583106776013661974507480384057137344271720909037698079565881935310603727871767016276354560270057191485080417006291479652130862742064167787393902914133581651290663911642474657120825890985672148381591577578571094854461510141525520595987517409181967199067605395769503419963526842906276956473849431980647952119527901814935075069964933016950000453798168994957868767696492033312423419229485130475630641107358427551274770849934302857768360919623081248594295097311777987758202729676407703276700237126351375314597544761911719750166260686687725953779655275578628904406212333425863818617463375883101938821607759301317169721846637080203411560281541249604158619807891833805019754265087868508068760775340807213572807937926349899593794225666774822290295826417149799074005231893352623393272032556356664779150056694966848067520412753236064216913211613328252204093076654648046286814629814409662645567935465062160247944814437467633755048758577794810668855614037325869696423340934206980815827107302815580638309950669015700913832727640804255937647916160375950922459520229874535910909153994742436452297101422298043870578061139945979962233936711721643569216109285490742334543048964165326653001200472594636759066300029501699059619244429014872214184535050796990884651010516672557712978556860307237412597296083928356144839292696944752042548257802243386707955722533535450424394826142217692582186372003871852373259829239616473065085227032915642072341432909011942714784689257685861580386037421304764330055992707403455907043260031526190207678712169064926741649356071145077322484068140580328901516003055151852655505543463307016966269412708313221209074284442149289102831566639775460544807221493746583157313285798019034859583168691585239741186249663723706369949295486416002854213354563159931824125809351696627817670619641928217163168756856436170845594484706145316043167318427625814561455543751990175478965906860782853293238710994685681557729870376611373620883110705943293185280384128838885364689118393741939089687529386657568877327260928524797299830636300258830940068447568878477188546914597984899310133191128987780549747859238811365075848892578674094121485989629509228520015103046046600339275124926723257210165418657937615102279082014634881923494406076302515576358009378775481269937031434498036192259725794064349390926156978584596504229693118049978080392954785307502043447439162959656813824515110051589996315549335173065560113675869865522395001510683652754628477233931532941727613316012952898599964529189275604744790181889817007004476854475131643367885010938896746316829960561006975490403447660662981335974145127860590369417132612768437903747367362023928724253583460368740542676224310190391886107315288259749442534716111721443918155738338336134996204217771406182184475993249405701468796388600573183239038298683393186902157169653196608974629735526918266502493898508074244334337909415148998110758642037965475393547099827115769138840703789105153913007004624884255905584810379234381134879180438648585453977718101813834285378725883576422241952546205841948519649293362402189259720904466360813181032626234461705484853386761519346183287719675380584635343408255802826001987257843729440012813054264266177844434728067998647542226672855383514290360857794126659555755329021185890928935904406858977133333841455140854671666089999245244584286321228086638676490732815329519222343125693572542047898026852259244221466859836613980034811482193449212365023209195329873419799441124873611756236402896757246431998530788740902816139778478966340308670222588815922742627461174804256213650924649530003008350198449539526179691862599450740393942169225559070458292533918790508420761633621260555855429835299228613816757246850355531838376362452670792263234102638716127021661524336095231993583873547965432645874265854041146726794833877315424954811442848004995531906728659052605594720974537816941052436384988151457485193793926162155578527235955882779617866903144908164898389072749777181712946460043778779371209703910933791643550040409481280378445197575132862906425967091039689859901724964883457163192068490357830871877718826136086459256921392372989952956777205212299258721695998427193850016627832285669087329984446293305048652387033454259914660336938028802516813566087416274739694848323761449055690203548197402684300498464376767231697828754454897203547712344660433490229719611775289892862113337224459377200221007866280920976571668467394678518208614841923043967316902053573125152319500909071446218633916338860328779830023227819888590965305435559171947342070120587942393539391725627034228411257353221322946598441196680130464078815475043055492036915860224766966606100613243780845125835123196114068543124160541859480912729850003078791945397631339343104658014130181265364896393433741189239748296552574272265254992738055729263736191495841551103611865741616912969310050863176442339004673109862285682113452299630546488590622181362709562518032177946441305686036372652990844750253749055562095656213226133873602488390818528031220752853170991703598997945752375120645270494772717146597887594748246870067322369549759870795056241253347483213200864277338348871889774744474192428349659838749460953310517508928337973781547370658912456190556936081853083693679113572677844406586188093541480832742399815891205040854567968899167247804352540592499914873660554878366533067698491962242356557721456014555593757245201197205049329927421507486706947829364545717927214845520752785787389175528553812640437595388568551094651921309940885736051624918765604654857839219495470659098681526703690408640473582798218219972070182326231298887682257341197579369343006474897370524747795466529104770340941308950950607714080842944181152777665080700994891012570660417847247790543490726554100412643477940174620358374816971551964224524214371947665859558641570071985407627063423810475483928770517952177438892812752339440977318577793877193359750838195657005289316202878447946203271439042388375105035396221366604436443982814727068191046784252970018979454593554152898097440569820975506017145566546814687505827136768937762749343566756594072057706207626936221883564374502016441281922360180539598521669856491601449095931640730495064593152347961660438478782452784185551314841657352465560647778676772742281463684393608240388161003633991342123766542917382545544177630787957454717800724720109065067095074221977841159612444620111581011954568829592082496828226362857325436726827625411629941863871029077254792428065665738761361024070338578387912058876707684050120997418831866239581355324414108228182199577234443093295090185275260100037812474450795349711836391172244056173042928805197265446311288487089587762135351588435843513569932996760794854751333468052795194823979798630556704381614224762172818425807498741108854577552953987644880323729339244047127913117116231016450648186435027788191317183563937680903683581040032301682964878040696829267333072552057616250866227057812449316024947486751273551585824113726254616104634946108191653581056892378108825428488839235669778415272943896568106387064293659245635892123431561980802183046266989748905856682154351883893188979027426190268982822303030051914823143616696694983891370650332875842053297530852803737127265075006788229512085907068061235925941417408848451459620022162736449345058109747729871784402332902824269490876727165965502640714168273746861788023009157713950510966764923821719132700893744050017949321572242013584735917828324442616981099311983728467916231385771671912733135095202408727236304131806561567325818089495815438332702597633984012503346824131322841288352012724528864314891553026896850353355461004817543457406315310866878106563511496046677897237564063280743697281447626094448427868811470006939376851345993149392332859526914352213189615420151801179826475126662721914942477843810995595959159294608251592902871640682643684392082191487106423025025887188674642095060195264037938240515991683425291245187198727734870094466326172669439162136312602605905834400235634094125558668337836080312950584341948781098195466464697728440774084454902193334879033516060805175675992377963063714778435271306813293632977983988174063791663720842969199392472372288539031291383838112857362908981661473425912500268398536914630563842216742008634737718357526708752156500917963939661310619453289110699993542375680731256941677989232634925911494448752545396346705318346011140635848518422139527508878712442503867472228641575775591472727295057013168130921779401087737233757907052446684755170422575459309609612885845997906863022473371663446556000073593642954568963379722230619625378935548554684414432677239408836089593030294324181648570128918075957403223962137367045820898213945705914229808855689254066727998281104580526204502689702554873842339235835091637290441174141800567837242830129746658063713971363761016885289281065121232454827756655755406490617074499910551683184154650952401860142124455693820639829019814755053532402652363709530376099209798519834616821149697060313702811912054553381572979301725899380793241619994520915746269346241614797456188910928504996309743522657091252403041645613092286774755804909635626947253539947748832392447219718084930547242095291877278421532606046676063641547794189847060097304383434081378600564993169239600732740868203910560566305683556083735520424359989335154866754364318813095502461180813266401734906483622868679417675286876284918710203321356332219050774625956994409280599659228554575146180139251322667810082575321506760050097189310488811917105985446425378066452586176945092241526113950552945597164623099000275672360244618942136716614228049396998241251550484817655363890912124634404704662837164704297612542737728340001262708974587473769603613275655754876222264490391247408225533827910711844422491709125750962811613986589995947977899418712964234770706954265007522273957754363425387360049014396912118870876520333463405675519587650809022060137337827614409194679186312962395297799364475814219291633972992975834116674475896832221216425279162113197553740743885580997965587166411510412432391372592362216377270331548554472983807714491400070274546341806264545728044131540674897559785185046351764123730764325483427628868666487385295657958702667280241606850195559243461659041424591440868797618578192889173518151921365922058507849812274101521694009691257642625472954216837617002890394227896185789434437915603727329080351802811237441617035267651640286456047978457434344472239886498480700062656720534515481352915692615698526398708989425157990793811023706664040767796217651338535380573300955057914558171685858816374471755183308171993750787126082448104132374562930397794648309826113352936862338401376416275855404852670321412343015097305887235540817855002166663473259105219313940063435637810328655058352546739314123549980893738428509817144056181823962745673805923259438281293276289212078262027081743962890493689131606237629258096357287866278990440531361749968367281418830185312909306808105731916618318041753584534393697264734040790481432855248815352755837348607429574621582684657814731086977225135338332142895883541462146144158404632340917343805248614090547580235709096393212735523224201758719482485473004239544519901058024642314934643826343915964078911521523100220832448667555975764026576934697929481657594657193758283573598337497785725847176772922008840018432764223164853386122757129508525994631326297267494514848856748546325884098149979194279127213661908392056755809572862867717638558916152186740887853217770325111407951835790807999285032693527347870645125693941698564401350721595584703391282762885914301987344582029985348103872326657520943049198031794072508497401791885699376888076464026260756131141259973865351942877335548347406673366925089966451000352820841996509908706862702579434731349250952803907524706433101702301544451726512097654625605914606253781049155794810471274589590578721080784195571363259259659814787650240509010266287763771375335608028457406380581250506736930443174954299471715340504909339763883831481431122347624015909455415191404370527042713612156841819452607571685274208600152906804068590457151727543287008543831880163771324425126498832483466244806260198962497033059434612275795764443207261785621815767565275074369045170586596384321439852203114833903124258425424645074549449093191085600605944278411240265845217385010584954751341938680737282144806377452882224500736233343098106732355972675929461665062639882482730479778835324874737874103966518325570438591994911607675375332227226421617840191043622906004355673649144234778553694704647335887294138146495720186242672129160251278072457429062543181527209423838694316929112295416184464473274546645229111704797524123774704221590096604472244524106026270686309961971475682359962183323569586168549584239345385425156769938752792953231639899846730041305399842518457558516544168053456574053703948414866636704093750490771995400489259762341456160981310446934631450977472772208444944428445820741109441885653197450140466017324801075250263766253630565893734491070204264573876385075070941265520291664614371664214797300312396751432541169134493936839628928397658368444549687979441641166372381916104135641675565753215206691901785772416317107007707589115532489751636654449443696493302841930006919115973466174203441617158362583902539965044836900971295742552271826719705686399300865688659231490603130676611857848533454491419981966927372477434882054238631449729059619799216892786093371879028363786621227573093725007572130148722695094295313709131462575190454624477870359890401095241806157768083362821930332514942024939839287346594740394806401642033634398368753998400935217831416105050596652508361566515185171173044035927216814589190042016757368687812271175004202868775870069249668837112440829047400065178670769273153807439862817492519884664861782806280944157383018588254972587004173849552448736262472828820775967319847804499954571983201491788118123710421608583721419352643729399727031489920740630970171604493533340622597603907952030114207185325973922991144999097065927372304869118468331187158330800835912617912656288719696198739488874103320789940917849120638402096001035489561881421080823843946964800940470248511093861149393352631105203873616743811560785354429726722017211811164065792806211736169023792316290291905940118376339417251622519001819604592137771375597903056480282710274327163260041922485657112569758424675200358374306256633242860061499630152787054518583646214813551256946120092844069998272983297074036342923889752970524933019148967199802674613311862993798280634199525767120831948206752215788257592693875211283938773635327522967418872399922318259185897467009242957982856025462551623830602945309114435304513625385590569239581272659958757561681074541295819154980918905381905431248003772167375664992799690050968627221238480427777645236102722878722601324221342523075815216213463690031129850484642564812268475405575863183316092577967725309746903420295966793121425064219967068510560938613522234626397844025620385261185313743485130966955822840699985016437049407961501006239957798659605434183200174998465814146585247879910201981107722121478725329961224384754564244214630831514356413888388125648069114477706643277264229869416256396860180298265995185737502488070884866507239353362756643823553792854669209924732816086313962909771950147602298693792730745099058383057586035597622201469869938022491854089556302557113361871252109549814317866877050360776978233735546965517564902324617769776234549724563964223712967533604320614887104200888890041024139134519480557974466019231483910704575164036474878483373540897954114136311355992036008501541951898465706107997810607280812947418648932618432712357844611767474929061609519410887012930110165645181323759084463185745233618972835627597471033303050369059516171353735360917420789321033334143213640337590764976193812466161676636588040221300447888226392432541497432957210947255535525645527371700994874915717035853799908400241494011172224689555356810777843753414165609443358028501540120211100306513114212685991423903366965618978919932786459189507833125946235633561167874258348782059164770971203730369701050578161765974579966593244579989807227936280319165766733333271225004015876426728145364172327558930666412686070504841570798181161718421156833570293535917790306399725434287810201396568990227963999111772578602578270855840164005807025616530466212896231400866907335293232292533132174385572651267074119629284337079853122305523672284174289466039998960752194466771384805957290437892663224217692756892163822303212387180397648614510014623101953361856953863407463443652558665593247716139635241007961901777407276608821747146257146255825213325741400633346753425800833394172568319229147479116663244202803877719198011035230672203349126727658768298946468358126726469781149012819263371159224483500511550045989931088082068102885783892520822608114357970758407756855279293214951287367358881279959530419036885566775577261830731938975172323530835775319644635890845468785521656831765844407222166735191742753256637523881418825560190241737172223750776287963416917536208852926288892957023814391795344679203214155076513359414302857337153709605063990080799804212802461430082510515483902158016588831938626931354727875520424348885617851117376330049013281033836427996405020996790602713448826114870376765756108638431940947312696928180504168907333913743738836839111681402201248051784599516132307546714095761123078398276464699449470196964805007703095332405684519177409460319581891666243179143596758294179725487780111714555087239409341756387448097075018533512231489866480427808711233735583029290376748166015085755178638729076445680518938746248519983032060483889842811845942771298849900036240659270126843421280374414805674204233909204845896201303211682240040224411650665306827574624210338177415620459378968317949875053231574572243329754699221136116945592345844707885457006798452161739593180155066509477018032114280146684895548326194914807375954671223573635937751763393301306288557181937787623747203658101981065055772717863276142504503802484498052975441665008206051420598112893425349386017095755388511970675478894629308451792504511348318115096764498101495756139554130486440304471138259712673289823751731483725675396660632792141872119800417271808147651238244483368821824133193855469896361257039711306681880179863030021064307487097246532155315285540073605332389334293488883968519176782933226330354264770005991093884762225085828571408862808510708412607227503121472431943961659619613682324606034505656358147127944306265579912061949468060842902666115192539990493337995095392348486507377825374938425878829307641873715917158781611304759923070961867493678855442605265151593615657611763580995944210190539670045100110509372248421773595628023096229526885745242154028976147696671060262952986203258772794635837119785612975595747917436626297259677121491676780914423942852838642695184021916231159952490264396329828472783588520692494263224507640947967569643679309399580764000257443148321212503614045968633540877733470211095950573162567260166743083836942396857166896071486198990248398490920368464901679745752636990259834490321453398062681599097850853322446755969877628170074670685902572124066039979815857481807565683346486024340158911952848248768933827875094622617564933531970707906769711618096404878957253870155195311931327763453335394038530087744122395982480194801673051225028396602479962961350255315203968859792030968940566201629436234728212546541071034868304050876940056444472424337293824367227982709879645343642522528937989160177144808208456479049756927525869356795958678027656374547110400081873055829478250594116295758213610667006124984228785456871741973828790025952393755985660575496675960032796790300701723635513006592038511955197534672248717911200725048348049033400588433544975379147462749639163214270592559889028985890810932004551909526887015079667658923194599683189270978554547908186534989817507823455978457678669190119086685964605108554506188520631942505384352759720920566186660967639359547204312285785450278601723829925489272057127261474010101275411298096438704198715402865694679612208571332257146231377901554179958079219520307700515066302504868751405005371890513341667807197110848415011553360246382543593701019530249019091825285271578364877709283703964960196736090827427863120338537956185811334577777570227701484651199377456388059835764056555517895365052879303880115105095819641477388815409656578000807709876044131070164578538452956046890141079651947649219926965679128499817820992594387339523982850224080840984195500979185622108107547990109568616410894147303435710855161091894140374382304068476671757306035709443373899249239799342300786526000608975989083482626435956005629011447046733778114663427426076483176756510007043432325471153721537307188932432898649640650086242209188103438735116316064709892530705488561417960451694267796998217025122467143110733893832939377270949993142180915559185685644653595632213004326350383889092652085514630155752373880955761342611261186890501791730053606510881525756368570352006428456731085291090622550740473362359922400435490905846549231027755502321149753789498611172796903856095158581604219918396596235007126739671272247936866222342403093218871131267838830788897109716688516381073418676460717635827180671129667150316407211522858734992394279200604482834687999025418012478953180169113241685929442245225141018136989785688088961730995899584465424558619335027486538683291463906302576756869470122267999371779715675581648310203793756884640496303610725512780617837382367114798597254628254121654646614990200392264055073157845506100989778310046026983271446823364453406980123934236871608449118768185950808307502266264711736991352259627375873942551024357731586245614803660280700871193702974724236432049569492792911062139442530840259503283081121934001948776109820539010168803120833555869840000307063458446001574943155235328047839539898876706512512649429998253341401745635447635426862823315302126970412077430314257776985158699907574121428540960628293963899849383282656451841200618528730303811706495358722598772262834638675833139820937339950456391839911349496974286449510405278400318192216719543850745580436519169001349281236537420737708852765007167983992342612385305950924405608612775745985725970700944234029106833667342924464839426755226779875745501157609594271900232520379909853195964508932803333053132756799040627501600220296359995345566892094324216765127394770742920406875280039368750476884516598536598635553945517966457325937256243226873219273105410550731646409967955360280081662928663191867480415970517875492223766820948100027349675908325915833320901590048444755866330739250833393562065122620010376468741338046544029988733339467255597161415592887480944231510418266868688419544790041530135964945187770679975249134805449820797106765024637247721829856434277327239475144063819626924127820987129155281838584921920964686118276659449813700042238864699115119334003312265128089696083593513138467722302280163082252754102808067072257780947311462167240451394701545607642061524320624306996707821100642629402680071832762526337729869941271893221477776476789111550551394306418787208652430829595701699483978360851447587848774101047765077355618689331735803763465250189678576534558078882326494679188703086916951201630827642319087067353301841670366189131763664489820932504145481811846504731485973577432762122633906462176382766506595099919468915976063975802958232226507058572085431217283486745581742715328738545944324241731960012642124229732787263004324740207531218866686405496300464463555354216858513876222886280863272144261929695354206268423459738269610216727140360121134529673649407046748759924283481070322893832334466283486854946431979063803315609295854250828912251175746846320731441936404509789812026739635542684386534999928974663337716447480257847797701494241391428652935899529462418794933273160102208376463399771273809206223106337266394931005349408758691815719576856845984758347311250229640705377998520887643244009338396181957434196464608927225249391431753949972887055823390214485246215664439501461792378208907788961530515447007370724258882105083654851601048373565381939009168293308274476035337847686930450335046648278448791683479324360017846271728462367021579778311266991759621697975773042810914128219595734438242048313362678171682891890330537989728547499864435828806740582015036418236933942368874725491913760030484084849690460480298163315977848761376522731209479801805466131486337496101551695247093495335568331151420250256212965482396338262561539837247922799207289726607091269201229219194595571724824226108151963875114738944143192595056120681943765286447046376098833869324225271950960818966283588909488847594283292752211881807799705692975503255714319945107187917233123640924263639962640015874882370880819877108524339907582955968043658285567292668649643370949284694900768332853447714174393100532983952934771226105453000032023350676635752430814634298326197598562085048629566153393846028310735626412198485858086610832704536360758300989207270215107646061373564392011649646210066882088347814779779805714229293110688676370761012943282361110355900789617074338350209516148970308672538712165788581307884482696735760834500674598208504057536203413564781272207795402290203030006497712845715766468737119933772541447024571236114859217029310983728618732511810880312432504481323478260871209610957084074666597704956237683378123242628604202645650982782831764673666766951431254413402516503395554555410711615593674712429123006763951796644428787469070285240094762847855924455011319394666000914579701137329862979689232731595068468315464058689024912937713527263177933386616600762785963448844840152789093268552968079783636830638813240424115529862319868813982115896354099746651728775439580815448274210131572845843206360960514796738053558932981007857694491799770726984419303732829366953048446474727120011327229731869909711085815995466988538018917600942617057187219021295002683721124889597499467191319070374428059774163698134432189134720250806576023757717992753671921302679177312201370123782125828503350386064752202755749801565111938199908240907431983420780960838281666993435995703040536783249978548162429413979083822187456689122835101392927734535724012143547366433867475001829047724074282482981381878954333789577540982299227381055995064846034554602791092422386032713266238988012881950199859805614218301547194792677828148352170027111369328043914080134958083139582976645234871520444823236497775086985027006107607541816208159722529442689000719185244310639489456647589627144251872887374849383311207671351796807391294339075783167260273481931810237021967761745652001715793043393286131290874777147190122665626770329562653036392206882792094927809122659464300168177945642937122737792032610410651196035342072421125828971044446106461745530965202167229421015977948394568484576375955417299444693386016910040539179412065570741063560030200491549536433287951305179241010693190684732499782152083076659622909459400163744457104653580256500565377794945990490129571928530083084949735105623700007411879512358565099244797675929972458693623018314377860830014255627288376185661749034315843026720592130307206099159231363915034126095355761601127420245421153616408902070695048286760131222931576659775032408453798031062007952948972825921285110108538132197124912412117240174967813340076839254870050742459410473948931047730745392987624166531561826958597997153906717945733468056169333702247687696776368934001947137250120005165325425534126291855780659501511206200509800249749152898116154565802464103629649433410469847212142688785361813093431250361924210608440035472038116163508524661240103427570865017091152562650931516884143253788659548809314382903141681174694796366043693075320826933417612181557730800621339647135993109312722518364231640884002950673932623057125070228807179275970868705293481862212249801081343534392123931448871606367552678827140203064440863807121756182591656725341544988451971023277803255275877436311332231992130607860817012181108264142267364998852273751834815782190361286740507083470290045412461625066210420928160561269185449644281275854604947099990080936787569172685209174191617807446682531022153338624259173732188940536200915675016562192521153076435064609858658319844277995236959400730354433153253481283305641989800718135132659503354958186257523447898427709787788612588928412234640716806506945305585305726269730171869323611483551084086098895107163719502195749510087935827650437872091433169452722041543821220349100625957205592306599607047835731616661285402371385580537991180541413666939618132367133305900892277531974753212417256088518850980128617005692952178010194206126006276307744198331404776598077762170540962625682178770161407308492068074868438308025041155096311139641814825687853768326246948751711825418011643564105615116750779543369164592121704684213046225061516925931458946908715944777464142640091018651815521689098371991679042746732460946272360692086069787366663971616691905818299331792037660044742252846250941474937909486813424578778624565330679485996512133098433298303668412893853791080761636257670340715680629407322926932845597004554340779164900916546121900612660006511638061999584561702976324261934540152984484193191450995779262926224589410700653788484748846951409670366002043501967934435156580549422036517364290420640678169471866124696173144822284900416431870034705286907084556438159846293599091997591910177911383220157973494204764883488917066414061747244170260391560735763813050825416874282226414134059388640541736670391942841101816009955512806584215895996027860848511333773608300150390254952491514503357590182259353211315636933844661008541579270403991494317416839001692638175624462195952829074196255158112565034212075842829732543679935659495739448106708384614858907717032695293678812425661994690144342708821772313392455301314824014859877585450915145188276209516482395921732687618756925408673069004251066963807821112090012467757043497558656493538856283991380577802519407543278316469300691419562648930289000538553174042528976178222451949628554442656593936016517593068758817844763232305750412267585420544085351064543574981400910922447278086981161832096557687464458954644653885293135117498940278301256205184734315095205587545928537836257628362390149218062202270843361113528284131353326452044302452724799066475041499486831396341010398695028265659221145465078098236637797860752643845222349655678749953750855165550090374555944003049446991811475932831540032779476082038008275597968473300821894417579232166270354413413664345677190386900247667930561081699951938803638475727354709241759078855736316171316905052860123125598227170351485767452440424654134668532098439337951859833404136799425224441601410995795855197705996259943324479849876831203115621748928526409417853356368663601312485899190573631945001025222749403203790620431161387474531330913776122300552970976989756327814498863420997898133472223356091770035585975865555366589473509640347509129639742689037107436389171686438016382765487875366611052541987868554046423632659295882886252135041517516143607150195814844108896653840542725914009841601615602185798516133483459131943163341346286319065386401453274025964084276295975003223389876176570215431138288388151003872201383936737670979118247764670782954814275453807394477204586269213928301159661113365423436654290731000099576835093111452781365982921806993055646455666632370152020764107808809729667354350132914722230154507946964737467280602694352268349363490389059853979751617345140246547319836705029782819701236943910609250745955024491246576456125861583268543466857244677004058993109035906441481890469984679494331147734155931917139418706255364669369430315093667536164195192056647465781028743122738094574140317143976191741819797332252063074583897017917650621167372610103856857638791417349249423837445481180846692622722524180642154383334038047207449861358693902963489526143263567112626782401551960842261339452573510620602434785223152376784840438097024223439442643465724830199253167477913146399118684644520069485433208999939298202779458640677576673007562517988761988729489995047752959665269600240009536369369213440410263908479417392719177693351544144774122293863329796869699874032151208183222234120636863406539543028150852363263481296873793982461518543629864234948497194433586735130893460696097090761560566329217564352818599393428390404068603793033073140474903580977802969228679829668274493736021379924830728083524736243270926222386413322925809453093133151357876381260910520448996848083095261658618059516696184728230070485705599419450232664100393410292482375771880065779478060500769148560048795561830944527727786782483709742099899545639526940713666717478243059042239559979197211745925228117431675211881136491696811129506512336193581637137181262130722915707116712105595382238083910253312957703329594856347779182719353482871912235363264611631512810179549327618144603191453531598399643968256773903509937963234031398552145724840608727654127491401866494090522857327974923081765800007378564050962886072893651172478225297649993184123989002886574128739900698279880330360998271072908746174640785781559391981083759107892361073196318501926633776346119181343538431276068401648000627789347300476655698175746929827926804343541313132796690721181022369507666094162374486980609182203253448298768842677019797637134292202877270741532483470788685064829100021115531297603021907537800446816985332154887376082782190919801439597864261892653141392273858379491615337162178281095005017909542638715134043495773762850901895499654352938008068699519330307994260915370699365138956673151380186943022788042783742566294527374923859383546888930838506895128015904372876835488272986479491880771974537159266686227740605113259569660701273543904614759810862929843958991869874954061606110605734664090376627436058900863795522445486749242709717822618637466484558530670979034474280696768056576153177306937959233971577808411388312208949927686547979890647267638504820476541447920004673608401472790187424366212314504881486184817577823836427635439442274963495542183351507987721100020452410360379429106200418296540166061058994694152937973811927131948274738949550314775087588691802348568175823210563204094177917058104527702594593397261638815778656388459860340944555707416974447715824603093014519853390878431370243739751472566443793851111403484011266725760377547918582357009823423321980677070405935243675000895784848789542483106880858001814879884802860939633141074592651532644347749790751406479085238594783253269502084363735194155110097827171409785980259853134099496116101230781972887823428035722126683944802208925494685819874339759638356762359797623950155782446971267327487092106292108230555982380103890642884135514284287310649904663627287619348792075276445169349461007998740952903179712175073131574667332299150250464445558853396463120440747462861204939397869029926287762319676341153742032015759327303402664301340551106795427742894189683566042035336717585856412365397768990757894515844472337607238498399907059298342075542785097532444256352662624290667343839208962401189597144109475583598311462094794630850637077855340865887363784290399239132572437277553781368862407385662413240539308207239741793233203038857534103772870167643993172547564735908177203470490088206439987233669509566585357222824998094453623601383180998827504370917398156038593121443535788330478459993286846907370543722271132705210243768558826861217092018467050846448952043535230004702943431664802096399029617333336594933384542494504202949704622360530469208760084838070998739288450747076630361411226030127944556579782051681238194385656479082506785550129798329368667923524223776949272979187310824946299487403792429637518619491820011643463855250289530173799184390165860103668122197104641241817674822165399195387133237051205703729635239820619592742406432442156591336378886551381345957317152822064070048422015485873980516007854653477696962800373425240811238118024092538138771764504670098331866719558965180716530449370144338566314318145695741664699461283943916982285805738935318403707724473867383085660525092255695845254671890299020022749429557932581308500989194100603559559260233158299058328099860543536893576187747900628244120568755970601872020552392983644166151954681271944220989815890187351775891632960067190515305659471598345291771264839230943960036571756722914704915188728146951984294090107147106510009971138848355834342682420374600764305236634468500822823521308086048763165126995082977522689125307432138621850097189061953010565686021231178213990075485329012831951055382167141305844063464583412164140296103780729652199095645527242013212864758596969293367319749572808611364054229596577705403114996805752586292517009527773105795624336254565296457346022781925902362935762421179201478613532237256242968011038672279611012980408040446455844788499845681297378728526793542772149848419841128433115309046024660095507020088459695798091051506894484716581781139945586714141060157480194829580567541460040324110214454511183702285741823657689900108385067703305863468922564175675405755313829282120517158258178155465038398791674445601543041631349802894193687374219541889138833535646201079023713841379683637136840595545292335911293734710157444101987561629081036830725115483266008899209136866946407334877023790743760329012962222756430701450323265325648935562447262175081947654788741894485907278584364226489741851589206903060389356132895668624220497369646351545107976490452247653889229178422414600404803260016605404585534661817737191923712964567644607720520687866767666468930977668106191632304843406101265252755791736077064888106838555759494366233452150218096457864732773382341449739677224467118336779503407732885959016433823172159908807509592055988755523895199147895578463616690762638215427647890005574960740804528696238240357087937937865085318023453041743447381669021361688957943990892606393066469254757559736597477862322389249104562734345989661822709547164557323948631656990502587167182550790324456891418813714359206149965606666895929231639153413779623530192882782086804871399396090622351786352331202285178602414629769127041024369210038631067980315251356109578126307473178596553895333434665478923186271400127980314137155666728079964486991684531914347465484065910766149436935692171369561085704053101272317484643884162444115234943224753045961397026102209644135819419932726130649420616178591203424495716325418111195039023721685009581722990671277779293124827693570112368769611506744998840211856826779929733027473399074683189484581317124313935698054119918941738881623537848876112318870852457506581113672884250927285162398134133740356510180113512065728094965793182202966296623057792248370715386429204037018436590903298896351965229789505309098887060879414286510495501064052384801169614556725600610241706356827845088485496125611895784085585690730106987927520318215144107414836087683733530495643441771559372413997326841757587310805970719461460610076286069258926343144464654900989761081067474403813912589948361477416422059278622614671278044065633466445516108345178991684168582881147424949954836918166808382559443054860792483032953125708815368198574708423500461868328313846046006141931949605436680841107169866595827676539954347936748637615659921683076837040323685881819521219525779642520073650460218336828665539043924224385827300660893591577533800939124632788146095800607253294479904564803690759328552129516482668332242301294203759365210800553172973391554065718009079795704077965164605080069669704341224478083050550704945115402885250618227196554172594755339728597386531517926370426146660114787221103344817578202693513568758277657888654541828115887758045972704147072705832850387818856339409197107832135773029980489737266201334146330952630399468761705372035507050670744942812620303752463370813107484314745468937841558125083850760192886870345307735536492022169653199915836553271147246356917546272733577451204241229454819647962086979451175251420740680963002518035444793986744025115676213853832098731700500658055303256641234801276628138356675378531685686406389413027722888524143570201412189400900954383384261648511684982899828666329218083765463859035749952007139620205328896808466648401419965377841144731757678277276543494596487326171471034542557452489555887292833050971907904141196991124386297881320262981502069196222247069498231510527876118202767897446340336225553506326259982386095648823971869331326202511744859627307558151194727309718016998011736855605664933234864558396841386432251719927320670506196905348924449507664211033102622698720997224712751276530769814859057249991866063171393996126245365398189809226257481641863047169996822858469514865328933769638516581006800950531769358695017799594834007245027841440779699100903541286232996890282962391162276728458225468588128004377597638546383124038876889022175212125342810697159974571413450015076945778670374106648610438382225738469007853612786963334761157398929670176894628393288242654107078843560871164201893203235977611323261554613485493890549487919008389598722329490452012978711739672593308842313806976037599556693838442581347281170721428298686548892696231427878170628312681961978690371565334418304715947583573374156360791455116618619939494393245650439165836654501549223271289637697431854995343434158726085174120460383065356135562248323947175894970804519188334644216485983914164080479528671987021668572744936908561686935491415496295912675176716155629961830672117320238174084682453926765543507796883896769547533727408120984164241408122048363878104729227515671521426818749398041896839524697961867634311554511388606146468159913270973150768278634958465473590095302518242881425125915738694007985880526658374961342958068162622704006798928888530126847837510724593552357041695519911928237383510546212796364131034545914126577434976247130332573129146412807673892771049074137891663919264684858548818837089552716981241941558227412996987919960753572388384096465817242178513794316719007225078386653811077896740200983665217142962332139099873046953098081648035631715263953777558330013348597008193617162843279466173841155456988184723269964481949035967921471402776659489823937833872492428672491128309225722682204552153822350934242958696839682348319042254369585983359928660584267113058290196733548735692628170610143402418406213322445867870051734677393739590023092281366503103585964483169998261196456967536227169329052985940878792627867087832948055240860147867561537633863461189552472936101277763784760249467271300943756021622508107222516184068523481982218301830019865622123827210829337362149284116592746698046171703144434779617477607280564484196219883511794293337874309487071811287123319809120902785533953942838112656354933880742172780393580854153149282484846108827043287674696370127698701176677189771282044060206460933066620663773974439671808237312875121486094737498550322841427166974905977411145568602869551095303489267187721317212808112176848907292674018290017191534604670511230619617600143242904794882410371392666388151519439879851005419068405390318226969015494586022953821021120374027272927394013556893456099142049979414318058429574129130143217501315905485933420331586541883214022853513033043318531789399283780937561484970373266742087575469532300592303375109526406534422553462838215874274570668960532660263649376972043256763801223946418276497819422298304334398243899824979584950141375721140734535565772992904655307635325677338977285447906785164345065100131411463192099721525270297696315566994422574336416320264219178441474536000869482100600510974719316626246444839924640722803163308297303585719297809638642675289276150604363132641051751717708795760430298146216423903521611837694072534071742352907534614256854706479326875726918080017034946214151283684992439320961954073820921871782159493037468555661664438268477028284940294233811720802286388048561210563392774750488788280098869109332109628406505660318103479414590975126514653704553535295402444095858853878886007682147558831819822716683909405444190456551341109637556017572065548062639023678968998917137909566313692312517764320324169384808129328845434937859348386834209806061391898181861761703124439656881333251453683767811144323126880254078402461992779646433741188565857054630405022850653313760747693581694104302616189491532572528163376006316121856031142247519839801245644634172495055728726927544624019496356689111549871338194903526183977954901606401531014508359565360113832655331193204610902056368534943422247094567127893942959605779162190378584261218073364364624748628503573168823168143380006007802391707243645971773677579599650362407564872222395908134818048019530228625655042323100419284056869083708387760570369281137583590854220754237058333801939652614382290687403752314982702120074190414770547240910457945648319208770996908378948954120395777264085585775920657706205370261946905901720821336978012494255052263279549410504732865340535207811440435498871354338360042910366120401569186380511175507396926908971933850450932722101136406105746056779841364198700627868051068583369471084590536572112413254546985283706188267194387335757880045338186896528449536399804307751186191208292363606768956700712721033082906209052272685228484039700602144216210040780656229510236323073897904857096897088287105082714860003645992436403587484477309592113965962023959298836787480690059987901782359000089314684207065312980270648119523605029165580517205737564052243143054886286509076963805792209343026146386148864743293367327293869717025972901701992594324878372317580150620476478372416440617562260166014716768455733716325741048830283110657279235662254137205168732865781168069752881153432805335679489564744262517684400157449766595397595446620951702890158572727123094360573735164283277339391833076841243755832569329675566331713759729594156962914807531644644029737711373562991422041665808172025845344004960875110896268625566258847063148024031380575328780558942541495687958877036911816821267555225242710304365893143840175870555380917172281318781122284771897115455040311060526626474443528578090841093805964893243931665686918522162453447351776226765536915668791802995897608366564454068440400543347638911783212243642344768469392177332059383769059258282942194432240595085645550543801998167495172720024857141094798028147368861968257609287011604191524118767017153536994937462958073365962455759607227311897609473520413288044291337656018948207293053694301216132421119446697149696555830690354125249301906660812304253146489459139224331439857677227897798223861638731393984721939801251225546470830839151291001932985087465618225570052215748969002696792293209723735808047891889374788716745664320216683844731797981299879072678842569450092302476558805634169943196610732580113627574656281999802641309275555493151662421908932813312097956778267610300975733808368925998634560267212883424984140665678172281978091690675227380830564642323503557035828873643119561876778788671284534695591705837792404296739843461395767220860002672409114902043054041111741295042830357735316481103848868568858461600818420957699922408010232278873296712982275049544898106633128730843978633294890076787608179610586169444140447331553774590422531511429107128739246773307890994434315711750011263312900085263315881265753212594490492729317014132043947140711636026296951891329415098813194233381429367557127381871991400197596812714046049437733671073906496101077253402574489088204324036593319017151950201588902541826681367302007691834115450240684329119090831619772737621150875181242329681217299969788065304337954240182095786089485368928271679010769706010633883120486184509322913549835629925080117115044147803932299984135969658147058739728491592584101807653717580001895145856411654566049574364688652844887490309219944929242863013504054323082211516618641016954756089748867952972530024288688549599795092554541240624837392682142707227193268028247443299086237748132977415599003825569481229118977812795587618493456141311178471669637074358402334849126608143898145730333764183223160234119941854034914702941700475606763333137097142255706156509261009272279541691039061983121033260973494152041286987824200735213289597795929283115768272227689622837901349635807865592978861251600202917677889566866615551573127824893871902165006590034253753678913071516003006483792846986936804593628282420175033376413454387915942256227224873636880516186415645802590681278496183304763497952904819336109130092604062618843622700280902146505647192768307350487306078287491392449014286122364332238246046996693062786646744565847927944224752115982730128974467855853512749219469980439066842749458890686887775583371615342302908378703518630355593794055871248874673640066022629723029115639009374336622104024079462891602186520183057026752996066137939792868114011682384976723193323303059010425671570437327717250717742655998056578468021595106816218339775177158237626617740362344554418831117603348525729171185863071429862720946485497899422790365781462728783324900004109230397329989426199406225183262087112500922970710292910426106693912808088809016169555335856626577356138085635149272274218108037711576420641180976324947400843221486470336897918182366127908616887833582291998869176817066538143166987669858397191678218438827906010033645346422115188800677603610726324864018999610289762696159150831543501824808614579894306791810590808402317960998008759832848262885285136309786111452220444202063259972671148048708296275511048657535956941703288086432898028026417439958823201230922956829246518238374555156239142034514030403288726912094970212204232814809701981505594200005612689669098197196575427051793556337843810775150067107130451297151001942661636697366415998815746454010211277678603625386450882922590323347687525549208044524523922821379973515205744950679438684639820372630657190758961048101829686004297820667077243342256615881747165132315246826951217576893549158531227262948740173315525308759046519726398293730186118217049471388052430598295224941366891240582951612135529385412372590501213803786121598263672558370566579995858487777490261830689297933524071211330025998931400790888934504512512704263358745526423398920213333034550059062138527030903179892476748288145373326228997918879835949995164250172126740393567894605323880894545573453222386850776994264404958171351874757505768389639065190533842787194375415306639159086126157622413257194128113524313546116829181802364400554545436190359944446655879313685619702077108185484450073683315430275916624649606085283652510098683079156591016651363379403932222955581860930017263701239721803955858807349175155453611117733112032036537433825376624447496699421440528406585695546965688392620051252933639543958604234499678466772487873105564348592654156596939387875658356115697688478534132109568963199035212158421120909335169801170690905856499074316589174245847400607715861077103321603793863674861735784029132439542604936405376652254243309987055806479324062867665751025037696445885814646212603553846906036127216763173236666236065270344524476429093379679119506846047572752883199090000279082507227649651784251500040374909889651889790632541055893164350583203324406444786963569764476514169372504617714760409802827620463060722462518409348924928404163790140321148181185945975781582088604902552195327215628945653868428789325678736269782741847283884259134498533623877455019064801782322782918093762787799523948620928681972049000440856347667984986053558094293944242539314149300393576661998623437601339514784503265826077963531943380287382091482612659686147020076944257007346300166106077466781907923931916596506722391004622896521050577524802432143110806856775911084256819005282709426903856071986776976755518858322013655751660878574668796016662597408456383352941673946525561456189596688642014267412765627180742869691308052562857868221042557409122661050876385639116574872366237145672258085452377872388672260348737824469928622711590542910067876313759345759719547259880993228426801507454610519018310449161041477350814769100276132444834192952819510119274761811544361997493276946265330562771853049293450845202674012421589455062432935997267693973052076913017723920588001500216830033120605207644700109550230935892776667870908900937583447682250896569775000860492096374945795081483757082224542717678832163102474516406834262649671319107465649268105546612851695132504294975602572952572707757024653065782805465740130239242224166169152904979202418620242785916589829863358641469046456094489867645975478769176946818628381703711209855531606737568589317113074154223937099850508398902490568700590403254221308141609565962239304378723922643625889166775497767198911918865299547560789902973489104195776422913855189079108405880480839864084746060558780365793993066319192814143854089984122018410663565533728697247904237826077527982538362538405081857318407588216632077076110648713993700293602588801178711956595786480699102064094990309335646935652120998086906374593195273055947386334365239561058953808539294672461996596328806284195054319072308407528807608285029324622765299911942835535850446399818172190936342087654293052965902331594098586998143966543968539751076514558759647112951303825518875899081139350206070370121876640519280526879069066913141640265306551201353979945916567428192918624956497698380345062877982661797593364447941963511447926369283326819731515779407746666169676453391146725994180214468007446507741783376750309266142433748935777453042224227668600301044569127065716139389509143029363133012105380444114959432464295330278179118632105512144887937743485001909469553725712485570982205506540668732360738735632366031872820436628557589874453891758477039378427585118447319692439768090268087462159565255577173106969365422307914544368190943746448127705309122481921442598836188088898170126763167069863467554176726649722319035830859207178082778507883850466856082448495319288994667067527578142066538987613057305081422673168370237269320469998686326635973225405411020151114644159668687723736380376100627769868230535758172372969879446501142106395092131095632579081632225464523223853314023309807015957213286038018087457357632424411605527820102153425802954628364902309314159642754991781510723964085241688271525090689540080665475306207812404356902478091593868604520432671932075770078261127354663637185699798737009079211367918072106393093884957112759579132054057105953990644404492589508912536803279719679385125712055768125468992824205819304003459128315897472590245665956717854050774478994616906615525713839836055578010905700755616775997040428648932840603047408536505052994898573706226110616063788625417794225900317173483005670938877698316734072657736483316400338192388340138677245538354528383516450148975033696596598196727870010659363533847131911106657243292869612133140241501216517657441315846363691472246930177534283214844137312603300723123384357736511347181053290222979778703093866480366998932012370336019267474699956436649382695938962384398693853661220949503421928533438814141243449258480996642081082485565225063809362517127338855848769633038374113485382437730421754106199919186906788070007969328905759307829666782809136970358897603299859559263417918781011094201824563510181183954146529782576966154834701924806160991432666916857798772313067558305468876592223800154154013324075854986679623353385727581479542806102333057274407203072616112184005118956782270942653966175229326870192307505480565464466579310008768284905611583357618625475882067838827966985541294519173260254199712279667489363717193735902726148155545694779576980039890151401234587064764692756626520230937598085552416756074528946162787822544232258966350764308308344980251423430469093385423283528706108928733647550325136544098293189107213286616113454296592776795923485313153476492664216331285949350140453827085198210155925689184479599449041723380756088187617224328108513987117628228439075195959884222221382759312734080881007959464757409230270454166462950099187644933242521542872816854040819142704915645579211482839878244086112549801220995197182541598554303644398467048769686989716701807056189409623796577045850256439312343998772731313243213215606669779950660740527737892451290206948537115692231651481289967171670460492872045152131185866321797801801430394595136862823783977052612781475674603382741226627399956844914998180986524715267615254718698299094162660214583246825028432766463500629072091270215451861321841653294321647018478233705490127176482322492996194067199156847086940549686228980595072818694204917396754111290611080531194950145835133627921806311650055840940898007870032987687402652024233824220085899244400947196823986377340195563227544778485811220406529204571796946797608179321135504045047604217477346853587719573415291079215740500249503525208559797697015761035786910554797595612406870796262642367986273600811539409732464157811300056060417340349708978452603790887697835739251838951759382005841108453836576281327146725729581137479578350464947348130115991389956573362793122434564123206170557694335631614527238113448381805684208835098837166844324590406180240954445457712535794341979279738754602898947784886295920760552360778187875745274563687912963793808969832298142706944283015820069843086870473698863738419400620652024841696518371569826976875844550538358080161361637647110471663033870963744862458867271481671211179435254917567748106490105919988737507907970990404445573538873076117560156941665370466420608717238664030146644662310235374591930736979845641988631264176419681746330055599849215455624037879600145521276279402165088591952569536754226985051700278490023958412845034682355959874167385845049351710450627303757014152229244155901098261579628553184332688390750345479082252557951881254027178214024083494356513413627769893990905873667456121568811248728469547119349053324874800866843264949077948823663358785120066488488299334565410709348275250444486136690543917986899236539912728728324705060123947847934270504541911778277755658858157871489349222242340771973935354615807513801432632042437617068787800197025236099984949966311532640029993577996290418374219828198647246727402846999993239164908872900375173648150743331834432284784564581277335010696203892959122011936308703772093084086804357386768131730612675773652871319011446629847958358557360127145671317571390953689986938874389790350822420014745014027394832829514009197216675585951487467733704766869220693360719708489764395789386160738696750858580278025894984649198758732609646188354289100052744524888431661267489020025899716564429294914881469277923429062972469842970584144084714646088066006036673494581974542954867917833872065430052589683752222257060169744150318010230687625303559130293518517758543896454701564937825991052483475426756844272209156370198559974572269768459883151286563832827078100462517387574177814540830346377277412671381709853493390114628257961152151980717853769668678342965545523563331615725900009693994498506846429596616080129774112700704515309377227867802236616584742892050161276960343071129009031615181111902109925606982667561109750316013141370970123996142289905342847245051326447458938470342252386662990396498888803658971974277176179602805859060186964159204541934212823096690867849692263923870745490871666747561573927003499421634010077712727355601457014150371999721730430960105842604751384866054846371975914190196746645217932445764807944256838279470684019151557101061656841185958077109583570906594539177637713017718401124284812574443329585006521567203558766870138118518179101331295346127965662090356965568883548779431906448785880127028697828440011457544129163946959274969758642556610523628038164218073867742356725895888337693564271430359164033746805995451935989903041346802356667398251819761260826556682969075401879691834511281238445282961418429319971083523899943208491365066897318719103981732025297121466675240599448753557933947772942946366116961676380245701910443975660046051834038937174422832306147041430888947085877327658168336682481200048925664387795622447048328011715748845135152203112689006320491690060438363802168191641313438377454363836989141896269978233613267780521520338466414516238360803409575466303605632986719141812559516099509649855627446030179337829315289420125943556730260767183419152216685937963750535644888719195966349337488432245090285604017730445687703972830639916926277228897183832624934866014775003416472314400767031911400332313693096800460633999880915843019153897158830605578096344929891889206703260255206454422460894561272912208475610434939653629718835677971211155483848537975746377208352800112526529586189661820828952038473265442190026238702645272089209901691129828209123693968856319579695264275189378847106070879489208434284107105313699049216364410444809743201530507676636544772417823627999888116971166182933705258114595488021270343575878138772695127655227110479192022361836523982000532296263718965874713209479374252209875269176909618764042163705356384436387965083997666157307128185729074470353251052111414094303528001214942017039926514156338481887699384276242048419280160178417631463876461175832461737521834373746567851417902929961149394543275593298138744494342908065622644249664711530412813235029852971290133762466781677067495790367361871647198402291557421781343449514890642596069584656233398477412056200387635630713474677565025611040585435009902113323498392633203213658857867593333623095912427570333683957032877173165341530192200294523905229463747312270182449973233760772742731154227240783977436504216744673978249456137363266363072300662315314107157249551685709322440144366985518445860235443849388037122107253661676673614509509646318457365167857396464999457018842595561107467968979034023704865096073928726397460978290242202005674213672617426733737687697733479584437845651123548426644936183330593604157004313510559127233719176056080969883135489817592986974636735436161711547687703992886289651467770578262124454128943378758748244017418197469284608521449374793811352106821377920302566853773611215906174911485075901579764076228010979239986687684683536755923177781713466770409251846395812024415092707488273013068273314815801908210794417705573330798774030276126172441724122146648835984261258433394587403581757870381498742089808154898151497811884051053144926727553835108034877517121066158026364362351396642236960737825363226777098002347307643545658418036900776353107408405003602377327676956177071207457086202888240727738773565472133531689296042606701652215985930943843590570722171878143356490148627887725793575501001346034268766220349445615516487204156227654137890994263930908135642479136037255828371030750864887065756946965723595612066576124558460433962798306114317946854709410931165566609668160404039309226709307563501084951750845134062030297670642459732730955109381483877862063697874548915352691427416458720328854037937483684289020275986626540140280579722534091848603663658565783255809932513545874992038880357394522523600969072811767377406105494610887695353538285540545668115326699997583581431095509406101736266980100959129734278344956399092573959888156738278237594835518912802250957354904330377220959463085445945067764380279278302634051158124811532637427152138490776100727821701234945233042361439235269943922591823429932421701931099291561033616656298804037926497842039625170662036750449594898373135285430741988651530727055843680273269475886570344351237418802834427876732348867898901139874002156854650792122606361775912061127685699462797767636749715042791812449402359704736273405143912045622146357877070380423062008187027276885494668393608718651179367724218784146458643908391849697862400334960229958745127008294192423787062406654733425452991500312641845822092597094254245657123262272099991317975569478736972179373259180210935638249771338950202190356896933467253142173559733878706037739210266895931452457391083134655769868652609604752435708121211299962789388221749475083702833900685710892164781530846122802988637845085926706817027632213655626161549369586231715686081993201841745282382579522186199678825119272566274815816120221427018773963211796309346131762461121938337197151544768352541717197190868553476618803534003577763590343219774380375231779716823005253831615727813195681117669003776457128375471504418761886718893481667550317719729425861086287007988021261491956522367932502225085720796348956820461017811685541454307505678733243340998483251233422566871711508782112626585141395867672824433801927280530689123324721376717893101779817685037923483596416193959006259991943789634445032470617680634486169420889303076747623027815404212930488599294990998968163639899947057979991578964966973141509902244255675991443176873475695642828478408851451935681879915744291255590492194804100937221158960295022254040414568434800294895451946027428547662512580638554609833088629992523169461090930071401510918747863136428869809747078968745505291957192190926645031955123189046295754385762372247067916113563749647019006607411749958195209080246657909513508832651927729208729284058673695827336325698530832728712707191444868377870310866457333816966054800082704367618835449958794806089412583935602438181178433513910626644154807064428569580858754526191504637805915050453166358255120813680071215338218544360360105734965105724148694277415920189577320189780374064344427375592532558700839431574743754769504020087560462097863579479634757901325484181442235826389570525235683622775832401905463068408653257335125413192293247973195135053265467978923004691308914989555393800037198689275545503006500360293396287335009820724146398929593474003823171091360540918955733112551578599577878794546212861964487392465153101147659178953990529190853569447323497130938377889559502336485556328643129148575080915226292505139235565563916044325110701255788913063851691045638042501875687741372893147933032944550247797271115929570342698550033435331496735193461796688581212966423670903276152377563139986261791714477386547544535252919152233805780783247947719421818836566963171825599105760399388708394252333515688722593277583559489491512570595236747868659455163593637128199536123178282006723614059833694533301951360445966296333337090344110605371134621994152225280593313717082660682795334073030058801238192578734312575501808197172336314557250991634610671804271083853022329542729728726876218141803556322205828848117536187534077817211898495136535326430575182836458413709043093166253553852077575400756001835467055940789535357010327528313919348987445911734734518495578423237556565500676976252253951374771842668390867595969013505375624420568166601279751903009484702989134261920537682490850515894516727934132079909545568994021368194130414073987419088710088144935650997842009035096911788362404309634581490730666462884607614109744038249926139721935066206835639883185073390606068079444533206090091596773252710417777699075146125568001838004244503083959220743773925648510070885992855079610834720324345177178444101196030299312559105314795275228530921009930811792037999216211444965999657561944735871819473063068955654143501034487822899962661395123341645982641628912802927139494990542432412999476733457401878775099231843010467375742476684700096430168362596320340041067307151388915754594674944340708662178271484073046527236821702440208520533032579401158875286263342826169893582208705733249423315116613596610902771738209644872758378706463198209952828475212866831856862863485443099417960843843420260459923384761692510387271728682204826054786937676483536559677636445322891809931753566420995700766335506790166204566873156212133581268978707946293464254343497872300013178582247103920298378378404495472493834074422794560299587626703244652565985184773051560104387474047166965544189223784557174412421574502099874684860549323216847291056428653274920972306145182422860442265813210184073162334224698300758146543032597965183163712770362499359047980442252587863125279468291326690229751678491229342614069198419470152342505694929615947191584745715851952646558964670097536195260155911877627622102833066977434173640388137084902870176110659931690787539113899780761334155941447587069091787804292574465671524710667668366657207059525321298702477747165243295372746116597789797717306446656453348209889359363450344658596318378846294708184492241697666520277835763693556314827078237046316869974072334526440623402157723218025019281286652167396957658903949950191640355546637705342708559814314443503822807597597224919194849082976520505324068269761379459386638108965495866754229540581278525168596134210237544253995541144272423595365579283931643484077388307984768091353480174143513214223600542862875920618462626996455215248177082847011652013989740118673480389085368728679337167163982005049438178725615598780539289439688499116497415011081546639481726843092388650213024078362561549056117203068345325078829691220467433068254743356539819777646873284335095417859075407340564201817116686195577834776971949945449961848084297496026922362098818995693449491499030318428042232408725464912055090660127516192510080444204681860274435730275790453134793824855561798123301806338889655040746011813582704319490668727339575050684554572103503166584895060782565484299274284209942756413167216076730727084664743657140128173840698132545360274372329426464862689756258301314637912778516426127164262577673091204331454378850001186248343816398296021821024186830605045937973535341916928107975607195692669023874446043350561847786583630322773284075784395703276560096450931005709675784072802423180642753323623963209605598189670274134357822264887656289839495298420581857158060530347992833048154314438096830644995352696106924561982860033972713971839858886209448252657430779725057094365541037019932454609309296478061280914443090723456382641554642427506184758138808252343233116275223364101314602140928877081230806050789501395588527738754963008617749844975063784427200834681035748210552892621228932370663323668653147430754830724730512248460006616539600824123985480526083521279788022347314952289781791972845933558901942129855989811129053750767890365602146835600982312008499817546120925359455172437479024756431124478475855571068480850029902926747798015075377001994036886885803355043305865970044576931007493833198784400016986021079087811438545463111960477627536255052416154499536541448508328332890295122238535776102537522291534827337008400454649029864065835103934983808949669689369290345903935622681827011635495649218179043645181377847198008411155886593299362371048171374508011850288794243540523931867553365141722298690330272048101629192171977420165358955195162883268635105817696417471123310656485083655438726657826315578345751631272142902994871568930846347946714694045924791326575395647722220862416434924367941169528145972202196998774167526568261719953615029166951216958069598126478765132463165748318110148093979421097661764144760064534829279919223870291139656790618359740288080960572487939100356484758797688113694124881054447391813274248413631917753357382673814747816641993715331035619108444311837354210151457614738377206085468265226537568766464570733807526956463587394880651030907348840866791970551668014280973228627532052659580282912487723185191595661960245109439829447466313324498287957538521971301448449388926959029959567046969929265469314567664293090207876182003488992914129641516768333247600596085638870845593436258498930448210863384138885326371373466088561899238101635490025428186860943473966673952159176862214083309442034056391820571986367714814105013859768154311114391115180699807757364411098376352549251285834702336331448393653813625686679151004950058809607132878822941665077778981190225281510079319391370469750545500580444708195738917378157133945701857837242049418161698833352202975162416606590465764250370446172423275730060697854088039864794746064447234720101367615271753928165519031999257474939975256882619074331282540566013501591651637412298556245803737593127981536136484923656587491606929446787636780267240027854386218438986142664741259981515007532189433084393398353471746005271661112665693633864171874917372898994109189692123364987567000612010135789956765386175017586297816922964902654165573558159555557847268189483323727875180836341214410854917016026286078144610335603417497487973610717593150346771115997217770708817559552329200760158743999125588711105430214103549020443907055327765911708101260479924788612442446133686016113727131636292324059242451721868393985893306000586887910200627821521241809464429550444658061111244695222558052413587464362538138697576560123846339777930478966376929707050681936981709275967689898594018740607784440160903545377462134565813371943842459075126610758914491975579626611893769216157576570541754145160222097073699351682457903487695937641585180909973712622354913357192908446393859105735552480159929829350091257690586410805276234251521401695467698747620656961609222987909172792147948849913676169843366757538168032499401177806063902681263508435966447266723281547684451169448917897168827771323522412151550062409635551053310401187487834815614384067419820652434977171020721770688557776520895191690285825921906391391965299716104771277258119347482866083403819347670492229217010159389758583283909240521044400160857132898293783109952222030574748605503196192666854652992087666800585093704694194029942802182696298235551210723858677927331786436154731450953250598550945858740811761419451273625265182814793915724182890651982052754883434697296792346889921911561834947030790464502161759444279034488549781752700490858723019614391478181461309331158426876411578892366850391313618909822863335801078051668503544425190615720050085137920743548040914538997982590314358775000402078072474911337591012903939766797099936192074004359210561027220221259014702668284814442741637911964961099794561183490565492003213568760027271980698363020526433643654293437509866789229449021626654290191721811129777474780492540226132686430736909317842984983599807752896339810655859671561038640863826214263153668171784057080613462462164040850172725987772920310028716569411555125040597522561268608982736216039152214296160727426969286054708765087326794818862386692438119490527370887005235438550943956850118444547198755712201268416707469180183927045369004612743771513649047136628239913498307964345798870321770339870255279147625956330426382271347707402238817178280678836960251983442757310806182120750812757694484692623869805882087099377526332873221905361065918139269114727356676991020496128280662331535454917451426635638633938694644703544892908903096785000866200934714365991456566711200390084336739281665331608269507794053111435408458291872496011425984731381341674897412559723797667300284379314648652158757292593796361343004160055034782143372124637646503444678473223763887373444118542805440528020811301388441244245918698697953269751883285668327972351129611806528191406336938776115480994601912571428754768677383956227229895606713983156521503244896524590808248044741100516402273529206627488833524388550308338900130734352415621585673956140540725017791683621998708591419329705567502590816822702824794364800595583522247297314749402616689756008978845272322714239304209887883787953145886276755004457268285966095632663058978359313973405006644865883688403590741544134085475235739836090890640571195035314817138451441319406188112633618463807381810297942680742731631702088753128321332080947615973225097331516232608874084595172194301136771549856866312141648852569556136356787517227567715361676919528118748213440604010447095648754425856458766462607612915664017993562196206301778787274697825076983313182999625660638213968056466173945868626002302134569707072466016361140317510445946418845802622913080966348738828687928658240127103003298618290871488984413973027430298293751227714776134337164000486278907146097973682946273800977034598630950805263073484828877968993833817746243052500052052821505883648147460686868018833226721663530624696604561727250700388689192577243331055832960097042153908272561293924346476424849237736149485126522141244760908882442704757336683291120408009691336463897741256915545638307222605704342940296137831999963520178859230216360396884190653738240408013128660598304467848641707433989065434190778180302528811034899270509583605753483394390097180303268220876053809099769322318672641574887878884310615057805131531576608477830080312183542931298587775608242868849661220126708420467043500480884770821242862497571298594085067996638649582720108396397075797505456908392447198659881154896712466485138956925202741199199855798120754938270438589486073287664941555885053771314680691612687928671274042237094747295854853791671506632354809261146927761271188627845848262065519401054027849841337339262463044980354502266848942348517659473801213064729172948840991306640993055629284634516382639431909688181032713390112258520261522375277365477717660206958953721088512940638979514505759731536344590291225329045664135073435017328472741200056259015613479149432493791770905126534288701005173478755545229280092358570223066337181652247994687631992551295289854932996969799605236543827580280842432384292243655339198179425893045510404974928774923427998894677312310218943016229067786983561561320760605349821506853608286235278757000151350818730055926449649503317253380810417952745280167456878392772171676503600995733125549469476016253616095113681136186598726513535061519219483532907660225093784470400895567725945253855474412161278866108921910221385727105233174694001321769500148393838896039546803385025607230603936806956430914017549395058204665125368279477663600375931623544115536424907706534511711154568355943315703116649503961714416718098412334231150235214360056902849127183360943281432465470987153815979690061214421240174602615798441098492166289978236537988670663393757209674711926914504869426573810809774363942221490216597976283169028348913854501404151880908844966894625067905711880819737402985161698178304249674573986133333756655045691776977585986948169402110708127991916713384860377441549477795608764227899348162783093210904050640630891665247567188873568513500483196263230914004156121018773068756289804528996253664320136630948959922079481666813973858083448828223889156158649885273941205260650630734516202588817009445086979033844702216301497356010361499772785994807006983534726285774885329078845494257949785702129378842994247754154337547470975173655576318965159688487656422154328442858817090298778811102259595141411144133146171545951014081537805913778055385715824338934213341713595345478393488067446191947302124485720221462929457235839615669153538565286115519304011672044209632121386795073501814051316928923276095865963090220491298428163904770942590280852246333441458477660134564367416398652551116521795197527170099991876251907569141043066088271182180285245256304234024037133243197403257025547536806706841004703675989296916995207769066558384898491211151401936824749882206472285464566761798542570198129442430241911233643727402125233248182131834823312832823271745433738045371179623357647947679346545380632425007651090735913062224624351173003226313696225459490699232787743587069841861677402435971220873898987563715638224902702301196129708838643144036270672682792965907467718426228903655010481327158239918150270876438123741664296496213297253266694155756722082835392201404708704785665391530339192432856150520083002886309904298473216933042728842861348658223521773826205720295710432092168157712360633295651867503257492521739858356413862374373950134586948342155707563266371955686404003801734716196329253361898350315609509799062995402172959496135263012628472787188446567167194055780166426540511198383082703417131352901979755483168861718581591252421349270156263545067503869546304374478385861127180216877583345998920656973593619399938242847107460538554249704843757126401796929614541380782888112623958295580173239285838238160400234515540482975754710477995672412692273657703533343347053539786351336216098118906983743065505934218888740589319433391274072291216285414827159833972332503072259787556941598721840922962197042622335918427724700852490099546183486800721964638580986710855927240843793655085217387682782817916657134670849734066463546844512757560848199929145715294254915550471595412755600570887260207682392530604202017956481977852280851404558293254159107854335747991182087637593926505916299337895656746895534952591127670285466437299645517186785755725009534600214969213840446067430077878599175265211242086112418209167158877925637366720232985230486581936116064190843177128184680346944681828650507073874836633398900549228330703155894683558911269728748374599380892110962302729005845768544862393048173019128343843343129093115990427957751717707275341952330145447443045048022448807276286917350151639621851173358488044516005745000823151678842259077861507601017981141845686419748929499987851414244254610258551252541999767342416542770501507270625577187666739954358183144631329001764042586304377243004036517762606444900638982875976675809811735221918931521661772801171166394822407698975269345426948138667444936174959039024011760328213510853479177146316238447386022849520416023802315504643452343546591621760235293222439853088870698929606818819332695418292900753070571580643791468822658997206488875844567465320770868455239540901513261409671382287361249511561057249515798501839298415190319173400500025924516424603077934053548911685259906794973078192170997655356256723742709916247033811685817268056645494444982359637576187337057792326388084437589187612178364549574010365979577456499239621675106757776037521733554361661707683990036319248636576311161060292151647434350701751277928888271218272490494139801280829849002167164099734501072622453076224278259827424677585499837863450381144353735813261296283575990793477789519608992480332809693708416564500022819334025903789506258728419406289641021629234011491453572934802466377431655684374481215126623347071821786490184574922691090432036481001027787651447067112045746112624009647380286228566300491367977415972532239925101236596306303027590126017999058246173174270674241760606409375239844428855513201949789697968100258388226490822217842751133474749553318993684046356299690680751753125262916930097651637107199558534617629432423124546132405575773476099655240101471410297428651488443940645066583829267051952704810916726265973201515281275136123466420005597032944896727181986973173547702230355380006703182769470236293180968504600893255237552734700674342419977560417558017566758118943002439073421223078381390945509236269380970652114787235961002657184681678256226414738377648954099982917129320877074430369839184045853639488688100167722501031948165973376956507629051675814058103400071808905975162889494601667397306666760107690585741411099083950635385241867264257234668871926205342981004955951271096679237785523490496557510199491297926861917495396685382130896670601139844922437196584432303938924662247352363877846417435007394473209551568807558203141884172005518284177271888906135164310390912723114610058641606571208767406463276826670490706365577913729173396875662067722547524011132252131734201992528928448470184332880150693222039041671903891354063469847673077874844240524095275442451900859685609475791321564524899993690637124070331632835963430605082004655862802637428566027520231109324617912706090008840386435489542471262877768083603272998492741729769534202301921230561582369259096203626019068107541680930049664162936829113648411815952064695131209792765702922130908562090258396414966394630769545646763011465530314369894177565305320492111598963541345976101111637460572781588840446898101387714160929893742020636288918614023448494173731209251153636755472407183588198464754057750721470995787563770062985583059197652660575040821317725645151069601778780922120752646311920392809615074809992026167900009503241380256175521448360504393483889592722093603697509235609943554897076261894390877620681215276663877929007891472684310010108723897263456281471675559102080040717106235779016346930286665462322316649569815654406664867556623471047881645238625969028276722096574162948238791233413323958170876082791016788932324708499568735569615949815199993162790037534976585895464131288193267293962806717004076201128802162774885127015997133929530986097344802023020751639939794016272518795856370104320227077598670323608421096692880992122225116221565677337502488067500964929008954077092292072032477080681117795388669467407492636392846622791391143301628574211073313972543191396425057883898948927668523322122544822487526614137013436251009568193827818810626115972271741528205893917850987907074386858600001184588055546319546387804804342109784989370696477085559397028284096345243010734732203929022330606529222040106251212748493323564916197678855793559419352033926598868382452387793280715681101996728895041922083658342881614057992301972588938242007904774371929658235380827106747173462993923604022998478492147119957238122989901626117723161441236197517574307214638544908463954642396307252491976554667001838465885628198416627787980439257925443536181568029292165359476484774403326310883450341902745233025411788299846323264778331649922161075823541111384210615761860750452587019463233276711355845380834499155510375349394058755130271851992915386000963452201362696053333604866003176822914242471123764894223602145921127929194811253060714644359508664548995985118372608027903834111894156515035072909040489075603552043998936206843346074151615601557615301678617038009191714414906998304779223939124192337275149386047027532340509339421453490751008531359421925544183742796760488108557481874080885453773858119763295592704463400745405627829820105581828528305342942666612748832665795955895836878164134408615041808516376719488484752977175218293108663637682098398968660860117163616487991303929795846113400656805926494876130986946582122467657917362769231053825806499065937340230778674116766691948714541976531003805103586281769157527530233271962395825720356589866871800996389020240834816659727827665686193047388371116937787701657338196580860375756040786221444516991749682268434460609489149253565544462176411887164799843899288533949670365313050226134818380792464095981350177928839644064821319165394209191701704804595774701297257230514131482704627067951678778030897105600488172828818062295484920450258755062854795276544255194851472910336650936995302795503489789500282041072882951364587250713597956096554959266124832877588551649759807730703940073201689883788183473724143128667517389637631329170715539230837455267338624249891822804885010730405153774554097107165845777812266708715430131901287196149854915077157975584738354523171658136399585859488681766386883412738764326730228106840848858073774684804937861401588263607892447620396493794105292677234344893944742196886022622546555919574223655421584437206700320414539966744820198096748794121944371445498483527417358319888027000766230767821134778687698217858991732260765399385422763395457582573605790154101544650571345613138781766789646662241775089208731302373423196478288098237147619444240148368899825249223683156177748889027648209400090173217338549007721495067596542201744662662357976040351005177958442644847514803584183520795266044712462434406761511540185329844080316953653204593550544111441411847324506803115391367648834560868931263955367981046319867333022500101593075801129415812864684586409067086530277327024045623738271682961129230328139779937794334266064063199700022286923473452380744178138477742166724246654609417994886123701015100961581428843694285499074973319378575810030180453232400671069061496724484122145937796871921544798135220262112387714633830138723735502066956313043200655838962427259051457101224969549373218678861174102058703021144121607172850306981915991279220614131315653926427786272952255632301513418761635285725350126681936700321312081089161396165513751178724257918358605484385169281015583334339149591361471260497366638375147823894889756241210212747700640776237624890407871274694323937499605407557235099135046017027943222237680881246325046737133465423900663699657737845673031006326059167658564031226438954828257440231503094255170146002238612694738338813821689438019612596862273108951190383885269791295178914314423370845922940928979767852718910570178774859676618919145940923197011812755536335863880336502225807400042950786553192748003452820320039854686004515412675804643897218899240280234259548510375998810251527979741081994508600531916418272851817058335248792186529154376781104968762982008002879401413048334783335457791161311203976573840766061546818334229997263894068907963983291825184092719160893019452305067503891153958239447763949172186393083018237085905460386809925651613797414460145583174408209061008029265427814996036574214864476570096367145205889644501740310437452754410090374765597490340363002342341600669769118290217625462515278619476036854930495373230061776550967369542930076160542319272261696159460109026940763916226894257287292086359093738722849917376125366760365293767997877798120365603461933744371445075607166681888369781194633062996990809659460401030424101376572470975928530591826123592969232388834576877850299543660547279561599450612124950729490432919498107692444360122069194778035816812070447970131140993312383028998487222024679548584058326343289734530510938117449563081150784507230787381746268074763242867977417177869541942715303247608799887125773018864683427260986603124820685526370886171020438506983056651864506577627289115079256638160010982147441409251026329522537363296992433168186348355155574272691925654691594734450726438776931028869160810189642917193647980351654837049099686057778804893064162949384053533670617308728486392614047363058109523757145235565438150701410833697071593559217844552533862399594635505459537422721365556523232233446238278261376701322087354307535715426188146848733623830708136347101747429131526499884165995755381878827077082449046302282148983475465922338211912628700427954458304340758945188598473646669990261488038714743567549589998774188565529884876318754461496199610209976781776797471165882488663272415973197404597225757710600271819936615204866061440457210818986888425431087223000207974190491579669997377358306053546739649280914261920397389925561433662373522784840504177791124144440945167007331078086740945639543910236605163268959750567866649983167742550813983273598405623793854683647172474906349086813925921029489783499016541580059986582103278842957900062506723109281318916072460506221119218841141208894394958766584933833827204151226614591473971937960163960914595729199601600784530365585994791864280020812222633434799926030562285864662368873014822180419454515669287734970421413723002053528314073308016979197525402575170655975098588019621570850057877231467151084798364294453823540925847894042889354784165120278411471560075470721768557481354125437586049552380044067223023921194698791276358826256913452814110733579745630851665380811229973324196680628578203165720230909892114447834937588953557722430667317514744311894142065133515140710855573811712823023643108945366942533855832221568072934792168349817912818203458661796064677002216558638094038026801536811167108462354074465870683520215110509830286002431152222855621295730986743184057487385310452687488596487878639322832539469292546949176518926357646919918360535668582250366944433642134677720275811565885873578621205906658407171120131566016123366097937512432516444501021320633141985940104675042154344594103535279031453322647372492744982141729950503186631905712497052344046667695878429077044396196033904586283115913487417367488601467279324783465365615731780947794802178191154937238716353917495271307861778032905503719358783731659159832964774734601875368499936418708166515046884486593228039489803244279167167458260834987830934412746789781136629672081746244905171478011191448079110342080780379639470199649038584643614756885745852506432383296641912865725064174298106370321413712954356809315810943880397864304913991751386935365383467636264028998164984346478781949841241235425054014248259216858295201772708047332221946436450227799422998970528553010931803291053357510305658786392792977288184652053387322184626254981069527688029572039721342188245041841996714599851164143347730127520926527665176167900070205724240726786349806467437928367641837109728784193530962216150891077433060729558309842485239328308034060818325948594177389411110641964382968215679617060280923705777606296674941815016071166290576760500591078234831595304416286243940744355940397172535895095930339524314075075900232451162082872575797160033692805350935365193747928982772781026162813706794743839173634958809785044905934232839559764821516218711838481621122469221219183006928711936573299266325497553442407169378895051144620726076728454024423909383867904294037282663323819747013080288666874610012868488531922811144238311381423710851375924850774277783255105601407358545759378694521893052148975461721662446399237683773199378909759491175102297146857038030555598873955530367709520380563118380195593342405888420306633483649181051900498763404991792869598053998797726468471952602748326321773204649342164784067040418134920520384729829022988779416967986643243794750070285404774467060522917309451706056848879710186419895326205679896931025889220999696394029457976670341295600814942040911793931308604932369954709315651792476845961961854884067709836454715240829993456119182352191396731810806665206617420863755675728561183701175792242456644922620705263184936361645002118100869218850202091003187221187084626287342011663688250184975199005286170075443268772473589590384688067318746008345300653558085484251604011234531251229981659188550118195491826540929243492817494633640741708486706732902170889505492485822146926309823868513028907605712799775668348505488360613558944948432710502563454239675196063021868336079510498555244829690528468578514560039867681702214280474133094115673706957898662099197637523879948309120261774339452925304905575114541358199995667412459776373868345975222363074356146322298404901890727774933013259396388609607002947823189894872361816051665723063597737287548939485008161484490885505766852807769269858244034944860095428601575919413503415818546971834375120668728488143849032128521420132610275358769384881169062426316480994824099843140067089575931468642336519752370120995782600736905325776584026004225783018663760321656109039327117996922018385905016585776078050657562087543943471679130632034494271733524175309268255205720498191271448690600534666035171923649636711318230429632534674692089802553218167591139033749159588464187157528788750592172520585051364779445765855011203087703291735736410656384167454866399297918344684842002309350904571144333619980722172870584294632141608904111059729511557519537969089828392125339166921854261715527902829490122164126971763236092640716078899655720921295043358370424416374257022690461689719542386516071252312618642091849046416883470921800138113605574951035386898742351149035970778763401480554489991220938315759504974021433301135231294505599377371915776799117755588749461254587512326307075249015302587169805849276605817941643249424652334252077800498600204990077801838089264353579949435078464519915209924253851935184845913572115390595078853607204880797387170965318848529578181731409622631365527083914397759588256658458001700988856691621520784267113158977161146085427417015147572617196296070586893396219893087374141393457444884744001944701214583252005122515177156647396435225729311545898944184643588256009227112889941866775239055111584629319389665526490497819095988032974460609934929504871091986622526939363335524222714218014652716877481942803397541651396885851215574110396912258067681551420724865321951148389877067441400292522648665374099131363552057815413093531262850811557699811618063898390831857914214339541408321186195837196666323731261272996264545863650190686685026361001220972217633707964982299879892704194940320425118669774193804649670154220157609488938871215647724333041555686714227630757512398230333982253234070364752189039373464473528022306022688211177391458457143489338291678622517179172542110096451065412393559322431091970273026702443063756409869808050786130958781756773710825094274892777800990785814159084415915560157532674855989996031878460083354046161721957845869807510560921253989235192045556778248866991724138098101394964295210970986318675247103979948086833308986666384142820605185860288795061036559811011373199607884390314414092092553833397020034608206841080146924736693350025879870745908751499091677942677024359491364026812160557968481411986625267870503244390208850628268890139450712572519019514661351499130794297791185031051075080557647943432474538082467431446171651114589472723993531583560992023596609693140757051005984607449012496768036934759746209916847302875091222707155210161183385807745940435067385762660990185281630221231558414105250210690476150650204175954211460484175266474135126231676894155440349096072799544041272721169632568258130620409211892249140519251211823207744050528398946020419000216951713854838633898295514579111386720261696490861201295825819315699623584455000429045050434043073754121260759598201369341520108318449294496799096661345564451270837804231884679397244458656385256290182541281787452759384272775189770737369314401530403419894627291692176316590995002718301455159164080031160359395605507317796565602936325583549735045098182677320310736173922415352224563060609401659712620884176127796721914631692504464191108153673658965830921942336932199734799628762703032220014067102324770159668397899740472432090147080567562673278194140340734172553342135311933021614884360714059359504221551748292692175582235756198236071938448317718152917928246252905534139067953413487290169475428115449829453772226519897767156605760244947297598281505518178047713832435120447062209622320293516527058503920183984030605638805100686921473674369375389083933525048395218374199589198665225649143739088904906997722150568760131303129567374525137587297054824818634209147002156732429578302713647376393750845043335870947422260318586804935526556469200138673208612315469437908304393741233164866356555819890884384511400200590798130273178242476905751050560728747264259913990256399322334862028041653593815479759088145398468708767793532221115688613683065763762843437587264167707014007146683144129172398480713672875378726166733474140260647114545013083794854880713232108427709963096950973090545443383127926653280788219711858100226633329321189075129190023706395896234829333189157008093348090061855896010801123646727435747115108066187563807270024600317585465682729414856803009802449471573126828251180101927457494136061273600830413936117410574593916640466352224364371604443267839394335357878281995786145520064515513545434840787944973361174853006844518448902563853939117442812246271500130488434269922035879239186720844474613648883940495827604022286275230390879961653765829079485070876011718914707282061336640619008400939933429163524670626843082830284712785714917576218885008171468965640563702166898007706500800990731891855639154196476722380381432723404271484756001186570613721563008989174315140551046384455545162406672858452542498462779381967565999284114444886174380302224090754084922018177977976529767304854123945942159724574127609296464337970644038545246943816479292785224629115772044520040749096100012774654324493209163494653703807405017873031893444868722515212231091344315445751636108232041275558750038958490720767047047573436226827854382238638801664690580084097597199762007730550070953951035533710919170496480001830444700869957715076356054358266877148823629622821988174908049315210838034282851067949554660337373855408741158753686296667758157854818632469238425509738266297383500283044538162710108121604877569593922169540947535761208384505575468890162533448618345161663161022033684723251541640976275624958402536923385324750949013719786231717297190836289548696639864043433255500093282465832340846746680803007655233170007720076319466738914886694482917729127977868576383531591759976849095540175924034785286762350115903430894955749351748278583349294380039858672505503593308890780849857081937947332313635458987447639090735663135452566697417294588651361523371589441884836892539161045200895297680542204546359396025601909842524401505186776799329508473986107932599502828641685409295664186768499986035791011744814104768691251132388564622936160333458877700330897062082729870368735716752993790099241116610347098342098334480427049069904840791093688236115228724967569283939359584857684475303941692095824565196990853247415023206287598530776824699074396449205118690861800791367496971135067216299154047016558974684502493710973185774895743062135051753062724055592874964728549223610846056384233779137403340293650971845261316846816489629405856818826996442501370457040616438670670576422345603569567563450600647357051256313560794690559471197843418615252692209422623681038256642866110396472359555693434900008223000735676850248342540141779330406977309359088269893162475984110747104576467540804562426301045044720077119966743031375113634966518367098527848941187905550025671620903684100738067409445686619080091254346981757017346316951963323982592864411527734967243626379952457882747027778886281671529817978417515085425302057573147071002842506956923322465219503255210724196215276488976054721012212165731056935349201361201156627979906661101373014930916741387643289302317643804120504209006833509433419363551580601178382378842379030963904544020401140890500404829082441893300494637481608322739683128528229185253827656245989407886717689185932173834816444953133623157228140543141613927044134616314522011630864178649360575690246801430627327123928966097005052249419621246859025984082497283150236946359387724265455276839562603996441790914365984664649284173307035216215511607525698053745357950782940665090095802621710203304193851970750085555843892714807933026199687455576171579820375461131883266865586768685873765329479024302942727867688009312414392865449963089714620802087254314755131905241060480570244342366600856926187598717601784380428070531177485415471347494389720106588285898791469248018656068900132060309328431993618125842554099829940661961324302952601378466129396272096028647839306618553465656300757116184919851981194031047265434956372150445639787678643828403872060036923666799038544946382150715341659353592165907382609551285973356784645436413523520486144819869186051842965881737660370636805527335962604780161207219644773126719852505094921165176573902000729343058666804065388987002792699612067492668664459192892709726553698158603293431476101621756218160738368304908363212387965900983397966452263598796957706861500242204969232614493112998235422330114355992325830017141282544497156715467279031048282574732811843397635158159001224358764063187454444687342469674904818773001187421424413479088787664884143822068066154788787211939711317633410172985977417860189197941431999875231207933043221780238656271805867856741805459229364451990324513281509078253544500493151166268562951799300403842325242248574048973785934475064517407789198655436847984904109297580421522124649732263298580243554294273199881467546119127584441620541414028881456719815548754782402035138831712660205537363221057351733986387866076209383140842997812882801305912468558954326890216707947737481971217166710889474427477370392388207944420663509618834423529828906426480395730973945134242881270304497812651557210294851366534229925310998313470650137182270900632953043248234540147218808172348800216862994649396043849652034808930303844027392507453010101541753493200436658544549114479928818497419705331215514651540041418727056904059392630156707731481898908130645155920948600032661840078855123893471813524966027917253923183038506247018215589462229439395468301201739067083200630219585002076229906951952126890926838268846383320126025544028712964655183724942487197254289374919816828857345976451477007300816345296864722433088627989987142253884142429737456601644816364090024483653221054383938467540942578554242301595958208402941058622622687392011153527441193321438879817678410249743647880469690966207319515672426735495044153328529047180357035952293250642978759258344013733294823212238543046462924267611274304626395586774748678986720552005942584959187724924051604588819069219032145317243089952077405086811539447998283238419508605951431601096797062935565966277323850958489295534737853463803502328192142596188023386226261912119132173135467291142986121679797143041893314809411174927093121819097957514313103707222869467187927732038698389774885076944769450089835634900229143670280152069036128402228808556646123389828797573558231948829557326851381683043608052383215673235498031787099128833005258365536638054602468706807724707976387648071791367144983740012176656722461505192557738086025160722899882209668369346310608830402679260286272055284102045536934630405317187528398406599141507427791069140606428019420898778184119931483070176987409397468738983451882136057032979173423369071168720316579459510733408962243096721479899749614504718703540429290868291206788333434851209039615387487297236534308308598622327855570204451571669998956234766323407999071099180310093876201132241513350069324521900661451550035295205558372898968015088365749181665259893405386709568508211240743280602510139778508787928416080645457725482581028107536487067980480871542837475735570604518451374632852004518693655615663864008315548990662020852024344359463165060616026717654501609312416726063547454813674979333023432656893434586080063137250098030915827461006766374230620616239701181859074096851498361152638977769041193324634086379377769866723033472705296573567848080167499910290803706303523939332955018361617789697543250689436507388551046236496135002729438076220733724043448642348503119381340183999236009765986596473662192840220062442007919282932711485737856734150449708049294756128866421442671109299287607985875377114330654319371219847716719899607753653221880275732356853166610787623010170051259416890938192350844991407020468192262369132835236305660340534172284341628421755461525002632604189314684931927922799285841744528590617028160931540353248881695755135991998834147468337546880868705026784111378026180294156452146477659430087776012817738842664197903309807593753574551077423532993633868959170324175068556387092840211214223458479236546409111941395514217612532013272251519694763419756036083057319324801204211805740098941948036371796103709546246122004294144816007649410598130175469491957784080931294974395838181859101546415452602157047805492710578090808809636187026602513597320443347254408062363281620499368701259903392740497009956205482941282475802466253713151972356764009990684990487543426761698126883818138152968883551625441695391345058153042849158310613681509810174236481800918340704500991577651872551453381156370615792522946660927047190713757963875060906888034179128515050765895244940436877061679372711295207070574787694303499033796148273036427600371731920190054492130549114715677148871956996503243736298624331111088527079671305867894001239783446643242995605959008482820441364286950534595260678657814911330884779898991042450547996312186121911192607395332423882647703076383827163828823336182072958854896723322638160734281004025515544471400762469389947427493133994988590818180160518719910319032942267275269455761390458613738159263060654202566229664257017056017876695570677341654968157688282522368319669919926075196377761550796806622427963267982970989746843699426329206795471884193928993574628483974264433355415402531593272582463327954407032840590297882457329955305225710603110041536621383415479024294667655198293206070595057067998247332072141697270017839876195354230817349205621125343735030324868626725357639875408911788115360441910106755340074548455813289837593636830020524789247517605159008709694393662580523272707124535396577118225629160803731347560014399979366228131925894649725861343791632320683263554017939558793408341008986799828588431368310474763990833604318849979832706905933448218366942360851059175993987497043466958550879489575162184843370994828262848567411365486829845654642488671090575097916188377329471099974941862785750890216116656123615174361698740468641460681573462198962448153357388699490247858302306206359145459206305926780886041046246289783085649098413460898996993287851125959077343674979580674038706676238734244840435763504579233099443986052652157380476494128191684379496549274601692705608290619974280184381102363911039275430191940224354292817217673933444551125118511560801169622228633433924401173849304390169382468434816509883371619001852726730174750968506531652308527905575199834275738356415703491246557344712766285186127094243891661300068925143645456263795901626034442106462057035803827596259903668683377573235091615485359138494644382416377671114473468697332156477520649645562194755427432659108313226928131829473810468708668271705410074898306210624521002004396012845004886191925710133148322677914412188730092433396940160781280787702521608373689617067381049425380387409324554820279389925685615650032303698266845157354498497033471712829623195011150875996757221903451675946496746985869245345135211794751745854741262124583036659421131695523376068409629078608668841221094265198151208035373023870294767393820523764676034356734972472352354889189677061199782323463039657124029206131167454220973946841798650984782185602075560075094041512593065516032295292283692360213411298693202007866878948328595194491258970482095894807699835314375473559779806502001843204153274352854281797186280916700204681187767485990226949995256512737122773790138345610262317023559932505111473384418420973430581044656795842369345710022484942790594063848784080545504731761491316363809218934519674484536509464905704575599564220217771153671797580202285048582719433508042139895882021135710839992602464048304540109733681978594483421439702492562316626188360722807438438350927609320476049049714751930347201391382260994995949769949040614005388941888677778883387510453421431965303675378579976799914793640592921914614393179328968629760226949310958303436160812299155822887354314295660543451013592846484530496891042169441083498640345730749560646764701176265900964240649151634653445475443144281774787608769020883446299540799305855468131975438586656902051032905745489617931188875237426264674800661021877590897014915958505217124261187127474204457866196000532931968708788251597519475269389980723541432691016884277324164351894235856957877430419722112046365273936288818185599173034050618634765223954154242176506224006652803551082294128438941552561382647575097478230203799911690252359307301985335121046527665857813513610075690859197574166175726105277876888684992341529524034823988745475181853692105377461679119797981282143306264679504240938707235837964186597006837676729363646660300915800280762895217618491666741123522424980659978591868297479896620295711816527534177705498873795946083226977812693910522255750183780327994102675642715710011794806008446365358137031033254587736709645115296471974245930962498485057010160214530820263492344064831243614422287830611019329158946434875858225497901834027982409164048750213589992274710681707010288313734370017742434774550324529338642763991909296253370813373143090491334813236437796100690835451891761599781578010683212845890787754616484926580923274478891128021011009191020497350563369424553029216628362544185854256910251418558715717028931173418798276257715139753967358238562246795678085453680850573235957596917995555817787466290380887943385946956294625019886229697615844500975143681105083279537278283030218050139716924260579800103230447618908944006131161558357976445544142538448656867211355689657355869709677392632161803469554249679798450558304559871422423051932741768037101615484702629240526952343004173486484453890057744534224229737763213531364294202170974321233889054610640051410725152840555617879442982102112504111081992223109609648405178777269863212185388860478517775689216321380550021974805441749297489104802468950469377674653378697400595355412563180819395673478213178497676813916436408855908442815531940398079415721816247702879872061721338391442254035577527979631426388192771969134789284879530762870520254773022017165942910120269369782401299911782967039192937779761274675011575896800900285491572241559157241545193658245444884020518887070554583147700482267681481340938075333144953067134540580197030451452240641676763268992631816770776233562512684419724137395925789150430518537413233680252252616445346840059054403663045590075019935316852056477009233581820788517695767453776223719156103378317815419256293496572547038774729629189498790758571693347704097049652887082149824115546801110512154771944563072781712832897066912041590200035500052016129847514441316622408049904938309496935343827776522544483103626539124501712140486500549462021270249874923922709375544572086457370929017516553643062494925290154234851587623742302619345600271950851879126279800958746033939531389675483320835274735636297600591750608004168646599248310154483910145417752910658529650968319728007443478180400460627191753189197931510791204069929612716629608645943099850499073838655914183844028711012923960133274165759793010796455295325872162660971325895815367573384706196114375504781444404742031281951917252625138065877887845455392066479866654093294666593668484466013633619251579379824659219975747382450270821868311199629565894567390123240302260353088678001118482102867935215912990635079784829387655471061301066107154111629673065118285378254280493772314707909008721099434281310977426746157486594237057935381551536544538782489365720007813007284859786495841624254148678616637694601933479998193785260557690284284158651994840999013330817162220461028201068012262612362407820371331091380331349535721311717967191141580075827164986989063731616434527944055271051771963018566397712292038329741178856891540977456391022797208216854246832651731714720436011139350270047965202840000589755181305972939465582588061179427887296569281540343686181884482245433679332759703519696072107063864467194065307607939878890791346734601776187126419735361688837155550192967295868829081127506245225898405192827608279319664576279799142845270387008659226406615011165476507771300393419663436366425856620510853044505379119467681538154018868995497390970543837249802772185548790776575416336777667708349774685466999848979593244163713263472492929125478979164264084026950856016472743283329210573755817691013432364948751042254851225640471349045333780970898038452160408682490824601887834376445480667264565090686316233908978027103171111710245142847172548160588711265516887204623053863613996672874141954465900865678008815566797779056131628852137902001022228675369724340070728782186800978202299084656981377581130754025639811504054281408257795691633455560180575992995336496386214106681650043612116539527579527929310301718876424255638967471403794235145940706416883836781950273198004839010845106294855759973451782256247669242144826164949967923781833535391880730315265025218909841214640706354298519556829545314446298223538419258244540775038710919001158781165284397725330883647457772200300528044005894939202356686095551841399957116760903273376743101793553755847163251845741491725734128462747837842471712657319550456329440806376202031714736175180163566083575798844259850388443943264306812476393872921411028186819734147359502722309089626662812920877583434734309253231288903959151404798540744781494561075314388417925511460434274816700826944573183196620267055833217956520903626717595825340597618686607684950374194447344185325846230051366333076271570046493999827611385722977845511369253351854980603730124475038494281883701237043636331235691197083794256033064354011851973231697743061959188665918043875871525594952121443968434874756315603363881302717356870009082974916687454932991986430346311549425285935391027919966438799748003032312460879814967853268414839119964358208596886685378703290001552519803482982962150492188147211011168211020975862125047227237746558666356967355219944189451440825095667763695670485234513727495676127471072500467566655718005854699693003699963018196692640919205446314722147402563784497575893108176929477381368770711214704800837650194492374661091911058333092231491000472778063369128435966816472661047658557027027343476989395061659395097423828301296980956648256475877227784053203619100323782626410761707826601412097046215650086038075731755403327050320930805296467313051409417614694706342625177180440928079704406073932579815187808136934695767817178980730918537846047327550139422405213087076984206163178617990858059993898614939242662932287207178160566692031204869688249304502684729685863974213909474342417276896294904879840188052461475142239598005826774394676478268285042745096041997684630058281149056024962017101358451277188269689845289427278146853271601183453956282759762248378165557195896287895742325993704125351856042579545974189995889602008042171034919004881236003656960919932612487526492254488525240107178430762609382501879846444599843938632448793469773050564047623104520427196700274274707378521938647023505949068089908632789588271173298941499433470572012412419653288926604123088122470221665891269835231344554423981619381798393905464461005826247866275166384678117049022043110478712883160534048404791340024700993187126351203968977878618251376895807771209235795072756849897034500990355990648593694070180669339702172962485070180416000729089008348924653625467269164901440006740480565432981044763948818843697204690390172878119771901209034981878527158931908252558273188821085097184124550777393543343655357666398952678805461838224562542664427026674028786084482657814499020533030839093017294161506370679159741859994688550949612687588380159486546075759575313930333640655571404227440972075014620405867789398702072738715756007736137218115691413056625567273217879876590727327177023587618135530921751223693170591755478547832152407227998997425872501343648205198283857264404680719320801367940800834198841093458882424707557370547207772114432173726491196254456116071863684116154672478150409951344336184676339149654742660673003542846756297078716419078244757651299745345378863440956409135853137619065009405603954821355759601711669613140081596941905894431443180452009492423999898659959936836637463929983873190970012302522113681034309355216577920599468891015547319133900898100083251916139033144702391306877890264142828319234612376231112234145159222093555821332680975365796159031284104568966027422312698468366927767952661452263612732167448563160449537959815636043401094937848650591128224219894900349276487329202603251792383616111213559991673066027381856095517714590947974231649413194162186744468794278456407247843377459640497950841215660663349430061201015127495135541766260955901111886273097219007896473904609295341751458676453322557730058445578691979658969464848204317905434271712271781652196154292993890896133373229254810151482257116521681133482573743800998922787351142490643519958067756717962856771792496428190769824874049598677611774803153703063952838493542150343855393657226674790012603665058966653479796294078303902028757722993441184819505299429799544340644295695606392872256282886880388345567876648384097516866518270643586613649818534580540363418547108149340684309321728137237895599838322023380166410061379258639643067728014271996007376488853651534642058533619814634632513858816758318190177695834221953344964539452617677410019980314823062490708742148405395500182588457295639570366815463914622142937710182892692525595760809292416579095592405573522768638193849019427234427225928913678651605571082471298497504002364657828556673193707350436803349020122876602009306919952266372168095580627285978012966233975301119172912403991216529068534575155299160027696127573029298069450383283935456876334882763187439918329857316415175354000585834525384878289964790533776012454825564792345382257140499236587399545945975325784173247314929132366816596819002169592509522061513786627800241305036371042483163590628851614716340397252082136061135508167508318356785299471997648981006535536254412292657035833431926179714688167271019286648461639948943980662960001096910066436991139322504133100430840991890549555779828329016173721423906616302075587332082141609064687484808260600467372093964448171141252285422533351577426530410516679701101464533430672281445799085140996608654789982378929887696340729889296064313885219282041147160162612195554103607311882352953596662622795369938036618763472170909247768486899596611965386223644159921951973169209136304492898238002265680687335252955444765767443772252062453979110903127520946130333044169950106439092921370328096015522201662449499973072794592906001388874317635242922756862834503716550122151356739368790296702625165188455395239872688801122528653953195080799101416480835987340843893839685256712451153184704500860215611125953832205635223913730169376311867197533875942297886560555043058845963916306982707775202431117958400383078336764552157336630111065821787454590655431696660902646251084739182841733003031594548107318044879181865413664245889223931799905982084358437876919356189311832560610050345582487842574298628275606423793005628997260024952811023974731608588163859264712912585965399675110148560069114825206961204628245298382942472658331539472225460090949137023283766530541420804707584786420149467428335224474032550444581652409348011071558483830629179423054007282021609961030866786882472839798601762949059105050666599633799761306259651357765331613732311197840756678505104418786005630356781816468196918237431984013659079408958349052333066474451801213954001151571709042109614340448918362081636136070915940870437256235101380019028472065544736947009973200197078567035871276937401359109882350360827724722810131960967049145508155912266750957666925571208736859857170555716170740666058609353451302766471944944927438006022781430749347662096966504412998460189772440037590700346183579275395012545842422894265031786264962245089740795841987641862242524316051026127694429246097957062596982721268278110399489435928778019431656979043155592659716702510076508849633509222472775847007556335142274859493654631431481316915850436829978509252909448557632368927398965757006357368206652433736574734281351396007400115351188971801761645307082185270862727529420839328498780029210437505414313562635925439674301160209246734650969487155658835473999874831672227628619620680410669290004746046901065851159498983338475693870746216176222450141939647804388213712428929516697744486899781220230004930056275226577673477253921419182338640983623818386681617225528944137753956653434198896103222500448308696271396611363314481962893774382186377733708528500304683122802387058574654477665195028126355276165696411009260187159697999587321849557039976857108805300686312304049211346106840865328631455262004577193192409100960195337499353605317821527047967001115619405832171273901960890906682656189576515057149256452327523363614584691348628871734560994011424964553267180719184997180983667538164913687809419904903570620409396836482111774160123981771538970715850308045350483515819035000326022697999537955330501513215826539609609660438810604649772364674311483614939853957427796010467408956484107045992073703984485867422904517410177336446794652396830614333805584157172088495185887042050332035210126534136049817117919774041377764949971756894269171600851617076903152712590006255335284399954655330530178370232170830055803566204768903982991170029963031218233752703982237512014290805672808326250614533881590260234654440470710504115095846797539201913193421181301959690882014812042158333083570898661943953484857615715665222344854951451979000432505621296606181959724401590510000104499421046805112077690309334239760863518487068203853225325780124279604610424871396002343062612117257809863890516601574180176702609484119711307014508550844541400199743850013764630848661704722037307529966245672300221156843998239687503528021874426666029697581266778206382094555292377705814568117421753348154347961897893382395060777225992519004902777183707169119234326531429462405187768066948778656453863835620043856183660129085505247511301660847295781074974344469657771032956369364200125932734446151060644638738972163665680383140505206415139626153025895748637255142102874508359279745847535410579376327574807563796830184995175592183379708296709445361541325209182134460279078869020145107635912873573143248992419988616932920467551483713505976163539405369225175399395786200221781381394678946362049557920558195292020628248659364252045835877516685411012912017169388527421756653739585272489557260598866743379688015823752336028532395127035402160527553615770633235458882835809508015897981510804609808318823071754042971060317005020153429815856767299417491334680612954601981843688589863595462444146425961035946713077467858014630124061802325859137743560163908952393423343771008841840980725403643497290335221199121203050560389030059135985367638617308832882126980927631381221773589897415850266361555118528364162039409839125036635399261157528391051785296670226091490009119734253517385943891811872634592860154749879381540089535983589182469674860554812889851205411554242267961305696566559019068354391001776780151875299933976634057569013267068146119961860873524087475160373606972049489657356374834152614227743152928436056929560437148874055861011051652074414805676969401419656068770337287686210504505177582787538978625421341679622973630505811121634058456340987533889541811432835180316763562359850056067434545942409087714352964244284294057384340042352421587242620834113053322525323321688925390935805361817601401166281366087592213735851471537688674145289409328984440881689860347600715846116358752927092809947002208167764699709709169648411767638601524208306094216792376768376972010536749833344298428725932716306889013600006850853477591379396323742623099731626979195694496916105801046025957383593119630967529156459423226734671508703656031024221323358871955821508254834086743165986216117156320548459909179269174320347768519225524302546166912078199762038067195052850049824843213091075755136173266280712010878456182927702486134575949137728369041427942182354032558318987273228705864705201386575915727245655927612727439404379484455745579073847610987672015413481287225082252960249664141186020724462989545777629257916074837203853414129655968991386745633017268499628741541292980989028782283636832597533360474912621802973176605732971261921474950300410645803239825804145249777382021562170920652733670973321315039196995456464284888086673084552085718828119504657635161954757850663575117856911887939233772257117379096511303751840894524382623459847753699151741984176727457371061998242100470673763571681777290315882898860034709932564947757540768516049904493866020094275284023290942910410782649105697091161322697464468254353329759301642170600533106707892599915682119655155688326468020304343991876004967659657325199293600263963356699915569971705810640669290955305028359895762909748437154167487501802416241789510823927444817496568920774001022418526448562075039636728303452626189403285615229635545947414825892570389435912284222423810186184413194309246168663137670299813941883721727442931361076671146560245127773076556916266856135727135065671583670561287294344672759646932496777956774284358239051082271149126862121412948766296852741169726312390828637005642819832688905919095263776458655377639151212066557593355959551887842545931492535742362298372685569953171247543006234135212332864215593643213586360173487283958031373822018899370571490252882162189502876839187424984971809126347648048417169331372189568006992887147001843621889080517856710213581588703215531588120177497115220945766286341186656426692697243948333266175693322711346465420959321654221220290206864042841563452066802674405223913272816676804157333400611369438830906010766692703241541083078687476533048076187000208459434496898744943428824697883674633821563510893917287632144479542595669781782092130277828450072340298339839296205601438930782122776469471786511069554104714100677736532797256565610930025744319752469952727318882370022928978925550873062948520847691337743252811257594371586867576668394230297593065048556107387580824199480482566113340809873927012898734089979034321621516216017810278361741516573810893978740168460438051803984409107594408860795898060831458857971289820550918888305663449298702932647223749925391221902095205929218462735155607381744005605321511392793972559961651540335336482340908390726641917947926859976843430873136894839154971602757420941458031422764122153891306401239497693760948137918872636259952363147635953799881911528337747744782502460396259790683154844186695693419757598059576212404971599170784553675163934045864227788296586100222878650876947137849779772576271264695500574442740796381396293833109793782301512543605576804686466771773878730395755171719577168905349016172848853540670760285411070327464657505247338587576946916357130268844461215212143960682170178127425629706831116836953169896708367052437370267033300482516752640517206207168786757961596735412035137523663117289199271073045427994336407658003111931232840857603987199237016424571128827021483906227167606310578057618440420742997650232921025679309387161849360566462132027323577617818247813742220758993940705988213216580115402470176045376780900298553535721117771971687289420126698609422606052046423610066857652285735082441061800956252699974922843639762662965238948221043025240389195439254636190084681259042936181896829880633320453570406937118730033286317538133141110799698076831720676946494859611956195339885418197013906369725140688655843512300617030991395481898878848861634159962392722981260246757101751880724236082023904503706628166780977981700021980568256045867662410816419232010874572501661882755726032784823060893447843774656026422244054813802659682815418001038983001205647742940342481296948780100932421122353180390657521915915993956127582204837876271484825329262356528399747039116698671706641656158353494311696488611814707545325418862662404032961240479426096248193544876959130136465031418013619103279550613471311717302049110762127267774463997060124313108623524242763891940549877420602533234582895299188570007685214801520169389127150108463991451550556154118043758723019419943984766082255006547655867569478376620562006100383274307562425667973927131131454303293158355849019599891051712044409681646336418634436750101480622747314808721650576671273785415702898536945631151144911842843343299080163435378903098808435528106740934695278150563034585186260024565265264856194577377457925749686719133509351186267467543802799147445083863947059581619354294362274060321974051813083206650784636496317293183648403669492346513835600545776247751899444443123636258257907530716406476562234887444982476334241220720275041064765072781348770504650595499078152870374396900845756832566247477216858346993030956967967565134831484885093541896351370166752555247032489304364485690760961711589075097333971506877916127056186651019900134414401821934065068029844212211708948225110610043316765078032557687552812142364326529644133181654901036918735394807302634508852059291332166495474462064148246123584110627493368642870864487181735948741108259920374669027534862455046702927914768776508432015519679015736760254668923625950515574347498385442012367338709409269355701281482347677945324321176645001372629489480425747972687599521142989294023615603549213984824116172449412569354097388906936528104091628643613690756340184763510047525609794193107735130995953593565742334587030257695697473026696408092186839971799900297031758886038637645378213089354384615668422768222585396292315663320774090273337423114225592889617110954414048750689596304277989720611318252367269669963044385943404632532251532167867211321721129107823225626438866536417012142926934894073177895404957969152175100968905141177689151099967840974399462560093333549790235493318403626628064480561913762822778857098191065740895068015063221133455466919356814505800682892469563022711701925039471963804212327292404245151752887312612987106794981405290508877520882013571535630148768186244917402774805545016642423249399538625294994369943822614048453292873310660710730879607737611501727068981345782906697318044609657055066507613823790427908200113500017529030976727302914121236315464128052354462647372910754316877661740329975154947145246622724297449537767085045443742702779562151959687712130355583621867826292113614305850030029272471729514236600673370166484264414373285139093400012492291437928318614317803546960178547927081105800480630748560179559768250279684772186615946563686388383044135546792692782621984009715425027739631773531101181633666303444747361563968316732580108951013309936046812070897001494351275813096498686171373181572997505229004835771563820794690137696847561888972628917963694191156414168587430704714926740559743329209153642503794518258929415740693409120793927334989657440164147930055048862061324461370261738780553683501808864448792296499301574933942853539612723574847623249236779742330624699256884170111921320149357212525342777373138777191755839308658847489717975705775076341247247598550414244478873786481013633141848668019897250751489433669693105691506408666917631075412153809680573595208051706040193011362819037392859029157511987819218289491594941363012786360462646517055972555376264148656460777278587735216917298662349014026096990181457631730059814861004075198303270001511680708551791886316458152372404127430117061683272750311479407045068285515303818053468047747881896210238096677666249926388326047931790081762083749265585580765654545231192573295658713909523999009271764260808873035339837848846932795656257976512020373513735328281464816980552913968434066344795569505042628556180873555315852075862336767285008366286162593256601365408619978309436834560442392839064169842638816635555603305722155059834297077096374631719113841672469775034168874762175984244549828200230515083187768337822788401338503982065125057540392500271101281056086956696276933794351316346215537813368307111635602737409130527981357900797468443001764428322611090106207107524441592262224334842179259588625879759284203452580639051701100232509270848974037206999533585208858294918574098942461008332867360443490765877847576777200514569403725375757243970264594923894819623978682144493591317584155217549790674700312042514964688928066712979130128943769539873498350539422921042820672164554947626609283303443818300634329207778027311015418914333344546012820580286132312281486758998147540689416562636783064805779950615945109764829906872979030228553247151018002690290956104978325959817777651518691020780355557377633707987234237427447684461206909595338293648907365921982110150813420017317664247253256516352611288314409581384904396196398618111253238090532838659064977878064011137931672358241077900447356709550126569786119624849716720890331580769340467047280329656547057639848483405273067799866218666520582820547843518889980339646042589860791953388586347669070704414016359598812600771319511813872430662354688517792083420131939918819599293930813104171098989118106477859003701566780844720431340505774701585516338741918991671002354631832768275449654222456355041653027443983327747796864595628076909506068042950675075957779304887274308172074751958965063602831927317192352169282134690007665743606650334445906465941578348807484569592560698193931368322219049060366522056440587207055836386140362494446469286557683402756024932523153344257620908655562397589758227946478512801672353079929137617706724079323811656426174695877875867596152826375794789026442963186673873487108753028464452011961873037912156323062105047234412924683798981401450794837770717262340396508213552792147679233906423444800795340325477960586026781436690517144820976081725248347946160504022730980037674864303989613636667420452149280197894905416570216383857984203370776312747943185151248847971916017230830303890386995082766720690384253159703757169961243944926089061030970629731363492801557131717561534744267973115013694962732257444479922597232814282037585354398411051761658537018636593514946656686376522710950936216757611973139908621001311652869380633812095094473354027374381637713907571651489049909184956884461865446002892122022126937246565285048140417734183453230641920718652287547686480238932775886216384531489858420017760623582633351572426720054386587166286274435000883197661683111366627800691342033150533374887128341577933397609579604607221264909549343788436756264664840999712662267729083288999500182113519365757977053370187327545215259288994590075807481985664589572386255765445904849728594608174101012994087987297819069112063418458639195256466253051763086701965492089157376185222687615308426398617546814936489332673246861928209454342337121385395599371562747205986433191834512336195659236870131049461914680214634680687743375901441247062060430971871119550125391291725840092172610429424038734950955308615467727185703786030403144162488448438997750901191153593488806783894181228178019000093660854044080253642101432819626562457144074866200852328988121034936130493261899416084048829854271142160014896746847092793477746011518749631522468851893393576503746679597748144960939198196790352061760140465785952589786373525326135425420764366515261026895808721991463341345489747136439999439811694740251172467807398879506487394623449428844104503745265354200552614727466296612072447743630927466271888421478245695315406229885323055117940161061145441375720587390758181827617375595836811267110910887217895919371493069432644302609246583819794835613268714173706912214486711873392951787663357334918972616628138034558259452172137029714683174427483991304798521798179180757289148824280433489077851782623875179164895863339266524397710854474473748357218879888554992318366364012360186133740867970027409547017065388494027027286084888744990596800931994995688118989331377679349081502489706342000754258451643499129758636451535792017957911977870613512413745332208482073238795720218623444307628455242717093080245264500121808551442083749540167963943853785646312079849637390205559011278236788058737116883041864791365808076292480782369296605790087339349640963364056076426470217853196816351295601469453681027794211158663923137020646962627367800993239451785855611989460003753017480098052220599479963655950000043570849201964569612384441983948584680859152186847785379520298440200133607527086386252499632053400000086742383628275947297686012817119225831474503474726355968396269489245725668354996217516622888493879856376651503966206065896250868005973456851654265684053539351346985848193321781625892863616955399052739032923037283637800627108099341502189314021605498060028620816480912283394584271806985795326511095579736617019166967501974032290659059876596998800798032570760183422629431007489978339863873591914684199492337555789316480844307618994143089882171147185398743929361456379307205271316024269837324534281593636590833650852810619297507318412890182997514597248741123216138565107439163857788158483015879721612631000524092307363404797427657025551832322619971296194198698413683138401295348296654096828421939249989692466709811298593512064032021494193273256159744844167020122026787125499295496677576145840964852776724449878626394559773928878259923458591999649260540325358043889808879431559028485977047618222845242640503297297556941277295569324179040618721487602388684137027577498668341685635605225342742324939596836359281437652318876685016076223949549390827162493577791446955442074615128631640115303892315026196370930688885301720423761262220996164099191180163517567183849894151709564129992211393774381635413079239172335994931052699517519584731019711800633271830351235373321708485608494936045515013978622748538055366380302541534479219861025749699156935946579675157093748860186633218899954685907273354333732543397487619143284273938135684759070023347227181362702383111467261990928906678934884747339713571569205030343839500553460871186855469676593629198973700801773871985317385885256468335302827792520414892325358622582822708533390378152926300202723774238145069308970933772746352646333908075206985845008883025321793040407705659551404548041600529688358785896864209839473430326902436676202829138131558301169926266695863744010904753967566987692443153022501137922327850004563916561741840686287900131364192473234273503631804292955476206418137764899993898332147122901016205798116388752127173109729303457471362915267518206316453856259037135512911229680730306727711274326440308905340455430344818745480049156307647752393701705542857916511183808831669294727586246657121057646443096882150571716115449694735204494597859010948951989275812979126694252364539881112807891687879275595136699450117046976267090926520712001935452654825698798804431296761661378098478731340735897032016324491667008969432782312578352641332051550441589779570172903680248082139792399026389688015511733165367032959221894098396575088549843973284693330710641122614045301749995014207082692180023598497519855541531941586618808472966957507199214714374857113584374560688578461375168356246819062519760654881221459736877073628624584069488131712292963922333387565974210816573425931095582054843776601766420309042744915374484586992041853552123389088887104678797638597749556543341896018638813888250259534269563467948440087858265820926769290481629620910510512526351080926918815031416969737918981659588371513096119168699275401783089186434961372317576565483435645941919820793702177388758621991378577337836619998593138317967916153921684373523921009049408719055613045849036166824225509716956853832772306408908744348960580631454360904627793589756157234901814454860613460251789518401189346675599180275944182032801877140589287800412319979871045654413501307120822247892243902627268294507393500789167787542656590718784908967475497023265447358259509961875864420851015925108619144161984281887801202226228957815867717236875957727703273265200583771059595729787937233254565861541237345927970488619800654574723072883901806027224101459557841667019753073149139544503376209574289105459928580785123109710993378036074106295273601060575816008825137901641133434889595793173796833542377556399280551054771441688668736688399354113086804605970663288390914437287769653037549852949364418233762170272969008269710330811709732688133068027156390986628596716584708639518638495305462543106344947104391820498829139228698329172042932654914475846143983525801365917789442954544744586629043188656393591047901186370535864884750933030669636750975866221517945210035532783813065108191696098169281494399043211389037925737764010516387527639248289325405795968734794589857176677298469499089940496109792249522567915294355060758249100933341082985866411464039038583391726899178817187321518766343648511718218507139636315196355620840837343772938350330016855470777689319347874352931863476245952241637707169434252878156110324155654940114587627815607353016573181142185059971737171574061505640840279528823719674893839895031680269724894164812176379700933432545228762618673643715199241876969882634833087180553491813983775768595392347602088406631206066748510436368649268707936772708967398480410939431685076460232179181876105282769941393573718165603878087567987938802026099893914035617201936992351820231777439672394237129478845840826519101370601392790299268483304114492494456196416909435463147809448511106857168760741905986177246292542880317675241196829240549847521878527105482697614165997063812745084347789299983637862855965520930683260341000521634564760275031023487813081948445367933616842980854455829346365704998646496516854824842396083672355206578693306266255235865998219207178094830242167768580289177609059923672702617240806909184644105066186748871205040983833976950654953951223490239092788816734527170550650766217780148047820326697275417810109673557058578821307627649849979595378302831469821522546205994345628782914500605596986046618245611858221981475848710583039035726988239102060460211742343819941659000337748278800420449326370039768948913535553490972290039345841018964360737086187405084261461902896806674287707139212667262693986548239336025200850642649960548387334745989005131014515956560499633411221060280041641217388891457798899803614507794768946258627925694556769297621437783586048609983459908316609566014852231367095862605328370288990925018443433275299578464691304208652322788013319244286429767073120171991467648758677367860191338868709407306539514860478020554339070555457638227705845712020446428382807946175971906704227597579230224745268448975197410696037783943937088678035891104937083272537038863641402899702992420598401086445501525176783120368424067863133867463513008954392941504081551851484848880445482230684576667055163721092317044824058742569691559075116383322478539574012921879282179708920354749634803310015066742298193075928868000732588825400848648562304545707561175734045133015839427470773249762786531752041091584836570978649546786733550909079240901404476815648560565197287107115121393512561169838379610200736581534864847171655706011718660002269543655190340799077015576117022863257421274150662678002585344397687300521768099104495998533368730214428667399963424159310201842134051087976790051721015600068036781121379413755868858035153363155218749016269042391012573034855818244448593141471380250274325103475380137041312063052794169540844624687381192177476707328262044159823013407237853510073008857122168607990653805045255327932169709451342042908567491006877104786001379052200164263720100211323554708749262918178703752455740082035163459903106510459341512861494309987923258955803207164155297388355179421779129753058464467890164625585497279765746449296319772962287217917428882621806934604420805337992660154112164424738674530145379351457084021338193259939741318030039750266585672095173560871384408921631407723910784139515326996599949956603020520290993215068115236603554412289157098427856106544605479943124679628405666585040936542704150649374123154136822384663004594690261207602321783925874568341995972421243349683125968141248858969565623002692660796174258808440032063876960341968283346174076430647980423486540612229695403698631147357448741416205102310577737117516301601032107621730323728673055063525009073874198724346050371028751796663981902928055288539940713056834450467489498139467503003338337703035684519040439834521503965567034132283277829315625347799689006168608063275595088454997224022568430343665359302840931339302352245794286279406889162144625220474792369222706578831328725768820402066903594203946858778151431732997954716454165873532591940990468350376683526402473696850720104853049478244005096025935973690837996640308350107328286852789431970530220321762919694663859498542065512850723694546995557765914306196574787714120971194599310115112728314868785035861979500288357481717707834418661606687482370040931502698049225581402684321136145716639711050011721706348833405381693154049822566919122877842889930271785598341676907059739410938403610929796208262763860497386302384821701319249621331351776722845165803737772650791657687080116656997042764947706787031106614632276230527048714671927839395266679254590972588320722800121143328699829292300292681302506165473129448906376874682699836966297699397731306773940193743831570108857182521253907188255507101138829575042399724634254895163807742045909867103317662020042983070283930412089036037446600141756752472768796162161634865621761475284875526106758704301742369046626573262190647147126912689481191516134610015716099611821741998569009248642015500079884132679392851143406022633286222021630885855862518835378762977383717854980179004128648681750555902158623625482418159302409899817092125852544474380938111371704101517511659922531697069779904328938655096891050957709364944256729250985344367962382833055638407058021672816679567105788697458816432905450989575661490645046022199544266182027442216373792818852394469679158134527217002817868385318597185807705407289336122717317934537358780767287797976376735251115336163324090329961221385090002690049342886196495708785346969290469334720612324303936180463033506673019248028457505342708946148300413136056702267653080768893158572491682166242661307645500219746975581364597838674448617458600393460807260489497511223017793108865111507460577077331707615187069064348549313267883193486276321311297509099088339137669037291922161230007407480067042579264675655518179673933033898169742984059012774931413344303835059810884056342285639784988836166565114076658138659423384795192299349139986465693028298777534272400124782154559190948098601901917123176276912232282650336303589877539862496619405777940205293463829335822823642055049884212282198138191572315390950568254551833293781833401398421160520775047263446656208697588151427260932161381907916818995931012810194438046722972010767484577154579327938167240362764846888916569259482185753676767618359304747395274684702623599121352753860225964036315803426865394194158761888486480767415597006015664382235429387564402065396062911836447371025273166078088157937912561960812972320766997979955138499140790570986610382325622600565621638370296757888767248816167547661666113891737942719822933560173513182289023620167214343583041802218831785645065552745394157046941562111940072112802485505346938522576030224613489381610866337216826488585671613294066039082849974550076306157514838412245177767376936285388523426037551549108015624712221247359928837955496331156631310828910868358665379196144278152886080947473173604846981502212298970092062563633575842484917841848549593511814331607001625498619666041538254096208393007868999709801542607934371622335313168806583842161986414184187905227327477493564172206215332871305746907785713752052770616963271941124794478302695866709699110289445896770283903561468399374207403744037158829627605312655931083700859093091156621100302350604585267621636425387540797383424924918883019506760653537139582648381177944960951662401314283205301990258873861847136612308505974689714525780016408720600081714151967505649579581996748286522715961558681446021124143556233447132864144677395682343841832675204207282655365209778477274044203618763669328391269620855750635457540709388528530031861490920937704022092869668434979106095395316593589646106300936488248021466617784123522769779220285165090105644568405427257884328892993792313869708726994960692231381210513937770807389732705938607349158667951593067955285996470618345391214603651177480354628110674826227613075925002822494941285952197608879751691593777392308174594186748181871922528993700067862260842364142212433238454864113124124339990636901310805777912562940135721295033854492945571312513094286995766653216604836793908087663508204296720876819704338533802492352430955466564768926406155334131052464679528360125707529842494317927687499176612859248512136795423002856969665387775376252465811219447251152162620302293738865350989715640987814460098381180805906932229934385238167309394244643269635891543944100522983011749511036525245385437766718505678578611868443686926335751452620815839393028857149911222851154233548794297422315303944152770391721071321154059995594832193338914658938884236863550722648645165794881806065688146816684305943311524922781613154993338751968610070503140724262501219052538102675911233304431354271859678938074694620240876368484877218528424667814141123368430950223829048362263238134754880969070344751573125053105303825912873524496775748047674040088356972935927196585609691512648591694714422087239726001404393486657105242124490463370802069755638836950776108913675034073972536910635652997582097605716577086296961468079131149563542103719010418161392078293259143869810439865695593328336285569879625704857511648222443107800363897098125843102883793438925713945471490650363695577605126455111681726316062036821031194272162009533010084575340611203014089462670197933361983887550948644635105024524485280457901510695199615703765990465818423722230374419144295766030870767447444791835698140043757016372678451782515216753696053532691477443980880964337570090533534017917104450421011011380220723121089294445513482468628810970936891803903708148021805095117817496574552595072389858246333440081209426580519306533532160830488080333870042943789033384799368561073133582824510061229147960705679726086507985120365548561116209586439025181612055151570802101313593906408162959103866367934748171255782000917264052444002580519959199453712432420473821580827460116056391771227214172834427380124300158746720289860699400804649888785721548409297387157137025896637849848343351394768673361584864122697120756581335627085214162772512478673405445786976724575266037188192679360043771556286018449710984743329013046451037210607544094764974680922782165673267395110389278323969376202933188805925160196134919312661128520087350496116816777431795107551222423367777694895625857133617616521431346405878013903617911049448764571555978907509150228819523416257285071710374710487854393609279593060491340117834099654221755963944384518960663785250290825087685311409304212111710504325891734973393762115844053130409958482530661285219625051218074362976269358222616926840149539510792679345932378830230890898138698070009096917167166724469418435080299191025297685967306416391069426368619687142654280976274371854506908319912915288112045095999440305113013051113489279977332302442863429745155674692849553191729630415982435467114054840104789532166167638046179165534609789495775898299637927732033885832203013478305251729794021172256257482479267186569328465821757035717743766421526645366847809861770319634781461656613577778691773619976466523732856636823545695375069261902241786792341458484326514054765892376282900087808999569920294653261846963260248111413497007848301810841930723978324027275554002391582351907990129345945173503138304845354501167930532225346320118853554629287529664698684193207778212611293508963026380803379718656391931800313615799260142712603756727276440142409997846131876869678279068249101366435724534310681259304187829729959678662530982204980324108830380719632947173279140633413384872441804083431345914970374295477331808812559590675562083186039651223947631642172740487906513568513743446386773091774282741830817211232185440132923025403643690988130979109049253387494721790877242091679329135853005585950114351192349132123594684885582760997568183132988926465957156940281555610392788550759638086938550253579743467521780160467475292181705117700010575323222646042392300666821648065163816690413894391192644984445883263550454175586136818457922982570528150544310290434463364877494610069957189059609230068786735942211559196210702294569510158338504917019206209251109566969006616503978180195353591024694304923135018128052262825130300751705449233159052448649982202930855199232808744193676305941663280047557136761100864428334452336133220699434638816145730711632763584896842201913461585228878711957125364586948226644528999902773924567194034115493514529509304306364757317131514430712984941373645671377651757171172333269000255417089632146641517178409197108821882327074705496702934434852698908548388651472453339116508623821086922720316206568058701767783905741955837027723718931702912475198345721776806248112028428045856946799251823655333004730957447767938826598499125887650970543491967574019268205701924041096712744350769436179562600267508223337393111436457708034799296794628335931144374043344211856088623617449594225995904000708704492661036748939267702478146415334928981512752110211278375562300550729893344573115500577647387317731775130332637457752208547492303020410252875660111261766581999572460231314218574981087245331147183904552622134323292922427834822113720406689191073523662625481400069878083373225531119781508990256725214978584936894726213251608011055109211062466286000182826373121121351114783308499369432949695628723626587311747935247802267205270872815235449189997809048588594074492644833809216738191576116787854855359937387271150260409197034373669931385131567948777902597611919004818282531738226601663404537269690099875016105615296389456321964760970643333785509244821975057036093189625282529873863020178966910392515050014520951813229478961388619496248721942297142945999906823734459446537638596600169197117189558852715595810096261100187626206167168734354484133965708889746936720774432042151676166671903569003930271934517539404148237538321304261944969524897531477544874282241398274133957317721177961235333195693778531093719490073771771688913770702914341394435066064421063216145171282761941140602461010795165670075964998394106935816925878885198656891267765546339131086277892888072027726533106571345269348000489924114799428292109278492927539645243080511225550710093507628547888865057062762217865983291834756548443995686394402815225483755136405142895597490438128090695380119492250757779474361270399160474853859797617468163674091862109088062536736521734317409406245913691387289372205001976980371073651562700585228996399265796933966242381718565534408635964538795423359170647137909029664977752025393247826193682081988806551634595927384064925010353682885198740222484147294736057729513862059191637051922312561184661405493345075149922422191501742650674866208854219874352674990451167657195481898126382958805141318071667855462057957140076267901888935414845211571812296447326261851541835968286208687784115783143765909805309959617605255471417656783615290440789312013751763771820573586883899823298529885828685471620083749951615592657481578572447659487606441165115558276968632037330824565099858165286176518321410748670476981745869892511495565778495606624280819502356113773128468275517905413075249448065545184285002714704434283652180911873845333564662221708773077735181775317724939281931587667646427931352970082313695987194246138085870511610736810891949154549556814990075220757188542703034214150256918604104573473281050289771694540558745105916276490620965476076842336228426971893338105661926285752607216942722702790334941814211796526230308671053204667805056008343093100919726745111737286206820543833776070074304745776163495972529849013289386401911051090363676433561710418744778234253469302591818287814795324094082622188507533621729120560013902143323253807213645255035967794683622996660719793631478827832322327812229234821526274700421510123680960687625854000593147959573655335072447038112880830291482909461097747296298106979940733456419554220389248547920551024391460091521460041779246489696023395982027321947724710657219018216599981752753817769868743052144849721864006207165495438510521308086135767281646078090913066764398927255757397339604615939768629090809263356633982455850213719717003765518964757874824511908979572171972261518081845667453858376674408074906289525760077867059346217073406308510835511470274438767125001383325903864449289687063059731655372094298106062557074509026553297996204584387683785667524695329360407785837324602110901789510232688664916187826619457548105185554212859760385815074639117730475967730343402697096077669925831992549463816879616819115174753028306849481456116145456784667410608490755489156687351269103067634701648589523331589374161193618373388739371233656337275690550948617489355355778830932683557482597407055285629920455996704319017038539132257913124784098299072920519192811321179821371070222261122609731669862035377344477232132878938247322362067388622121386303070957104344312550513052570258583127161832692311509469170005378688334806077921308065340862956839303103368875567606900847752333088460114436710584865704506555520789751811488589085499210991155551378594992495636523723287174446126291318714521131287503064230313258260205568805393985538354595910018710660425868347286266200680725580039572696345971946277574483523239949000124880774835466374554864531506320589402127246082527114532830402996942311698033136341122808698154366127275548308938923080197049575085511859598302825014172791422962224964900066993168169941860465721732614556880783958569617982475486216360975700118836845653452196033835994405738026682535551442868055232085824888708105796639010032042079943799937705626188884279147855994134264589672475273176640826673480534752870392787334076934316238751357173796434651235785864357485755549680774839685047489310919570017925754158791650269956541853099167321975045635619953083559842303864375029085876635984291102704080209762730632468974412316620019637695968457010707815813348383143941169232545346900060121373087161638855810012395410439799965257683223306694723822345393721423121321788362961938270340210658886456394610560317854171685156571239754332883788505931190236678229242118622898258858339962605465258407052548045178918735220265596607738149131138377554951520281426472260519185279214384302946502115508508726029307636355959938853364924965737397799975218684856790117383567218968270824979677208750607218628309561028277093232231951947759599528570074262799197960388162457436201094954905058382546558030608183924204087106357384070649347004535262217550779838639383580433429862049656990665460972004627247790259753008654861032540671121042920512045938011157544397663975983721473386636027671197385686712983714664150522217180086286439358933543804286623337396523294830485624744501888321126537058044690379224612120078814159017497934817910561372057471595640497604814164172312436335454364791890644834587659496536372455261793354060576910272572953884075584805405772611751472663464116993812105012837128499963867409811746040642519231355502767706687328769626832327826667829686528227387727900733674555149070739673101386600959347362610388757325554675676674949060587719344510888612438954152217744493693383992234783376243585858928013591293647037871891518790398770232396185766261296727033868022679211767740309612354455839748958388740301237608130754114924618436563588013759681067199315801341194020090328247712060859521232501939344630796590070058627843359403159942111893803819963754711491445083976857114728836546425156625800087702489862892303870988606638291873284248038504424878395185462970308914589303907066554493578804163066124723278963225760507339795533656439674943268331295976813292499354168995347854534022997975692345182784028079542914324022885234016741578025675891542380490380597847914944610830440920507048841991184933294169857833547714933188651865702864880596540020819185557725450441439726211438796125102888730919252348474111570685501589330293894732080034112531230263203312012604985103281883174572578496694230732652090911988333207688195188037188654130332294199556017625771551485204787708996379940522230713267351838864175602077766473494742899566254868808276970820054668229686158037138799176723028838780333856740506185352623561215733325951693426759248823724309733571305969883204893426784645579796250520939270411180877303561895890904363960316557999914929374946010612842323103096164473325912818044001180359409592427064493866162867462599977291007001717129194953920824490515348691155645324701307463184827628955644450343920281383288342039402511443271676619682833210046651219915241373729193446404775495291972551054335175662521290472324410844371715490631475018140911350092769289134190491752971777947657257500348394533618617419309915649500513789060235025199643465542274605492976775779984115415415340667807667999739614025047003275865306315815118573245039080982999734519367963349745355771341606492223501149351810856406582631732678060427782058034639103371255064488675424586276295140319071689892677851610213497232824465691336896720701644544986841613589039790256594855680703090839659302788921094407702362624934328670922257863320659659327047045778397674976225415649570992925158528927232897341226048810892075937589999160031703253797972675209702846856424819855882148261033316232663044594776659939387674718324951201640725743933998793225027071664018582827400140702274422686809292044688329281607974075037344771872941593519570988143019766062245748295218132388273022072027153726127706050606146802765461911890029998409675594833906170274780892610830222903585247089596532060708613478939820020187192008249088386262942637496583542657388505317178906034926686534885008919246488798441736801418519419908791957999142548002237160483454294231512378006608005362206552587125981903677426834197374975845198904731075681138274446073537911247164032028111332074524995259709532753743209717278277910434581306290466053662933281230022833609236849546569773240411897142783620294129871328463349642153337858428263214039330716221654425987666087080700936332123339701656337876594698285085923888296859095666984602509767075857610597428720531914225570437347637174147753730414557989319447062349779525916062988023477273213814832201008185548631164310139783923760207482030232527155507684950089513222724204263180630802158375263710833895497864077171502766276256821698600046366920248245614511161874518637862395377025925083349440065218326612188619223947253039983498196915931155482665199536692392390459439534172872047908450114294141090990007409806931890466947691019548021318344711153223371433118358944308383170828851751549991578060909685826629797486489735234215616514093064859169992786703332784472305086288927977524474561951450882937369074596743226312950831011943416697802107993706099908505415471400264389088998149020367399044797594401648796609361059224672397870554057428682378422999039726179386944172851557420898637702839184759252529567360307662783593359772581830426453560413573601274917797682788062702743133890337542444312755656960269415077545691109113658890654366955865775579947466518913243009488612984086430016748938821782500987344858978532866323254852354306972835495599886986814207037566385954818364168781692680743563950931763872309442747098120322201317651428717765655866340721015300040033141092537766491657699376069666163740662855152276361915149201164787318496426787037224947879056384395883856870880419013693491201558428140462902945616932999377107731158100936417547950548031525685854149999787279458916156506655950403793159530008919683404675953733097552958695342043107062321662090834431619254225478829887286181114714770142551594710142904242655184817559189434496833912701679992817591352156990888424255746334272146174968712608528724169779813443311087196243340487351627987856753587930184858461005776044063784551625395759833031878976593411998018030868877113859378651788401412311326018597939266318456517115606997196768373150206872125567066145299855751671934586491522539199427361836987301178298458327029665297987264057062710323868579904732193443141783007971386923449508779623483326131148475335698185726401016124167583587532335553554482932493871040916417430289399586597832130300853513767707610748102827127349738788826144814150862889477127175631495820529171806365185632677697788805032119187723058076611104851609383704993432147741936278429338170990182907017041487187289096146464574663670244268470912246003297615855045190371350167201446906589406008298722026993995139635077438695351562049136661244321340118437648624870958823516556447625199851325604285306440802485907854859863276306445271194738730250254571188071754967060971454971884633006780019527025858453038798384262303546631299463561536210021008813145897008500925162374715554759093723608040164731336969344287177646800116282083668162792683811910251574810207613565217541573189558643028244259335306996992605117275046896699404805639555365559551292627485221985870556512590373045735151624148623273369245721883183870339932280441339693693108192846001681287427498406528587229320344121453101317828307883641637023077725041081696903940055918720389174426945254983242892041580544206197817406319753316679599860889722162464023969008144267105013982927903507729499763606727178943805721403127936724333156798783350388053035266296268955310876787203020154142202686808664715129701261453980901864203242783215770956207283693312832369664381255556493544057328525333920697451198575768592843675477945703908900748736001772611373557395749098891409324713143143190921196720892081875828654305669300650314084735749739306459049224348346901247787440784961202106273398261551560144543813442049520668382451520156736719477124622346042037197245421445283453608103572558681085012887591898271425311671091105548863282458508072660133709622423420670526148148685286136396413738119350617185553723464392813334178613411549525503730078206670152688030898963803568313954225213513524447677247118677606877319407715905025872844510896350447132303173952712311484793452182232368689354846870113171786287521722054636553279578526815858617560029187636323234053823545378265756027257444494175196628175183998242227376078170219782487045979245000968055718904857908879016489627538613263883794684596703616623984951358913528635065607067801840169972608751660488123903454264044041138053385776818215365405863476514295419663890001210323242801581579699733760251194426867420478468926409260372996334978510629997221516022225791786459951941217231023199941205473478446668808524938234315793050808850310417701084516121127407509608069933055498546714151174902052942923914192905932410458576310041255173751358491174624715193927095230709801196304379766791669546606432796382426174282090878801499208486504293265277927068077551589840414716945668488184989283807567198277092475905621332080473330879358551481179323942551197470348322936233175919326297024972164775821106980368269432724166253680730450804565292804702458327020017581345326411395632465088140681704405409958350026185645912971603803185971795959579714321037985247004256730638273995847887250960630687712046899545129177650146639730260626615152088699991466169845066183588727826488237139246355839805005373082502325291856576604311112835877874076217947927530795577450141796723978538601685367450000381651317721220962518808872004864273867701924605239322501021418273638592254981795618548506036832293042210034905438901273723050048516500786624879399540641944398284805965406798975786419243316017506466501166110944536899400835440114284077260318907853730762819880057426754394878616063804129139903850191905951628810926091131475382702534682873331533028899164812248249348366453108588979592493951936772560526074827907688735552580198179660093276628502514488694538355297163070064568640720500152659578695708332037089756143641789621876434972811744466655327570539412338758724189656427531809993021573261369855363789234035546320501662490674248944720891562651367212437469178475297733359972140736242152416811983698568950603149596085014134746727898875912971787295871027918468113000513028084183457662496373081696781122022909828725159725392839245989019046896702848932268942794772443103094534170114546708195739027317639887026953659889486728073220644763007694097867123465742822035923377017394705272296288121527535393768583688885852761836900985573409957440177125077668002619910430106176316177798509347047916895362080433856703606948890619883128742808781279953040578728850627411105366779578955833761287074712191709800772858311145154287547012067817541873949797916121996984946762167870384296279731906935210511087868413212653129003809551565239154997621611221438230754394482027913820413043341251059226942395684981258319335010902915566518319146520973651236517636826050720359665126615935645397942625690295954796041721872571145644873134655612123405363000428062036454333900639570452288025324833245510790791492432424219060480587099691586536046238693720532610855741181532715267078540421406022350883856716538477791317835015108337076657754816338151710539319129391940200713261407717233323577590252170805735813074533348724898759462059710365769439792964459202384161771412371395227529161566405098924967473790264447790987514608486789622823588513314924530652178395837704233900729245214771721822865635819847240360169073094594106136739084417164220638092962618415991480800892546095748415806002389674754265132074333363837826702794016960535146081028961195023359437035946510727837276512056936139793734568286476780107576688998842076666065442312053326218979903006201595565502641384091666800669285081658462471904375301783264181107753660346397456323576742790915976515024559882672500356420770546755665662659324543136687400914389622737933430396386048857646016337284345570666773849165151286302397047612221547563411295148778273914479261536379685083344898423103006423690184828431705716721688820220992592409023736766208233243182982910174153536422310880359719765443957524732100800289870049639441700222927666742400609713284043961513091861813431319049496539451330771968524456284683743633875094164615414819634467196574467041749196396559802652738435158536897883142978478149850428402718901702693258707621234955721036819257856936687608555741380458527304162567741586243267297686839562079767146370811640868712315596276979345294044397060269723114804881241731635930003187835978546049227495361509282171933866630793197560580034022095194466750542022789847899973749881587845558143717563452943931239289648318988305166778829371383867697977859277484082292396317631398411334626398041232202329503706776589871130196587498801517342411255896575866527987339805172190170579049496586874068507784911120366282161589702890712777122627261920387621044814782792287578200702414516734262793629328973646987482014136493546773582693412475539719280961684693401852302099621305296299110857705112088428751214118369454912683306566806339653342829316701526840295967939761273928394376993087841065857660368303039335586080402354339874572051589468209800792478015029711443420451624684790127629135818974942262668798347852780319949411297258690084349820093511750866652440322242236461130019595159101775659470905697147079764389486258613401352587965498691939998274012260133192460981680676502895492001185501141647624286226986433963607579210725096151415645142848371870412586990393171284841944364572631634672512768733153650270121476129188509425429444740764188644389947965670982509194766956100448098124600369983652149001518002233362846159645349531449244979842464945264649637838342463775858118657216185983608242217355462142451430408393116531314213362836420650299436216336412846873527932285314266227097164649691746948221960248059742466097391695190230844244468025369145710151900967043143161559613405094925549464317478138172284466047965030857852728543348406743416871075700235803906678985170732942557416335054422540684953781259925830708606140136928929872322477980719719328170291693086867395702022806629889300693494386841129456780881189927666975543263288448656630511569868429639020223420466012187716465688339691623061136793926767350734178655203750184211313997463118933006721184461338907750300874612323687382362582797304859826679661190382571159072890964316940849864017761311595085221188793040949673713709900414095108572410557266353343327831517180936555767723631135295665499699647915001474167830830247983225795965607985448726702134908823306723118048863821220647102803487945601093680878741808813628581144163417983091713150530333344602537268501752578586784500268369063375199246903425921873216614546396188117391690190973686346899661945719283213429564665965271326860868187680682941139740633320918467121430113242888640215660513466881970145715325121929816564576964827614017870765314525357924386525857273424967539158961992209948800436940600949291270327718145179930780541718746431722947788843360770820372601268872801271530047883324997845120698022192245698854424256560899708742385652004286443671812704250194649055708626072604976755516738254890411843047278467357777965941678463645625125752906619910580951426248480163401793460934250075791274597500545979836547381354113646535701496056499544974847148850715401923360145109048666286710859941431947086909638451760014025849094570651228519190098779204149836253290260677779355568684278214266080170586995044299499179470274317044035940476504792457620160975690572885928657987771542898000153648304388560351753104452202551159098442280020902366329782599234579975415224004198035390524522103499418869808189071026339651175785141178372089181551362948969242457815205517379281832512094792132759430306907489619351022740356876066089522339829138592664787370182603279014725585615445151265212514421088474662051146545715351503054104217986914186633923673405646217914254243600061387085316141347402875634817564205609275018619654277807857638633015642062072168565319322668351279300466554096902443167349919477665445799623918685261798775622386922505625616198624525680172417378207604774407244298494887705001529549219549941366458627353033127079115049275327258392107767161377310399989428382510483276289012256847629005023717567867265170097826295639073499869627496416048552344771857806451315063761468850812599260971808801004280357509108483897803225055780224383152036889762047352162399131174663240229607945302042887069716338543785273384686537522339575934964891225312888685932965485349621462367389105623193336251896029443230326495416436392563393797558655045506598150430588656849896684018958751546830885654315953400096151696453258040295679050994429536773109552837241851304139587636294595108450930899459908582681478073149674722803762864572439529367546031654392962051166949786317424641170793620541344815625641451183020793155628527168545967691758461555077111700976862687839138952202236483532266984419001791004016596165050394834488170645825891588227049875705403439283562515556966960833350442684915674836739623304202292759168175660686343137577349598592192071467110205641759082467734733505001616479052484003126733138855364919464809981984707353507619839534933232335815744388373758468865720137244799077892833376439787913368039388953130942447984493748845307794445956202261486979861023170253055366976840031492284299667118266697871947679820042940247354036527330966480552671963886755186328425003810661771205050438400885709646587182979286767624574404341965330375202191431632971787476743785513432716323838249975380372357861729951428743460899809850914627002210159506748124440803603947432545874792337487914112312783395437443253290403115958492194643725355832008309394017252359004257289625064283840616188523678353956551110095070702392093411557226208426249333976903920645144168518689732466223392553927413380785109677279913673755108676488111573295809688287618660931966289428518905942807096487852530722666188953454106182045365093447692400888768972168775645475503224798438986482443509772336979910662159461231245302844066060248953271062712645512556803673801608531956366295969294288774728854819887058365335858346086644461723644725046269091972566629980324688876737506888624332697094425669111177049478201055916807060828546792644063225325591101450050516246153110100624912750284753912708109483157257494479031914329259840898672857400925298026736476034459451668672894614044739901250939488275073025970441852368905275632483788080155948789585184639618808265434460339978912906039483130403874080881112595093271595509875989370234136319874792420630264166433251218455981200582999426799664346105596609308869832439599230263188086890345580426990256587247862448255525443661303315232508397030669498019544075645452163606552196582794697162982134783793116279835526824504342467639529051838483876697714820977839100344002635026883117890643636695368308130637443899665370812634456688045072675991595322210587775148990586446573663990727258775650162321125789852108271319301828531129017365386497380171658588028122857841277180548130985736004909100918722758117786811541894995541930333783810786200144666200183827482331794829185842386554753813495210267584731208119838003848319299928095594233295011620054670858222574429933221262595809830754860209266243546989563072722289900111983966111368104292997872073150443065666668964906693880391423452641688456868158944849416154939126901609013779149380085268240073599723210867016322606514109692871979912243896165252117121958647582045365154418436736413368182182434370864931833281803613762708992385179632863180923296292910551904798934792748725902426755796780217448874569296645714142658509336236049323410492639709845233343088993704024712591743309070731235322555525541208923945695672894290808379620561851212264404066086122140944324210503154883760225559648518843144648622952984441951742081982748885737723003891878000038369125633008666940645482399562734735658343081523507285569483774347597935403989702584686371475851663598665664769278174213571165244866271111002004509690786475357886237045270478273738883711316319833471665265466941557009710621982779766599871572161105606804242935852216234167824300240795521914140674126486911789565403986131911829215421642945808029980863537806275053682824256794602791166897395064237162429898082852973477696057364576790660857225354945660608521567105146349089046742117479038562964350067946787348346505137422031111469686887098615400852684043933159108849394429688968287637564143778124909839604655332877030213077958531199741061884484425320151551390710842131874638912385295089400573836390837674616513406995679368835352189285641011597054340088563809851343640041588527353699629834483758377420893547654395587331456539883253952533160615171604560714446122866832676829369142502578043231273604413455005445501237075802330396839554497728386363940489563912898932978083192703591586397058867077422205922006044249297315079134601447467208875421750634370378040545320241497509694023897400302505541512362543959405980607027313248838625867296909554023332364512600385632856150689933097886289556555644141916142985621412589403870394206088712295465413224336384458323593890684815709347703801943180400350015485826981200348438321778889674216787732513160001306633780461186672987687690653838500166489204046779857783232494369892614862709621017631116111940655568958415391411473810231773225502929249560557271251097435039437311968888640607948871599844733456964330230182806917200116876433848205215525165764536921880683277027958433998288809062593049202006869395887049391682164617255642463706513402212591686445850363031268056023083992133501330099033481769453499298239292132026511574455191736181806736853364284758712506170311971729797670954665595377917971223461141185294561635452988134339881815001398089852728762327109571831417639274629936354234049891350570336267549758843134538233330449254158636474844505007236098592625132257852916561000605999660967463760339617767068135921084813241368455456626621670209851610746228788588802525377305813035469748496018015657755208893710693815507491442871844359289211588273483521294955748437605307384726753443837106701016003813149245219404944719391366094720597104998588719514728015920472416478354489930785655183583034460043373534657061398123211460075480932170964353306295326579037059064863346868927108093677942521989870444494564342308566524651848370133757201408052664241902535775013789734128222288630424234689367571857198416058195776834324863968217217430405735643894088508407080434855947123996535604517878252673136697113903755314223893357923751886102010102025208404269219684716590437324609588533740620386531000753239378680357268459133407194791649018960212112926126081026652976933642076525131383562228291626016028877183920587784772816969457730407793621169689883401331751713807773241722084237780177607115562655657285610386369233893062412845834582240957411584453348106518319972415670552638255944068640148794611685582871205338085858920525565710478448007469231335348778747763033673658139305259945516329076709047991360212609454606202815843270451508720648166986939864062577996158957975654675463423383727653391757492717240829580539457531434700818965539342128574711569154934198188325006024136028372519641199516044259646153586190857754318895762196953164104339518333898960269273139587030778222009690973607872711910952438419365414743275896830472598944305878559986296198431016747410350987350347883052341579555013977190493032148370679209087525933414394570013066499403170881952564264594853947421677431353105446618675821062577699505005863184270138765410748032420253311267232886056745464977236879592194323235035561657285558453833071709121179101665045634026216021693038628389181925968246641891190661191936423124732554521903407877079434187338263424160970085131429034145303448007472560861054406124184662714456590870580673973886341702052990463800937780178286580389817240699930202391601121346170238719917763847791770644588937526161874808059021593123515926622525246848677437303776319664186543516540107843105083610212280143837857334601819268894312911761921506716397259446210070730376325718259146161408849839155313023818078334632179399561856649034651387095336519930241789906615687132064120264853373869544551534168460183386130025678380793165290693884746941861857267970824327501196196411754003049367799942482384937727673131132095693515267560247439480599449851432616814080614342412839727655247739718173676963289804603200425494943462655024486811960219653680665682383454858482867330685193772280384787898732081284511763178823673846853072683716705124092280351876607881304458288705504801031128926217196416053976546030696104995980648350783597836433772076143497716372265245947676745403507875551930744083532229763166517705688424843995186719510656467015222372746867457499972051047868859594450599672402888385361966172507351105687486911744176990562811838915595639519429751670565540658064445896504032493557504653831811339302484120027396404635686157966921721705503880485470440513468233556997955711727984975397850870683955794760740447572288938347206451799165149067231145397773896518550984540067020117521716307776805450954614995354509367365808985617166911645215926022508458190112379625401739921262510889410634473143841082817069734815601479291305235910940132397185771062341654241670047676928472419548256146441657134605909961583618282237157804247938901516139926028355922378325499960865074292834002866071353989658168917580137645991212062380580091576779765584603646600875592470790302880095749494543711418264300309372447189721073440993738238377021004982955063858412912206126466053209123057092101749687642513620780753372254615086126401952920474140098163271651570949782887665345042743934866885461061692985382961558447840687651037426975055759859189787827770473404272595726740040051014803095485456213730124528195547298310932433200218234475408821789141959755101445710653038422337407184814057733605493404665092559719434489971872562704432354796534031985987778869166886035920302849008579132957803694454417204396833487915147796616488962498565278773188531852160661443161412265239623025158768061406336775178861941289279770790855310461251697952554025370647477400001407477863223249447935134093686957802649237289322801193334826298180483497870408594074529018830235240661785073413787289770825226444589054597020826741197492840901853380414900931223816884436108532531135989747743306729600360260970214305593916856674197662777832215036806998947603548318625914365519866450187957946715012968780710220006127295215671966143290412317362687243116359916269835777216922124669232789175288270415008365165903748610236352306818713732931712293939224077773434333971477496776310230635153128232617624780362482449056339767974489414757541635965389582857632623169114937606570540817339105026000028299753805985939026127687682471836258282035879312202598839491211498636001675668405130283571352503210476358980354722763303473344190294783150185506900114483214896085767452982312236613493031051119872385371969365350058942107224243612336152823284688172400009795088549153617615671989636546506887597852515183390663669786285870555940565394791685572576611687296787257223819632671936549280349374368601248070551483138485154919956102376501500436701450727906164973935675940065061379313455018436343470516881774369937493599351468418769196568040235479161638803269928133202709087311516094451216986020237370242330706957416700216178940434686660005964842225873723837876087563723876197270709312356953949287407495253573476101103794755095020714923999460303074672998206793028565042376568967322267436379809210824778743750343503820441849867188020682682365718389874888193573288430301976520699311003958190470424975293048153848475278382165842757796059551855316011046378904496750078526663819433199905292934956305512776709012766632222635626633332150473268048700578989722876310361406241764304993784877075198161532366286195512056021521251987350969182574665050230450191721228281817055101846147935672019822845604843216259309596779827061606247778639872769576183775716665043228384539612755726255362061393253271580148991607139771327268801571050293405400451872427425630472827183973560062049275742039313711816197103467826039313285809440097340854079694245873330339786085723450599659000114786464500096721093879370564669722995376141372312428932709010328637243234371871380564823037180210759645227642974252058182104543782471622665773129384156047357802656113411779688352066524735998631441906632912677296207703082595995351704563106468975448581002542702820133550244478141953547304993288001354884379077865219692471003260866104956124269990693335073354688795681720361964172817011998269184212827546850471035985672462926549312369428781838962811916974888633231031413543881926241852705499862746408262013217645671343216234654610743921811641114014073210372806464479517726234292683318874949389015387590426260293988745652581676782191523964557306736634716027067130387303409190235594881858125904345804818578809633905188242772716469918100099908969165662228725414964097671099532742853022095903696420012589284109445837315518953245954851352815141851820442022549505417422776374285392551347538601424969477941054849510061961983254542073704963832883652250438211665167008204116563183888693680157084725150762484151452096510182665319576856571807240344110629939679329266904139674264187726345739949238676241202416100904416034568115705497218419653598265192323067168070834730454395489587237844571981301062333807145290997537953885570668828988431696358322994567906039105995258414872943079392070903275385162548609353036231044023602367844136265382911073862955074755998842547285078875973220461249191232751418722627128755028565817006443794627858504094861574881310305227035021656902661788790158102610166058736102794248919842984488807170086743769845849388469028502057705541716977315662667180229424999711799941124883159520357462689579605351718823467761577967529042543761869136206093089787331768919449472609871063006125664619721658506792184807785407560932961572152599798460056770212933417993449613392973501770232885166784894447628337183018919701762764931455088346163215091766094007913191588648652560219221958349865790205805073417097551512861178090460501487401677300710453790621061695362906091195413298704993771295789656360832599353351645927358697718501623215360663852579166090911620245961869796850059186334207559302027649612121296529510109115493632883210658809447047121805748716296438538402099253412333229051404749461026063726131223106055477515206879129295144721342466509932005917616418799859923239510831334630235617596518035899999730223180063286562070824435070843188776571153071983895276965510714780376848952240210635870374136606515559810351267470986440293882973077693603011407350859565584343648721645950501408197124264848204491844407725436082387073793419025605603117254498077745144774629624347770602486161424670954639360438431945848007017583978076900066427629655474946851959460052284611383613232961291681553395771961625762711552066092489506269179993248340617929786477783280163880263144208193254562209177463157780001679085191331344416161115885921678163001067946090731671334571010988252293435913219438901734842429263080603117776228331845877856752245244543907979096909651623936399587747502303057212644792682323849297796739219501450474199707653288194339649786859510470677374283696082786152742927256753779092917689926421664252020339698497076008761736792109849871663031740781985100273067650669114702836600420692969126715029121294567341671403136860781381746973282380272534790780216377215552876138080433467742223360209485948074527158924374872422709462684200363415991215175635472508846573478316231014368319091590229852437231189356768235593370416774410489992184864552517045184373230642349596770791427860297160932426229467250197627009261796751181270499551512937339983676828179746785385996735045496316164114671063570617741703355507818563032146060328368239802868822665728219158093892387385326019697745344793679432115970531208759684709635826970665699093311731692535661050987297747941714973704479624278001113227626587927508963852481643265200681034471088675039170271316758245432349913631754606711727771811911498533618436110284740821029800663121711423460035610904920056928275254124752820854581275482329694466391460652188432780663788516029006871383143032572929779150352289188840579041310898450613671983923604200544668756468207622266980416452670414821024662011969345716890554380575972684629621716844828073215511380467796095328643772906389361388691071830888257494899712123311172523156704270231901486359835802719604716879581642007111969171898958243524249663205230384914380563609442767696308530780146320179455261260124766229199881966679747859353019110547296017952928975395779573579251495390134980836441718390616003954356259237203080822882351333899080486344765876185268652467821809543822376707558697764507107632263084364895075670745368993760461014820057698462025315221621269668372737892511638727608764380574419586117570914007437596420212718074085243829710298525965253197015728612333383921227252741700914120681111075320509821035071572680721539067890654627075321246890285316984605846482501005268262207971996513208808476291395514437484612572306321170461186289367344068605869820928378402122357521756853827596746178696880432392660809187895147241767294841096029590868803883444230887204113977338160061207389651021820771376795851682631043852844604571877710584741369842846942375513429654823677037789092528699705447036248481855648345027677203576455174989618716011227145734138476490469862467415205794536425302503976268868800576219892562136955398418929521881721796664381633061518943440306492306723775661673966008481117154278851350164375066785476759043818466727017512611340620703202448180867361126553275767207732421602266129655939905527788108511190860134472881918783187602004074174995713548495588921343092507664820399042643717011618574130033784256354832135849868629583866108907008739767935047519814216427858150403102830375198299563342449006071937977549450641855324732801932099624073154761007682855407605106174362067110372807154116161398385367702131256759554987331828661981572369695075217993763021454059143707339773987010240970731376582137278692500465672617198621775553030340368011871409015333820201233750434584712732131205200862327079937507207625542139262224643373817982262880706356631672938366414945772975145562752539984602913337129264640873963195679238170554251688533636556116362567420478699483880507648844782830659812849457313082889771567451988270630208649619691331037651089021242143691213259601742480351230280369847238476213803337434326341486109554432749956377728160394279248657211623627796523705520938949956600993110321525724718081777220945556192581041404336321719270932055873413891908393743552437004699764584080951613693501193073012941965979438732136297423475857580631482529792077182543480443558723222020697049094235336489992750551641654963458062775211007624738549619493817144163988438307484106529380032668699640403860070247273643125470761294104047259373355684225220390191940511815098808489672154942922794774851873630488254446921982569969984877015185265809357717622441158068381875446910288674441096278144542812686640688772785471842154612363629370927628687109864088621881957360659162824437269890269598943435450054543172706793839239026998739436636289631447766601664070189592977958954949565555328544368609493029959516560359822661804291417516652035085758682061179181107719607871004456649898706185868602491191581987729380529361952433801174102193558671528147376416180588986166762788497953266809790241668083898969271231988436628337592401868236360381075718638151626623551060239120920087304203380843858809167216253702798331590270587694980800396990179982292638674091941655241427099920869949623957387114829839857027428446382159146707667719847125507806464412695726515687647946279843359636668263628684137915911355401197708025415572034331647637872290839207284083301480544914138044414421013186783362078382394290712244215100628577892503679410024806808402665098258718908825417858933701710023519914869190804622777384862265580749072080940277794377490086929055445287402503746480372456972572437948820394756114719501795977179822775597620777310486735365305087774655232763909129197087586212406303946313722937370316002442774945251831852528995462811087231236175913117305249503061939545993578299903954284417597779267539015966302158449767967309858737307727289598092664175510615647538564434346850955456163491348946418477281919900403641934823148526673554873626355696681067987817123532786172051118515682993334000461670749422144213949749938106907082186495059227960300116598716197328864792421773775330311010171977333767704773669465958293458270311646937746411318358211434741230534169893896201107264151482151966765195030150096913564869619193660888236496845101438523393307996326295095290590166991809262937353961281599551534849677665171887977364247474904203674491215276004616500805646399284437033960205980390566602955839554860556642644170120995244198426558623651608863600852805893689460822128115382544365516467658169321938790837862781634783660641951767673235560511288201228617081281700364984695493874389359814999098544194928084446356166246152604497150700631059703592451843279456867213337181628260767497274492684372415147221224463101521845705731764993217351202821249100093533924660565562715530571766444425634496763749624090428505016262628670763923378345455013150019636987967486352373889833805943170585340231086195132088798871958857060667612173871433533298063837582856884386623902827210118700278355544860144428685217288313988351070240787781426971630876417139659786036942126108909325069060150247383204713279123225251414695315601851626250762557257732377123321549103978735119754808214741895097415516780124849556879183874566742658385405434832096090698294375647263622961740284393140986840116762144384429163401098638530507910206281501193027107869993631417602004558921561980105489324299974503206869751285523986867203498966155701319353908361091079301928791521226398600067278054644974832205800560727594644018462563176369115218812777279494699754170407663209815560846637394978527870553479599931556360709999289405264056423111178293413865028361978119427627233165715774020039705194243824286418090104425757211849082256291824680563550661855764828878314640754766194103881268890102128802235800248678487205474516253187617554187175305272104076651238628281215357207191492863370823470603736768383535787917412247957905312386274343156739635288334794482247934074670605009902012738678114335635709225114518802153732889657536971375926347477985047351730671799634016636220178436820418037112439604050120044014189087153887575163775299251176556501938803465273985944089560351469028959116204820211296649829417126714096297015022172705260525114291578570336195645087891773927142225804434390562361193683373426712993091242082372806429244550258868521003954146992514000641509916377964413046189416629164752374489431178473777604555172169942734610969234469689574299965591130671658050177401158005140558608962243899784532030266878944810711473520925923448788994243443389273597711807958213966825008459315129856726701153847344514509725974954980373769675303909252451813266322863554878654906061147336759954404111251012510285115171353340176535677981645758456996835420949245685607061517022020863018305678302200648330914972464025283219378693438815311018717590663374194147688192751173384807474346053940098108928826343105177555597207765915394825890153430098598817846155733884547072138613971540415856925845922058696126829144470457594928742118883496809347613360942338618139581876206852860631250728196396823185853805201203053103697581716771321903907332707287154788877091273700534090119779181414207390300658644381472504982101926336579978013236536376094107712310734464974239682267159896707788561159738109204437074953378805709757411632909075509049454535045654898802922114915990241752755578173488200414939736823584728991591270338597694589653877433555175198134937401795032022976415453624799690717853170552599939738809179374489833329272855464577655431168588163787189826340680431283292033370230140534540066328119603863736964666883041566071297113650891012174297661987323634333496423828114787424645665743360427033100946404961517640547935690398142097411922387860628477790992776010899726373081497889353420128776998451916412249842928666124515134886124770628834317523113799994152838549515367672169328294896087755087528460537503689502640319590485009154743584432257092558771810193990177420188877052430614689714830186847515684379746493018332520699091301663187235741774879830344520800803812124659353268924908109909422750074997893433705770322895263981641376037489550432791859287210615696861420983733612969376090794677702081038528342373330557916864480653813035183993013482658435847403651855504238285312278812092832726201757491493942086213784538599031850337058004969714249167619047685826437382898236174353881774138641703704662322935451749911058657213924427156856480531990824581426390958197972417959670129731935084261892024838926106997413219795567812521519507205880545647123252708349537961872826017794838017705391121532180870117287952456292914360730986284084523376895702011688686952637062551618228550985352355275908712088854762485654997550127184838677775139931309295465449552675215291413777222282647729593372093972173568995508598907518884761399259935110613603950709834785495890445221096276717382822686961975245896802376585334375866624150504937575396520850958105111757577508128637260140676212727353784456301984896757555880367248435547398313022364139954233635580078434786763650050572580757360118932942740752801547352360973708009815116045654151482595767707135771188251559253096459109607791549686756097043323262706935871015093895087954226582838864878282650970655555478596221139012610546234915076886347944633299891717691976554040056765994442210532955157575779457304148356439692865486483412995769290904686707751296539626023200280599334768129500677049800049086546819769000631478424887217292699231181246106527150868529087224358652517397210700669018603045474087010958979246412845985910431967582679299219754988456113009771067335416197338643308325249965820826572514673377666867870029424587954204509053802384074441668739918707598410857035894752714924360565491961756675162015880140410026288270418595561163799543493432787242383287730885267414697272973590172554117371139247541069668582986218414642519861256974729440885418171294432312996620025163922020669851174621743086388758303952088472609513821364283357099984152105538159276293409666162475078018446714500826741015772077933058330631689611294543974814115598807748597953768383884289307001923761042365491698973780142119123637750564051825339207562739399501564584065427448261098598897916349555934134743646705806892610764845024048450074037232397905564049845217708234721573753492926226517490165599362199677111318569834647353117307801041492623185526745526832749760662030613035733751307618043960420818861244402694267293742922546128385862421606851342844911947189797772946491723770874388047810920109330107562166201347927973081434319112660474985596401620212459712230627322256631880630088092137281274867989783933274834078021535991746736991364552243434448969379570946218315281644626322444678652688866663169288422341538483596238227506074089013648036161885155328737581388421685416801047626444656042704704877269820580333486091736487223759864377898497958578736347541987320039176674740747336330927983297462772276404921443818078540399323249168118070816746396563834188477494468059680632086382613344663399164451131721647996211985824108071141183704045541090214859987440505196103430707886445450972647252580649592413721891462699162763146162360879962839517146982437604601359769529847241313263747676028993880483197348567145980228295073018443863915095291608316121284556672070754194341032584484753423392112198526533154373082752495826676767468738830320448888919710804679415784083559026024564008663431412070332334795178777526088885556866951083299035933741722847927852776698644097928125246179090306337994420177817723235233013940121000843627020357273579318600895757437327742829951687516397750696420200674645005025817684735435733788047777748564413477136449804032129432864018382445680026510329107540112401540464830016218771474519174815976496946452110510122822669707359413304300480721030338972421139334870694346048499535080951209802651907923577436041444972642868587722261981748870568008421565937991300159476136364173407250001646127102602230297142716714862965601917800696179078548104410441532817961155540903714372547622395046816043586107738768839516983313689486937596828315545349307774115112203985307308183821664983689463930059706409759668956151466612365037984733741298459961675108749340869565837595151175904715804800444943738774858778695213221767607306076913268310337437344737151197120846988281517961505836355049266141374889625168478277793364954981282925057277071900311924156064818463008706353501317603605560430377593705014632413146715092767710368067660428740274627116760409982759726245714066437021546280108621765541529774828420688653749731170303818555793468454750084381617633089243086302893586207646798713915208265227343080301805910870704657610919116101949403777878538167368188427483805822277581222281538627828413741155508381832181245084501284116684067213170892408009743712477035259267296068642292804160102680208059828481628491685540039432458224982982362170518428376868305161769065343972883112973592190275664798183892944053799412848576456008186171445733408663974741184460954851248808035704494306993677564011945279533071125345958921667832910878357741432735904597398439791796533595598758941605464008529849412183823983009343670392613175286234698001505536241271566431849315122997720932152171323762014049451059304640865493529292835076775820180132190115654517126482647241684488318940798796294278197670441253926952503249464341493930188226060625966488241619226484796746991650575817340112116580094997456631457957868530237704033586242346701682441943821639429310313983888779031362490193553455523158387536249769308776686707849852527776356552273085695425302647504093853825951832248996353752623845653718963014069836001479936653180993936658064650134848458884809371381374662138919008592262712677331465612200896130904770348301924895865620539065964518305300403659349634183741100180644336490786289533528004505568930134328959917897230292329468035215086683275964105524516717232380796858315624672115411007353972655022519957535424861237688214760746158125039955976015819399769339140680985728856474553984640128716187688872135399308309734991680837833670675397207636886868101210810994069000657776776774398272159138257506701359894150967684824978699388542239604491497549631743855171298867233973961274653359240655882083696165036616716920152698592431619434453850546358389139411655088983319863990901135731049423762648485027750457304645351243952443663330827933520220667926910418607848446069310037026224001289142007326944014821170502636124355570144951898482746395424832918920304773020643914454575505403364005719994381952799690451163311947788043654606129111295796667587476500584022056438187173908493507717654410783031718643995601862315378677995772944776664176546404220076904480785926072161832853800318328075254487679432455067372819387778643389938086802355179799161617772958423123481970398630331517443134692297658924733721103169973225904607857097362733596314895847443118636939121814124118086232879154929250361760533588026520469742285178261806921521677701616993491884384667136587151874879079564152304518226595256950843166606514165496684500685788933471069520072207533468961410107405636057248869290370122500630806635678152749007530601034157398226961322030348049379031180877261642686640386820898552078990571004678107046634773604571332627338732532604637314522965518477562887245747653002904346887455307813268005279551953206006868809800513508298144592322961207681106790881558788055889951653850498126616109688958690348928629334972790620057952413034126359298445527808036669534619122079513797243812131963322448036595621041089631896568572825341548147799997443089707510834875343142069409608743238008053169542593328530256686817188248336140284230619755272620502422484164139665168915305169057311950244070758277136002385764472366311858540266051980870470248881167620762775264308929656487622675264928081754823075167427926228848360294380773677088795873174937609600506729058360112574672556925643412899841960795325652959416412183843216255127377964216943960326425006878465037207234091578745883938526400915690766992556734374409959845650205673324215030587795059088347247061894192493248327353185441524992486839002190622765419435691360811461785107636070545050956993544228485968658956531254335303717094049429981913759901192728927364872619758721091162131766265688968336597689713245732171474288357151172825326014685562253656991119729494692378223233801688425802246308148889510104683247969959312980855039008951680950413815414661973699903541136898503113487907434892904705110798814898688129706713900790684907184754059849247436857663929622353480781466011841608901093205843781771464493175382154760885461472919006811843928285180328601384008065601939062947839305036395020912716155235306166490035538539506771226998854125990294821953985721273208242046212059677107777845030206508644325062004113672407838711163983743915931199634169520641559888131890767701276831783451330266996263968048856371220307968890626949562739306784154370196114982361083475228265015578273918772998696412186167612246493692844030062334723682305461979102788419189948894251708738626432539006038235986790452671143961831695875136443619740524255640536407276185665473240505382579287368173114028851937528381115650899389161708110715798935618073299653762144255728613318993685208837762300155102669552430191645386910204787881545928319854429024550527710502131150151681685563321802814042993445687384081136378968655266726694891912989804986637852467226643535749894650927808477591147965355214822624907912911720706264345448035284812108597200923821420279273067520616444098275656733685450427674074874171465055591170073257638274675683013680015623626720028289025886248006387620087683609416096515184884772622120182915606355964847999818266637217896923132515417966011446703444002185182177484534943139692874242071465801378786679823696583630384923325327382097814214946804182510411976481643065222933397843533050811618424337735114674572940518812617349978078158999651617562255793112916827274777231385978028755276656718876451612969619882351476428906163640529538825468528237050332281029576759038676545746923693112154571284466473300924877609550486087840056185024955686660604871084807650179583836158342016038770714174803873497681583704293065271122046169015672955157722175421546576740532705771321916111056423295447938948007258798358693289894687266687948846701444361808018851911505337558776289706478963728014249855277531635006907225310691865692199081822218188633985485797330863852554265606123006080213306463315515714722826883247152359035934349819211767245822167215898969621058522803284784810949247437078378303601074873451011803442540898197539706564760301393106481606024769540886677943883823367399105326242427994656486961450857991798916225015977644608654949736576713456551915794784270651268770029803500900308958887093181047400471113589156330790271661771852072792533494217548398565157434868137179414861770730445203455224549246492604659240587994944052158937411913168939751761076896078236388426515144019505890689313081187014860592072015835873046354333331731427966247443591566275959792882160518575517438335941707476575689739094235396018748839368855443794252436375820208580078575526741005525662795737813099533566560330825418732813079587302675586554865087491198946023267499632245462662567885620080260581208696387784879455003392436541603751142862287123941515450300089670295686693191794551096336198286380935985447345755126695643689070301546095663384881936192331830247439028375511087936479612006406825188847916999051938407936239431716917621390575505964448073983722405118141755505209624950093663350176026377826981073394358059680778628124011078875993179665081730120369323130070684293379680896649928775092005508755562229031585806325680773018245303103112105110380137018508313086187763013123047115924529693745565978805474719875187011344983526789895297636984932000102734640119915461865480482523580466608359267463960686329689511169887787209465114384450355549043923172700769245684798765249796167236123184115084413706076936013200301374459749081759020557857762846890508252738151418617223090227040152544390843427741300850813568938115557927641272986037060198700911942154095472005887968234903110433624690162767850686015640844580990368158778637417408333559905459946619893843131529166004477155144210896034726201778235062389239646409535532374658398454817736391501278507586178986231651416951391169902018125363734742957134759596511797475663912816045986836134223001031450973219105744966232379042023536365637872706599530064364254655972213862708936002998983687352013690065404331104805433088961312502411204605540116150630013939781083667475470017729760996498411603955534549831990120020986720044141740101410263363728708530397947712239479298633144864859300946334394461681107101771088573112233979463940360102699359508664254587245216156249993143667515288371866764714659967254045189541008031499298891335447984919763930622869138133079629641633406611797404121107140084628899280787635165711429943416081904554644397992379928872730498796978871507957681897020841064801593417898633253156325032718967726048974919910789570252892915206097092019843037661768731898162308448054127780656926026562532470853096379200437926843768178001822187888847780922137114551496574573825123495172900137134385673769452613109538993298408270304221681964154355880431035922048133083134125127148139913537809256049506884410017022675661493561375044163928759079466793479945124114794767077561008370874423591132038860416678157390422539819475682010133746035421725345974615292149404154568816983662591762041105093855166275064543083541114905148971256723357525581897725646896617168719555513737316510833785154358502464937820387737891071080482282558184243997447362594990896156019336387801958338712528609939813952385021729301961701332891252438216548459741709253133429521095131463529985847547955451013753794095889355139598632871408689810753399317760668564119958292116211458053569796269813307328047426629109322872868791772445823120347985464367753268383163933574009646741470717788129848234358914265826550358246000508644231909620519947428806996993241906038277044546678127956934158119453572320109927041852689567425437204160937862912488145187818926665984342804604072542362861101104276688021633920926651860316569978002471858948609411702359574452851035213533776103374373202354694882119909444787428328027143130879106294179788472336840719542184777779222175562658452461346935400823931418567635752166786364029850397900179158380236788970858227912904843515784181077823983411049275790865937925779970757134094847371568431649967578613503710820011370010426508168150485458239900389325424757230591388289939974115953789300881753684491743028870397935059500425751155981090327707900781630368836040846592754090597814977051770511611857483184484588034490152686782235513849955250180899178038931210906639251144952818306732299200588074047798219726175390193477783090516291479191675908196282621360885701950771199349790727635973279515153041408456673650503108120887574962063029948890342940519250411608692060361616716186647195843156057897939238359415244381615861842503863876441795250565527052048508955675230841952332242301353684855150978766539886795259885650720745968429770441311278503168026095310111065060095886420465878185943265624667894701894833308663137708061862405969676992824729743824101830924666326547674921716601238137932914224957236019758721526542720458331648374640430067467828802637324383068677509258408804206665087789979469071870106962108539159357339283355882805401755761170529029856600154552327972685914922766145479068512778343777101171247753749136314206040396229159374959030335354351842481141852531513039348105534490953295128447593515522021660098551769255615435433794818648303340725468725054177886115520094133743117726319760105743327124539780481311614544755110750697981130454881815192970279057577557152740228071057411535530190438030576357905202069628976555613386148821577825759064735128700755883719101682171882044136034251857814959486772339624243064157735281682281566054921808885958457740341915340030528286325391981054313609902034169560896801867551922304534208171790719702882625707698719918357850636268034105490011387267142283563573130306305352088169374775397191282127957458090524470205019626545808458055672766628698974601191780724566751921109979382596770998708427196782083909926358237918254893330314605035976604381415299795226556327321256266977324027106958266375522991420007532923281598911769371099041031928793323749260635660326473958042626259492102171922141533986443672538234072635859802915991050638910741910670584883857025151006831846614485599169464955925539426565751059678211700133946593876599226711304233371628633759648683451942069948911085542015923068094620001421680657077456114481921623399574989897603100248944397931523637133676335045526387658896316389440996911673324214312999258053253462601491871574527040965148570241199830380083721354114091446315271197640913074977893655296023062566847556380600169572168844726527449256354608440300754628667083661390059954540011688849604002963847294409866734605832005623434929822945623358456258541228193343228898122143999500629247196466689041344005436404536953931178973251387076131831615857688503961534683930454488151811536499960145212808680089560030419914357808875163568100093197659891883655883954941483145460878493637509644836033381197221636012419569585880713055326953962235127636666432251702047563142248066600886257167335134715200448567980048062416350490170766041829285865400598217976840947589095471636572164963168714296394689152371026515899698136867921861530547938496963350537655533818011635696264192530787922922555225241575243292166776678956428974338473845302088159071431108376830665347731013774171818854827224672396700662716764522982735662596414465001994053454134072405598383762298196347661494930829354984802380623050134376035656664603221338592341327533850376520502682676192248473617895578218040283225636386608830137325725029236985725563448286919264206422921284110581491145964584927181185369671746145520379699139994466813510041936376518179081148277615612700387264157484680892415645546989428166442413121157851039666645717784654468870954018428193981122486039091488993970706264662112308563076743022149525732728578153947946660821228776679284507408770399857007262761407800165115148789410126291378460325586105114622554409074787254730580245646549654224528483348136075725987612308565210657752688478843943443418768548888563355423937761469816049748662359453324898298313413037286371644384474327059109246309356630227440653777714566603535724759725568184039803063934969714055880774647052838931204461718708826239600560235133687730297686230258678075878797516256128328670149284722614866351660762360184240620968252836865687142088898111816645005793085237279724359562921688499975395973715110804609749242578768179925950047665943285730284890995008978314220375925478537853320050339769009319029399748516169680383407500711766903152109311235149374291827128962594246146041929748340403117184213908445123236423476435754358089224447191362319475360815990676077198044771550645551000371269732057054052660058934531737465080997169645574393135447226838043165458495168020248663270821219492247358514404446236477151429734131261983005400258701028651249040751611035299789267865136515749974436918673466656008473876682147115540402894231373206655262854459405337471438141877975566003352121266572696561925065644471681446869149356001936632183015218263647722792561242515309001398504431428695322226361203317709330848033921617890250109013285068455786593371617940234140403739377354604788134336506908168752042684699999169986114093622267520201716393643561578319360115901401336944574796753204654650653836390532677990747057876665531525288756026918492617118093690924544596344942287103516602408504216729437974964115668686718954511702181889374368155667139725767028534780892231678553831055375275394658503769674604253072053346059279925248955684746603069033229513190149987660930938156208326302161114649215704371722949757798215795640734333285596811758231817793322864018585006403003714930199680450490361155945760625672247550899122788270974770844395083727743540872476739604541987451263655746969653335737133989252745276769777114504194019305178257904356230089402402147910316255636349797071291207880939534748114444757817556496014329066820777154746376527568941770793073398687630275913774788016672953974552500097264759149217047346810051848814772849129880969271035243432719696308431271303051717624158102672485483882610459068571919087344206432409379439678826496582954378542259356290558516595978663496532680141009959778146220281009887102976574680044027772997222494863986872783712681239174218994650506968702967756494702587730822953630561168043105155279193147505997406798134265621336691550895149698307526902358358644718247924997684029748280222892063344361106409181800283862255281394537463896280768249551302385063957938192223685889863471549111724313924833681174504380678305366756983706294958600745586006959156915810912134415818027261055796573627428845824014150553326459128109144107456396569337322477278555107438960765965710817856669692342153836513693814599363459334687686010743662640878513626693850330363495093880976370341016513192982225607030550603615544977069556482565617843256752877019678732270571588874797902700778536151280940981662187226153602921724129101588816818546071535952553991402572071849829672590045479067268309088390356623329755227436016720817012189730511827592698377340565067769565982617118047295870996374031863223433653873286289071055640037246820010252872092601653875601585748230604916909119549155120045006696235406061661572246235014277985903475744218458062986155786062617674314832092916902734410034813181962985880042496619814393901462379700731595194980489039510525601980972937169885497659468720994842522713322646631734528883296127491047340761325617777334188265035398289191935864952060854761601221292194500186553663125391724515295854166676954270797911097424144732881494480292665546617386864065092853179001045552844597110986469676354343056208994723145642157276560079522979568089668651550487665197319768677891215397189975401223853667642387057111738907162951722411801312436807691200016262418905769148645518233598089447560245275390801135828170565339917848081518358077568800899283004876089195830749697171999391659260235717148213607348007459955918382900581923183934084199479371578455999344547315422577457961068692477537844027942504288771945667586010896421055343254201938771956418724145754352593613263805124645673613870431225470810275067958311756293044626578098850036202333395152430166207857471984179141597342341135513595716275162631674961173402513190016038495357437076417449897076104542438047744058238479932785766540944687320877824984338032120197860000519966855900691886530692146218007447108390373973665451240162483115260042458040389735931768903969923756580294272539940442181018548072780761947211455944774687469358043001038780219507473591908839392379662513447117556027585924949022181126157412609883716789148874640022512666625776263600756367770440016037481296456108531279739087790248216244500236812750575470035255501802703859269625535342490107761652345117830030249771680151706474051133796432471027243961437921700521104410923271256013718706181615954861223396266928789230868535085420173392190454382471462251379241869079408559251254131827429525552789955137468584576592718916986446183857196709088664946887184616697379118020625245862785448194021509699962308022370946426334295087524499390071140541252378858345601462078528634609899869197417203270731607767572666920819329170918437907033845392821051092299698824752088524756071610033171897159080423358961189970402167553047901230101509152463583043366518418792825669442606530099772052368123846845597208469116057192040353861261195530759651705587280319404961281223078967200055078579398401223321415242078133370758563270091379615384787390017586000450395929867057267623514763141602509841576592443101973478513490495022594251934830324243290730008802895303198279706527475921650505198521876928802706826260663271466768149282347352590835891342685621154914170821798642013009552876290336592881209312198906878094941646096840513611145825832566078436662543346102215998241241478182661989396858591931181578051212867322088913529158147680147956802330787531020956317450654634318397457759599130118031250200607489535804080529272525215829483238839595487597107807760898811731654977776620178070831160060292347912115953218637902619905921155489031733021836061898769252062233107758298125083407059558017099748089273269759369656690394792120960911521643356448262497928311571462620084193077887454909345793934189633405570678209802261801139649442999255448983908426112129623441855764596173500047843435979494289502664504042086499174181611828578501902081455885296450518824393805511885292522640551134503276996739055597271061112602257353633321642331322554784545621879100955585092662066198072472191908872701677499260856372492073879117123540768416484402813937455142169513235838386775756066939487160983354166223180529626224184592035855526889101594149875693845194886567996639425330978387709917836765119523649215696310586983215751157589115901510417580087450689978817751361602035838248675540133871897090928584302812549791350814049142716923285419263665699881119149973644318640728776309895149917123769192810105956797632221064396665543074028091210425854982633331420556620382285741534676714247541040895812785979699512967981867899244281923806194044208774791954871492314684573837982227386712451297693159578048726399289821697760967157947524090915777447496676212934533160248802920676834677950604988953289191359191889829817885197802483557579702774396847804071261180542199669280182035197705203771189257074554752773889194985198888853965700770849455591054713571354219247158049976751272585351872441676623831207867433891096273278149312973070326753075722848791549551813063365881775638795957532017111389625034787803410418670365074207632146535363589796655364816808423699764953922577678210377087339288005539516600903247088378160977610278018106459930341433147832295358119731115117854761947374230755714597128955908861510620277922069901940810140238194462002622858321720291196478168097991685309651367017704328772481637215050898239064361949864078013817692540855732927831445441369793419668681178555304912345119137028632879836554110486982615491609120148437325684223746229265919939112224519459587929379079297509527232594045385887949382674477833266457825343155480439317502565794163430522324151782081074527684979878110697757812162518565084006139394836682911002227142570669629138574454993291386275066794545329050565700472111426769420669014751614352676771012553421308898071239006062276085289654571279994662847731555955035842756415983745443659981912093032381073686667023105205316190568586600182599059728723875778846221402353111246407020150195717114022171265717679098764139055993493804419411376381691754809879265199347134295484967469528455432886582311088644206459623155277731927662560540899208262917475331573061443962525675000088541073023674235229063709221088809842482721812021610148153350190609891632522381943204633524932813045711473143802919416190595985704776169750680196020938820568980264248763041625332915114840389719682395891648263894409846329734237224953674253598619674406581798008267286502325426081059127800277716343337060307761285142561123076067639694974544844461332821524520816082710165450853426697794229809572491559898819780623234620436443826798817593297856948527466884096223301326675558146267354760919120599742829659970646094104919788797782171625028828234758033145206435643187552785896667700782285928721189635396737768634760737021950623514050854367493351637659260169448850120457809945833124141826310148312026252016720176411685650865982248278831267875147263058773085867102390590975087644414551005701483065284675578682856291992159291745087348525974638202530132077750367017884999678036664843028647605321859481575862244197044664901997081028981317840415085676802571750042985729223500837487944701933677999295972195169826837616536276394831336611357581165835063455111348752065151304790289241878956658851987966995388605108171976182402606880512273875667028110217636058517910532182676068299669004409455529747109448334668333486595143560967474018001788261924950758086239177395673537317246412692117995049511647464722739418740703578455272062174717393231863201203473042295602582041359059888221205099179013841271844564008941630371818012815890910299725545650398368782932160266229072775477263997789191783834955533858888364428117603262313666714897189782728729797973924062967108950685709687583937963964665908553029197580941474981923766565432608925049368326362871585048764384936295254006333532568132267831668160299923092398310143095196360683340718591172769797809915330170227595195432388784541461589659018492895708874550157004821727049811592395606560593130710996709789120294032026744333431780811008165585425833393799094609754574159935425768802693710885719948158064086146125928106552133156643580973276458522293068284635290825303200909724310136841151053264625041303416503170904960360401567035607023191390393842169261652068998505740277552143957788295296617904231687231654607202963486389015169189607569109745205861514578565564528510889900236274187647890075352404509964856123177337120947332592076512922556823886481394907970024718752954757919031235005879665001033286026128275108679503618213649516041972783944401171203381586410494603394925712565758383301169921377890717864484638428900804260724381173218758726585384762310669690267527326995685698168938470363817254836050373990187155418539725933242811500017423322556969702887001743093088436035162392756980412267741151552426801098397954270103867686541673801564541375748868282085806364039298534309416443676278221988078959394107863836058282394237339685946874103753278238414908037756798030988374383169858923859132332543579220768623020837431519854557305432160273642680230013720987996360988417692800409791519258067825656647018577455901105700099125808753352268565072133304882840410989149610371348129045328962538531549548663081248264571942804997568485704829176773333496805605609724896726305788010224921680214414090601590126023707470741764889234959032243087336803467589724714138531801307399038675080292071631988171449542348983407656948123983175467837029031106556665943171484949194806950532586497312399379079979976035057314901378249677520063669768711281167610152148036494453094658953329094087543295202681115447498249541214281994014257155517926789350340548422541856599875314225127904420512736455213215774034897870832387563824868453903178640034348123198203668451455285789460757727652653086005752766544077936157758277575705832416742883317932072247116515348588797536739760740992776586445717688255861480435392248385817348985084691582184728775396133163590345588879572323250824067027896570516384147666830410656527688199576074699894584735989997653644535014008596591860087348588293403546877885025542179330822413140721202680290838340559566379713620882847865398643323798071514806139951460533635577241687407340646132501141663682178199517657032987938579915263956535097063011426169197562327204750092629388223177622196716728515295964702998232122495056314510385220185070472523351891018416123836819081549437879598499650893530112782695907699222823173607737546983965669214047457543430510281141304688459931278835884328174983179871091588003007985234347924387215091226661510769080907276735617045852690922730597571207440663944553220839916467345511525003037406630649480737386839016286842092471137091240420396738270294580932204167735633697784610210545669934300957239163987480755947329492553823598743486289822273053545772287245750471118771275010484473512331166938475053688857132095215830577282261804909372374586948597664309744243815889729536710269420503462265052115324989101990592631161804036338910605521103274606248411643120777735461036528071422180731456004266444490216680180459786201421767658327584262026442591282205674799470306303330816915903468167516432717715819142605378906364699911823776065761154799403571060237840406773397664206370813803200063046126806004688384872477351769233788533329629535618949543331148264470713630082042679942565051701901302753431983389268585472457375302812455947636980487128083526496957420840957582723786470434239151543454053840314016892077866343150029935954641792106381397149069542163481476088559620450282333621973307977444638253125352173715366395462207903433504906647377537962480303532446304211896409572897249768438437744028807581434506119670535626237115431555478677222301488363880632003948896297715439197571176674983404825707805629222587497517882000454594856207541782503073392208203814664523005691138055510252818744903578022631785974368936478299260693267333569532634364719274004749290484803207596640265237658095533368095477385837653833723936964401015544296437919133204951962045755373935520526985318525075028619907993577161962715789944478821195473573500500931564721420009118268143056751568301977152124263821545269011451962731581633279174838905182640914285624492915607066093499402558182136574429188628418912256277113349535283895992315338928991809151162332336368855628419877843900778415680687291593786009517191026773404732354247038986187041800368449399023791248327737541729132937871906329818506475151051086782986672734746840038992925908018530913274265653841972417212724077243758297557590580323183230134078809858089243078191517291575331483979831109199188943113821618345341045439520566689880733753348128036825998890744402384738365485557891686718353163671797371377034107624363958835067940450829408486037534301617303704843682314697169399939558577755430139758336320300384232647335717863570369505518707294491251120846097032648769942491836877403100215212305333958355865685166400974732836248451564370867560738597540927891642812919496474489310831412418723698887822199442188859355114432149093128235855356569352725755966428044756633143436077116440298737760919175589584897949456926624771204572498127348243481208432600503231900487807578945904734593080267404567164550637999681822326353557910974019744697307267961790608548481049079329591653801696728083440284431956623446726952203986581943784949665430950387661112315499681416315225237658093070923841754375138330517723742992128630924678557358255652929544200969121761051067038603046687599401747052755103504588333723715407921328659265343211858331857903685727545548215900303279759403496685566408702122405865213775348946876384577024655095489092882275410755469244127707307575341568730622019113178779906386137479571093094895940884833959403913038186797957968251853967676126974414516959119864753130727948337852935642177987379779202016424477987448766707710027507931999694535846491352953319743962606343573787168659254452879934531438685167031111259333710409037228406787327407453097567010381056133387345477580605454593378966348840799128172477401597040916579616546910992667922597423822925411977358006993352961713918639505339053594016029940830054580341892939330097781471202728160382208443606364310283250737813830245757854130477539873424106399632211865751880682156588212638375160800833806747237626455654136202756754393875730740655580490502676631413363390551593541051281515536851616427641154095434182974555089881044220773114370430188921469982161306794295332984600300686170387360145455425928674926093712634671582101582298047595156710530812948479957916556792299434492867996493981083538939348448169045123288453069234617498111291208029753208508613569487580224219262442986706138340724680941897851603877051807831399286085252355949345464378052268176749427031117627417010564516327946440638893310073402894454967873400094120282830184302344215349307634082119517203938136512499791434903750844253159536627229142205273329692623326253403991803549255767699940344846853976378422813532352466899398849790935642437591515846144454255407414617761220886266945524090562305804780322411233983336321515584614279267495428094632270869693021177497821650430981688068771557141782466746904803272717549468604786759309009103521543657466448623821627601994970539631418097880766046467005555382988232836303345900790288874757370669547275252731914330273393764042052648106188034767210384377782124519699387180584943612906197868541879724166970453686971379406143917996828132491884505557876114119631636125452887289206822164514030116643117528654062852717600751148226340484454227935280852203885534540781699541169318371708683780422567219065590850231502854826409332071341026759278057670184482346837484028055167282027769965262440995993653383318287179100530819491370691432649252423650005757125835766013476733359864454609780625713662898714557013629708013700025527983148717377568750400573893967419178531442485931871226999596925792387173652569182679121370905340289391795403951088183477891098989526571093738165561366643076568589689529106698055939428990239981080945056312060793501351056820545043075847224949318103705714972297434020962563556934770409942570811446041103066087780773025027585584755437435709375801494841937515889108157687161744654528100570730302166591177272102173978287366288478008790912384654089100865097046549172182077389761235317508294079962796502483129701328143662379383510511990319418300193296378604752710849131256100712053264612646666048244258572711402262489934720972143657039234243711767879515858521998343863340587632348434407949382067999724267265606906478275695256656154114174915824071852465424217761542032630366539179816867849434998257651543222509616456475582622809096297708146491307209523041405558948779804931843879150560421798928621493217899590863672313249841557476996462114624111860824647805491578873751718510687101659478881396252473504082249942811976522563737276955327150329635857338973671342991885410745061196737960510735908424122060428902651854715170390381919564525106429421251558717278601832540962670235212512434428083915889610811088522388075542158629167920640869606545911102125861742147474007473645637228949372445966682242977724398377946602153151701816110394631354528227888299916153293100716081617533612182210138926624899880383392613559199396081767222812574580666617000082261750684866989743830998658365427785316981705492901211522128298809331036662125282971929273062192817748394110793676524736938564853431464979659402256063416407153093385478563389531791622705924022219168572891734924560993985687547635352380003011832945082719021890169623792413575812251416518208228794613565915786155880226571219079022309097220331875519773146652212453214631340893412007344274962449284578841937679393329572381370751928340406764356825208165864129046134282048725145506254355448183828746251752787780526498644799100008691989600584950709189930448374414245345284808596974930695514669123609524164110999665760688236785087156836994148625870474875869549124236024434433578458721668305123537039114250138505875738593651821021864818076663205141994841356311441335108122120650020498926012221046073923389040764718849159018240542949435826573220538685536596967313313318541171433761017915627407463969741558678245861051087834769354053386689337576821759097922722462726750675607181503699275954168955092488099390692326223686993613615735182778368871190699732887652338095754567235060449921709520921374265870664925361927640714552487108752276742248600122958076613277725136487522381823782853153961362740673173184819723334727766945972601505174779862091606456488089681238051302648212678717362776514980313928485681386982806974438720504312730882210548651766500629664392179863840389336597592034435939632772798489051036452325031588765989933459353432201285394545035764806349256400842101285431314617028782868313861883930675110537780271940606167558258486937589137580770821129947745578694059162067170464397302998296695332305634178091071016816335623596110964380415304440654675470713361978577158861003162157866135294091831560030414849747759090747534108936623250045885041407217754905105331154283447219299346913634026161723116282052501940423005911534042332755503193194380424791015077014097685245840173517502200774416700884144184334437494112506096768433662079685742488865745809786998371789857478170381568223439446205918569841640344416145503221186877465295721582527569544206839212623134787248261566900418578624234710019174533481968247375191764838023292430754387488083720625457921006343702057076100116369782390713685046946141155922103782320696348006308484038116709616008492181477413425792408045051569955119200204591234552592652386405888432338231943119151659026145121312342549823219297935961817322690535440025446157656340599354005820011117678509647184199356158583729362622658719800785717014672075671550666736164190634689085322216954846459342639003581190632825076388137857611914348167446395324933250524900208714489606936792494893009053738185827446270042887641516832239972669027921739682691467129386169492864574633732094952735658745552697628166508381462215390710162074762643291874283354719127531467728104721930868134317318939841029082902359852958122036763876814098834799055407954772161086584445985278589644833987915330831695641963845268663224775333754402097614402242924170653415997916665254369977108708182918323967020768887027670087084015984737991706626090545798070142365298842800704643488686315976341893219109171189869767072862912160854270785953074403151098881613730660209780752751368498535068891086625550835871414689537287087632255890008468417601447683109943738215706268601501583116671988903570891330582738878263495450855726624228329625767501327392447777028574959491913609423193408694885019406222047955105120872223125203020454687856684598202374087822525790389319252972005965311600711606730180365754853509018021484859571547896598517296177529150072861674442323117234543288359048917303726759740455305727054382608971778873740057156517442550280218703874214438583072404024181813544889704988958922891871177296111294834323448178946776726752582454328786596091219183945933789777119203723850060382190021440333590342397913926807409518526010450435922550573775391822769681677242477269332351423993789114506372820682992997033379857110321526340457039765061678656923091467677687549182355066329249039003079578157748699459098785646212196467430364468634422073367138242474772477904059278516304160473270085246973947946284814958724163650397791949645873649161798124562651623083163100165386004716505858904540140469060393069135266123937766006890018863014554745433945777378621207020234489339272449444365887413616319597146688484661202360581806104520533704788520992224553864851450297444728266733254618298939623959480214150333765747266862910280984925142144310808915727330363104035160266133381315457955320984981429871670790789475553735163653435655152377303269370592433300189636250631814232698599824930210903156073541761922932876426323041822153320661833676503914655467655400469486446926858203711999025096354097946373320818461267311569173641299821935802499884673312703086094635705152233315910656194496187512335706820650833063899800912209779354892604145264398769560977062045619830036695560862072848086671341381357285897128038520047619838062161759597132459801874617890304934369942355337794780227685521080802095090110576288926150480081128848814045566199662413005896294598153659491714882023960749444431772397773499056184088777210916333672975744329612815528378249297463825829838745256993836229681403876278003411813449716330671139872181740713005889680534716501367276368570722886875450658516569251391818962385374657558188539634716140438509127023726232688315603394979628856558160559639812685214686621757658265516943767249357897845774941492069940032532344922958899133794947306770446414994967232705737178603638542099000657021781516928814083249313259443585151740179802028332428404302589966049423419669225163492939764455720430262800601038370837833462993087119305609643012106536534544253922208271815879479049596041805021518576877230291526749409949975792522589762846754209727979203716898833365171306019459574135840396745520714625190621279030108268236608471684522371532307253156127286565014088129924505261202982482443767787429207675272334417146741660735063748002035692913860033125149290201846349866317676596700429515987337168573596335053587160742146835026176703156843598062073393096375692137994217066358968341777859512804143944038913723756210672746594457412018646990595868552656457462062081696735362775902989187557594740022856202675319964059749257097833783629767035348494580430603105501153624551398742633963632670313615170611530478987104789090068779918854784663779540979845234729501252424770502945021780798094661116804355805597390079069153339198714142235415669427860526014924008258179128342292067601280679369579013269100948209963880953198822130030923875195094788027401885590800499012064236663429330994436550959992651436558772818111555526453814703760355736784762280468533868279876147159618844071841970235645050354442398307366649610761195560108126764245544362209908459259416493856491663997342489881464960266505839872865847362847982600092956023818558140667753711111002448311826983691229379868825377424793994838501720925772797932772811257130719119151145964109165367107334110753916375369684909076190510667908753840311955271961052591694998996797115455143311331911027412569006799348601947272965737216866094902082226239605337411332255053844421439432497430058088491497392939372142504697783144877934475259487188696676556802997482431612865273112300726754530179846334918036020644021672699885340106126598132492395936901242308037664605564066752849502285207805228552100968352166414730997785634233385119545566238000154603044866912210570090172986008150213104013014651637619602270916167796878816071629373716665867285896438315287727292650425428066539392174183944486030659682317835255181577289747637407799403336080554505556322624457067841905705322910723684240183733040023869552379525366977579272217940367310788207664799499949953836794368316321590763627075965181442920535790368596855970169253505195204713577387008139568805921451019845499917041283153977426884432172367449048565842845090333491937868542350476736456022353904521447299663489204186713326440288922263320025681497533292387037744370902338963574794576729597795706573745004429912932874560285380260486552031449207263323336102497630942054938715222119714551227747472830474238829255332710917628024914930617838444962043769462752356622983582003911519155104016539823643362214190942333244822729706596564653972552593652296227897316445798295759154321187707489479646593870103065425115107760977886804535175767492534535886337091946131336011150851597821250847884878687261360188208647360365863373798233991006063830308401372003708371859905705388338680218978120617744444470860487009374263769824138580687434637522672201993379207944768823533833699569007822146115253750414227463724691570608218846691243022152297506942788091591631184064895180072191570825724295791442114298104939805956232975995554448825846455347283815590832453338156053418648291015857067209422271675893877180191237598087802842172744146307804860944634983960532472646385389997981721700825320710772329111956034075847299141643848908685444220321882063471351356449266575541459899418916812573020713812226704962944839901549498203346612244545905460978627531122387322816160130887581738009588553336439575459411983410218074810246382808098818422035095360258299706759519808813444555722957784703947533009658363126636745441116646601594361424410019470893077359731822663323249457665342754214104520957474861894995198664198550937162427262810254525543194181618314462268174378318323579937306645505760829483550768955389910399430099341083225616272752374329660023829912827322618837373332487374998839520271647001116330233310867765160376676964686851234663822284064411152744258382860663355646207940866236111713471727876578957497602781603459026591358242398048336003671517812401175410320093517009143132347385144519731884767734768836039478569448401534274587395230141856175902635095089893173485373248386684387519656640421182070505513325915031761645144228455780452943431111653537040135572940262515383526822333912026435837094247332156720399102431551403974117915110004118003015525494533669636496509280522738212154220865436126698550472437408509398920815147622833617803643601259641114613596881603111065840348059810286769126624525063138019654057311606591924179596005738470151020390287812960825666251978260163140397430287437617842613214307281684579322473182351618929642989515390994244190967546809527048183874465641943106141401893722162424038313832198010601961155893872244533564412575773216229298978886650221690971989699861158435445068266838351004403831360680652049538355891882322013062473568454101156929447810081674367630325228176660032320317359521022348122632433838941545951359245299310131343444202392584061902998012692495989409689494197001101708455743292976487818134393969446539309927294642547570073529653528283244627235253791309799035709047647563689275464720504172815930611500414437604950406405398021767379749075713689499623692038435274803771253156276097001635792930718348762148810149911986392889844518107061628904857982655023721823048089162520664138764730387293355337481930299764748546284315751963487183492889520510638911737570909663750595356377852790326693201729662124466237707730720825320743928152721446620618706248077479830679540620002707903516868973294096149794326519680623486764665357959312347249242708830070617350895172575825683522942158532582283780614222062959200330953794147653734283480398748984724463301180364212765536976399916056927520158874436601277688001974308684057594256321240077426728100412364343981279297917422396331810751591581571292961537725662038470932177571260842956311456679200863447734334259078764406020073321259499994891009016558152383496980516188768195567582946265871150235582374308232269274710767348666874053896088732295930185940283579395714459228686389559697136920783202208304359986551374734552894522891834581688173080747518361702300521403628052864742314428630786322829181147835133128342726882375666350954862208058466616291524891131620450638649254725185937377141066450734891732100311143667591280240750551977816595769071545565128871206161799340732369323493919990532966653119405675828857898662947529423754530157770829285883706817516912912147466998128589524793879013648103151891319227163437078357067055524971173056814481617293285339366744320271163634144976188259410696876066323726894653070574229714211252353464006433011663856162023038666328418346256694770920583683943966769525257369185283035185838373128867975845289824944615920360496090878762066179814380794199908379756265751296695707762590374403601486694036247318374500346662537071516698094158686392436813203170234297190862072860987510433768633276550655358405793567449759402332596557517492776005430754640081718995115286125482726830950107956938252688909201492397928404270361829967961709703629857885834769410415605060856626471213655081415870029090196684253480853587796246891460387276771101579585913442722475906110202146639792962790940140081973602578165881568979778731756117089300679542676144225854567431071230151528121067263526585551651502979047510489854488875718891831000597893002701370245541166054314546174539996589693411901977087542016255995234488506189138137136763685923930928914309469495440720086568001237072901056839872501566184432360927251508106336891235534753749202981775821207152059189540035088506051792249990202921407255077393494325069809535254784278540611602048386994318881020392844403785912654132701302915630977678793590716815022229143802285288380082801244162893708277372579650419349316304638411701859985866689045790623412345416912082940625681456435962729803383725405210028852666832338929172240770629262735028563924236651382706845101452319265096472455365374761840252716306814641941450806959225354790435158902686449947973277686442201566649469399884114569852035189976418100165539091536623756934428518072566192960310444655888240805478220409022490047230038129356295190031905982471475640529086964527473093209684837272431454987603802835493951533686339423462789973952647872824728448669280043824080250737439118663948464544104157904078941008819634247436530943395416681357148525976054467773991863501726419920718975562081967777255636650347251943113385332221929491571435196038951675297734580436381153386554842142615802356788612552072974367465352103989870598838486402445963705301264404826591053552184212608743290128670700807521190679030619486824594030780683699393658650113307999771931132946414711205644226897141062574237591733549819265928560008556477536180604532592794126808764638911960287348002754256916369114899976543141230631059042106660739436906562414257757725763164271640263563410067286765123394565700748914514194963206153072615225565606509748260281683621397116870315717700588484714624636450394842560895838225201366671059418367020002693932491363999439719254674497117185700668947731894829531965952580829148907464660131445897672155951801183241461346053591337422195778907937243652374554783108873740543832757655669061923573886618964960867499905564796755022492268216941481815621637822906025050667324977875607200385496395937952200100101755154976487214953032801535387074386395652996691688542249388682872506389700216819596160951292588761802228093396666267983930831525161981582074584422985056058593226827714865615354555662505958068806692060790506849338036579566479524996079246974720879242785908060826819409998664909468207680756352072084635033555695874862707024359114564664063701304335298313680132343767828596218913368237893843720941557940500275603836910671609923929086145442144264594081309577044084578689121679813681140638168963356576301044484412561030055347155150987311097134680967584212755258542777108866961241082546792193475460214821811171870733272485597926630620261466523819807650521254058345887956926064370778251077460560527997709590903400766868754250599996326668207274811771652473203581494572892161498880347985918950445202841004846253452869648595127294079137301045678487858953605636256454426530111131759772316877592589303402325159592017623982065352755942584670574073850528333887613258057192456019586946653451080600464527708468752142380155729901401494796156381626422478345938677156701523104808340000861059379876250068227428177997425642138158681534346161401731578392634371318966107303504014359149805814140361715175678650167901302692102967746062995711150366216058330239884283953529654699174284022871887665713304326415689862698886169486275889787123718996482414162998797324126973360138302612901856131103109094014001336098864898333879569171272104239068608286679720758515695986465569970686735507971510824424681271980730354950679389926230926089839424647209134046223625329741761686074897968475160577676723625564400209953283758185179700405237193944059505823520833256909361897235747961660177536903194550457769987878594506687228128222496583846254032434705407863540991563388440149674145181714167568345812423935591270604680207156828257175176164547357584151032027292982904355214088530626110000719085288465033219370183331411514181670992916653190154717957871150632897143320940553307726809944360838620189978245468085936950973661562863522846082485516597812828284347630690986573300440547855869328475825607240559645667476837483663998027099778174486712667184809952444020868077743092988702354820598466638962140705065514876030753488669338352452584436517882906246974121385315978123265187655202856904267891081919989027428040073163559494983015004806382206643701620061240029858804159682872502847875216441966247395855349357996933548528117046993680509410750157249663916707549007740787255576219718530365100262057403249685270472573511126785750627203631056369389807080525205322129719071981428641937965111325110622115730296582014554305128086094265749792461512948902162532822700636751753416088121537417250940288946018671410670762516520674533761492169074714195451652478136018674046717122897971071346367632533203230929309508885907821920368870401612852535796079305105322556965577136745933019516741344440765127456166299148027693258714949692314241083645681556444685447575688928457681851098401880635824447772828332288118796723327536675445948575000121214330718338920803741949764740218073575705512262383571662688165375548849178385745047693634467005765817129945683197954394134823901046826050550406786783550521261595856298959251289456951002030279011060479199991575504844480877382029358614546335545390866239586632033636609726891509476554729555773856170208491580421462653830340574479001473008799742168525094726555170203956025779372659964466576530713363404481000908906193850549981422567466047163960809588542532794264653991885083673227977092836361727628191085205857568227257371911486662777090084430805227836620767140355108918242697177635595552175867876743861708688060459251451846682833138561295195136729459569246327605856408569225810439553922726275977068352505686823499559901857494060846035032790407578983978147511930475749455658478086654944809419530233734149136425004179468195272007598572590625859253319395011291375331158863988863452690116621007832926335843877728663007222367879396837859002566877267110389431268147281466326225016175132201397414773648851316331667382424168923307547063910948548662258320144395355620882425132077222191308119159474509146362776242519849591441681384446628329418681350533381429058384699034309231800695832925024003843827204590473325694016290093393994940377396871399654808498417138633357799537245618351560710324411786887017669899326751033201258064802529409806951181275929011645269920793896013052898832678807455732266588782670115712649279370849370314452832099200247599793416793255784933293583276243498232245328779628087757990828328923770687449011758233326966991795880276963776333733259291896637060792767374597794156992435245351830610524099807460582043335693380810681867710291170808045751724144657596610847726652726353659405938925573155665061092729915827256064379932102168636221973099666472663594319865241976021942569162733783836455232805495573353266815665952869866231578625795162388506791735511468754580648901680131948885717799058310793093861366862464989501056621871262556975650201744318228767644636312378970715939124717716679323767125398404689265851922747819919872276947173810275601413251625010399002920170269539773751779470077411148970700042541018670389369324149383675371232007123112137240503491615447947683371264230979440691921898159071524511983095253627740793959535091304386387542397332766594406775182007761697853350180678505035342347476688857710761880933676818229872716438534744772603386070632933525584170231226956515786813510160809803409554766310566050231872774051674369434677129905183171012863437394450648240498167266349227261155125802064431536166779387389667735227699170842446808006011407118501223824246159460966091741949099877850800971373571173626694851279933067307424394862958497578034714871195358714936788391363785988882916742791844262239862300329708152694011956972983363643297540678453185350308000029791917000871046904534257359826767085100325646846470815611850164706159403523056082894725807387981832959321579075782119012705301052099732804903936470769488687605210658412159099758187606446646675321547941446499669704273805819523847750515231353342662980320796153920643981789312412734213035407510501427235024214439716854726713781485990924371470931407656610633764152020934856885598231981594693087872803889188897351391029769668725278246628812834861146215634222498584482006070915098020779735392368313004647943347089889828502503981911211141538991170925206855012461269958018502355943649111888981112306967856125490312417565775068453333370080607457597933251563561249363700011743860441728372839107533912591421690011238322645451768275294034884967674673737298711753274617167885317985860664548380619709028186046138721150876331156814765103706373684860727975312460074864208211728699028518774452045266123344259327077348073975388462147645669313409902812466676766315302582230767395555211104254593934168683479037670953013287656921353518696912572606767364070054012012727097817968255586898989177893260467995362022211802399781562084788084651672688016109417269517729312196399818975945159818712677561724867132270418675329842807009712451906359619470434899489919499610476047940795493543752303343941665095616654268396546568816207220459359163319941566854274921769738697824139916540290983955206526838922679501618852118200993599461092362648712346591044888468403117698974841982023971438477991744504616257715593623634158331927191908993260898679629396733574461377108812816214147027649204513548671957119321072188793237580140021227724917822791875029078666458659951399488906181971708800903148849293367661832844324625830022348865460217914986388909542730173588547886722242712593699969318267965156050212485714255149805856964694002745245432532720747043037443577571872383278605730108008931578350094751830570587061802491524425131569517728919514561746995396213799795211383892054969858717616657656504417748714808108295770614962513688264956429307538631284115030333877450037265154756557291801850883786229331669374022479390155816699509512526194766632054329969489958736071919617167312736520756969253840843681518070131543270001359192267258467424698988479259860067127653273507561563770755855358956638365816979598902855475248053275596693879301353873922842319253608891608010667195174059260922509182876477893184472596490635087064358716194430835233828339293191324066999621723577154086426441589462038138021120131450100086039097041404674436876200981135603494320432051707378638367541849413282899772951807026426319969137877816907485475696159044826130168577628707786597010269375485290273386503803566509408561590017243353352933680539901068617070382335021538890016932583228800409077146380413663151724903805741875533610532779156380123240093765249388432271067000357287714590725962093655138356144819770264619938778797271233430072323244978098467169522481466638632134817089213723685184652671278121064436951710064480768907448245388233056284809914536361642152100069590587466037126614284797476166097916439731613225030964591248365533739910084506931493550983685064589014190611480774976881457621857777260962557038794898777323582190685049356528033569409995073945274625970441976455410427686245798981572841741610181058673459647956637224997170815031647376722023345523054032778962700606077908210614441479314402736690173715984203635329593581195193268150663017161558690742204802479624026228861262086313620769702928029437452176728858748339711151616122755500357469037640194961476670888168510988679766358690516511568370498060686024167985384492485574485542783530136436656689233097289610166226075656224474380504218172271891665213409602906594811301181019736849221413590167665436158972028011344181411172067412427980687779933806743401689429338951400568840910046220521914000548810336963152898851033470487301417241736675664861125237512642365303425178851634212295133074675738820932754813239278276926491863986545498147266827285817045430812655161591566788559552285748312591511199203787293892838452977763215611506273221962763021023559277860345684443566875000551468779016122565492231514693442490879303773370954488829724020645362765886896251122686273914283716711447796346130109559066015277239302115190079878590571046256808775833854851063143408437344452675769899081488460868404728301250170318231056519626913361516346138910446631968904039379519830156281116863810087524546340434007311417979719278149323540159203742435116889689690086493805555857483661724472700413411946646223480506111794958595193088442409205088466059784381644665599446702730525951605661903496721845446844662491069550487462878599762531111300817864723998350513213180100005179110677888980194311496964665670673344640926468098724427221606820977121213446958026073254075531810751388397558268841246999277234839381641005637328788220995135264500041843956900366000879889694845083453610863315631880793732423311838746885601233482197625563165266467989855250027092592800968830021166344133979243695633524087046661067144929929353495800738202662600759583689780850321897867385289360543156672307723426501705596257659651116659449487847699040967696521450794073813277167347090706249648648608505749974881587651697810174559212396549394152605867772990540466160881321755102577909616483149457772106475241088159509130402529824208521996902764510105699372419243357453482257739469351342775302926506921390308252745318394608244733528513048968318118136180728486936546905891280383803335092185429382093348994848341653828779022989873899748030406305223716559171975768073065183522257556362309399605212069602097615720979412664988148530307533140016967460817070438786387421274186174230420964955863053955892248776372948918965547262063905958243692152651850159470217104730322629171352527722789571312267197210946265711933763145487845172168115995876486088567855129180158552270903610284353162149015933261802325926793107221846611341542143090003232540955050049467577193046543052987688406889976913315342283249248907061989686675900973514369990041344147805157041360191829641026200477812504698951762200500067125019609519858227739713790864321766230817775434186068312899755035994464864050717038682071432402382559927590138999690095768917595658819491394163212396636235439715896510592360194234877236382239907436010197629885475491749729428065354726623168730031419816379271173215755754337552511493082358267978211085822637599896639987018006017013303869182304470442436034117435056853278265032957331907896125016989037869993819914559881789431113976612158728688482056073285927688031572484720754150972602070458204115356502816635061090879749827385112665942787977791925424216459807180169850324154124649075049728553121013407184626172856357067491924107181833146648158527336700100416311122574510368017749022756532483719584656353909983916495936477103138088481997891207797524862019672963289686897821993474268426966705716826020123029783754810027817830199160508330996310736650489840407144858831839234329750982081852427507534665280233203430731608092979354685135931802467731077159849035678747435465132245591657850777103831896982189839170992054720536763925838929557300735683420435943262088512698021249046788756184788019812368078231652521469062081972901951224943181925475476841215262530060464822578554113149991627691882358194239092316365415993864178789384754623608702263394994068163233595598020107242748094703751502506103265286623308629821317122480854584402053884055284196723280929746947587778089783424658340127730356416812817190133728647722059869428984034664036026973814275210527480577191683746138618888620974418824382273540607056769330669921574918185326893059749245471907260357799943423986562593750267029501039060314411907060862311761485881827283202551494567501407086291337646549935041884604224284751927636973239322147782024347675315050411379522223730227025550280788161885171331211997282996034700312348765872439780878006984151228804764394446938449490620257022531861572653206748172529154666978948150714975508357843372963371618012804539330931897272193053675755294974807865425060493481473221673029156566323414037334569199681273713691281665027033553895084294232433484527234120528409737862377421020209067427143718893873510719287918092201285763577822830026865154643791261231286691634350430037174495161481620871880639519397953937964588540282041065997098639478272017150069368163699718718366386222071794659063943967457443925176440268850296931019671090547962726344032339319847061660847571659812965062177016789147395611267600998318320282235379664005665812995295455180440235492444669551866108070489732737769132999420989665504053620505590305459728021689640160167281126736497495940206594074863913622851090726272999398835546116277705290689877478954602761665742229305837172164544252370832632655292117066909857597137998513654563116590116343267023892120890525027107755666902117167302111493355819616237953312434522075599016914075470115413926643430333913070785361388732742296675792890752620189663857714188391928473090253208877441051479767994848618945043790777455044295205349550854368299115924581504655880892572616204663028857777565602422521353706612765079966367894818278248670679546944587433484462271026433260797402916439648749064489183706747862134123803244192334654404912528524508815805983171357864788379902582512049575166755903962802358233444626204271740505966704728741950416848061283560879419866742817499361988417866884505674394625707770937243073738454125952649370934363479701557272772474585167174761911431273062999660062313675707538961535697357170090338934300809641964252869210549376634985782737335804027438804327710395587952434591901778616386336045447717672607401860795061047131866817352044328604366341083672340586901906859262807426057015807392327992410501925135236070421123344944848946694197243428845937341389213836840595693461613507554867122255730322902578482349711480044963652413143617682955372832439353645055742047290900093769816224634260236657440712424629306793593540790767266461493515045326421484507190716971961346184186625014789028803628567582665096141199701044105169534304577585265305228825919070197569002441288152853256812068918995105283616995950699995533971211198741186057133948647349934238361999319180184857490752361614898974249991185156059528587822174121869928130819217961175627439350791613804489921620307811012831370739055576236439743506300825804193102454294907239477224666203204575058714303554080400186589190398021797098287100513933149754348489577046736240297465729230769577844070991709617957520570386857371185945823087296313636828340690073136305183916174510906159885363079970205962309123655026856832679443413817285130745657325080124131575817170359304278161017472142382297967861129437657087255889482761731686939016121542831786397873467988239660211609603384860212668674454110426166699727611503300627517575495551696998898637249408736396015009169053529519061903768797465906046634713705382345382881210235505122641199452919276651610048383579925663834944359053147098928781938833826079444202288924992552449478938446004030770584614327833228247560224920301814077360133938452124108946244350190919769576058537852743047611268476119268657915442228346506152442002905834485135902151106188626548252798352644739482494077396547721598388719310219912424851269248423099195588139562553327069957072668521336710302744257323341032571862487183305193584868215858286427913857753079227875813319014211866172968619970421051144221939129162212183836690727591218628250451477665636808320768687554013611987850705021773473374094135312899685653081337970993371947161902747027114595173046387414725535840922038663944688598562522519796302473438243145755365458544265087823898853902037990831995391709319845864965595903831889608393654188868612923789055143731420160689578336600495097174288258012159736337977687013012966932839090584351191036150848049081781196422909525192334951697333877032198407593833963366378957174359408563406445455938778477775412221765653520537143185407216916191741073731824269928387367005083742621868547585096767692478814244601295804957939574310706530886460874722256036607897057385907170033982808722551647538645661034805382442790104289586502539599738968375785156029837850182333339852970741180670558296825860872828299130866337448922639659247529217975918233654317290314229514709585469533971223095060305106175414259932298198525086253203230471922057949378074174747314154005105983116342196552410975134110768736174348112856881615995342068976475001703316511708371559759761891934742120245026166269477558480783053552917017421462079201733366590111389822760695794766831349251665965967114533609804758423877971307240531345795413826676587774006868291540740573194044035980301859560577629428164938540178848851193899750639025241294022244110169684556131075824570898273316349947465464714920898229713959287694412632337997851139902076802140863032049551827287734086627341679106804846415905206512384776701253695468472428078824048732801417334139415566284352749997937175576619164645899664217930075874467340472848275306802557390927646236655307164460225885357970547470615508502994375663354604130212235630175603264871973102417673470008188426625189261392411278326620774558428522852654911271171237136831899702423397330300204056255010736315816211397624458228850303754079226133595309538837703525295053198482991880810060764420154922353281492230144415025317852354006773524168179933638592246630806580900009290612784344224031921194394014590232382964872663962372450271857652468487749793075966709270074802037877949824301260238682384102182337000088974956434522985894782210892979521919925788970997309087902536354202032242095546412044413385159217798967314873240177440753660670026100901099974878169068721446772763068829765917049952149985151986775834345987457436460002711169510064358597310333189680385005397648225529563575032772329409619846302740159201905935970767164244295984004029844031336355070991680924925161900636971473132542141649836090092739172738791513472491061429521904391970542312483123435680438803344017697451148990225726071639919046189138680889191769683576741020856681632497328440746977833727440528975160497043105249000754689469104276053069126654020951295597512368073840235467977032658130482272522325771672375193011409644751109484152728948260668489420778836115083829729399149521458934519955692851989900541588028754251286359390012802127796931339314204051175243520956217829823695647125862814006301418306729734453929828709104413104856517119203804670575045430233557105998870430834256684336546899685425329495741201307702278882457800898430559272659507531312486966087695736355503171184538061844959765851163389582737273026669791884840150584377374014744164499898741436809329525867384030089527249294969950583405125242334478102232386007663085916310583594073313125944772716019899439249142144852629244613853496885644276853063231999939514788357462922684543317094046847198741046774544645537266837192472305864743916713319843235998384809453631214788485405539063639358940601442192884019912700753334169132590603200180124869930708859527593580588042093128474640912979122424035301586603119664716366413167538902256445586423101341359116421366909903010558959914803019974750716462724244170849438744769764624483505903538177979142506788657447709136170187947550401401597030426413460420973703888321072811284321387333706033007154631623021234143819250350370655088668547140086235995566477274558216586028345065605429428416895553540159108540142782917607572664195492795324822847791886973993948209553097696336640391640919696290370982396057830892193331721435954477494091088537207599450619866570519881810874800862376844809040152417142018679731669011294764532243321286513644074135768857320088470391340086282455524219614725198633925105667371491469675872586197551880653139063380790973798317340782371888069108502158626438389907026197842442544922933455347236752093080303598537486158618829572705546308627847812848341526538583422663995409935121268812005678793700219195028023275571587122888842685295000787364741648895965729831844422050385324986075443860173257212261521966423469219298031273498661358248081086118608432819224012302651238482534343158137867644149683804847018406810408916970885293516283736021044970757297746197526365269104250498746698235702099513336833042845923270682494968377918087627185858208851351196030224650001679340330555289416201590053488605648864653017664827886480216101549328881771782740967413350597938723826910209534768731399610166994443415252337654140448137565132253323850093556788585366056320383358356746901200168670179457861244574933899764257786988956901661403148632115387860167591430466533669327096196375694686062173254617940096456634270336930927418460542486716177299537367432666990375435199962647943906075950260184553730443845904270685661602664607862932718691918753653140120904794693731063917735671245587315329432980507756377659301858280985798630725572377185450133163944718403792937374915169493478146639550358412451157299112589562191209008243840905601778294242010623656096395291894535303278108676587096996067280459220529626622121054396476645054450947152266837500885301521783546604966861974882048688665229313263805976197892067374991636030541872359855907673063870717651769297910677219518923595305461038478751542293348406935279446296543527589962583712303873510639794700090775692294934637707651623788467370234347728522774752134158429229848083340185701992056449451781007345825347136012060939485226672508093708154850579472424073968539682048101529750907222059264518538097309346764572724589082621602679363360729102713192782710888338979621805134197191474166671760671264574704935826552206832831168792014755349438034626412581167856624801449269358381761787163458566686410966787713819173703368904412701129467313357367310666093092669854015143963577452840833277965741685815315567474965702629652101874038488209706452479938826345135475122847997020419321529305048286384698622421183732850587112925683254677780751895180253001921500627800934395734365658991200058001630565773587828590382168024305129454716303737825111247652950665322813462306658849470915958977300601721955960732167127096833393718364427301948333249163099707891116339050076482946085963914242262412711615024053152179560211508214828980104009549511755809746274779152229139347458354297808662068499184007978684724814376021574194973446302755792503479722489633334218423101642044315929519783796733094730084797500698749566534431940229784155169195791500518200600697633939707985380175955832801771644231048483328812901528563113648468490652755864020451391311664275117907117751412603787074411317743975335138382051385089369222464425116546082623717506068227480063569112663595779274273476935717253514752000439411259630175696863651736889467690990058683977533173256022670829961281995047779396111838361932233085993172973665136262842268712175727721121617226498726958894587379432703784237966930782042526000093052487647003705392174088660273723326761189310629829907418092099717799222577362588201062729170779197807690966429671380871895101657399600045065562585414576673358372353003305547368739587138364074791268397124930753613691009373100816116905401984507032620265530613744313027807167162833514291462565291357000117426742593481181995906277940567549886420068686873258508456544441841062702149742155218916338873951085244141844684958659197155362103466343148015821952776336841360083072288103446167350974579515484907140612934237498133569356228941842806170734493593551681975065290670128232140215691417598390709896749195267718687145107752884855597249753543055353768638118770794782981467863208060863361340876951663354011052586473231194143377413122038108541184263778898444576997891820626066589132954597927036214541776545846110440084331196370046891285821254034393058319343782162456478166711871020314230976765962240511112374583466256135837867661543804338447554268888341048267730278771449257925744245258061819989289696289921851566837296580883965797914913305632529067743219582572622819184034982030611738479192349763845712088691420132381008818724395157659465687079054282488209921978446177828362310169487592585587045670963423377166911794192304530655365517065593541731243396524344229294650720460774931799197004070893959494782081691720067892543394048813741037316482716414175799378331037813342072003507804118022357915991374802395224573529008263682066674984278052683933841829560727173125595184499459685967592012542578961482960473121349655483946559245493790340124143835597415012328045087618101264940857316786004901573220308580303662155005908774143568372287420120060807604578332422459842237824859822513840174705040043763935721613964117457596347414942659216959092258638338263058605692193629221207272525377945827910853066756468430621600323780751438626327481117157248668362529804355728598423463636394086859004479879884787301440823396174465647952777716281735072146439518662462828496138918980918258656904746067477625314856931090062309647037025489597994434790196753538978012130339547325236282151192570977523821038796019088085845171517284624571436727633587093371105853841421693971113671737886090269342329313331899590448673265564713583227017032014329230756521224292281203420185220588787416384127894256019731302194152095309684649314082977782295974708892048590611820283283060306488789166958028261799830781066024020094987685413410675161580326771764077313543856527409301014107239000294592065826569308447104685723412192995882391946776253815470436615269512782563138945623849218612449835631704933886887363416884800923139438436982304306789892139783330593918866274222489859596915131237215709759066561042011807594795993151720437523970385818690919838158860826383379916789174548147613907572151620739449965888192877967737333799858567755980072210146113286049770645702829119201923688904962646316180870414572698526097972009321960141774926433284290147347399736858978305572329908550298547578545063387429124822685377475225871003439367982086188565937118832549704414195630982569376911230470710733685230760083451865427964534320205315231967362528750203022719418785767599123583190561034369463345668883760478195771493887707843276680123152895685641604814246260032122971539009011217503135072672975690205090647900642246229374818438095404514307000531379978268637384087715548625382202313681761456954844999132776153980891446726420512097022211825802157149589055273541439234845902960653101869879605749015798143140262405404520738965650705979175965601619138660503986574383726886286883073759382681120689031752629657111673443885222983995438951571557130579678684510309197483071599397109565248384443290489511965521650490705458477724925229696647401533633887267270134262963922165749353004933652349659372951552270159036778624660450736554382337300457033943590642521338258430758906935808836037879054262984984070322061268669117319510924097253718006068718077670537744911855705588660912771660709463004755276705145328139298994644452814311264415798841529166791482297977056833619977116268289729252507638529851408320431040385008371489368737228216595908026796368527671440233242044318003357864790637769834993926796212236049391992655876142183083699320349026844610049252052905868272489843518462364114097978694723947224291756310508703334698422063965103441567710271821945714333556269257575079033894717961978321592273893221535088178586082284161782985292097339712437598863666477851631149434260327918053065970584563751080546103008594767390349451300848100928375437011696090506835358416365513496570819190338636909116081123488321497918463588868719956241745942445865185222155765983206201873948702618490247843501489663227443758139460037566759299751184995824350753668413178927510437896463516020430219155225714368968445075170968150619993102407364535330003172359126796746103088643539653409754785577164870806052797902066327193673849973266863373034775010233203458975613898581262071892630160633192662204291807148285186579573442165156766283723920439697863679856603368365975960152641505530770342160284892769083390330278051569074980819835852112571116682299935099637642657969342562603767418982296717547973434044957037851906926907826300432505283518810635249330200487984087457226103362581773782489934665329766293005941099199823630687783573342621102418804376959526229269986086890463521794214012181708292020475413334645380389128704268735924149755568685407334946469412498319936704897015470049064960373629649038069765342992099888390260213660248028953123622004373839639044663914238399452313302116903609612712930138034676875079694943786808714011163520563043909658800508501482190007286807664171725299206546041596986990144018705400337971052357193124355508533635277090659732008324686671175478833669159043416143018082955994666719444197162666120501118982293755615347857000521829541543468866853398620121187574507091925602793531023728767094130184979064249868123634641122340438679425677383964608332545694364210153589558557542498317927720611978166575563294818414097914982734580401090639705829361950393081064436793934271953415677164007236439032294824612852255543477072848571388685671906500402681611080193225219103158374255291516611972658699862769940514507229339057750178081456499377151530469502269902151200539723525907133817011572123380595015419757117618068413073481549801258205603151876247537911517261379861063624828955386277170878460005449127178266917570587604296764792389015063056454353787941490019412514903993943667067890510521380714203729869087832104314831499303118713550877007347196957647936979531945447593521890338255522924560195464431101253794557700431102333031361314989334009442251130652953935940515813771857620995864848083222702313945990151711434543566032851820250182543241109636120281778466961647538125184335067460288915452884636645927889638910265055585833779948708816955916698056736492706432851353208732986130052618648020097734337021527514519963692011595612356929126418241551757396276029931344511973162045449504105662117175466685673799358214454435320536003222670469737483502335424529303979910018963541837456067459738870731904592116483127887557466204021599260158182563678011588951364854565230007862190091687603468630111606333366182879205874597074021995367860736116242538720120523809907867828824239411385906958954375494161407314217427815049904336164783209041005956664906657883342974239723413381289491376694665870339833751745257878269011125397279198859442458547509933213532920829866020005449115351864262621304807042791192482839687279095748869058970739266165186331761011772557724062425318193139960719337237791580353484872384127316613020342114403313507138438753532931071170679191767610892177489635152809486088347097524326895264134139341381480745550938532165063311771667049094183522358691617478898748482094996185512161901985177438102589355188780671150136887451211640882549945951758280484892721339870563947954659475108666161177786632507170736085265622888460373449962689259246074379396353901264052729377463617935978576786872647512772245032134960850516549237165342292544285227949819593438625944538140502326550118206592807783915031254882390605307673668835029494754095200978258882052646493436009897130292460822979807952347027385948007069801468550934663380084665524669104189248504106541313859178766679298737446036423663366284311850050904525304244642676646469501950909416606337143562731584447616791957011366417926034654494714062141886910866357891441758956351010354140188051621384197374775745888437421668821904059595315071631120882198851627925564788450180900815648040219948179704276119597206404307571639845445813854629360875828716325179884231054291675478926875387330455377624625150400204790542336582307368783325600638216169190839572998501016103356625590526488734836012236305992788958179181470012652587233251695196759023676290996247421430963776837291021508340970167730097323345706559973590285463738878856541109212752262343129790264874833494101282007416948636228376827650121228302735140194827552122732736072205109356870533996717318930280178187358955910705089678373379408618480210297159782304929050696441366423982247867174568120465360136540771055826937240454808855992318732597501966025236383595264652237241790939542881211248285994654724319115173270943645405889581768603385327488486433125160004539761796723287240064446514458985394471345898794856873282940686914780993859883289682465507026845819293669077187283242327883717377541028619428887088539346905190441941328929236664410024408906042852938374556512600830120839330181746972372850322194443530657642355810952227787520382037252806407866084623234593377156664536531309949142436111835191128156111370541280151886785663517188217144423637474424712160758840952761119864171871524328725066299590471201664405140276461245100728394788785609122047964436393302187660698162268516064953006613893001018226114596904555950714160699317187332513939436792246043626372717137185337669289407613461944380805401939775427541627864890104877805024854591663797147698638390282777504680766415161998950903917452958184242338742003935954118409769362085743471901345896853468594305536322403543455216502621801033108209569423092031614307476580847592550041865609901687580308655487976517989791881955387051129081512818666732455974685961068043097428472780503022878903552112936660346817572245462232487242516500876259904857769144438838342506465420665639694221489549286655189542807396806416439247323425248995380873954043434393389752082283465521939785516441807629107101169792507474950091243148118813101781035356211935228012656239738098318427882038343002071748277699761749310950219381029558042401336996834601784621853719620961744930426284129655075354289394874346742076805505091707941233572995695843170094354904893820018062827392077588914519077082274187100421921904402777044527539093219902925043381353568054219385823871077798612532213425554007398330480365039059917746600069493032252169052403835704502021422848943576710283216774567597684837969638340949010886339337591488569217431781887656461885555536012628079663716746205994177082795865580127708996477601383656412329074279189968659685214776258634813738285849453675733554984642788106049127616787327786595737858322832029382263986607834698715610192161366361514084490693352035535811095472550705297366988632181665652996669188489278410222299113468499686063146927705019977235904403986659378001033521490400672735665548028973604439310046856131058883712510088941529243312913468536765349183076676536380577784098000776130369188380169821673378641277136236371391263373196978797086481619230804938238489151861874231516590761636854222998735744025498670670338350123160344983479067527632475234074935889490038228435814802528315679391667366288581432479700532540017475187673022837995058748038413998665046340185003950238429575877156328347644021247920137060604921538729106422049756108909329151682915199082011353993807605223511460731427947663635105013498258044198347426465914527040153048450810142857944726264660651224445122871025682191958505047338767895490954473665260573210417019229556358548710328716281950074420497405536102091108802036784392590983991166566304607790469485016897695903730050295804259638173410124160896589706349609321217390707187387314040152427919704343386338470815080804491903600426288731729661723670844784621518006123164010021393302327899622645304313074534760267229078948934979938368677092072299422065199747049630203998843399272602597120803242349522876661134233455216250734126902677898701747117782327624079874909435093105000871595844145348892247503050209460052329961475668083368543980190407826028942391775886632320289346268996877466797828416473980355295609079034286968723583952929319179183384423002892264751856668428904324533136029120093513773219874191906591202747782360379096487258801844595546898203111439609197675795173583489263918073569327818494830624388807929724916852068521787158151115359233897485941766513531883656777304763638784503051847633757306254224210925091454289589277297204367675901559529141546681010357322237764313068592951915164978635624316036764622628465751678475993050893952531841981851426063838501703914821079349838719986102490223483008625941109845475949996475335386902421484507401156756309743957669554452339401465163485635242747466772788278940163521169187246019194597486067274660094299862412622357190473190240265654755823233177800386667816179795007730328553014663203664707385513348483100934097579580794606806707672438523035067335488789590452625004147254867433239094166913705738235317265855268522063523792699001859012824007786893011253847053485823038148678256044345252310610452509824592482594066678457347753987105204973775622563007618724246466509351306909093285373596556114948221173867281318438575197345918409874982072715233324849032467500610196234152158727310044882024946901220293371979702336901001892323365085800782563230172734433977033395809375361799458845891298960790020030048541970712130120568259900582105112512007648191865341843638992842885590596353057251393533587138544259457615900683417726293346738090679247675497124023974348687737484399125445525156595767817187835041646696299201319972290572752836425981367833335202650858980584143320779149328182252562450751990189903843342984121233161079013091795774892806662995949357443676664233403924183116209001456096146935075750985016144814714732539344544230369986273887926807022873323594942358752478602861969989337934807473792272208987279092846918326553689059729856635250840187763144614560482984720804293867660903845718716464250370114731945384975834346065077155279237259109736796181795941401035928546594646938027249928134125740963088853492684640799947304365460060507695107717191626397420873942484237004447868567688533968555379120971357055207228383460182082654396780934406076967469382468667680599035154103361661793349646414099706693707790563116618084897405264861733592281004934155437970048901842293090409470719373897230217523124603495947927851558525343535581639403971639699501188896514607413474607572293735235477054346095878359937674525902225690846947672179820160477660664556703802310308818231331672153746303244234886255577430292921668544216358637609878161879580869471559661840445713971742096446043689610606490155099543653318489397761570602245497564837030172178614384307820755902670798698461411045350881595241948708290751643766567657352025862838002979864584355292518858367276038512462840158288538799946773374867105921364558546287881436964372704810784842243256830340081732709163626155898941688671187721896101751763745714992142082857413424630267332668000854765138520890059830070045192331129103878261523434948899387395166075433385834355290396733945686281942750809550277660671836004078221847093453188623445703871766533913106704310450539491567987523246941058276290620465478854393416432112825613396747070991299998723629070094912460025178666149370368790939420029942205126902414365988523996472076230777608076617109040843657380186370475190756449469449505095147607644193497920048807468727224599337816402293928597880942620846050821426861739358152732401127946516113889258711807898010445115709659280050065429985355940452207638103173487673641942475628069788906760369076209356099455446096086715837113629568730354362819313332988692222311839970679715059385092974052637652969036360239878393766844757421261764921862256136097762566326271662558051991838226429700386138605031715665413928032737346498410931445059154315866187423400079373250696394605811673375506256121586171689354969294068272640404737535457854029981139144856012968969021280903211502345531724519275728615194218904974894475745446187996929854320899442672395204547928108893904852447956210852563941027604682827473606854678929490809350377776829950923938209397284945433645107036382225521184226458208029376392741042773864933658154725521289005664121276448233862825018846385256817456812723490800394247649303593558814195583623809430878542169992484209242139084792893283526344745406144087576160754496680930516889629726454513784571083664704807636656792921527194399859443529110426776436222849394371695832637320410223463465677669515287430308915512399564158776682965709685764038693589192079817572058258102217113335677542958034842414388555060517673048886355190210283396325066360533135954921606018724652248610913293049927949879936586968110989064841102968898249291956567243220496825025222844058327862510374844701486929966823739860335525134270354237205573263709936539529652130941668532505605380753911440580525114828248347868773648029396582549740755375730218484477551070434473009577296056235608088144476069208526492243146536055947484823478036796744735640091763079652786211823216021570450978466633171677466657412101366815409815789181987236884232803640507672525625547187324487096023451151206421458058698403034166184210978368500317301672616043923209501979845026350461300712348894144023331103062569825633487818262772933677083482685525320734127182223855843553210591119899115754910535061287873747435343857000389036452665264707464835122608764964354455847912391785727698717256888818094075347877975081377652053466596300912500730608280540447955749830151318340002223963698588851050639994520291559630591049612129911217034502295365186550314771952666898271903939820866851113885339025311318140315477725631553475227984470103723441309412124028767287666421421902188960272925882120128087207437544922044385994737311357367821652013266458927830301917838477694023748390619155500537920299575403888754041032515519619180602199287275478500626915158450598448045799463730089204872250469931577667325896823068852863586969822567600027815434652327460396683230956684900162609250900478660757930062452618092753522164123200174942939317757882699249439027214204891964059499802234677459673644029463793126083318835537897301467210084545819757975911533152730353167459838189876727245012558819477345155646574780684373885595123433597217566868972915088683793346856939862851578085079123399177144449019243088722818295629504734539163258459671093296642046935966698007316802411302510326853624253708285516488177638164304553449635427789631488733228982491812564935537904599951980244276926782009646557882330802897172819215135988080014032053739699381314980071099715551945012890869750195858167499594976602386397384716341265996517087727943116415150481584348043782583883846548287206262712183344552243203189377218414799755074042034648900792799410438446865275108095095680977947853472611935800523574034654211323422324601041232481489188169668997247728369250536903291599511053289090619202654313982217406112020407291467029779792033766225751086548052355143566474756215003942158983696372449668745317132119976794914804276908374619157330342427169393461839859149583356248119602795916471559649197999211869699928098368113859161472259170522551413960711706615201203957871107176611869529772083479851449423015598842282815988219572559751776472416526827559558626699631601671983968095331021020607626167586229378002605373871519562869529371431418123031305296859216866244545671840830236800454626078341549536932905641612024718011124267995075631003971534328827722053157795185889070281276636770275557959198253677751244779728164718342732248763133115619589675392163732221571506643652234052590250919314710275036845965133623329047541782241400645632065533160434788281924030625335508413680587225829193805312885157584248825572050223510232264246692220530103066809310082738705383698625228617707878391387317815694619966987635959875090747217860389480460467311317559393186082462585789330778895777982126775183397525344889136599454430641894360210809584893980008237156731712015447571827739520387629675086052815793427656160978179153873428864914975093782121490919394521661490531270061104106976587346307966454275155741307045337613226710329405267202539756299606542907713495419765447054396423950342372999451560816674571778648392025829321279322900763462421610513529588783031334774797024330563312013299205928695446083728068601056953809383551071719110085506727214781797647063865668466805569099134694686312931807518193231400703754070356387772063906077194400439933469222993903504239642986148733006706107813835712600783280362461251647163595137384914601273609327094529261706755288580815267899720505284755116777277287868927669522937087816363442369511591754264953728347040847603368211826503752960648645920908479587349594754867457543581913570692740944746058358947206690441683460287609254076159756829863164131566159827177984435198423198022699758181497416230466146439351524555016510267517098663237312498289384100441767183643677232832650602666003968166649525719409754707809224497243009889481167262378063701836727670831441617998410389126250679437091881720842248453842735689616016364454187660120974315969070211416502855966269026513544217253624088182906481734162327965600452303784706794547084490438835198897957815223740505271582315763460745905685211545869947778540303168334133485895412095061804581318133102978427843454327947849690975763362855701554509719025077834069356557215625223264650247253100454450932340351269498285108224563527296648763361638466985162260159425055715321400964917815810245620620107692954821140492891763788095810661495373063081560667051673940508852158992274517010521329010004439423250584394747491119462346855909372444842566463716050373902124602358058363548011729986633767929872473972200290347297446189455042126272747685981668407338879156554427425578514894605938360204157960189280645446086745884348478460739881471715061277356282512727522612938820326644187189941585478658632907033354196130728051821448217809718115858342337247112519498090896616285556453247033386291425330091793392945116126563425767491814427095710296391258911439546068745762470816386723998069730182695153680799670167550595381247268050974224761864792851991386293845897897182898774032413237415217218426281341912941168740094784421204125511484369162148485720635123361274217350679313929376521444003353259079777922924888985613759107117651756702415856957202925361857472624896518466199616478966025804675558242997534020532768470510820586879496027461154035933490295698679344513203940209918243346327572869972924188332574179654593018061885989885143491235668265423895411751218029709076048490008847046699737074891418152583331257486475684116521040771820313056799578219746290632964409886912909929222847400590004363104512564433923585096233265432157866134882912811061027184587856066107415517004985959929811103303959887386653891238631039289418875645990864527522878245313561340463283721189204874171648129515703282251004662727081620336891224765352782417395283760219525312898566462138286585535094977227278436609020838881223876547628239588516996287977874538396147199548316084901998782510086651635244934681905442926893038452708109452509216765680403913848313934505201536509615647594802772782523105593733495042948652149144568409320804881958841068905580666141050241633243081974230420323370087895364496937504540203772425309860879694429482590733747231100396538031100418763064312708002906701721071538306398304481991431076078469673272056966180353372219369159337001421030017195595792698193450206270436226503931287359790621822334137780841426328167911418516611242644159465431418540120453815294836321476233455165829959444989444934266713281669712014981055282285936853741226629887573725827696351545126115855254122792843134835957434455557559396320485785138144773219052582748023695511168929884598320453111626531760194290193659880873223118693824342014659499416236753540980922153345161209021367519238044666939937883174841416055252408560659297047987464788957957891979937474038913679780988412837526840586793114629183096352950392372082149715570082129784814346295828583030724226344892984510002493350662485558463039606720107950484841784755930810048929354009345091785984538607917468539888036752125501061674655487628846184263044617892094257731363436337381151448965794244617813527215586370681390563316039101316882315330226180863967758868309962400493956151805271854912254531097697581353280638225166843516331120941112314873201734111093662186686846724779328226281191200684594139252718578431957496157444572982151420775244769980378516029644253447219249392303448687044110356684406205208377361468368005102486844468876895701719779525039376325650406257308356823701707105254403839798576626954276126618247208387507925811400001342873379606581105592512211059521863282375082924290818212179495124679285990054479522028047798175945700746549166613587308000895911360736237418923844471345702238495592372089607533276799787959232192274477042194013252552646568507256800455954698844968606625461640172888247743158799784019572421113363246756551769564861022153253971365543724167048654668929532928723054411895158370876946317978493818721828906246764672420312826326642999555128314692566010781499266513771150027703085762225059443449077711090124582223245181015009468355607079175390739854583414695920399382263489213425733259950311575684403139354870249796831808370583068503113296224385356643032632197404055707556808073682575528297602012219377939416932136067254643656838100334370870736913548094540782835856507972847174544800907670708160433749792281219797192294186635063754080639849787956261665807231776543227219547358967131997308714418557830821117596993387525235945318752913752308376401062154448922355530002700920332135028394458380487530158255101954241622113076757568416316031933512786976333622216834113912682940621010301542613453805915331187101389930972124145555674681987968049128234173689403762564977503302719049788692780028389103060009637472025149597919780342419700394200410775389831940551659580095400323960303553476821117350247161945325116718615081831581027813818641821550388529393441939854273884149569420326324758704732578757548909644819915919991970349855259828392082007042264154921512719625792298723183423457349880391590481907277503504310261576940862609888893866780113724940638733486759912152983114049606076820123511909680585292949995718935412111378246643385007854256746320626569397712999102799488202834594720292282448860511990918298010188076078973110667353161356825838315603513040229060765584945210343050778972689266472880677360893671663391755378158406607298260095825658957511182198068900347223901981591555861252940076034974848544461892446065007549019175085466815331174903642155112063448053115111761503912116746660700109168335182055932234547607130660338122151905451907411364099322650003253605063495878803258149930159867988026530325596511523164379556948996521327067646051404938022080279815783379923978692490957002837154007781800414475332199815026567314799428641010041375415683399093351878258106559560369970239871043395842492107297350087532832396376625839906864092057966355573273599340159303956679142646267607217284602457808182442047035629743185050320108121038322672758623385943794884668355685833093939152028435231453679399430797858992523378484619134369056735034696788512216497349713957861450228745147262341643733730110323392402782834063070228975291010126078427478031776120852754378746093301078399217703653137811704002239182622713410579176415920398607673231188351323261850705497861575151319855241498857143405608656361521035351491447600578706973561776753571153157573433325922927024460217151343501744161038980899055612327933986646665813386004022912693192949734374532673461026010434265072433905400841999821811361235823241216680786366488605468771228250912056185094024770730880570143594837375966540071884265015562660457398074516659139158794314099026816254769683337869002454784261699181388435871770699596433995208364779232024970382939841650608615168836383419743877155121750507924192012445088978509237650230469809713035021311061540670469005404247964077730744273656928449849676885885408332623093907383397067859054581586266610594253335468967965236403717506230390820203529154785672317412627763352697249254936537498702754730121324639457080628011190494664027274490307340299504147613909818543219693625665138667748035980431299829411795186751194724535336951815824178147288272874739215512977417119581602637003448664048776265857079766674354452730211365397053713136533055856582668604342945434439635175805394496059017559872249744262708234979998732460825592389669343506419276657841391460888130958689991238393045784003858230747990466622117625949262030211175174180761427325708661214383687766858913785127900938400839043287571166623269234958321489218305481223149064523923906897085964655888876355402484270149813715375579492570850690723113433818396549461781281481745926174074596497590919473113737925078293427238917392282664157011738730871104917695555010924732950563874229848782966726788801239051594658774696774172387361466508888533269899150634704430836175166184760770422283611984383762471339107275637449228323014815633988942616062537227226906097252554284904564548742448962320232621000361697844161134267309926573559946447614869464305399401381997817067298484863383394732652630590678606687123382223441923528981632356921165983676928259602398206859928112298168661551602208004970531289975118249469557915156924131686028942066768507904984759903364465391207287335899576657252081904489756199252044548910833302231802735939752599468091675111098386205935120164533042972335402815328159136758605645091723942109846079963152020924522141409029137972769932621099240618249059462349390614737840271702169821891710847550924354767742538953644499230883673176586901809868471916550588236739788706867741093278231352548499540383508544327660293322060194165650946876110230047695366896589907896480276502463178298056917473474962013029662554023637646567174866372546487293213559636173339753439984626418719292797208403890696099583556033212311058380808468197859971092766770512497613683950463608023273383903093025648998359034795134381937756198225030583253999345878151568639375786507538246231487817205207265360081693909832047602138971956752851384790242655148035611436663325623853756275483073024935798393936450899094579554544395832216926817843141176206588445722337983298739359029062009383354821685923173608598284826024933254356082756781597641752032897413899653237032454770914382948053098804649639228087834415408020779501647375538288036700795303807466727117273357089692250335114237895614014043582853224131077195755125892260183514437068830752549234264292882807835438976255017679690660509154358932993810990166837784917301014750776214903701363546764002709846689744277005800084216547594337901303127720965919609278532726769865762400145629729710371935031214944888836696742319099959521043567593488862176958550073448135751352227336273491424949403367594362574774030015734267275658095750705793323210587916395281378925564959894715561283309836727440608070495020528124550035664195570950988098729152005805966224295975001774506618590240668216593608457142061895485591905895395707342410757737249746855508386430860036795781572127277926380178224922035469486504395078050975286727289351722187747486987431652930167631637156226833811231975742712120680109563699513909273636065834482742559600080258211890426469723009986795204164894797613564481396046767636244321765766075210995536148488147303980339893892729324803159826570830363213689459602186619816434679389142378890104148742030363939312404227312434828628523531546007192153422665387756733788952844621234835438056463308193255006484581145741220866464743712663782108679060186048504824867328059271939077396657436325028926359137404625984245267547938425537248419967502442438556636617608354023966810563931355061362683170726171766181371579463596228226887122582323288306595264503095894821120339997711670316741595990022826307864423626337128963916630614071194021788235720046877570620339369250660022935466443374279746265923332055987200984601635990677541698999390804290492980740774842365415929825508453715872940903816971006074072085959328160709190560723540559438305063233829465083847790531687067554704567100539082007297777412150256604253976323802115203195803522874277426425328871414805325318872245135810293861020895599024174818748853065365574585270756421566493356473488293996939283790592617516677462936000415859626678238029996362714875608066223975423618781491974342141420872421155279865585899038374422104473474436884615057922400887153483978802249317698207285171886751102617707906226835457241407648224665284520592063642536204531518809129264722932376357812420126127085858598431271722376997486435654772796793659054194430968826666490463604298839847362056323100423149893067618833102900136306585262988411119079259693865807833563724432590325964689311969661976830283817938078500865769123141996556626819002971332064874016532292906349532558848415601710307267366850384422258415260120552149923187508150692147941662957501364284789321952530989749218416257988796409908352091338338658768969703996042515010327915088686481091491782283066896350519236841777355569840178478430781216476015669488620248273556447650874679615873901313254920723333656779376365713527805238671037239867086916137279598400791735608010450941032211671811734978525874235603560936342114689638262870322433604667749582568953377766029860472877273933904193010431096934390439549444344967185966055599643141499412703457934982523013541192428430576559941950982950721872270678867990622833195657264334444514404519218358044232807971727048279900420382500755859622371841538409548250110314671486855052023447361361545690616373750330629171322186187421014306547107830163334748647928173675272478905728047657766942310615894947730391944665422600682061248291262197114135292355429919048879396103796852022208466145409567734595031994721192276000780923779125491535987437564381547345818409414349756595272716624874885336363329146467452647768647869563220862302723066078098868364636570717941911257303533061055571690953024663208258840749116279330932273312758436172250356940687053993430229255456670330040562661048157235720689349429315008780352151405888807960832034872426461048705584929884374531135877342449882106448969782173220493940110859658145864387691440025381622944841067936642978482747366600797344606309321727786770299671653177798612476101823712724535691180990388714647156374304263008297043873487227015556368942670363669191778737428644796159094621349831532914705521230838558553832030218052601701345403548497471023453493850154451016842625488476857062499896344012207204878853511863109640262315913821719294274404557396601612426002432262482175668444205195246958124364965678323352345553786595754670992995156782240893628495662367734089125885015955340021404501138831599753120727689505365587551133789596315606225932355583789530310039213585232421474093909543198714119603812254722298751514925681660191644990032336561867197422855337597915835312437833255555401943071888043527010857349452877621609648895836857551958914142610272931057960989107205845371185491162827358160490532074069659940110507520700774601904427560848050582293667204966878393355997922411517144801314331159100715675781091246305047086678076450651935014503042975384746931025544377085415504784986367226844765700647626438333456129332017957070202341022311494846864605460921031715742473875986963521441173958828474976416752139866972383583293810980175245221450969219484140354306353619147043359624546096220447642705254566547009828008468453901440007269867622413515552886950145727291675561407245468122388724784571199575677070190877602678187382772873688047743037173145928267941802816348655962425029585323103714167779678274553935678201380290232405864652271554108488367875476929173911659275212585428354934494353981812681819453365316182298125903480312526861404232948778601912155694172416125808345828623475024522576807270349888810360206122761157371118804961222804886643258203334002723406840274373513692672867726914023972593184507429856090541687368378316350727528943339556804512048221482879259163584998744977929851190458304592197290943395583474081748364298040509399822206720363200433604190567713493537523410548529115642715815977282430291761285124665903638606418269069308466933283335112652024724633137100765044394176404412224221077715642512476222278744309124854928891977929732155486376850148838437869313034057657379131105481919785736592432040062648022443765591474532538278809330342403239220786479462550935766815619959440810742941204567278312887179340242860206144292471621606011435545327315534811489052053726767332468884784423541904911380083539893868111133331759312482381663519111021406378453912036662296475032476135516108061142290426572451195227124955807904306967606951923254961127395880379171682475842678820511305487035777232567153620170385049369736725803017489833040716280846646379390382493591626868708552092975801539142713986453562725665387289767692210357767645285349591340748379520803880561674151499659928161186811561509765966398197346482914654815236690292656867089802807584708582056070804137361027040701444504704364036528767656626727757560532809873367878697877685141591798288681900921434041904865744946361496898954092315613865761698147302184781613157877675312028623472014531993391626587599203182101882806257599226684817227653471948791527714363407580880453106980432170880554334466057544426230596506034748914920918195677043203131121671859702049481321133365822707711705749508102043550211110506106143440547082431956126240195033859554445507827324407892247492543215405952311885012859415083848495060924635372275149678224320075780587806235361732544334329573057115681234788421476445084414879351022140022863597152335006754748970845504624466691482459378182331353304121226014837820442530362678721712356698920496920676450028868505449488759216505837905537307261842860851139941598828212629798914546283144097907438919851290966447545416637039067000547158395011467557888484166986732766268697814966715706498428251995685540732095018070887069239733695862367641370851532641767877202194461635386126715072328921946626777805120227187303996191139751716298427866968759508551280969186320572544078643089697972352202437785135400097642994340180940769072542729822336789841347282807437890257291486127032461301687022252429151141270657338310837059306289804899793599580968664035752878874021361792840216947544158142994434025715706272873407143544275355368117303943844560890657780077131243511739307702255343707360457030149564037478678477794092475923720088429955865410787106471083879897317779788651765519923976121871452921665020452619561722422865512786796010787005275321526768416907376705552427433266614076858103729458019124264701044743074192971287341401181159540909466130385335457391339268195320012725532676184983166047494670758854505716950243205923555289005460763892962865760089666201917806863165217957258776414558278787999055479693095776605923951786984508452397687262703714818687706148267291601308783173802974370230631499053352903360688945236066393228138412384472266674888738149211933664088980118827688917812856278919242095694458921560825966302642225777694155078359013310627482166385450444334809569040537997529020173060155507900887777392274601610162289865250944193757428154750811973542776099029417769557858521752734058351759390083045540761573220898647102432773037199128817640270074185972769394910572036811883677061249584457504840858746543731648570054476362488589251788330792727277383836088102519654416772678649382017953158762112187495810738217843255661731260046123896582698021326662795132836418466890382003059006853446364856729517253741266233239097905541437026249955704452982629984963214718203886403844463911502292245080567513044319130111998145634505164051831663682775008334179441698776795106012897524582769424779065039526992153966684687373299221417640290641316010152943825518038215457424266123827389872373874628464228238978480796445400324389896546824191123784564229432072481164338017102489304275690034469971505299345837198274447964188904769298876301030355810782819332271456270821691227170136139404891660226406291932743485454329991138229661762409428961416990067057293413800637885211490507576666721339851299563505693518778963053608471985893301369114473513768033992981936337140152165537028920702343069358217293841267295660937523137293210693625033816889792729019256310509474587181339306493313561979300277677470576228404187072000094866902994741305782792020856736239740590861591083549345425439106443500371105494633900810041146770279880291628549703159984124508879565682706447409847873046688034381593047322682292241522243625016972887232044899335131050871873323545884213339014437684518532407802872891034566315970415808273034494053928649088785558447676012320818063291181537798761965096942582294412062811826438978082508185981560190777814565738452620290417981911675613083547094801583364861716429006617573550536442461616267878433855787378085329432923484914761728204749478504762235930689709626655093119008003094450769277752228823994401495199997141277714420951502058917584562304393090950813466538755494550916981480021594725014570401279210066131273834688338547302859558566492027946906596824281401031413848614289521882155767107801036713361536250210486905471736376038143055896295192626924416750274021520907460047584510107263110929796626182072315294086404903507942681189405979964687520338727691968576375973254499328453190023663951886493734420131245548604337218808850650636882168684583899205437082536525086614785496027542022371357912537092888167719124311865128953750092945226504038318912530653123254408650851369022022534793090626903936011352320717478776358073622732323478650231440048377550010756021559404536072735734085306741670047441632301447122085633984565343805011152314685854574101268750884014196024454160551038698312644877199625257666657405022948638070494713668994953780072842222727639787966473737959416644551492407085964581427563603961112024643266040886358241006990472615399693636575319277724576115726278633957366032125494121958152219750205648138517279045012109732742017531818635862603880814494192375002820332317257841338330788052801079134339537097414007908844333831965963563991283819028339386872874821090670387058888472657663808695326561376469672351948315926535282274031400816657986657737182645111980130789798551623588513228547528105360573083353641882470109118440743450752911324406605734667814008046759205770336887924918058933143303328863913202734417635865783755642002187333278592152549396701439747166928573807890221821710798468023087483548948643701198008994809093630170642224377764484346050312767727296295390267584961514842107446994655572531074194622078222801260141422153188304316918808282554083803187340311365506360761258574932980582869372405870875869621634606073879044737655484942452696075977142815453414131310871106833817274405986245762172947103937367590412654890266830590316037490616648122657835216936702343852640896425151994871856977539536798979431198718691572589375811406269119127524186396353177199304635337813174589008680319529490424936219647647507043503755750668573443780753834393486509783272331225774308538720308940160508233626946380270826159246858351940408377149388811959795661566540761567267740099382847330098837185054365582754293721500925268155948449113521561484407291918259426252651141907194800838458233679937396282948162310001194606565692696861299835422221476781668370447479284813409297663207394157985258825344095310847939013306760432486675353515294195026569226473924489879524595562853854452204853618955289691222290430113583669686975998516825554768317470752581031916612254860197089156248962429621088320956329643838598028886474368516014751798389764047285558642617690923465077016611734986744060038807607139271130385875893405539080972445391355947526053755591583709879194906612346837547225455823335061438442047291551176639065062408362675099425323675863159099207076912410970873443403126061866285408520100152776928979918213633992312717329196837256225718325358675637140309898052495858072927800858183305439568778092834499167091474563986625256224634951777835817699762254491463602107435806713627768488837064539256572933228953184149490816142219761208594295420055809803091517276249161868916387517259087367474079191307394632393579069174418496712503314862806262862946396449087922104456528212926808086420587284064161295547123324953385575293003106290725675617241129625662776762365727706182789252125442640032443968993671040301068453773090424331394867703937000344987128618669973173849013613240381108579009890549412153640839531956115954656949331637538204204506784560540474371263175276806505052470838670867408805816614079249763962794948842620309228303303228017901468886248365526997039890330800708073851315413921676685249608154742183581154270758311671210741263353317304989436028460000283515672903594597241673533737957860478571100911159257359049982440131123540300758033523579452759415408720559082231601095244765972892926966595538445164496805753511745013210222736973103048028396399472565291171906609654985528464797717486871340524202603295946303379851267242499128145569953256973480634732649316691396105492534146935735824062246442879958721370883492766017861695552372810998767326652184339349473623403946821379185562360616629954965068702979635897196573114957234707623154601033984760133352518870117156403014539812615402054046233822047390914694229014742040179843085674063818557938574391579493808050332096623422791063581206986820340272871095678988614399396918146371766871327336112268345363454615913886843899085865414329789579333199806881968298178387331643285606584246634866767101054071361402125290394822916090458825608389772072303059432923341879999576704556894075163035707168875579953893738062249158074616910362078663057286137158372922636174159042387917639904311652869400433550970161623929872356860514460569724061543681506212392731244132973007153553294529660339634106601983854151609720220138211829564351790015864457093237462847722222377765581544345096246397714779698473455740056505130045950046310871134635772333925299053346276120959562043519491371666290448478409030534474098822038555045619032317324429349778788797841449670164237617916863296510368415775853561453888679339522304521228257066340946424003867508027298598315403468003631310993108740635772740174940590717573943305914325592431962857950243546430809035592945427888850671124395144853166781182845275197101409298255196412655159742105860550765018995756245978018891751559622752301020625072413256228059745092218467960969907257472718620365619571887802176448907865158805778958055127044301934518450115918817102620373496634094107800164981363475505879725168928006568749896357653720316471954141453905972103182957188695141018664592683977493601598771255208765738476543539467847461535508366522584084343395438714056690132543347316176975016951708326666111140073206180245806045555971816874768449351829079556188770699416068297078336385525525828976852597630541592641423285128890095805737188662173883019217571246720423545407036355632363667911929826135569215684414520754470237850202722538563003445429739228448206381773074021217592267021347142254654876879347035400927282331440931722166701651481798722904478251780411794896283325123712388136949933144973333267039614102706734317293830712952455600434686037923115703330939145844053958144673237453380638003539613031166229983046303760943920459576042999908351694841911460277610888932978763720366335907192175050227061498136001409969327509711853855673114647940044305764775960057330779809324951576017891070512816935593044474906143028128034986699623204542536331262850002296362421156698499263513756833606846443086256409251713758754893412514661452619700727450919552588667415019548727211201919464424214640104487865952659107470163978992920902049049681694249550939885664725827687501057249861080915631234641616158235893423727460693283539026202917206770860698012542780448538973117939354304782082654307243669302725400156372562524179035948539585373113628327819010804601520539291616348288565826101562776112925369966903052379690241058524311319862306750339319145347256999689767526146111345468211567114732000266180652260984044821109009582970073535479406787077884028378901410522988668804649905430318705458183560061832128613868863110149032621508817965550951062231294817818387579235519413800165630768557816289817761094096316912291358396275059180573375425937395926997344142326467360147886521290128272193650000958531535825915738622997793578782093935008724015096163203324402285614467699740700463528621057461298675145236079949496414571355868628215633148171431426897870697816136408118790218130660181661471066933363183682273617059232689680289189802275238910498600125627635863972608656558359279746728288840053791143380775846124200551723474778049447860225771622016511407103314633742822165545172744082040756496569610693873509972252352698311159241377117397330210691756472169701945293470260978486801162624049957250446459264991417757942727711371684771423074008988305755091028306708107227451000387649642824120705918774553790784514040089478275760134432967950375940308379857393908210320194718369165739046710060545778542294024511887334007762999803908959660336196274997737191328337641707100832741120615643733775233972792849363719576414040585798893062137722439628535287477713830640937449684341529712835704559018185892786102661324368681424814000299756746593715669462099846286731515044092278981017421728663801314707186234753038879223963113864341651961836684551733201939444175350771445084751502623244029331099106391280113413768459528889668563842066578841923840444535713685365412721264175229760592303666155344726429260493888211699792113566128531639030330761070918146340746305809430584668993346650282368375266943063253100352963260230465116236854639837878021617438300763072025145597926108129196868316813994563782211634988435065556924920865526545371849609535203232113551874330868962376976288197180345403039357686619623167743602163206077894924087450137568735565475303760473347032399276398955936553004836640312148668433273508405014112582329546360914108581083530664754387208578719404660506400814796390643811005228733599538840907898028181728794389482193457716380787062325784984554037229458097533155194323454025618724150686966364008173079536174509706340902630475890073796285320732828691434688730243791880981520009165535121569589856680496934719817038437060564716395922100692521460529794036077068531217865433740116691653628325240162501151959627694865347488689214656989070692845642686707673388696924843346627231749987386738534278390066156353538021471067536111056012837832914663073603221974995899466143051015412181425636465072940794943302613372650621787864692678747327018055789952891497384832415534740219414639918289934291278803221747189228786861480453190636257168587830572996976888987793793224574156868690573804418882971157873724980638259858319702179676034761555665949234782879239243317959882239066932225284949849976900483383571685946951334528568561474093640025182087870441572207198498637913042391112772802889634558965733567641408129471567000667406377787431173032645870285891494878070863926419302134881815521725251738666146609208403654435395913140194656766816917956213688386164767221488225488304490767170527601697592496113170411426805086205461230506878623171994705995946644882343604384719747496811444810315187301599471605595603631249288737532611371973605180069060646854192810236846740178796528914843795640011512537103431113773418867030500201234902050117779465443467822269893873121438267151766644573335439259983981328307187489448366612945988289829972442772700783895623116728420891368644793199097320688165197714817474587355429737692442817879734514548988991953724046813540983013278005867246600227253200893805717814964950893494291858169983737768103384723565161390191412614859841300327117574737272619011312671158930348454458271370966559372562786305766429804038618163205007638385061581826352206946236031592638114905917108132999610587709337103119968501350736917333323015085648983634455017741742333766028526390757436840663365650510882787460537138644314120835553611613907034060167427318369647998492894182602232203384663839717059329444593073956906592474019335131913299471456248240423664392624762509379699401748597740450729641856975145020525423125440544805653837614800011522440374951203582490265255299808229387928600097156965283072541166859282453787487100597794978441559173262937100906377280826754256476748445293525532147088481331510347206472374441561762811876979153503116966017618066627136744880884450929385901175831712793659820423268713413839591210205374958971021578672365826437552375285542146809098745639480221506578164199121790055905182495011799792591244851458560559172798947903933011389286030434435795445247463488067217773242524835279997117832731175228117318645053152637887372727198198701534661042730286016675596115176205778870193893618757697871862304139317327296377371676371445587651005185669478048189114173011987349363633125243018363135094885416689883262080881283690280049665371893496632899940229592695854261085431565039738421106051752347837683295538987892922105864303413239600584371302170337821244687988445854703979775346876066170168081025455548965734589944876779690856993318143018599142958485423683166863055426809905322413586127949894087015090876331795127310785943973493800494344576116287760129291297527595547480864553003979664481945878005920553456815991349502890629352560398224376953410669205878220650651246255279511546818057665500972257266346591586120686801281582028698231055185594014022264321399801262781303301671621890391497303841581026562197864222350072198639609544979513298463714755455484535733366145718173809452422293199242484015150538255777802197417413455121433294586298708510921590782729875609499974636560347192649498430711791270859239983409370089204771992117711535272048483178986278864187883875916207583579484338439098348948398901794706617864612139810029384345979459765418927117024031923403764070415224279106661286037319142614282451939362373559154461783228778272487432654419539394209518537937171826977390372557430343649300749885004888606247401506462852992710157021673605604956609111235315830959795580287030512566161569169064509304213143552558580127173353714175489241523304334925572898519172231272474876214683974953993729294712862722731889200750687216160844542798410572655078813760770010543551949428507507979715054361868468417634697069897831962878053503989855848643762248869755653705479505053593077580159567122239381230408529363511039486322823383379400234167736449460150921981383320784621715575241678732611798755568606331311823020506922409158425143732908806262393224971859720225166010196913642577213617736185275769025440806414982899803827772784154458979138334321944665679123609051807943080257617538724911044572717480725753920716369895487604072515898770418442228889981560416706631802161405257453724686827578951151700146291241305452283958308892698429855462741212174184565539869795486770213101460623713051826359964642060814606779036164771717911860865464319714010514644421374526628600666546882531754579162895726128735817854212082789401312355436800923278806593883267206904754619326486235216865451505798493126589288724094917571344917446510348473363130033965310314774476486938915682090867437232331089671433100022682054275393885232433813425710853141612483435211749811562979915442468781971539525808033596850272393014325248393551728337206819357175791995622125247957188903353032195832796246281529969122720485896438458499642456482768964916958599770353210954467907978810482123560757081553451914831419302921546681098355520386559818915942057528211700692147567185299588851555029491322664388472501559890594615089847325336231236280447494733005212691128385801837970098080794829085088602575180184873138597676542161854810904002664284129673660068414834518551354703050114257129675815913061196445959057031728871476226277944610784273629993650752722842989122891444380333996242163600870938170277000666137483285193682800464529693759805467302998289628384613216008119926399523716595415086043237553889700251055916929713767940786857022818439300771446743357227801053885607240232545221103338923580034532529543154694510455995319626929265360907730081864325025667753991436509021516631746451640450896125052470002995720740778468978470091342673254970633158099565941524369916068427921387052265669253133666144046846049205904460695038954194740331044063697184131843514159131232530499076683473849617767484795052578434268390533663336711568417870282154851207778429912031334253814602193225979627351257958494931741496851478759780307762100632646005905092864391498982072731471642112716523727153280772937873741518855288566640226270841801663398953620848849006057557738647790095390216476068575835350883056404711665459856152512102824593567631137405446519777664842359449572149985493887602114987820157168983309408731626770337707023626727448390803370576935524064096130148525169501899404801774231731483117457019697359808396093545517771551504495947532433720776731796538540319248080381937672403742212929490894504540443864264904885803808214882527427713443767579743576156694904539054246791056143618670027079443900603356594166125859789120898716289423459026056523947354181060653140318366035368264740805647308220846581926869812594023021418358678011732675558971249292955719895083288152701762906139814862170465033451676834682255417818366618586568684130690358492262333874624244762670035494399584160510938816985787693419197372869888476799658944159806967696130512765476029204508875329170401000011466111494915971979656213071775204404030773341398759657025605176051285779494142176410576860155509818917877785784421204898728088888429454562833402644563555425220854128244384886807890748042671084285825589372749007865123045551755085080443137750324391879839553084208468335495411079220477286878650636270394873374028333620405914366181955779206681104488245418916361745800197602722115889110071493731537796675907859055570955779490052497291333034249911947631784208529815057463119711817628088198691352782742391572818749526264263620409756407455849926162293906911095114769847897891655212437015270839021099314286423877890834613618120241911470144850754578257084044572511416332027764835463648105238048514908101663183539480651409865256153765935495881411010250519838799288991964912813133128993169208156158409201345081153680963234933164760293163348276290282736987158967813604673334651389754171490919262776093520479248198787858032940475449369399195357983039869919967936803552732314965195274064342632995425148704182770703566066811877025697398097687758410668419396423247411324709528151561888256618980905162095924092206906121768905324478090817526123868364708359438133809158328375556498200734838951020284743460297654311442998075204275036553590159404068699021986059115774822561084266318204605921063010717612456765069192460071773709251096033252694521336970296386976516943035044010645609126349690834059179429862102316020622381639294607559807246803963249908250603743123214157371834829040132284360419773407330678853152463399354730597475464114821241976969736807042733169065666850081661673885868068750816557630527088653861021971742277325004528333985484471437275938467155949065136557995233362181142827359919150763830642389545770752155871216287073463315654497029007072302862704613747796726444543708042511051703012004508617904687827551309442975988255635547974719518678391143034060370363900961514848326794507347586347343062952531992071889907771210807888854101495299027401815603809021636845555924945545259640876282067026424131984789254663010922018159605966562371581020193285308610480311273321816290772062700006741987545082545392432904926844496207466802333885966784477478802747080894856903654949268135176577399528142626851522992148847227583935831818179312430741148951931529469589893378276527695275289821990052279010344328749231152795798770410571475484322343274617562798740211407121254449009270938134429422125410777635822923210374897741305854121350568149979643103295026618462109509573979110759607319147064758212038509925021287177927149733553784026176757074025228539207104317161094202632191717411050376492537387177403786751954995294544422403125040752465805744657156406186153061125546328677979145246559501188365113790925050383604968265101400710659029003314820759582709869908827884166987817214530565420355240202476812950161989316225868876605062616261283653664867647710054970257197802933274641519551353450557549750636598340134160002443394627764692925314848917032041958871494176326616546739827889917871927409565363825521107879013374109689336149243293973093479200892363006144331945685536026637032453027042159485969222607168981144930359868362107349593337778352835459255555987515086240212794107174227844295871240427647465863192315493189950822358686626786198358936155668734512337525845277548241790897695202629568587400433562154597565288761777163365770671103519127628317813574967558414256156822237915632857103937352951416533529587413625841753197427041079266701126382705502997190462812946483189034410283152906601533092020806617810724073264475733022851870683009475480466524211751853307483640876233258847920293500724189360162423304168561645845914284292443161444711543544060620136234296881123492311421083072833693365753945826479427613564227905517157097583983459205833786841932529644022959899005558681811328274963664253416678432979507559937841357920584090819771970117353174735304131709277910316802397769691142157337952933847224989966049209038049838550888953260783786734860134488031930813943285018461282564399848725584843710988496656754268254322539650145961598750482546195468914358945342038711481322874207504033341377657769220827234148127850307025675967180212683146236100131709256274415290848880248318051927943055476134714995264599001857614356575964916582186288045206283501363633491065626115973035402970145524151026005549978503918846798953228078114009146593788209920237235611470103633382072816397121675628731240731892708526673713530478176049129110064622443449932706124514707948085851717920075771667227535443213623122625799279823112734742590924573485152909459361583071449276672894036980408774754408415091946845617118986086468217973580824874138120986366005149742710222285222105191472230498034014880356092697263378490733456254165807596713398800511389481752754126047911523964198919759800234510241251371283285271156284100486787879635815226935381626135047543339570914127512723600901236629298323358619366041225378883321197584791230317784829060428006495309797265344846834832904101442591054683532604301214089829209253742197062886452858786443243072144864589135503559860747212805137105461711648251154663550960597672903949119642562170862218912793852760062888460238623939943976307984976415488500952471546346303180160298041315422544078454636797651980312409100451023974082630571712535404285093672318454054983871242118539172269603106479731247767731675762490894541203101245735407056253209996622946170509358933261875649940846679005173755839566541726777105224743968948991146628513046229667714646298182178112022216114959346650524688284669612163916265818768592273389564007529357738688337627026015951357763440333347462896898131034962300699935900436991885434556551052961832900996040125244429025832721701213708920301810046201199458900688149561267590354063364064244812534657478403939623401775880039742172731853206108520597176525219683834443074960754311565042365840715271432502886553537304625647618220549107532541525061045864500591988018698561549163104181678685852167586454826373720174485494660943314451902290438231540151128625256061390476036192142535736119579925658030178386657777943752893398545232176952809325195917151792869055098965783286096601538814705572415226888094408767484701081272568885516065030095604204266554601345989506046423442652713226032875586927004425901828827819160845363955148482155083147599043144855716728376002757904872850203678668425926367302940425871778078722295445960217857359221298363601545320507654564725649598022651915678648998985356022760944560525176686145851047925809111509606841982436592766352092812237359956866963102923561143737141501995474980981899321266799258275607683274359509685500579316267075058992254534408575398601362883009338909305207379899681209756688015292598788393284433778273669331594437231069381867769518959980575170702917508599981627621672285970266551702865880924359569476099523678842191679626325207483440101853060861943898523867403440575360594884901607257503758806618313229577669221186344230940166744000883800731515812042573914169148287452031505362566486023086993628568001119623767039242252338728825101275484487675112908710926544610195426006046746384005080446308393290310857187675459161911912974441672522334260610915964086269869348959030014204743486174411298491360448057322398018490692700550279419022131010071415521571018630308395827860228220458312350159493366738925643034226621667314308314247032840047072711949142777972252823787588902884442800429910433393913596375025186936558508759923005084313028460027568242468048934332529693723280252713958973268860526002260480528193508791900022221898431130770777248566892432690340374159948475026343345003582786530905208908676618544351769058294636836311224990312990429533878292098517982976530508697068573934576481051077003009677508094594074914224107424827986459448404996050381899858482816237679619060077302516160851591767035812811270137516279730715613195668799849712393054931553002756049815648640967748736777454443919248893226289325430796964378929075809165439423291570279855276210201411438344637314725440103793138731126331488438362428607851289160822183859193405001137409266169193932413245247925259786569718232332110356830808566656232409491653381505564566543319231986481854321833794534371889002748080573421626493283467128614148256409521805447093446794331785799720850183389268025138731091244892717499951010271231586997358620490211892840810447688132761692590988055272917979280465816236958658259472331188874575489842969818209746111929693076749651791077752194504287487241384038031881490972944852495889447482739961060257231998270856987058309986543536250789676478444499940954578142504430692636482754514570662318923354882801954453775915815604171090443453022803005067241433147391960841086398465088609874312068518351884733613968378717307799852913572262835057899312414300061620968727565627148674750448703743503052507272051456513180590694275988940273325217974934340074211706879108550146662874826971048327499856433524201149959029386518256793739045124798391075913926016695547406833268993982613184866913752004774741772071075641098953633047373617029140718896146661579119826742468626520592416783179228268420511405423971493359924922531270629096866604258352644258573592375713691995558762681577068786892394382201793836945853908746199970140483198880656389367200824766298227095664138257289322576052214791370258155513103898225907792887934856638817897624143087369499459785930866312059655830350867433015921761339103179784950043195721013064514311286669514845249839845142552324449847058487718560651760197172571716985116599911714097762874636339614701814842812213857323565857577577701024909478676033787714467772864571188360369042339535081244808407256779887753889955216358810109009968567605649513407746687386563199375627612996825824269785233915166923869648429036020267145825695936999449302852660737957561385425347235391529034011596629928655429705587973537015271881412620268345712451606120686285419174532343187568943948536609770000729932213251765165948115949093991183171741246347318073790995480339928070235168420929423510002993491355296766064987332620243993224975158636477541826172282542649933497658644560218096717568568587776832427655656929047835513948434078419376122422043517912779837168522325157772172468744161137677458565178398841112941984236695654927930291347506614665410500587165353237439254232067836265783785628693149883318694468389024584946686999090301265301192264663048695413122529105457031968275495090960448581933254363817698520979240935632070875697555070967623707655416992838303548425074247884426723869299071121576836515028779101451882184362313354794459832895701322954433241245148606242650110194379333161590480346741110139404026508466154207078857897265185958887815151835962295958172044211470525798947435614085598448499601045788588553604383910582110986837756668451400031112056996586804538096969702918217388864734291745887151733352361049663276301145763019160554064890899445907698464038419711247020360333432837018058530540486357680530206909197878105062715586810700528840687343895126944460150051755742723673723048768462794295869117662116979010725745366044177322403202498450028322109881184230021500372300633946898478245285396954977390612318468802255556054258297200007168347883363465954314575030312041566348920783269083501212719798528629203905303684740490648708991823304062539748714695811912514972618739031176585713384688513016401515391828062387163466833054955731933032118091506282903602699485314329586328295897368936411458974544323277507991328106938012776076736292038572357716312510568115374792985931272373287481380011008624630134029145074247619507680979370166568895748934809368285586424567272036786298883111450653368284745886993005245869033977635604536372776098769951024159970956460089162024085065384091970084835724232210167117659171984396967182402359884318915746855559639708420255319612756663934696007800644043154217967302829010231542835956506420469711995706423729733237027844639226837491784374547506507700677099952271464936189400892023845990832770800470147943628285858849012710124026345270516305886916376607241029847439126333031843001131327959654798961824061050474590246613452223485068572802777089392361413065717955312677809049003821212969266358036137857711472758117165107705626767930392986841933659771774198576633577271897541344989291043984383163174859054075713410591738965816241342290206353612083487966814209015710408970027152601322582798543483450268908275951701450981092903925853406137485264722837464181181838446098260817171988010046456680871311953952170520766031819899728554027676618779470879158098619283554664232818226819481166383936429901466848247006843401295226938220410419954231078010155521718766746627096611564540456351594726144963096166231811978242836486569001832322759737208887511029461833861421488953316518304005666356989618101921990563947922918040698992290958348458211346625082753834394802608784268095097700929208447846957943461287655331539351871340740065437173769484910430154336969362949333269598990342189455886993234193731605246671538473772733691154910747121752168129340226657158642076716331376098357747522782597397321475238121128492264964872517387962730325213044065007901914522176143809319513754795969470707937353461829211412649448302209438595953871013266736590788457860446715141988942846198012315954866206068202541930595379862160788295589806262243137775803820624053402755454398482740883454438538281675043900820530434766763158992286250949152649582795009504601803058213800056768830015027787112486675895314432346084887573722009278639549795103812351420205876226130256710452083934731257039491299002291929480537840998950231321874682256631141568999119725311288383754800983852352735335485978801076632670789775738334199086370306296859364909873843106477038032209146490589578627506626218677860084815889741204618741054469951835135018410121268045206808101825858483932709578053892772408252077115174022683053517212493106413524459851055695580040465119519308002269614445902525767009104360871377708794991872027417058321413334976348442449664293298371436077430839698209022201486831741228260273871044708050474414063866236542052199176413189358118070913680809909865941504769654710920199587243216738397648895388948015833862189410539471991554073910786955691758292854769829239648818528420325220706857107780320804780236851025051238660163165490149231105491135857600879767902161184668407059552236155681791993282533611014266137766040583913390537532177466561314496551266721589750368414136744857453886707016788419045165250141401649458838348406806696872818355553490667614543960991470155633887156846805982364151126135811000995424053906259229534257994734910674360305350156075121977415900294861813947326867912687080826075039912201295615697219531592176737277328774207752333456441858589041128927138888695500990177895512284486411293963511804258036480784237838459830033865247061921874267353431453824374575284456536907139377450457494381282042755297495053743820177291476645613119982317353602573718935024198681855026537859625186224253795979898504391596013756579510119151922299697816004307506020925576722418493165308823628312787275088008705416162103277529137266183973176801452354019196720687868670307072691915760117560081629666887909867533591936781671584351267665128992366059530188188969957199677465247729004844667710648353021214319608773651838753897902754426651663577351734835978350873447417572919127848456167320619522331196638056744441653277212973126109424924696337738709416455171750593708068234099989622736917373056761258395902261522081240849813424897250266552957498027287948047038460960974552180494338903702691695918194923304142784726174380202348498592549303832872653850493469000328695822093540235567342397487395675991418600540246013519298850501597972694601361850228750703751631739217033596863444131825345036427677364922485938269538730400835463668780147571878714379377388388020374620073695353514571572203143191078176838373669046215787126217418501439847170485623525684332097606130660092338872649596576778732550675100141098981452063925115784818719508156832997189934560711279260606055706389677603096816587337892318416010300164306431065177480187471087856033823470406752103162356808851580228352718647778180312845967354663471040362930969366103323151800730300826541623984004274400350340309213634982151234199869287542902568214619030703687794069926575141834947614499862678730525412841753013427254363797137015482324307989681369071518998381046635932213544605723925697663503555931556216015984860937500455079477172530599016744301961225532189764821242437495376313789781861020141219122540425336104687600619024837549761184349028558743390727165430420991250612253587722878279809469306864080979939566998783865710884551796586423670404177293976417298804622653852000113785645000147764009880693595491903504833885728083831101841173739535969206610782638017875773866232948746408892047342690157631960794715300566648393718712213601989746909591766073947909876040491096561198430736387798476399405248742721635620425182398266292999644695456859800146045010064448926814679291918814315079282048560082069669984475279823231607953258001025748135027881083151556957697129631451448234049160334818052471433112791831019159132807841730628960696343432345419941073669155129747460090146856073476521454765355106981208668936590067546082560508351856022513876319525365258641557157026926907638454786280591241925839496158064785126251926923150122480900561379216350936056805302628361727628627616317658296325626527465211312243036817430463810074605659649843533845516797643346852610999835262034886242076771893182651838833389704187385307360138102281415168962228136088676561777812431562592166748602146198321271020523508575953821521047411432223098374389648163834669129212871076539340326884268460439475730230295302347657263293464737470573262422141244679680567080930555431971915809071253220455359745361056100302238545804084513916128741707157907248167676068781226568858172908068788870398360257418296672196337894923995919908735012074516762530036349945729417787959119783201285912534403686375818897675420429729139867907833039021114372278452556154326317008037463763402841135769444088945552244161681680904999845468143879499202958906821460033161336818368875559065970166584311149667437011041072886853691237023593163929333787210252534470206226454269877674196792772623797569632817770689342085216697385573518097241653055985042835360733774020807922162284723674854214347265954607100598674323966867543344099971310950283354258105239228038109758475783378518043495167242642142424280201076579200126264149159617822691472603127440155540293511488023675748286702370360491416979175146081169432802295749867815027798077836849612812848534034159307816622641159931903339647801175966719225363212680796426220597603212850690240639479147379530932141494275520145583976232362898470929520403813840575212533957836898616076856898364627813532073299813583985668279485792467341835561144339931561571225949664944632045584113263283756879515185043063942392383882799593365879041778794822837070592989364594624518766414943975834026794785656005114307511620335483231071029066807447371427620587043786412230262550468574150792676480251231366162952639106241642085678561252817267376659196411181977741030058156272773174752156101209622630798394083167597715441953588348175105615929691124520228928472839930035732320296276733613820013471858165180934163193231717715880893092584957516288261260117728730397857767630520387238196015627585512880705899944438147066999463413544163770529503632315096946125250149316907159520793463662154751228475177082752335682423471532388065127120938806164655896932827179358249257406459604060423141021013544930921762123892749047453646536596323328283926753477969909175902450614322002382182700155230850031028578973472514152701139897740389769569329662420399749293849797764129343539755444509764344335445057635393440332321769766128218895906872160795374772981917479407961009767557192942975979897892785181987766009283426558650507478126918246837825596821814707489295326896547378154000177874697186588961449100847564376628870092778851547287261303626258599662975890400613913852120013749203193940984992427852332839205209418064003813449078187071117151625924220464892490464225259732888301098740643099150887885684868584125258890877394440768381566091899435023634976768397806243503587220708209864264232576717609433465422924968873011687667680894264870138231615514112780415615226824609147177732688978457102031652060968545429427242452142840287839422216658605159168982115307423361266351788283789209958514974791440050905761358592100303519527048254830751400306199084597897133722107257888243089382962704084731024594520368529333123986338563546158428248217322918046314276235312902803739910119597740691238885286607875584791498308494076854467598552605309203628683902060388982030011220737151973130774752790946561230991259267613569951143585806746993844603138218492468429385097900759729277626690888506129160388997246062430201152152982056640511597273035283904363870686690632990702513320181505697676516122286120542491319817528990461611335972046969403896319500362400051305351725651737204692037449104812684715258911737809589598150615101790237305816100914573036773251722276530173000597159870423819721652440909850711284235389252311381040679982316031659279457415142358194124380982600397286129027715337540606765154999374742823195653988994529220362372656749817544737220716818757043039640288539309629998361184515096679284674237329280549894789324278841302357780061481435395801467490441584300421728838312281107540265487008320189405768960972431494874535502293440918411672683434124047889488128219078346340556278387409772960649890788281379236129885673794495351972345240359079047897376076253571860649614231481377569657243736092260128662420101741299932222659103281586249860686674533800641976506379864267101796347612827644324578552670720760327737877881849531728553213490800791963460252699215304412387559113176384086014572554830871919094395793932111062494889469306789455297502460830300131610329880219596195894769753356348357703358586745101858627287413105631206404029002093680524657673657653435604529702874448108612518470807355238688352474719054002102975469131008612515090662009178453169848037217858614423093476402957502078411244315576923495106196489571576714609686361725740784310094046889305562266054292139768955706690337044095560695276965761582053421564587452498836248271656053075773864442458701149334916519126814777079639540314860816810799550772225574885554913402145739523991446938399075517767437642914648296695280641658291857775095444789383460718223747604287581986113551997608763921047470458674136821771998874565900453365578229295956342881859491367971603566757150626776767626161715301197996142080600689510642764461371410527136842235963099709140213745826197605627225411028420189970333168031979686808013013404506471323369047284392276584591268608561012521278266665940254518293738472977987943214008399595612354665899779737236522076434204499107138035928171757891999309504641277283330552307041981981967595491422242437994021672029512720454828835069489790662563286879721492918250616620163948999269164291165108262589698765532759254533292983119194882895069564571272719557968265788495983724276074699404792467874661834233972504782948104780600075263977530418698423262326542294064604558914570861359091359522664731350491350228915631436563651295304943838182621154661660032699707380426255639726139956695778480699515602750671804668167725155229384902215291262727076575526176354836700065273786603831429596031282054802369882938994645147574969570520837194784385757885991962236392196979665487379669053154905637357989771809867586929361846400224400270441240818920360109337054294719274614928558376959656642111043859385732325268331275755029685751747893943157866211007454797644792567607559314908653046972369336169503627235780263316904479568497092873189587904054243527468807759184053841946911038297529459169626304304016282230994067121647414451120294221996306196338634720273865183586404914911395707970037303335724387099844609151142633403395946092854288958158819248700956412377933034403561662854295476238745613455137105707096165111567985847422575491169077355294949797717208115990205025104941001609642319579107404914224392070154893483796626851333336908104628371520413872634419872039631474472460344615676716394294203742638232690398046950535078207167344621914563882569150073360968014838714023555266409476550791013152775957707710957275058452246921192928777385523217098898747847119666991692222197389693339549836462241164965419459302489702401790661096262456782668455230732875753756514418877719463702823758950305924831415600210960095771403973469440811399106281116655816336682132600594737766885243844348112792294212009171689134377417424697850913733873659798656065781511635413205159733056615301200709435956755761413544091755350210252293374311196267818167290620589280708468776848528628213839443403855391530472683138440779215642419619000375229618065413447494791678590775325871927882418432161577539900241288843063065263328267906114568450535534370565509276850760566103168221129842352382369888254204668727027096218439075022111052981658010920537272426670876052727551787226328033501415572223242440618393828739772173927783563524423612357770000133997271290202246059785609546633891795478684907292940463648794412926006066658259577295173274726654257317249124957527056067104071166873422674025841801773280964889079720195567951409440393675143679386352520398379017991646087570513321251091896660507954268770913042418620657662044746928139423496954133396019004102019909111283481399692002387352689677052406924019928403656571902707659704761282246610559741691758528532371916674512417583453592269483207417781042778268053101839566894158503660651339803570419006643864964400437751493707543045957500177672142094951390650038008531600946238711755467203055872296809906410939434606791586731070129248290063761319790485215376484882191687291851695896534566442803677984262378278534553312775123736553259241822773399281659991867123068306690914645635753235171271817038506717300179931861149735178656477465005812704657458937631673168557063758547168375369952840027355793286445177999995150219511113977450447498893366335531512266086543075675520290946961882309523248331112602585216170338330509277810607887676171969058066325732420418747853225312310405764628662566032651812752121183949971840873627524051573000769986097232440159243277913510838389963540788541948956187754665431556739332823857675906473613196404841221905657214782871263635095590776238534290644472994878257674643003554259766114791914085512792241060926267537033326482811869669884044653181798873887808664529641207686379127694833534877053173023326749502981418846807902850062464804669715567237831785860167439367687179255660218677514239580501900515971821441779863229953904615013888644459463095067667484727181835674241441161482938601463857377738055974571843078641618032546304776642603500733535539089255336426099562352127502199962791234855366807608272627479155454704518370917035997151703330708043883552367198966703223634133935670223838596733461025721618712168790797155736239409750926149766467195206711172802001355639031424440144367463494216644433292276971559835751753034598911695522345158739672259296017086324005905152283204791536629467291311851523948273721647004761261986010059720514486686410832670129367000900934151296221825958721537742556669237453267395214978813531651579586088265461089940775705533678089883281303459961343522724841823896928301962125264842955230523617329791564393890492901365665546699944233996276215677886276365822172762111779717443066667029312139061894214436281807172473457372283061527678472600288248472067925614834878019432082411153363681088755867990479934118019965170645048347557288107726381657465990713210237059718431572291490229305864911467506242303352648565529080733524658189298028865722818962904563023290282919271063880037740282472506704225953582685816213402007501320401529784936944142032425186445365869166842021722160156741568238684836419905697287945723104279960385259523569934422024483270411466809760694987970124651865634855085007465201594134523687907317669931433838447750230580600144107407456118127986850831754834384398640004916671707224689387241955231535578731497559829418069719038243642051596041302652278593572025820326463202057060205672135303128919194019263328515650128392601067953610067902250694369135195527343264819835987522037066911294025965585724026103138032823204817033790646946887447047123914011446301066134357580427676728506205962804926552170784696757294977546854142886954336044631214276382012408031338720133776523056788275919539907453819109264267787204120455800880781621928082989105236938608177871603977314271295798484794651673866757017384867802252758484951303198267168276486797670313588033781786730912967264628486064685500439388585425193130340493355817488790120058590946941247631128638819839949938650040218386577315954353602712603754990100624201935721654088417953489803532184168799970056724974315504325446244193221084260150944976075697129763645094421050306490534186447762521667396991574290294825446539931225714373548540212457386288016280363918386198799758355620219149242317498908272750425121342689226740721763937573835682604838161949981734802986174423929392793277139018271259003124924527705316367233801859400234962150915668769758809693652275336366784399244139606491226994163735720964401437294387357247599279993438138651105812654146330224690835001430853091697557198015428939012371790163517021496742059318503346838979484735594354385855593327370660071851486777144614846301548462512527582607843729998081537485831085626552570726125224631415157691905137228876260141341596806951855856625507917504551300425382779155094453658239971192473028293415549745314434783023369664518240707084831243089861994355876251018389920254645862682551260400397221156538668388167277968396418429567824390614097296489069604264064849672628641876871277793516855607863374597472881861374205456266752316950939012842793251299573830499107886688985553442952414064972754579020138025910819492260545090607967688216925616426015529535040302988205438238283504653630503835169482027595203101426546536631109544371736678686634884554484162377381897466835595263729978308752914225813242487480211182807069718705812275181281358581788110010075313256369635804433495562612533830254891013932964721382928626240605773678246466986837805992478613316377507689757688429936248887888300390880443327944980459517930632753786882102678503879312972228163324809994162483484612145813793825556537603615315797976112980231400902865046745875143387676526322689265269685523873409512830445165312214038591973897328756834286630023678026381005398132637572306207210159594431447211942282367426610635745573953787837918326818984248894987951745846012378756117967033859679296356158342515290579031288252553847732566167571978841472968389742264470998254536004774626178142276145348176258348589187684098695444044806558091738951800164228335311500684952028880115471198506842179743374626052832116971012220317199539557052250976622465561121279628045580142077221497966786570124085927983187243009968677745541397882430811862884545024442442258418056492424271730061715268333607862497363500490368023964565856815103976604691309160776293973455609162389030033953914220249358293500708970603620471806225668380532162180562311739029233307303958250616503720121545591229610451220137861122767607246021668997613872534124416885470091306411960553026524825173044949528379655698865310692203207905500896554169440160286951889904109622886546910259463609515239516797667741931555953246599784763056473588740355307832247445278809181438011159990611212022741168871596511533298525049055129816475454001480579507370382522763164263214411330798004563926623526179423936977253104743945044693309250002596408042958006315308469087402806075761729425637890873232084507285053285022888736104435089721356903413235976280879172673495707827485822940425781982480310884349704293056324586642396221847116323528906621095989268481175965704488012839603015209078544827088940575521455383948571234350683302772693828184080039387661950358531406450615787444836473159425849709144796669468162997202206143176341843456961009265727815777677395217086381647953922780123869512028099877319347551981179433193532259123945249046935842057689124357590043283434892438902343215514365268143552263908881499397331599124035578576148869383043641411899970846914126301928069546460481495399545455018240236303463749504397272249426509533302266802326909673157132096577754704269176943934762014805921231419423376543791331147052219718279153657468525170844805837760833300542222685717866748840166901201686818767299510349820451388991926874800464495232725127516101494053933914725235560227397045090051169080609094368528062173724624990681389705932555763115017129534904472970247394280220498323571673761906866317556610408593166804941013072258204168407510570210024521032300592226848572731276247920281283028530752046143507158726167942336315906233587753326269848128453802444403540325098987276915759042817738635633766911864340041113626499117036158471924099520400282496041044828869306645563723842969179641897339243200708038326057440544594586385151782004082087820680075849980112280865464362163989167199549034281257411698586874813663774672232665621057646200117549579696669074917454182871949353623692046196313952679793956051524322979574623413731967351830054182997902816403571916105779117992368523121313633766415432540790596296286011617629552571760262800886729694217703069936570209479838668626007126293733484415063082056008808759730202056338471698364331628447017811440082735878895452698229773325594045680653248116795744977723733115199106779272477476796364142972999946752501232083068475561039803170846764970430508698614142679674958752591665304297265671222502495047758683940092029797481702906064695743325371799811121899533425471979069441082521166678830593470356351690983644715894794709689037533981793446408964093541634111208215856413401598157681828279031498227754720510381676807374970620568618126479785658599646318465415432317233808083392110821025805041267814685541951551055502834451524562934824156621307726284282066023773063010615386206652800756457468456597978531975512173529909214116610026600294381498981876953146167205287593606690592091242549242312358653837614023038604688701401123295854812546735996973717458388249874416579689974913995139481273973380302693154208044659125285968207487580076847311692366162467488030338617674890967943013957353724610941121616341254345029299558743667857649134077406490650327181742514418414927053020674583892125686245823054156556500394267204049647162958289590064084778166894543033898283186534506511726871257055534721860392814599100936773795000260947474741429147052276368122723572695083254115959154238102709702782125009748233097180951046295911689431271264822533258436450229457834147636118205869440907561096658573126452701058195414534383710182821063784226203503245926540403242478825171332575139116089694377763381718575377015701286382562878582081006973961098523237519862122396254514731724717429995694471182439739990620997611445959158989208572744023455591889488104031646240538481015894719852336242351776711395757969913669079597852663470239528253241266176995463695268483500169694790321559359168163334215751750586742037038617775586018113074897294917645864533333701419140676996534506446907407270150907410421889996886904100826423662916409302187216683037694420459243163831731182429725866891016023189435180345082375041823047634409530897515162631228767042301918045232589161966817745446938198412859717863653698568904940866625995329409504899407514994483484864891129646318944823273924317571050239569890252808390947167638858165347595467936803534870598274542019443131545556839078576124998788608837308144206229511976048381349774670325756715540073183005162032645021022569107616264152019840069186298920820445263758005171462721833992705417029962533360351931674833445808909116990702532182412590773698985255550201632278021658528722445429879976369020062454123017045254280464147211253314735723785479635902251978039649858175287869197872647525111010784197302806218194957401525102987125050735439089022826816701010072208109343937028660362807022285406876056180465194239466271775196494116364292674875527185334335551882708537848747677662915347170447002804007756672568825719734585074928176718761538951377015309487105850601671561856428828694455314099511910898359595604301493133637145728159111826122985705314363213612454378404120595841464087016880885556280569308410575239858187193748741907556720256713802343675016642832752938142228664411725636688163279754878181599341009937220536176928512410600331279405909785281051266903541124740887274739235033087816977693652909555147166717514741533990063976172491493814656071559028287270351652098970167005205121204224523680894348217178731704647446005240225445678418676889933387218761483866943865876386374183856231195044677039989239451644626256228356600452919710594264451273759470101958746544324883792651018126469610235246624544551240660488276726828770116407102112071349939551189064601438513989696958830126532352898181265084637187328258285150439648078933951486224245092499892607387934191677784788984106808682895311774271241600507961699051825952263182312383835595142086109141209121185227331297933483327294163862415375414799822828836536774056673321149127383076618036825661222081632930000211287353070291870624068591904635264472389916904534945558822701598823427833879061845730690503480628781114279749374896701530581324463226322735503393013600307419004973699630852861983964611439572939178777213233402785226831947605339589863987060078374489673165814226598850076888118240236192392802563831996071723794572114383468512949704320248281813811352402033557421520090943736003015006650970900767101278130021598823044320670660930698063471388875070824463048029825091762432264383288966244506246831710849808610296182257969120766502192551412340460115778122244321872628946778833068730387189891051806690393536582237997656303433471904827014255595852436062786991152874240563216949390442727355389306139472956031859375564285814918225778202114222104127099816237346776944433357798054573591054426497462026713785136656716241548155136465930852998846006793689914360583900756089546859296804271893380182049545739398161266087919154599261649025192234196164273344865010729301200250769999963990588369422826333841981651562641038297313792785622772244125170690194587772059166951543318421066580156666616089400064674671788562638508607738776357701856956202555314675527395915610803066120353342123385069650005722435675851998214003639499483549635454492003397484228354245495301335616595517235793229411564767903819133641798825140354612157755358738623782533247782400285372748161757483907869144976737865765822701790856998704893382243492326095228240814594792408352765053396699364747600899025709499216519805198542143809765071252658334132779447797916001257525640845856646414120378784669323399228538230513380029383311182760588350084696442042566183529296788179017797557365405466158541920742282196997379910135417518455866294536439056919644839785716413198164390008363266485498576447941745285427837625204852210159683750505672599641180726774476442601519753057709311943710336236387143180653378261040095839618835128711921236987361650452146130418487169950698757252182767291317263658624536608247415123175306295411270957173782494531622958936973761452285560105904498528428435885925774981017474235626226316829014485059753144931472846362477268502272861240000005141965713355106881992089092322700229211001656771709294392961270168380591057266529965784110188561828276641667237974219534406590555735973289162615101412940707812250702302749114971757516642897928729661550896428817893707596594382875116349883148728005844247098457111201429404140932335089578510874757919444283225221769684890759090625094520801186911213254833104806761618940291432790483971188790536535375871318393259143660114241264363954264573439550239457937551010460746135177295079594123123055671117708028588187313861695449910536469453812173165337158301995907262562597167908797082191795264032746913578684552936825453972106465638252966347994193110549351429295624547873105624815565307393636917934824239589811948602499289049731986983560585018453662025619706006113615589937736199343259322581570156747861617351446840592822838479537294711773655031900791219960396593060048132955840597317365906045666801850882716973158356792382074394382569672145830693459713931199778158836599008078090166754332227938174064160290042666039045907728143808426526689456593744806213881604044971240758833578974246723367261794245485194329578242610617063899382212442265663752838698609394928134759357661972935510917270507449460687817536212062790015663733619081971382911460213657230523276761721628859379237140655340555596871214702621164885103027706416728727514386541891620481759558814678481340631820470015953726450866946207707399464894973715580924875890290646389669274113395649680453920879860383073616761299785777654816129236478635651547570767580359342608620153847422544586032222066489489195939387677165565696907693664147071904372704353390630245183491276479579411513654390131860026319408871704342944070612386797368446413610956984464375367583593057931062492082308702436517465285229525941834749063540527655135847131681752256289402324818140524323632278489559566442170696767347105445408629272572968834756106113778719227714329523134714869687810132842394658457397146486200172422123051329690973222767089444339330407600916185505719762342815866127711241704549239159868093478514651446667642532660383932321154785300642439334375828806741231386400822483166318590670747746036936538733451402281706846242825343714194310002461837889313384931323936152673196875736067766015376825326844007742477187218959237957288946371504214541973729003354728170865214640907928373352433763849099981273728058712598379361881351971146568229944630847009049500225616628807842715076764562361517699292001221188487063983623315940012622882693357261330036620878457476810546981939414275583445430491621454127065689050387297883428813845629206769886041543322673092327821988019467160000228821211735713071048250829653893837676946234761370717069110047503150603628626484771118109416944128602995438241367816544141636907126501467862028706462533675193607432692257022172280389664257844459701883240071448405487869686009805366697340968157208526709893235368156841124607709525788544996980713082324021889485463064822159881218963468840296909359703040449230599122446781121081060431570859918027941852029038611560710967918362064259669075063727004647369289307142530389525327265055434470470347781194706811485235909676010548074683365613415132785430573678911511663600395264009836112163901784008888001678667502178942601363415744450639149726402740890498275947572348702972742776440319852149866738667989956352500350222799221028011717902754951232507521602187959935257953497275703625847556962091447437013427374098401650266267882118777414954482410687972157230113901535351060387012428184021056411720206468226174081113200295726300957144099355303171354627005045992564372262032849265576715818309476667817763885489476729995474237980822980797935896987829703183665060532422138602939918966451075787029215223416298662561940503694840776843401399300392592272079685065307655116833678546947218183455267580253417592635159038235714430132329603318955568796067460773823970755740932107376709704263862851834952549790432320076331393747514628990727148089341404040444071989800760103973920014172406863738036344484536688215191200520422686948458455689157016055234518160594806867908339378734847104195132168012406252275186749833825448627848801124501937395059313128534241532340205804543250067180739327683649494277384671686441616724660676460466511306308184739657533919720874583553173097742946311510463633546133071589555322795419269512481056596089746240142671590335877959518296363390953420729184501147366198753274803031493313954087186451833633392770646373425501193338251805406337889577667337240167086550447226597045425164265567064872070349530864276131928309585669869578420986089348420635716561760276749737628266338479274051011741009214571010098278865697320353931504573613036519523525764153873641819425761695004763957319149357389960371906049332063284479623217601173496610340931736249552260396046356460928932961064054781958344638352829292320685661281561994376092508274171591535458552162311679683795410317520093425768673351128380094585232182078271400775342298596593482261072684753979260976470836213626765980309865183508364583762864057288500247941884290070028771050720426178085429522003599494005559716394979101781192358604286967132934683930365099178714980606284897088140983875101863536531558678901032294701236582649671979586949078307712599565459370504036612834762583964560899671770829756360447300488125261822271565315656628957194359456485704186700145452257818865439102796958180641470834907614340938738863307405073460651848765701643785803104938745715538590779924043982203303156836671982787044170560377676102322940534338873906373390172193289301280657075277182915610757449346595206685358342178406390947773311494418365601177742726426406183429006681835633632976321147823238942821091745977213271356446078774968715682595348180225183974570013872106415738076924915778765826505474498493275247444411264363997187123140317551195165025480987500164115922656287816295998954554622988749174748759660978616478611141131944313746884232170285722754405529224605054114390744944527423794775135595978607586999987788908962503611272603772876004098926764396287934182114377853655832869198202857921448718585312315713296173480022680419192086218246091082647764467724275457476060419658703108202792353572843415706384829959315200179933027156708730570522442696201928257606100813195043792590636148304454275422248173952623237065545670645464189275949679207769786447504062325077152743315209157442434269210801660516039556229903006532364147934408055370543680563516043657891637149654823980710959010143945169195480569517928800925111925929967836496613248788234445689386483838838424680147083133677930189696550940092215141877998358310684340210208102887315185634032209106327352559986716892014924096953548393882446561487154016341634071107041625091475860807391357499369143660590127263016382347595566970094018298809907450478760968270640888407781635998898778338443802441821518796117334912837921604622404943782830105543177280994448447290848411325131813669812515249273022357025136884890724997665829325771635847951200346280089691263169379860133593505702324542859184902468177758493582188233165845573724880354571939997978657189371837224491230188689790027832784652064141536208775501586401225582031217734030446457379106886607448481481798406169070029400075451175216164105578004240867154545983245957746688804379699698760746344716981811591626828765001017632691930384535082164944430470751448067604204277168735577905459643858786678580619856642209918166983834213631937073305792778645972394936984128097617497883597477005981207491295617778549065967041385724357072505317859919881338262365463888021387984985473880602320801450485983530816535287794356265932985301920289008453161711988047903658978126333952709862203836907700160669551904097348355340528621902072646621974212889059239727080482596656215792472923582619891405286832359111251599426830089400367691310552409900466481159155450735536681909560169769243506703134654806352633746526099831782681295975535885307154708716180546081597846092477188003671261348572722963711264267291245472184649364415167360119978262946120401551123465753049848755909049625705680959129515740351411398640632532048676239631519847715136893560328222814919343115296617263691212578379957823073620596505430476736028358101077301802188994178106170348053471058990744056105618090758938372383760475368813948356297468381140378950040374569352859159755481989723351845262419333684457686778111762400688599261824066367672538148272510174928075407224327149560215927684305604433413044383920942861673599463824182208236489136140042670509133035072472721774174845390077679088170439240715139646277038171535198881665374719849017810036888485551181993098433380267969896038644118097362099902638832560966657530802145486934366311511742348558347197469332867419613739992282862768465454722232640561804696954817498035050027379645502722614804821327537995550004982770317773620375311434031268131713379606882420162507713827111654678471521888965222401854697270042925202938410822795281685897386819927137139342307971673111129919268056674304437329013341299091517069915537976232119247502399975096463030470749571572188617629417987610313847313191269192824865554569842428350203652681795612678684965822560853735617296255865716395252974679569958945718445331898746219390615750444734441465262185093395496786029312345972521729135528733063591662193824900390550151031141041909027706642650547099432576432006762784635799363366213367975872573140544011852695903252105345673241931955061208063402604480185396930045563540863110108735153513497949889122827598530443159778396294401279088811808797788571298505550723508691309796784642244223170328779523351532335043447900998511583429103151706837648710332296605502011757901136385279893168164307512894878064417159160367376438794989310904392454547361248908406056406530474384246571354255643214350812343523888256623300195602198334807425315117043270784162712171435437296850482023451070329586407344955093859362113936343603298696851740373504478386155195490744711952180663033964016033294714266632027512299572299938335693304828154298152151498488068216578326257327393209661250162798906930253582790439209774642345130438657458216685256623846272579028158520241751268570296011868159231237280549076932667532687887661343353111627308266475022397850553987438210358890266029303226541750456730150592219103868241174452486826776756714542138016965815078301415165481673010073973014426131689030310592873065774557875976425633748915933953987974658525182869010430849852386042331019764554715909047857795337297286419447757962807291081588813922162466819300807443794160672645634467077620745851040183554227895735556877337855673536609474275540073612050810047024519909196621134563510953234230144910173128729890133566795188753274466124220198687291508680247375869234021017286025413708671298725392372626752127244106707618757838769126614851050323519328244847042485812080507349209515772673719857351891093468195033620571993982010681752530533489377448494970202837607327673564874538170685394065746526213347802938656517546302848199942205072680943325668870159310049196269048283490407429035641926907996987385241524356052706193908442897917583534728799468698374561184734439766143347447626549517790384271573375347483440048960295378451086783046950046810169170900536428115332048565873543265133224407821794274782641122210888912539581733476725484587037179863619709004972426984671254884222179159674410543999434722716025212835279371902268263366202221409075725574675364622554336838191285901212265790589319877682445579989742339937383699032751259246381891145962608594095649613836168323910744642854063656245793604706273298263725835599368121550994902915394642557028007248350962254523827633921757507051338371263108415444047226707921129980820993830335610391879269263064026220630208109186471775543976444030801434011733167584981759957185941195763635611825270312401076965452719624857227929612308656365224189299669149251112718012672343798738766747275414346804726668965978813527908269022173881772098282167949312260683589938824669845063205918530634580266631194788468158386370836579368350979854198767336100495927041506922307902312224722383215345581776813230189590275414394168952876806503764488913087485670333958024763855472309738441920781553517528054207057784486518857769648588231492581504053303290328667637809731637260492733417914682381881455157800544224302663762614591819784663569978878188511164699085815695894292770930094892499215316981510210820949437139499563100256737375104322027396396132950118244108429950530221823180966354739488111958221915773678768067653554947596360791853505721708997141905492409318800174472321630749862072369883463549681379566123102052856611142948404864261327307038044882169293862336080223370818711527177259619679447375964862155662200478607940043878396255432923177443114603550228625180497639985740595206474014265612751382668743442453702573907656738022625855582542458938005419838370929592629230648735879537310528850375575590513076238542587637981379979417482965739263170872905922081387505636483035695633065874162707339687458961333039306919292476188233747996321230473144135977178434831026972455460841047908933625509178209150627087154351503054133476456603685186585178282174192570202627447014340749476262077827243856603907013605768026607740030977311811735391240084422371105178016320105365078855523691642930673501642584033317427250203036854164902255551947566478726033639566161743792199579669965370038863225270346180661781165767950825882650331245387587625546534132187512983167903148940120466307329133664812519204883844595990416130994431543181720891741072862094414388221503811330130977265260139033065704623753391928337105619229226915720890725447746403347125943210266612662175556537493367892680973573245174968621218793198458991360633640624460031454591523003779918015353332236467353477209705801038017072914356518364804635255897913655179814272946690782677442399130060012641151976824476310249004844984669686246016018410268472556715577917861137032794029164045986034110648091540198709883273376900289949079216766768156091285004617797556073725072617838394044487710462896064556061926942134933361095489716244473540097336828197319427036837242826879942671672595882084749493306030580097454634216536031333283093811129885323149271052914575902025130675264195045361111518991063657049095155579303591665542615421443305161968634646586444488151536826438872639040745718095255463191670769896167680426150357310299337815155092780974742647079239001010272360329146254146990841358444851370963481830070298555766708986145014827439687695728920508392779985909451249015830669378917385797291380259025918455540875725072048348807991995746807170975722312985978594457353289239232168226030879982983156560139502970658873480950255885411682598434613400038541787262220416428397620590943062386724601976072507439485709988179416205320005733156553854532782261868203489713041915217871801080212158488882417033697389000062767340140803770790964040779886103450489329485686949794566689753595507298694671678251214089101034136588154058540038076446187242888308980366244880478890667633687043317099113033694660031309805999909523841572177659181716642005946634565194816613601426010670928567423970909971939533272652289832127393080453327203892268438520499862765588567201130680769385649210856424234347886447186926975602997792061493818287005829707552390457783990341875669812364274919809751284904330818134053590398994870731400112662278123821046073729662197516587381052721972419551306386513048696714931375149217769814926162610457070953339885300567752369162808557362961492201669916370853745087911476004352360926915414928783726462497953368202577676163583492766241648894742931292772909194886309778711706231438475230973327598463411571748141167530325337093528307912305610423305341747401356267392906447618762488511851624856723726928465094735986250638891015424790444696505943236720999046303365724972499060369760543063432917254045581178458631901130565697745167069060673797705042269322756243208894397203390219790749962481796889398114792832609842787695395602719614663610532662067232073581818570136695466876693850939522298393898391449493484485266717949576499189088993402490093686223772163034745335726233051347998728206271312942692793971416527436490029945375655580659143955227413375725466318778542128235189616678584256025481474606516604250315236853724973093077854896071676760259731085490162438798738685977533805710091559610044707422527844946143776139029805082977512369610657380326128325270924339117100119031698326695792825460744403440593094603427404064251641792673339631002048824932840177180761130276599340219885053449753341100400374231013643513113598460925432590908919231264580183410279826980267035304845482851832879306402807344949783542140038209794883116131116218590415841750660208041513631498149485846253872886206835321041093272349250354083884762241768114077745131075947864716140007706069034286223237137337012069814220423800890189674014800932287246598186432592286290916360277481785167107147744352015774196731653827680326897958529816089720351363283795516487702197406833883071680718050301959566652982596873348627515546927189745769257845843362835114356871235321132754837079473943044857721165308327539991167848193511489964740307545794512703766588357500326474227184397669868779110851030544790363503849342189326907293266702002918472573537588629937770303506387868077463009592493143383159302755027171933398012003383358261967705309556088458319071778458175059599536440153486704757587881683970183173808846472729518657475075962885784435382556985338232451703173812420310604974720935633397521044959082044095135698004848377010262485493709227414318708602172514998785491736477754003948108387025384883639779307673540553869011448620787413824800014449154382883139592412304615148022063536701243829479308280066750792915214135501911808509218199199477682627608110600146914580997408697068325023867956266024166737086597813753447722090105102314485758836764171609653164734517156548528673886679269076396271291939450095087921086816685755154652402770799168266974086108993013917918886367091835132592079487328924367150277789122253882175845762381736561961382814793375155459326383556855911759218747163406511035451535762968529065912501963537222243931777995012773132956610312687400311503581557886994246687890631880915251430024157491133494422226004825353256084833476036963928745290597033260393149877152563138337538670205673925151430856365427715805145416212910487748548771951157869612967586990233811445565590809653738002038658173653522210694715224289554327615864960443365644235893879484932191127939086304630898795189365837490420621779095701748476707820504698487096646708507685678058793532192893452062927503006887214204506291913924232486759174963502679523053475787765562429506861494631242377109883412595848580604939954973131302283068851858407997130893391358446275816658667813656061791741816207945081619150605761207198568733058677763324797822728556292185456583302814610399160164290289028144621523883886964593315908218505890800804562199773286558951447993868151943668973045099075951743050283459550629259913034499237064604033179832935552822742883563177158236281033893744865309108078787498291911642297328566755642599479852254416103804060962128812292462929413690697470768113525086782200215679038255955958685605412615340079814441295687125442552816878347682950560382513097417546429837640902732645926107088758431546128497743760085616534733903017305241505502354310548605134948325019102274225383668598244043970198673038075261058376895466683716210393736234451957618823851583763212841401759093156833754491281286985242588899010412403430628884691772574301767553404553863829234626267049369215329102683737684346234771155226499290895844864392858723968506943900194342472018400075797134030404224908413571384357076390642194307994058666825067124733049199552663320382891178701579382205786308235843511576689248330143468888518376623498434371081637259124824048111519378347572762194989154403005361133564732468608391380908498592778919388135443379510520748046874759812312607523773436397017632057040041160915526688999708802196405150431088781695351751374514664164658727385495865798919899901106736539970291234456795228573041201793379472921244920395889669295634294774334516271318801569498711545457873453069232418980323608949281970344505840917937891850554838563334823636617370150414338264131807802463264468486469973213333003155215106465340340351886407949074380485388194975378926991684354779132515517567964726988895248750121734482779399696803442059962282426190575431787332121139623220349903399065194459078047670859173452667592788417847953608912992719751960144840068063558262701952711402007969875340585382540750221261178325369586686440066188879154580129673772755143784812251876118954898800326249956447841174942815320500684432310709921211012122128167836424489627922906204149315556689292178601695062193705579393081230772369061621347123980336660110775016212941986407156866025221120778621513430578246111159823905708682308961356085139486136377182769353760324192435846682759214496108854659556448153874478410649241790131452723762961587921641874453400257215842454399428598171169870926637830442555807926704063135631678007965298486077421973205974233908320934817250813716723530428628784945460267554871894774135971307752398067821598389303438414689122467015594209674815268269934344674900166059771348358567379847297572133730787924381145466048064981421772224432362394305051744884834608719894309596633506568004275536969874905301615432018302042536339524075482496711717507323511633311855724371361721096567806759819216047117573825215773885777988233065596606283563448668090448010989351239910862176884185763511690709867686087541136857430885318928164646828328280135265269806654180126513274620577759321436461154911410933366900721213319310961112464950034738429356812631452761685143196190008103279264789175774438413892412130790702994153132437648202590743551359321905581183664085125393490764110721375238854001623254193952514580104766404442805306442648020249654185791607309274929053049917460037377234270154459483180201275243881584963142237057617412126464049938497234299394854830466882138763980146276746004178191548964363732746789326341639634837301661516928609050007017245203141769778754626234373172503377737923225297033591513653164695326343670787889627601746441497066880153177028173738707259235757895455634516688791250542028046593613079176307934740472247114035417905801469673012714332554812808446270848297610990320966598401205341230163061803040513534473687100198856878892171023360065161233951280736353039892351644510429062477151286509217036696661970564880600403326793644409481043399304343927777841836318741639279346544660780870135066486877054796845861659204118902168063381479737608540022280569678407856133992734476003286249973634866157140190851082267324254277271070374816633848705472902539088282047808324952607193008881490032747341667528707339251881953793611233739004821583946607671547915994235268064014241125691046743798560742910151559247066583494478303389047396640999583189085834577286429405156454615629875645790843674386364818249969227886860365658595961152292665147082731375607587945903105706862920110542698914494009052369988103917535170289089121564029878588702862354358415291758279117102447753311979358442194394044248461326832610925660567164786700419207725072665384405448690541443310038460093614830438636994381019622320885020483965856974761644456470345444500038748236440894530437015987839884577630733153769868447375487995707220091601797847053343870250348387775481477147264395128870175585155895863481473028319977864311590309908075457691987631732017305363452528054760611563839867151976351197031782745580118399033328961059379124841148950264394510529209504985861998589197953314262197551859677232740157471793297283695671315629777976933966555570244454657077446241100139138293229135319152601158528581109535863268374970489270525748756073255656257089108997263287895005358133083230497724695952702480137027995970063884264354723626796426256172883193254945181798339365576211952264017910598595805403932813666524984602798289123542489281335365257086863811347293243433726414628633645375398397556648021634030411487858523468678044159023988941969638756144763406784407181850281936403861480618464634824684099549056080703201501182088893235485300257430015849173963223521907274386891016846553923885194560911813694618002879831790728955328706210566575561267479309865298436549668481372130901038885236231679074187447533768538240702629194648847357710543006803519795418101829623623188861297894995301130316068083168078245883319524211694384058692567604769800460110665931756372406940596596588375915368988653654096566581452589557654756045432471770281590237347769302147542624698104102070329079922206248291711126695314276373618027311070829564611231424183287046521740205349302302757827268484704270197755060687155568839288406704752733056906613107514985435885764156329430845019759002653928207017093037078372682977774820207842246121425959672232921834219354645978166531497785437079655936422299475883268742406068148826897961779712570619526981876274041612223940918819665235623837653459677308924934343781387716024602219745079183585602545360351899728737254345323046026864787641015438320734543673245136814708781135037424357233263210621317748486734614652686809257657790536569157099404761998584595348767407952255579356197249835865858369900177023928408256900221672376703752362725655260761354366446752537550752460228483894598525278575330550274775595991019556006725501287571562898718719500103366867407240648030933510247141319117846463370788213601646863823600368868966285280968483518803984896937516435094126027493116529854074195056421429422714523195288024487735439912234661096451877845501247772079690311166443094200999759149087203711124906933771290394001084245273991060088334954763493834183235305734410976996735228973387020716778466972453079520914233274598764318775211601651050167429857156153336056487316030113028531478034751136127102024780712169489599802505476397647767357174704430103563256110095664824614461374728159781838385189046766958003427719080514174554649599238262047287992445699078868051870932094760826846128402412318739025561414983544401682751520961606504321897111042295828822567676855264169302189680530030848278128021990190150288966989311441364791837450076796630931095439465315929646055248420642581240730993740671915374950776019453481978856561782118684799019232170600102938766026037652773770186227450418973047931493552057259466010776793561758875105473049806128218013818434818866982225115727428853248392550473874322566978511440327929367043272668416913890900971369392575685998307322569522071131627743971064411771327002206193893013443102594279913107964225575426091699350535279832193654013254041089565881702331772082350327340872519350936790388347361020153958560573192523801950516783438998876878928896619942991300166659303028424118583931119761577196534416763744491488458148043394270170616454302116193896136762992132907448206581965912994546788313987536594752451013363307009456250930900305875890241037395201613245543899089114895624698133373336149210723913575981518874718434532171570584826191876796180494949445068706343408794795303076740290884805262169962095258779025104280329756641556468565980784886961819802339891904397441183601676608930633930185348121837120897910070573232232259540699101956704427653027409427757456007411636068599570380539904716844165446682414196526365295336598697442647199277535447817323060549360476336641906023718662969124933562313508601624447966174635389429356753775212645527493532615864651308272486913731020164817099051066326975971487848757735780932283672257273244392416712487092896796220628011174847042893489637643374501189802560018349914684523826699143678638944402323591127716175289067875664526554225778592823883219745852874908501245255620699757070032018721811540477156213661564519655618927581352220489232458625904065623731366295063066907510247584858210596423315089481497882303541272819062108710419021423326262618640275722802268403957278446231201253632582186989511432321864856138395592166615554514087191578088261769857874927202862822613042520043661781685308278758442643540565218007301655088970341096851975002390289029400726166758736576952789418097913150331359974665358521967923335508719825549208138250586811467336340674302864377454745969301473201411480178270881895164234755153686987046315229147469078270793137653171220355766317658986852447798643085459811021668300935398778929116602558472881947242802834488809775232139156101990226933336938627578023237986780283774281740235806815891535097140675980231975669751843896674121534855874254053950086633552476905884214937755824700868330328655650576971817804337421771785844757513554708090804958692396529941193944276931105058632587523840665294504436759896313352282521122464481571431167959940346953293928588041148318800596836802902667293250406301524891708310501049491511146910899431248549325400125204903612774911502021517066922044301837355441854739735428011866465152850502884820412957545407674604885864939199945453592321667090097312473063883397531169231147804356646107453796086821687977607443674092902800122274928352637706677149734254797733782003683427100256561847028086484097294243094974835682951833513791837336095227245624998377864703927941982690312370091317757725521928324449987643109427568199501308569892728883122756657344486399156057163413467460349066753340214734604875172994291099823084689622036991404283564187198482762127231725347046973699246890748982623669114551329229719897848094767798135508404531715022568238432504059720615218631529514985385191958687034665361300630023735880933505096909642200078982477140264014098121541144861896319431343529157403058706016905608271241897456832788177658272147607247253221376501222475598227493558983093301456535922613685905763584291601779640980417811511340977964135402285021240214220902150539667947828153453368292567340290358955112018913081712245949708146253182398298624641926583678774792191864200166221731310754432818370509037968834079711488891076416148509303378933537247014094785028813954082755551958640791105624872168657418236011147484552795567018443673746871793311651165072989898022185432100770602772932682118405941665136012582409881240713434296494443291111297815758371899534008930892174707352415950261202438651784928555796513943752715773645563642319144142212470776411765307781121773968850911036769112837162478625589625137193118586303698399152859613966360724914355673684633080414946605757975062887527526740526308725595933902456539023728729114381992457579904600856479296818350467141763450641575430999435227382341609014705708772051056683812784993563541206156593846102667817333283907296615934956658108728149579202254951392307534056226896377976915753123871003483819269996025715605246143114142262001300008734710949740221362377854445679487091298609396251028680486169450656766293596914232518339258573726750063613225704640365895364773312392289273745518611636015357321054404756839811005693912702063648112352968842117350554975248166674893040255982528065920584570082933786222618524958914167134691724350432991408056622230568152920297919374728869464767250391978593021411518133369678929719657926842753122962756496521117879919125399104703862023562340612865875527447000372559479714145949794362271405677498329949736030145348292671132575823243299393575377225249127053230910184464902984727752483167944795277291858590161873864226101924367372971167600833602529972324178636738007971306144673830656893878348884180858657302319131182829942700074446159556001435563597588260109497540341884974101814996904178926110157685637108977376961019972780351182489797590164719744437700584023122368868338592009249762706664403633477811789561905020722836724733117514661116681587020142304678019098747709758798295271187038216006509454193571527618085141985847201317442376468719941305924583070294494658512453555343365493327961430126711591405614396925410571353653087257259830043048304415509548034636574628461885654427849320022632620833070726721416105042202871578395985514678732565815448978540136400822188691398210149730324308281848782002866687432065988619485102115678128699218699638071214931653388662997805526145836576177604298299275342618841224258052410978013906228455744926710398812632380163174123191735971611526527660526245646777339582092930819094110779975933710977765315682110802803439934874724309078114515014633788962939794876213257051078063225373558222154896111805727899433527474908238174407720732985050469744914977434625327419216670133072561918397752915087430820747274821310140323967530059105038761859057968001796830484370792352801978405027738088217500242392419070593732588358279466056938907932291398792499565492470483636728455450959500389842201313571694415465425856733590185639924110451909914453415720068574093138085740032227510154556215217740979056718283494186821795606887120793256205397806436239364858192828739637515994294906546375879089887491567079241342417955383705159424452187578854595872088321358701763903177204956587722094239632988483033568464934342112926352104311848687405195886380554709881371492128131531056251657245221166493784098241362994304385128583441188708277093120704506887056362685206956518093465901550589679278065918343476256478747281416145266484076786957805084930375593296113138230080783941889193709160262909691964429964330337164626550833185002156453013349173931583392711800198885503404723926745624171113655767326425514753436391820680122223594042555929691385708469635046487693417276419172478585996293004860797319063596843036402982040229125626742088395682182212517888417240684029990716792349047946158847761090305090825677232529958605418721926789228351032339355214101317307350657497307312323499701686489325947180233793165097217069107466467964416072113427042428848449900415932624803592199190570926753666418416720255941501330958746475349203799522708451757658191371644918261170672021045073851935814831036485043915694340154339595138924055822696836608269097386793391094464797752971204511317203309314897503650217419579284650245230618558506501636544404058329024758783815224833587511114712742984956165486088409667242271613497796370659977633143510912806060506322624948066384778802238560705417172100627651903360773721346298936709235598520285743902198030699297033965081525958174336886828512768339999379279984941099321647093611987043626079917668596299208103017299995395357096423742517725822873800956631485011138934596525578675261053880264256962046793540212661702782284497332865045236326352722999753743169826505574592974987974507968107576355184406087971186636607378745584290213563303685408754320929330641051464757784035999751822570249564713756870021534789636081911275365508803854039726164045100749334090943985016011024915941590087017583599135596933265784071331377203075664798626072571495299160555440157857326343223057081193121576288306147845510961805640004508740173916356642124703932355694003972912604023582965702825552443363287827098843615497636930147752041142109722852706586748686011815415283730382817533265305723326685044278290297203171376157790880595659655635525254677591369737883676573638526726783146153345678039341621756872925301117304695835331991783770965816100740705197177311148550364839118103599981420122582815564260470631710307573482753460173554030173151868159124150349242228106236850616382506712507876731258140943266216643132097785338472001213010126751043245643012732256706540792423698826919979465702165501554205861262506909761909055942886185734398356730857478213329455526974139989652141131377463436489724030602022974311693350531566952502868535413917617423928718983493879742417890317664744148473847321725766711520288922434128049989972844004074347348379632245929785736456312333248718804977129227692830769827352424967585748562984164821641108256392406379878222323251365129816386383249407512353562003761420636949911584366574156893056827647791532824859654437673221038123769398265165322199122299076642556602977524138757340117474009984343812602311081352987308583484045382991612978348996236139048537718752157378060820738482646678009844465605760247341787409727329833784559273985015131145720379773725249464971089400604536984889944677504247717760981466925160372962580391033478074075168989877983025294823535725021498212344108678750288807700033942973681792217715287852266184396327084000674829985410930649814489171489575961631629828105767929367676255593163840934300212938200917359464118180247992448774398697020684675564166131297779571581017141293791531315180451969291716221392045415884539098964730892625708625991516850213174431773784867821748154005945273635154817801152908619585403926310902371461785976344085677457496723368922722018949578350917923563526396429263841701961434287823359271103371844785502575040850460259278773969275718138585726021046159416343331697656817833988712651355502416035056654130208262426656352936271813974935860208655714144970087115446366308725815222955864644722142094452235499608474438807042036639273262231382250047347242132263435399789120923904030894640504910853473147087664224125604378721660304705366758428973514137982907834890710912715427278498723378281224611605417560560546371443049901788094643512410180116537470021445793412418641957628592292844199315813283816480858238453385588093914613179840502164959353995758225119810900929755203422505822021093945215164562224997963753762911396457119542880001986729872410955407963752436551291102276519761681502143054502796131823032507942473614212186602757673159214740450928526127004223255307294669864913192907066763689211898148797786792301101708478512935588241220781968575590731322192743508325578864503232418784554971762977186328233650346057768937031312894067531804002156515166361127858982837065064300658580617003423367167104313611388040171795601303241697413192487039451392673067391853861336480545125008568087608437916010378573637506685615405725071553943935654894633572788391347713649258894260930312560400686483169546519483627140107400203459038099278336765980808564291246129743004540274388347452213717337757714314152102476086817857337290832635440229634791884044644417389486952101709174877624540055217261776607574125840168349142311750898454946888843910185034550713453034992872982412245823359101151746846851532804528359445681132925686788032933750325142030616962962434545179732107892298548361365452971619079289048470279941721636155618159697489352199734752406034379218027472928160991334610777935905832177632715861288037717950186017120959090339342941379520103547403618335241137403836242182707324422474992224755791883159155330189253312120188547220732410456395596700090589290810836060050992955633477572091444385590103326599043651082598135766576427319975172923381777961668048923003917033737255170285956750628316890429413539734589356172571245729051877522115171294134016498275557473301339674954801900165299540929876547440690325447104595793894082518093248243902567603300401409357674428555453488081194748398196470590035033007985805558574113645289088080119768046124677894469435948191224475004426918700989336039714174889998006509049882873135002117735517885172752285384580944732346408318783804303570962145949060905617912088156976036753967306341593413298251690229026995908455169909949939778026067503687284517327239197983740082232427989584816442741029418734353077581533614133597594645464165941256953219246705705333397442717186341953396362803602298494503419895483263206802040001869047892923785251635808165740458087106972689568319505042043191291072468425644691917981205866903711639501183720731259234695077331825388613771046520413233245979838130318687658748898671326893500318994239687722890523964309730285275181880081919723047871463982192155925011425428982721778125795999759567076210061328336443671156095048024327258633768999998275121549476068908305363026254918903813943238601744554782598016945139290770240255585991403576428697470324366825683662276040102303512733996864502074171081379533169372813772826870971891618024752343620362145134557386221714416828100428898764933715249624940668020643283865744486540077119951405593623117212178091741425258443658032461718702616195751653869585053966651960884667916642124232636166729583713970232813042827081188435027835075652855607189919536273957025396693128713143683620010212962872436320381546560366250931250224224924857622249025464240776950829344080454813904881092471557892492983940980039381679372079177831953578204126987358030260039254652327345426121150070547402457620692381734070166996835580780910494519787617166403036463216362216287008854037230333809309177943359748016290525758628766581550908416540768316604827575148121171496738148365038689708488486032299886934888320884385522095455676897423211554239750542047436739741928877777824972799266987901132436794728882234483088763703401536666169664426781504941479496630451474740622726791505565216927280868818854105771137133518708006569062254209833086891094792026647565983629036551743592238822492940603107189324671028813189608670388423438168156014039644838183062976152668900703227811709070799720907936398141838298370700924469911920090961201940765293311452781213326537930246558124633325993673959593022316439595496878133197876485172315686094435081507548998689866495917428739866630721873512988118318895852566116333048453400338507356551787674339623216336693795603238512323701635185154114279388384553506999958088562149575877400383570466713266030561375319012958429311534768561013163067456711095511889527352801975688715791791887857987356784031420635765040839922654045713612603680807997187131138199767092898561083302607307451405007459512926321611556549482281408038344714175928526249405725935707525300662572310320883029323707003914560751074861831343989440542409804691905922203125672942460475370627133293271471379248056849261772062456456389474134795802880755303181555432026201695821031406059822747983742829437700248413481558281462358878899055490650269928282742372307069068600159016193340076431338220074269171286044491562146996735626888018575128680951811896866998751690524795431840021096305235854829057052471172981789103086952138057244526538113960616459970727349678994976026474083198279995968854242908770071837143742696083758922331543766299353483746372929008452331730989273688202742498264842407272670769423095375864953085595594727589261051933286856635904511626285448204912146551105365046567362832247754792950690225334985014086471988697494128819033407336498903918853124573640603111495063179501471361434517095524142900085626476266137893684634785662090821383180969696128438501899053647651999328986630632112796720471215721539146876946638707356377332821705984420854558617645078171081235251631899013137343915338953041845609879194193558587214699150415417373089489867716627137204093309915803854767944684066274551087945288488610174243610971471231123194615201876382998111704230209994607005993768887673691993250300624315673316480904461503561326957375168969823961610922706328150743622899394756512065802910509333500513745753500859854620635419497623102266578498151041353364620158270351868434665754122219916869870041730627266611634748977590895252704973784109805687937359764447899857677194393849427561713268744547872728668277187379281035068945972495390935287785675405667494551771001916721765949292409109167607481175213114429039788531647013728163527012397405458994170270927744698130843796392176125196500738381849775417709339231099525679703986950005833123784895379623542887557603629392252805357428292480641298508996385341448596594988023854613028306588229520229178002281784073726898362310083968854963579593369154260601749501835560266054588175114756563194086739517277215982726324987255962626571306182275182346738497866490911278881582583245601823081829119750127419768078581809247800002854241800543352194229992191494701413179023150511996599049365848700392867717773099707056984253069957709978308309171372283486669828748341861700173872522284893762038654296600056910267910234185133425323464754896271193728188785542563280686701770519123890594867162618576788920725826883669927238499678705008272705830361217418865411650884624770924529729699937991749269264941228241397932003034475490760358286522679271369002447276696437228763016332253941149342717993141895344899167467667838523813467135642796143460601062553287431476688482829300987514296045706071826228984574291504233404692624988184595824310703731927219828487491963287819785729326370503728415348100483666163271397310203818017080146211457551043456251931972214298746893916574836199730535742320559305830613311172376179468488586000492778472888003194563970009697117763465031059118298100468985317909184337270210362657605655404690198408549829088621751877904421640528326018747746781673065425672137926363741541192912431102094645805420489809470475257936040425033138286237773525345080417784815731394713629630289261362177983358494848162450234914464359734339858504235932762215153851071188183620507361578160470825282534824134816504615308786357871158131347278535375965529051931402378256328915154683601175793286946058382697970875221994288229365553478273471713715689628403641871776409944706731410157179283400917566734708208682482650093539910833252104581228251850283991020194075590512893614179260811113207939760122952802232554938796448594550365595907745484795247040953956203824552996193640787888415169081128386849505781446775332218372320367353507259124226863717858099797008346342607239133178613705685032842142620962083640677978907290534540634513437057694354071476081896707273028046267977924719184520761088471832483563700180509543307862325501821484958355046893246161349754565801831165425944796241934998710911710678698391141399490042359675646715078929090409706011485635846623622066598857680847811415386796356828876775973795253421652968364486057641782052985511739041484297268638048930552958805434382599971284350264250429662647629089933318441808134139078670948369943602131121239586223145602083432700989587839800559971597408619240544598239900243440893245760043504775826346230108807051822491538125261215527990934809115175302022838600125049949407540711077681258046860245971235157496598292516404991936292786052255218202726393816943720452900614311644798288970823497490643651529015216384737954256584777911492962682860380033350748412260166433526236158767560504084291570833018527370783849833249194111742550002607379415341786703328988399806788734816778881908222414664599307176073578690771267743994804080512745856993591712261385735735883304096894312713232355756459673142465943706469692541769148454007038129356085217068404798429584903232092158957744449582657607206119895636986978329872515785716868821266490026442183004454551735146859731768648119907329771252553829140968408758774593160211724937353181926170052451388471113398571598818781700979353925578502597058351370523105956387181240962576743450586021958100251440634675849716808208025697464149288594388031086261650068050551156261328626327892361372249729688143735496092900881108744643812502677619918215057501843724475717592142428183810832109466517551919695743449166570925463720855221572242688843119848690383766571799936960917860035748309880349557050984533369882365721238011245776820467485384619744073780163785941296598640135418442392527424738116385244151847082094754510697757814869604251128160037005009333817403689091939922791643849123155449222323708291686944501080548040594542470893218303493675662992522593118596212497410312864606253988000988847131003494360305827813445706267635162381026408467343820660127101769891984667909286178069074056754701915446443410404645194300743759691722100838373356887452854280015204709642297754717357635149801191148845488185445501039266590850059502533056194075715917789968045869228925269371752618434126660877168073066009929542353363902531037574579013882256638514410245723810811946212772646330600769859129685556656130836535983729079238668271879836079545417485307042499607057669482648754413421423021329553655806988479153367331157180204163071977023254254694593514024288982733966441707887673177348834868760111279295297681285091852746751507619152975997590889503990063121572552094060481614393997622788675124535771660348511877025901300694671241480158304136533615076584170875546853498393659049595860752950464031356298699934685349940710913490636929945670858674506334262913256059241049033717374476732038817293259862578384402353582316235292498488678999302390353660793171927940265955602141553355782012596459768126125899369819600359346145913750572920466962638382433703733514848845987565719982611681491041739750185259499565940276832894523803833301334235962945812063011417379899239904421054780228239677764546666582967842512854054335035232264857139688079101910657577521877558978114852814639918079963967640338099238096608131836421479407525773020480492957121627521899004024400818929196909350745483569944048394334490856347706755484763598643986384826573933719535056834641025578459647322352529508306453980416200824138687626442511261081620801514386965166443787342767555876214055468528297349419398119040492841357263215106532841947904711983917410051346671444817918960137817379723123898807464352864441046567554666509563098599781872067941096354953263066580176510661156535617063899967854924684506933451277356404727715709734294060390910690347183077388585752557078005542735168524701406776018157790650857692206162993421750800845334140122095474380954642126710443126470916688950540525607122308663917366406932194341995077977674338108323367216563804820518733027292789429471312465038771452362541775810091514007174774188546170650907484970014962468330646913573039095453829227282626083641239832113778527224849034425686834425774216515650610382899335133321516580858403217028270986080770019624340183290997058543323056333459751660064921681541024803689556850813700585520349188570373626677516647803016601598147634727919513923879243733298758477366771040949564723393105479485687625637925589382361852454136246838796758591344861951184756743203762539885306068137210893719076289537559374871902745394549424351201347472556629260336996071258358740801146749794454871106869934861571296616867279115131327231930648216215577654069017907946774744146675018616085306322681293571550634486576452923910643245381134827337887061464317134633384074348684522254688693650637737790355794852101655182781407649381443917451511591492599792234899937360260912949118867016850245170960660741270180803517306467427356791734570475146440182715485003258980520262436642890050257494117699786792550244203903458540592882527772533698224822823925363123033794951134676637176790023410640067231261863800773989736666052124114468711588708886407330849650456199174006409409010992938469583530397920615630829290610803958943478592159916056478683811214989749690258652968538129330086357843117340956707822838479747108765079739412622653765514680330484540786440629364172181430756000221996418096913817315296214931411399873226773980958525981949352144925283948006616286555644037638757147200275921863084280553555719486608807262422899376379555597725579612224580186057515009693401494897762272390796291892349094924477739942819449184172891686766240400229101380622258251303369609139973212196320197264974592673512566808619078880521177749146548310813393162307397893762127412088241085513132613729686770277916499409463694740675307796852991071949393302600345870018802290472651257795130869298226188573562812953420641448366353573478027072893838174944938376564226016077927741196485085041048458863013153600960363145916871941721174706319809111257542655967532449870594837419080400250813717913269404897592186852483794490679841092669218158883894503636900115771578022601254565858801279558742870014738564241592186974795262120696739606603578954912903651908077000061566303897729373276148851446283331679526349696357985121785477162867426326250830751041041530441029046905107199047889773327427471176322629165111410997995651906408859332448252268627925637289676521589077239501063511625358867984254410712404532612634220428934072931559448306250354049224021395426575033401614750920863802501627821137737411435989078282591205276612895560654352199723488678682950248697600416217297764590190284180157979667099970368420334757319986303091071070451409326273106050230009587602022382387820776057415687673283239478169563893239611341248728697678024116787521586543223638507099010131427235309356431148424240094527292588912502203565246611768357153510280242560212647094147934425546550366646325181595976202645384696360070719478097044188692915266106145486851160550613655412862587073430599867801252687848615613432916319451599379286999094431426335121182618871760990277085097327388960410108962856672127535676246056203417957462785020959564889051164130768324924630083165829868950788228713053356693898185427428168403377135601655647781684970620650154491483747453455008639614934624650704320757497011057440902633253837542146427067611518764390395748981529531717786055437959132269775812114529377493208503455061143156584816402413494777043285755994835659233490326091875011654656341440290009418955937386991313646673284219017932889412355083354015520362701890226075589384652977205026800960415102355851570201228972785107546921414520658806562701863853127238405716905609175526474934021722100383718203951807190071372990723002016557333655667869037423267546698590594249302185206892538838465583974921296954218397237718162549891586788819897849638852157628675208356477290572717396952975804735907482287630014225249061568249959767003095631631723256687232096544149438858465913961263089261024709261028107755571038019402827684209633429773294071941861599339433070851173866469586216425933409132827557156592349924914288012200801877135043776236057124890860588904662742253748934460837848191012441969881471375986761466386468086887349731159033963468376675330610243017874204596049920072068520144847345736036995193807051667572348875038643035847535911975064747468122865421991349394311478190010112584387537690950936753714218797004788299110743871409109545989558702313763220123534148462457934062978393537617977789045965613369536851435934411674157247281867497654786591164446254198590050941110757707393866274378506957330703293644800265612025282843686304845907283051931047373793627339521950364207252718869132475189897892933407680914237162006632001496086516438705984699314286773358957307001214987302235422793113569548779628158613255703243658533662575335447718967814893352292919470908697001617924130299654223485506423523506074922237592863771800781433282660088869947548868952666018259452834618206006285005602683766250763116265034578099797912853104088896357671847697617438066246410798489798595723671512604564074574867925315262587461966385793993663284988148263027600257094900924380502936889695585826801992090582892121319472323183667768498331072791293465628804227176197995404886426283105347170049103541756703509743972656432077382570317220378426652587160070443688666148062849858242241497070445813839925480763230286066176812354423102034067096289481772997328478029009381821613232223831932896122344846767931122086889368272558527102824971245111332782126059670131569701432053176101595971229749335951413878871530593452166107854799987677825796500835809766949966801070874168285285327441145965488417824348195965223259730793816649659168670405049497068993208117459997369627291143651349251998001884992570549454288612878589203972702906765927599498881971003201158570102975073867667681431882514422832626519065083187547125475521751130242130809551931115154255800706142408126389281288114744240108366632735451403457089413282056791844859154683617822460274297749534988960282111993542857188647601044987072883924294289943809382884206352757797335459995408693727754211771694535382511817119057164440892901800379055821496215082135744853951197948547239836529177291190868235976245829470260099473681552238551585900076887009262621304110103817333906625778465363653554386821411156583018070195861616832983860011057305348870725126765600793625913746920996436742577107596073422226181841247712260522998013109777994851058846084578763685929232389353696780877291044833938358208090588355226969763127427029211858151955105731824700862303255794777077891551330935704782039217691098798862463242807949606699443508851939225995104213741228768662833860890494300420811359189263523428085344359752887341441546555682938588738503622568647377491561256831750986371228104594152706844399364591261031146194955400251271391264561590358998510445789037249988649443078470416639728509238733436990122131806123286011740111333196917065481586864699564966252999135481682485307270822298747879745141972134597931139032155392063616618117057072069991034824413507584991990319226734867139632441044856641625425407623222616660715758835109917616147162727422018766336316148463064090458562832582580183939858901719013600960264996422246555450893681050283622755621425487691916265303956501340840190628104400445217384449606905667971138354188374836437785820180820454541104437649239880310787103371433822323644387750415622469025499572423327733336681860259129390357641504493084404255886289139208303296704483530951368204051333601399598512570445116895385949823338694629163502296624130222759042493884923432468632236759206026305461120754425163482387097201802615184894708552751507351952976466454043365139706619714332767297855018915852168649274085690081871852653115248353965690606815480979626799830249382726459413492822369497003003860205834987385142529262940443526497479696221758103374535979077006140299217200223422838575459309232683879197689958974074968168379612837996543589784262353403505776119356494199762909746371136823908101381890102024401324837255629918218259386589245194459842169301136164179784487944400369074909575172213491673123274350053760693707661925157495871115044006544824401439916564004978432568763346721101853056021154002969740189046094394579474892240399171317903296698981493640242031676836889550227348243864555759925762796013401344663643912716465706109180333039965995845533151305471320765823059192372121666539064543405703703465947121958215499476503500142809027267067322379623147425523252799615460213888276037534715767491431031581230823284962547632210696599995898515414464919089974721246363989509680877766451848245681948291422681040179908104063526305003091481786847416186684307849808517528261824070541729440379626537913037848139282697640347526415862776245278038824087249378147321688133132146278003603668342868430587929250158662258221626672026941860365020767415649716270880891164643504592957356782642622838580877037375808598460423647056933616382080921461897205971838045100861530872107856220852511418624300605725737004997095332262401194936127812461404242659159243142400480773242548081535465119208371674963225033666860526010377690430388619149358986783507026161866690135836137047072952746835061087558795839779202401551570296617761892595759147995334795839368856710325752385430717096507393559447868684243553675552064669241555620851668168502104188842581933096373667094036404871435361400213473985246309486892487966694735460020304124818436667292599351237077277429283690133009899424514031230497257672738822004501152865254822186810710536443442507672612599110141201205481684927226861892488412721086939003709139110524458143068367157304507095877440981740277802140936034891822994210742054269964775663004225188718814579210604985263136270086494832727961690292338497107701539380970599168714439677708391943291522804444927130541905612828980230666584648439385559044464300244834974225711184832634647269006370744633871446016544303560594452970382621532075685677858972103483981554318557365738155122574555384007251715623916033592666303799475314773777033228816397418801959640150859003527162926702835787600258337668001436437391315386354413111622046180281560938552490013812963910388044187984517140521170244171295242572357573311079740373407390830284215651089963356315584425794522040146930278213409278155220425833028298576868904518867433315096956955209828528907742967936410286417043952024202965129256475488865079483332674149838018368565717423010250715191658367531677726856405782997962382482121261723247786248362692689887403713170479894004679371470555200141473693041733646083982682325369630925724353996474239309850733444017961189197928101335186804940338792722285764236163417924168663110134119733146418985665678341999114571174551299729209327854141209631586487982112937038179152761307938259990055449390638702523665064467054040246861498117201688526535705479418276886113331355638411677077569916109133907672066518055021399326794747009253497616722627434752889712650639932567508269044422581489168666289605515314343390272621238358186846100834790474448440738777590293986954868331000990615655733697068148078104581054839664087851275638753544416859136346184258940398672285064309054631069330392101998266073173527509752668640010006694705414237945791042720347450131369489449843815555009276262152147465880356489201183108414843401383122938462335742138011807999515185609150492419331603554446913179690920020650743205346184030251185371215471432354326267793912926082286587826834407418782705913401227687519807404220354496382091945455963419343141647949042644436390237701604764114713970531680849127110513309893373978333235613861857755166900100796985357633417946626587953908940374411979344255507619471971934670723968137553130010577337338048799318072153700523967802154523189001586488311726581429648673256858754196641778578783548089137400875231717872475140123771931005716903825102315743476484432226951775584248463723192479812906595583212956538312459419871598517492163333479522556770677611543744272820703284000174554201339788524833600510431893589118551985743511485545751435273551969692006419720279928146081261110076166455831817948628748484316437394697937617040361784646256318837364152043791204927426111202048435417061762765779014629805489281261108728370376314544137729906577054885968418019241587030879516090576670668523775612314921776075881473867267702166248482986879884962001990041206954343944176524747655132541689385421551799677415459404292824781837249300681526223648044929695214159910680419341104490089672048781786314884903319502199066693720332387329234184162435940903252036522187608873640992096790453536379212958405195769783774788742291284754998483309601147194032479494201885630794762761754625483228267629692155800364700879078314399455983045637654940081761429282145808366732679965886891509853672388149017272297105148171831499776148420115724854033060506187291147536985960415010662679727717519843675185907868032984909853570183150340878749128817283014161054021975091729380626270947432376523251646743316584221162192411739100351146593388792544921522977311123911635426620268642381052729311464600092243807862395856530120067935405982365374575397249977857767378269618061347094596386118737549202729633895371145748385423839902036530501314302596848604451046608073777511432401284856176737769442738936389471630072268047106689129961572864761835000130371171337520577544707266054032021840173727469601112374194735258439913473929534754476289247493758175479411962304999760866734404324323762664755024680301934739550986295863289537079332253551514819394920023622689662845529164682265449756371783746852588241009450403135002299829441537013879431074859788767168537772784789542731866841946879660976819967715428598466214654955521477313838580542554333009432195766446628964747794933896369256789263832509019098302361839998126009043419137132750925550216328973587019005473373672740165393274297125209695885116211672971947945597048072883866339118181216559020006777502842747258490802443381154175035154943525536157473270471932830734947690782338169597242959224406610345225815604901988273835899018558919016367648522901243717890275259811602106276684051291389884468690985554660119885827191755882986745886493948662184337475767058211139027495633244362495241115539277857405551440866538873568999221470051401822744072787897198786543562972642026175579836978872571025192214874525530511184642435457946110317679476821857353124799851160851872918867147903329109855840539856872728310383402413863574922367494255854984907702923712627492514427387590127012574330589558013992785474749547682189556381355272188851837520300332996549236893301101381277244103182046560199114495110667496893473331147460497352431545676344852692069734667247765661226131002741587941858643432966880326488237791804467504554743283031622660618575909278083256690715371491143270654595072368725118231328872274821398763888095587377973934844595719722888838541216135461056328611100780007002458553478439836281255983654675329079636993346750352963801791205355141374261467269983955075229127365652512613198734274560798502928492567792172963749608292827718931326006121856262219455141784442946530603768448450967486551548227097567307203760154345400566003685281807981429140691593058678564885957421008255944318141667455500665809387342840326469086821985151855277860871461296338834491695795309680051711281813032482306065217416069406225515103443746398379357841437627934915440271140204024861229825724204919634643511786376348270381897776614666599341491515010179570851181483711056789364854704196741160193419127222497850942243512296820959646076895699012499185027864430403004724850381113305916408690000235174179281248924025584258370576539301330496390630258296762129869603379617140721651997782441978998227382272083955031062499896015882698667166964215004012172455950277512592787115821406669187288277291306613252313938830310340336674001938634661761407932817865349402682106746614621228399733941695959310235136460524137051424800880371046149622429489687297675361407650821177998230952855652996017282274118436599937122297570295785407677801511874212167986159288905587505489505219351411925910471832297708064850502057037924090885158256785034844297402158478579947537149693721742298157985391680089101912729092550846801779056776001191075066587603057411360895738109427760847040060074622302580184991154504596367560762595237082029964932640287129159553276666440874987553897787509079246929071350448778078467038290810780030402357438635025038553489589503460915198979403748695935464930988777114160587640706008406888621546597882865327902333364677579896501484447764650333131446216723700061922964640849233144996109169906687390662452475994526818450873446624282006718106336955643899407999216856822402765253438678870550412721549382427161708785621128653474660430421789870405825824965677126598088948304572181541614051512755131751374278383176119419107856440256255279530137606227238137745312546121369175447776857723896030168995450748690689902775748078975300272754194952591296357079267342368119935126905512478371580943697302848704110770821817425684724772509592616851409018439429023178907707717568507633434524461084911104324406877232751729631577472794875724553075770720119405753311549237918694194222401557257911856618341165072714144269737321408258956883152760773735231010290511574614499049900081572693967555763097633973744061506225457533414693581472123535229794420427105411656483252153108242896797052490118146779200343276480947370658739054071152279226205646001510724223581617244831986978631426848123716067416632527684734799278151317836315228240515800333503100372119559059526603586645527218345241590306307380917420828752802126946996523004569388712566993961625803318834420495822166046398232214508689976498836419707186099291024107947037145918756834292803562290557725239116149110215633848340188796744591217203332108647417139467710725479471787887942741538890960472661247284804970879278758984266794866228836879934396925836611378519333029521424465905920874790122859767450956243334845155607348222015796858429697508731730506557361700243129507766133997293785154307357582811976821446310382604494492733854663915780390137690436126944843020128774043858416732110448703241715051629697048360070570876962237984519261058666989919565388787042741115277570246666359397685078657952218123393155511160338054879728178190831890437771191719466952883188099322231508150378501745565617256408470044172195682998538640715861602389177425340137950113533872606389082921739940742010950260800747188446172090074530734186364283983889562147120089979901545085345462619530911599288108282046631029183269140341841430778674384705856086267621703130742197791561768536426816796104966085260945186586330192076844429084738752316141255320723493935229496619901829224654622072749608123558140953884903113401263664637047382187993309952513058764716376765051012227550027050388280958163734748928153677960313015892379128448420037928609942624352425935821691337731767365596954528384950636289862740870929224396265554447039453324939860881238828094108083353543028951386214612222153206418519962910460860283871162524017069057799840417701489130349417046625424888684924932910238414989065216275790728903451933912187318540637473973469489284312808049063549833677247687356621739758440352936261144096851784813648910491539007891443715983236939148958796040727770563724402292285032362886808052895869143676655725759588204101791227098508029952127117442273159415487363553279093549205507278847592434241909797910175397392586647399030308589661515589000529991413497264971805598410188273051079931263247061442947004001109169267520603531987143280410153503048349914142511726503796023564151867351161737562795566630317922172420506467405722372677274898046799217122059211546865178970886857848716248807656191703300570135154112963725333609008522730390033059039726576827035297831568982213791102177012503727996781125496849449165190659345213153382909094017684068156230708821440768037857910106578001665309693781555562190419137255019656679365848756318956006177673632054246428938240160059779463453859857938908514252930188751398698155462847832039623390766543321241733479249854565056263337412977395658358051603834391867849994324608102168522186722639745223962270741987236287057274472761474135525978985571037349417143066121403342603824515044311127324018022929685469747046179085550036741015388305052666615981268883867772868137676957692768950543946371209134846718294752974297181036472348127932707874633248858950886748871555478796349850410726859445823151495726400992059151799431019146112539097161912219002719458835856589619243368166458886579876239441584789635616580432797679909426677899114416680668902612525328821671634012312106884350016183479447798396207943423648800241471478616334299359529791766865593117434360642997265251021909672921910148689111847608599687830061699088367038562326601210680494978570070766233100855525560899574549205978592843122006975054064904038622343744339381506242343075622957158633826641095214389939696419821606322758934285547392662593219841593822847466864541782484878789078659382602329539459226979580283633309415914693040590212808058735874690419464085221313806484887742478204162319122023453054227937086240874754639211887494592308306098124104981088699422290990504623661775308046339135390360951279395105432646507361133956588082684092279919979400214616323257698614691798634178441806307630515277577260811170287077586382831909158098003944635452403466397771214603806218125176176936773401409478365169278342868247378273299436015244625061733178266638856027421249149765806122685768537617722771172818386386248234792037790581934449462346655155077292008714359992845361717740733542141951585216198689772144016181761882458026682565859740446975890653252631055530419226455113550835858311497876396546961173848056508339368782259099592522404460260334758826774149044073226130618490110475076893114209918682446383848296294041644103292940342880062219441508013231722687675189431805971469987536296259498416751141255557934630341758428201796482431779107965641898702749727893825832000871974803911489039385917888249923883555250612925510067893292449502382901757465859353323802328784265848845078114829952699290262168205356749801469138202470658944811410741705900103572609066659136073799521003773129859738451537149980241053648476535030830478441845077604178643830699422197253004521065068646825752825286490110558922775744168454780473934852469753556099734489952924124063441733516939466475720333078877576464648893238096056643324438168872250600755009210140971544141553696345002597787114788305768173918332572414241839790952635463202697964833150826372801949462472787843889252182844861795022894692885170137042251109006569087238339001586601997576232762289542095293441312512767646205763880998505261324178295551668462671951719130958369592443981801926550271101358463761924201842216410933139395970150628752347374919684094675819587065474675247198871393994255103088658557566350515046157923112288304778680103673732068217073624023347243864578219376393816534934965938298607883710297296847441893061782559270203565315411045837817211388505689824264926989670783451622224208865031020241427592588528229402148987855789818717713599835173620015891064054094068432064060397719105590519374365404515610399723115982160398350338715715734050101408954772429270965585971472423482707579073047041609697994762733380993218836397053150515584655003414828534376882490885617821822052574917764695710475528845840846725773981222998231547084904560318477826282733235439795666276347263515241839213899786112512598070513026419270420156296189107198363208853176593343189280429937270851482034094374621770950860987168423066967948484659681760429463097378113555241777744220757331418302933178094913517706722672558671198382861412505298861519397554670183034570104964511920028989345102438925915063390422927718380161901767157513002645582459272438382556201303151786761833508775947203491077292765276750892776724121028099953436540919432220452755893615886639967575809694524880729736578957077277872952308895408046422150559653630761736572533182444252748744218526509881849533665983161756806516799001974082535102960103730229884003115644013946510665544475831177706891955347808770459804945965081948039978975395901970214662398514775078035829739024222957772960306418228876072747781484113649699907879190531522867447069886342050174942550667700993650721866293734727972278717034933088966476407669084303666568190990293640483885696371658028448946453221947751578999555558333906019930241645473469802358875343869195734607489728919509684305995012521727248597621945644880377526485861882921937531807726545165298733223837069951451658508166461593143319179984522197250814440323940670443709442851473555030340680559953203382709927915224796879850690666775932325218872671936926295314669777370642619366045704642980692905034547788488811654927877417940708359376644782472385168859352983247398914214950642828836922646734531546422583688118072698372933093541105977630667590620012975594445029903498347687083549535240394327718500852015431646087730920235558106024296481658207935510903317600469999691696725057698104703947765682188377895790927520882465123727533135170581058874613203668510886316015176842191524293114601668816870831854858873572709923459111008084420554188295367941433798985750850890979586501420267489250633651824049996415055121519922820375330530542844599969067902209112366970467130872360680424907558397506765257081813938472307339366419199540140170713335947205048971436067088023117770827950988659179380403624406347756008670917070703056871585325603826138448519763256423595227279788235122403476620850248742536644635094181482865486238493928910113109719788417295770982178564805636749146547757637156291128918050128410182926623461000075155597145849609197701723615853431555756607932824698069907854691042695919020361882336154743402008569877612235515160095638201960143661781722066922489786622818483357627941040300321952268680144086250796853107441176377013499811358766914860353757306248997714889887471660695875078806105109377909082729038181725822542234707382810580972228238430755211055268334903317915507385978323884448449670710208085489901899678653858157913660593890808623240861910637540466309461856041213630701470839640558665249518308685996015512995514100892980306531734581731890009909518639664975900865591492510601043238744283330078148938357452846421966774433274972047765294951620207408025384476383427372894545958813028881401577619907123768401163268705959544583994602687295842983124910629218367126832404454774103320793151537699203942726797202946382458517726228983070695023453919774545147462765799697355728960105777243765116309274349381365742638745480122730629576177255248315883520604841467976260859475073388600561540357816395847321051610574400372230665441378571756605434658761125961747309782161600929711232678904270928000383953743167630424251529383065675939840803351519283278318197048185636488255860457865435504490310981224659670581385904590327058170443546725793754151327136396095349715678772828963600304864162752542324215831078983564026920218878729066260937133447302857673756783151540031484929594162123172704916966989020541772729243775339703641112030744895429980547528045600343113473707593601953484265652600958385500583721156944159692823024267923804392279773325078235478484170949066284092323552759154601989590022253226479680951632234332698562461844489273647371569166785261118073525461652209325960019158263569777121852864444178602531336613655135407080586109525959366897616431958695097520228206084804004934796592444605347887669777116754095686413871003262943495215235134696202591119842190252954218075889994921767828745093133018349156525487782091935376178477044150755747629991928844805370336582060027841297957826664188598885202468177441069863676081640746724374030712011908941723348623810487411498968527603438033932782026066718032499455697335702991553102583326861608868020014254737361191221951427706068676177512183646397303203720294815139516249341512700674870905975398341395597743981269190709369887447976744053763142255911282574480467820119410222334951934771244848996533139050675550000971134694440997735536513547108658139935083350970382010891195498682037887380449684096171442495550430481092059524853180604536290443727096482336256280261498520128194672158504528227906421631035369788742502475232980839803189575102292856800671430382789129923012852503318822832234325494508893675978936190982976580812181906813227334645387851776264297126166024957515319576297971528128607770670927367549717820575246701838800263550610717899099448052602263304772482625467571216364882265941850581405552771941953314806444791346916941807364395801910960249435074660000308873789810303054195622016358373764717708748100755469167325050293936120807109008784610421327665018304456028500056117828823560072750375134981224978343126945607039618604284228527667960641317580453105061896412447623650242688421125925758352166485854501474727216227629309453129805475972793975847269842821992737474678282473496270784564107230656663910360683832914036900916399598339723660286218354197775643939893110802630460091623412867508194973875886418663876074351959874522912766889163841723450418702035034401921282354619922410862800921800947246907638049585953770118040867114770969131275243924223957521101432281447715696167449213862842907752172262132796923000435463917204961697837776050788611123952053615505659019888598916483558478105785747779642029624189369340337922179389762366854795903054744435753375108288833275681486411851598484140223847473529151234325117679125745061899254762754552040646854482632663108957393842935246726790540460957283167314398770925036916013334868795663890490306180805567434763618183122425481991679275626802249844820947914007859639260905934141784522681249676718688954394731265224829255720438545499023015962710415211987291085702049827610684513034204755943024518561401076561070053246347101458653641869307191464400223155963344160790565633649296571857793248163200307304120289097709868671435389517524429269003432596351870055336131473792318168105063813086505754259647333430853103852512243583634113604395332880116101009323888981747653248674491048550933089347805483053552490314846206288312393709905311110694728332933870933429744393524928005891638834993575770931355971573815492154592061792533532874084735421714542916933830590472585821133681334554391495597641961672240538685290636444242953261564858935200828188907169346337735683264474781071299427350094282029101281624125866591224915924240765014934854418225088320156275106751573449487893699798624807185003768029718891151673989402195144684639448722869145217368848307372695535173195421915537731050516781995350920679976804610062912099713568163089062784283236832285984528073337836999109482247074266088977449068430827961081785952006138244421840595443075732556379521987172661310190249044580367425862819829840800985385127862650920661480668236110326444851534091102215924062516128969102895779319322814124713323025592047376055433026792397046135875870885020851714644464090059589859639540668338801410790096189084055170549768239618071369999908507628976066706522621082286677896801705447455897196568364614787364067394936716977435526469686678325074883658965490220308400952639295425846512510764254779053704960777285138008395911180996595727197747346364016847667687616868506624060725477058326142716790813807557754830840834249653174002640839005421745177511418454394528237889559163817703322665863648139694240469428016776319878929300776964092552194860419408046150927933977452527551375388791693153129297061699890478693277169940838207585780738616395877733739960531073395868781946395430405265711665412051164449761749183523269797559084923373554873484869972270887760352203317027173692659637033497737919864238922589103234502485080839272456330230814879922458961460346580405844348067976249165642046087173029588058407706524156309127850602302930923721469049551825422036271548046494281225901276876122056543271172214212858456632722545514975869069910031722569245227379340116747322974975636937448958346970229609775333903995812416127114229509422947327002720507946660350812597058926009848997233325600464038466498036315537894560476637563557304237910007218597842835621328414663250435658196559862891030358135130288844467705135400182618911597555277214986937184873456394318721598075533725892991512953369716480812820974797573487917470954497689973262958320582422133440470216452944341746498038856893706425419360708469196472640024746199640714821936336292143323453163218754868802315315142160354576208745838932608594074754447950878528880648975721158523288742884407426216340867292324402740569869633865540296335443806859831197882026159629363288480588208555337426748377132536395638091841378047689973472915453283746178082912885621571835530794507886605084964071254907806141917542313825758210265505019028333243222816856061697225424840896587738037734401520837089004782062628154938660458869490494570808883653973214135692393377622250417756509912697468209200284041985199445599477636961706965219481147683809845046199465205583966586398710624303464758180292036542994755483199965873718781607512445866420706674404764055312566769904275525359498683899855115363559211989449210277767620336014783469409093716752857130108419563008925222913559700897361998182472795116078394054096895194325972139702885785662831667413965484699945086847865028289209566138611566326300046100032551803367715276166055583478960576357513503309297045190280448122431098560066252979423798731275381777759766879867792707705918129694543518985383278606205688288509924946666547899609598634886887386179245457350166213242508384483064646152472325414893239831193969727471713908618371388771699353925130452398824761324364307542191898478908759686515823319704254685074561704740136195434567282670480319341254536286275534164257673916967196772612237078249877093670585915166419059394710743597156833836627813343831347846851241383734158392836944769255693332882321512910026258685970307475697806806679633428879735522004023930363711829067161311053701808405082319128092233896505711889909482644788266528038048590611171013442585417373291794919273654777566952385678530640838231087598539561945141826623448251969333127422968603693800498921801824068361537624656067118896382377485171266598143903367353533190732701335778036832375889178859805106648358775556077932041137622806674545735146306685081472574435525399105240598657667157959055783276173057048157346732385442875814555154213818157472566210547021579586541113085280768620650293623705655755389788192549837341510312311872069312696617585764380264840664437042435591310177808038458124627014410767045407876867047998386019739460397827499436469364287875783302227770986373884019974001364046155000992653618964903282985072780068207624581606692842650930949668370445989008823495533650701326544357184651316627162236628496197640489030483909688082431428223545307709172091160970278950013728606393650367923471897171508593001859721902495837448799558579625049429857759923371865074473091636253874854069124275676590597656169339475922607764855720003450672951254694676830218710822343775941508470841308936088197960355439884585603463066437681587745605672884558775086187402177140834890581376901377621871404706027268138030158540649017623086752513213134629395391327645822152617520624517251671463568815725978224025302085404707104348027742017964659937546072834109095510970972372007683550369296748361910526547843298263510018211423719900322746285444189102845199546787702222881598524034257131065493753869574391890747198740920144763596300189350608668657248136523436630632261053302189183325837782277713854180173000603053289714323141114315520390070371328870728342868475046233940918941819128459391636492275558483162123736097223634710186086338436139276050179496092767639571733733047840330441373711327190010204389666747654616828208484577664670944170736567915890192897653054682862026268219515415218623302846980040123129056530356870257664386337780968313649491770607972202245232484129069430533218739762230708348412316530074517455447234291858921339102293114450340172288227869717421971864573468255574714618551068589730319121451093282906655741606328416319993498927086461659800227019897169741360547813943871146715577559224193964814742999874438050748413568006794402925115774472727353674539129084064120855221775875707120490360409899076017818828559457226237617232016841383521229620841109714570126801041480776766247164946178394248655875744578004064128107199121988142207584065436277829401189402618598398351689337603235032233259150794335835845675557551586149701995010124955842862040731765222340836461628689650530055939498892100907724370902442293991563009470669325165469644045009971530260339740981685909082236724007795104756883759857319482304110673016420759183660787015575234394458685977769913839395655302507148609787855211342569172139311428515679070056386066223217019268290680302856334837255709075139672565668086116954185282608200401203697978577598268423238974308244270500891087692656468869409450139438062539777360293388120461436927336315264453536080578242845230880405053544669933367726875487222308423796941443241713790187579999198217832456044893032217711789368605883317326212442223911188638552028453972586435910647264065714912997787198150332508987097532651791740676807271225774791655924640075928375041914154351193887683816219155115252282070917856385698909779346715165467137664877264469855123099264291043135234147090786078308160079747228872308098761794413177015012447712199670082701296282519359279721651814016878025418561395346585828608889590570646004578107176450879255256703354562718774559376725707872633911565900578393787011675418101456666689112219358740977299936853877307066979072753265848944387704506708256313358016809762532764788888369228009061339979682737565838712391869605047860419113815696840697605380186991039949161650693143069111813963977032043475818825014267653526465604566793392656821779142408214365899272459503639010344065833325369185861293213593461600990025854460383320849324256666765371306022472695122370769138683088160295005372743684234593606971142978858743499061058782856439071821742436931925189156256357068713206319485349408933181767620385599264324161895824321304977955312592171465494344641286880984815677830737461892324328130812221252947888826316122562240182507239460438128976160138861716972533644241786868927228089156976036238405287444510330675348623632415876903578639644306630816800775689340319729317689046750164428561105255887713040107804087497959687021824210321232273559110993941219746313673720658787368218125059229047216386733428890124307614555637325729347526505916065451900567241955566646293024232550423308205617040512679736739253619547875462727392244177839713243000362471450739285776822765076348982553187517300610256976144627997592497062538892478347930124074022665210693891465897884276979079451896608554527747451276517582716330465331293970385914512739021151452560625315370426181035584609788113823375962968990088871733616964923052916033356645059285687231617568579362878701145218196242742142517714985587225124916402879033467284935449387154323815496539204511354845932642564747570026920543391210107676457640827024776446215956813363379704532303405159892599989950565564553269562903435285522203299031355646678598026634161653815618548162084572388821372291213315945782599887541155317534211837862272948194615761732662433969517869302449150715562957945690018552397891785087235107354082108002357873482879523299153848802479663264143650181792893090690531377922684288140056905897560867134256469616985034075256030740584892469709890391003335545015074219566520671104721619675050545600779595975869632974292949761843444729838682928613806446249491541370949627713448368522658856843321756051183270116589004611617379407788233159602561520822818687079895324501881520197384184527722756255728715195099437860828112108440402252639987942090361862941452284520726895647669540917500900609631259421257602530150626494331880329554802607331231151522861183246339292669617561902751537622091455633316253553744412910061092934251278535592083730384287211297154525399322103714936584306124466776570279930400400296315646781099005736677731430684722532439046926793374918080961304350175101482940353738878885844336058202012400952894389767259365480439388104709571685998822250629820330279218925385351759298024575183676115910021789202512816778289685192451491844379030777591924887890714589322122862536268134331436825154778867261945535258531306404651204905584080642151320470761651825933580402428508390113634159373813600479030990653237468514810243299989405866653650328375250740081210106339435516714521941702163969456539800433918715799961463266399268968688866527518018687102513253573670653042871236432443128359081448074496183895029226955960048200279184955179354386156206876955106866432784034078656831872140469683115650488434688945978647836100966296929323733424167341712989039746017983438464483733450381870810457370278833458133022546414439998783846825942032720817579244449130255406734633363055039214018795564329470723522383640055718286472885409915771229963357219579171128468515508455416819795137526479503080763160469512817307105100316314382610385239404139051581955572820188101271299164921156026478674935404963551262556384995478472372220685490523422182047110854251559579240459473301058459108053143109356379427111545795616358311512932875438814207912231356436006934093966706444474158011250040643321745484033285223286002338292337259341109975769017974959239324355181187449523522015317303859192838721794681730783559617715392065021179421666593636543820109468390703844906014405214538390153975625930843167106451098984461063317406934090166033331458743427060461956912062308344908869485374943064712265530545724657453357896414105424002304897889569831188889708683209629019475923857198357221012985585664746276445925546502918886608582206795959314586756681168140657791322806985058106095153627689935442257614274711128636923093979990863024025989337288458038345636920668533719465071689621798188752976699988005793092942269980707244591330946446864926571711688575424546112495510779040855961349837491239221580199145180381030985627905458811881293094675152790955468511103651457493074848429913055464270411225827954955139092211477312609871846071713985142124073556521684120295800406589883155596231193035111208851283114414817167537132177999761075200988484693908544666446191818626690675591055771524691562650041630826736834870150446032812820029354851490972111820074993625808103697331459059426139277069036878921771182709715465715339128289183601665431471780062456256377934511948237973651002261542269703713357918790911937733951213242221794292771460440471213951204449320596748001906026129993960028674132009302249678412843890844918867513974137584524536830876164616048601043611607718354055602458523333832241794948006538206255761359163998112865928398379719963835958470011945585214668879715104976362068499470143388346063934340881512235188753383932280671428403742747827522048104540558791007687843652925327279096213648650307174055073441793579350561063146266506179417039770574188340260738070839485983430696576886560616414301258655803219482216091832881844450117581930584141597413144998417061194291682153831394740716611697547116537127769875908314113832509979146851972236970431472564501840281251916939882842868168554109250982630148748443672615165400579061815871278877640888218637117260636244920991781950492529139846335126146011898857161596877651089841984924225434161568229643536253791361595424860588051769268891129804929184459735127117884326708082359803415372548901671022618130202067399356483084838621272443816740471132808793626558299580413148264507315742560440595285432945370821928701009962854547856579609028894377528797939339894229495426481317476465131253142530412082727585750766058765350266607653506990741750082459089036259793575773448836346911257220529013309398991933447511294332714487557558253648051327367382745584517702085855009583816838448353451028221089465556907921719375672040332780798521131820852588669033486746240353771558938890932901622681072747544498371437151078636173169310742234952900849914982009954367552879895493693744475215208747204802707917314003719251691010696331848456860046878275944911290571843836901407327435574083151512769377226121453220661006983884088178801233811949167717742810842615108730195768961381880438829075538420948952338442140714499234359867703170386625754742063748140384807352629754822513593347812091350022519760521972407982229973272970794686555977801717788172773995654294100968086687011747191054925069752820882611508314241854501606942699985147657717193939965805405021700162077043799993550330670251750175267707901833106189245962033608630999970620097206684834378792233366923946087999387051250272744905753804555632801831930572308298902306918250529485980831355463936825789224630123441303979532922312789072123131476670477039187465510922911134622381702129290708505336644166453426961704269692994614612850100914842786256894581372999349328303739359345104306126304412916462167884082241989828561412018000157624976725672251268585508655761937007733729169010269627915117435661644012037830966312802344458774723945670134866484322731933307806881735357654490907296153353557063542342694871805504756965515379206360958561922533759544959091021194136123171990851587895976932330944184456607076844094169972737797073656814298572679705735052947901245023527802163097262047590511538451032172106887378758297333024894461420596197007558519554340006629766210438574118413649363026939220459421758553225648779769597320422174083836855055482628217284265771218457978212312321260571224691136885009670614078253542996608135202783784789603617428005016560561014252240776840621076125269668675118552406018068386206700469316957416273359977742629052857680839626631150912984719525179785809699574384078276239711812804973006041086504219813931351519963219786271324787892502137034850855162155070725619263107670530135506882644108832067274585976143162918598993287859946613287813363971666244602216136085922474269257521443041203774185341976401505378842613101424773211096429167867132844939040245672006945876828992770497027398447064999264130761226015179507026332331686802101567767157758697190466297780043421121008376379572936845718182089922815536383380623675997338359093949553253659825834414893158671724661459301606658384433133125742638410190274944228106230284753984723669093523541113014462502677386915433490447365324930035665869380562180390484882947171215562465453255123768700124951757449736431087758122844190749652486055362943050882844294626465107632766950913785255171353333756612380001897174377256942602424055647781577353869517144737260972193782917974349997061660950332072867841198804479852175355918037412648143313281727521001204445345972303135985561840200652940515185180150259338064251189025274499336435050678897163820553170096759061643930757836342935323869172836084313103888845900283835453440131843530066494281750896050011536739927465708493156891834724296136463354818364230121899205979591249642690419894587931438655664192724695607178888871365650696681269026401015175179936811783374475460329856143764811936188439714055053427565040687735637786136202842697009972475912676161293979785050229339469862323901224501299809940858141103829865576178315450395355624037554280013998813481942122428101273567535186818963798714349501816252369324589610263799635414822339026160951949120394523691488982289286412189379572771981157501832285813161857306942897708778801363196816907745519434386394193748414049623284239252602254157549979037323551715272454544930279773478442910851279667301036659376978255581661161374701979410313523508781267620024271232005123046357708229409292014622720583851909335265050771847517557743714971434015003804772269848238643219802147366791178928611323333920662003234130109859466361171686699674073811693303899497886008075573277642151549233674634269065296106897150240082915541118692647200985799465369634050448193542101456229893438997235978942072515579818968105459778856993335541997215355456841848498134996125061404678180793258366280027330048612980590473822072918405829103756990443299181782823321971259646528963631168159649525994944267212462851749167414703109199361295135416995842408649585550906602105987547853526772058369518556082201967850875810503392518001081427941716259509567141369938855738579674412849680713910230224632680935007693009880920215454338542947100488119635807143783072359447079208979381467301409233580386465924420417541787609203142569428416003168362199007896284690605360387667718691611988884479372793988282795336728302088957438826145679760787460705064069157861601596669915172735117728455648236049374818171090708888268483312764308109024650293054906936453884768518690331419193742744339490254713339248653428342728711598662061787733778548104021929249514676578439658198719867138188385143403999758292145144420736849915725589624490156289546420453367966841332760092645294605719452429800742326170350369388887320740370400355175605777873456376866562675755663851438708665127812264923820087065972858832669865092749938919885612348222099752357632681708729209566887753328953665786369247380441777549759057808533924789711874706217840763550535165553369909478230313907674674524922908057216177406984000639156935636044593660020857537193110550801512437862641539464317734874566863309846542799896874889326253522721372036131985681017075940600570452508632280180449453056606240710146735609335921635106593915467379811602076268429979626498157103205865378757382527071051245400607555759387571194367992835944417218787982771703663520689436779118359929014433282500718788812300410417661815659226595893975712099520893928138487806652115055934338432919161075051882189207928290128763478962166188063870411025388700073989596218022381466478620331068308869750039145799871379466349785444170634895244673466907743015093158564377028619815743666147134756037480709643164894056755705730824388483399627733234893769007122354151924521908506426819240171950518424812098290218003013403093507544962894984063046157458265472005318519975805010976676983025324682773033021873170186615036276235983464909123417321922949792324203700732999193780537556248109692228663244591739734483636275090341180234951160958800745378426583651885623232669967491253211722875401316787231322360378613011102954706331044668731357777605849758634180293785238006798382913076477457490159501659229384333233912613256182561102288170604578924563048144726383059267295314682520938807617877633960461260803741166866278547180108398908289345545340294725058971447289249867220790955386749356015722491299774870623916542159481235900660386613374598886921396171271277515769828216064755194976440699160816012247531082214528627238639178847984239817804891126135552628272828558780329704176623027300067070862088286588586867365756339278755666545776637698783487934764411932217317997345473419178432910455352572985233362520556000650380791429247226484756625038027234889111138609794373976973490858804491362467533527610747001053267115012129934422367602296075550695216095109182578263048980428902403588394775542840842239618771959577626282523544469175544122723037093413253540718603130132087153695466017864959426671389932754712584115535802469101258362785920170579665651023094293984292575064934135268808690157871814734536240988245934060909849399372601322044408326247375396201292709165013226277499716475385102037876377442399343144103955162975027930622180117507586957227387559631580892741543776001472677576864368395882726323848326547979950417457856067465546790639044931589503844357147333231224420654578453529003560687070770213447110370940952673132546811559938533922676347107046782070767521566248271854738920364933338021817684610503141338103765690376239092017072795501882384623880462917578750333541759107223947732267759395346256270155213265880057984354824545787473765612481226144145574287152422150487524283175547242980108902065923227274436171428958640637750396846543473608415487588496940367635874339817159288976569868463346055178700911928895871612455903230857508051518072606000202709802627977034180257777045866082367378514446954365819239335788014080038546849576084484970114601568666515951515106297334790183378297092612603954941477873034641632981888817188258211875584594007652035508598701388660454554344561939760079843376164469956375480798247620877277514431146064798665562584566141866322808906191795372907582474011975474447642562034057543822873507278924690366865728599621077790047867850504350471639151147882663956816065550048813856886048569408955777724130404269067302231007689653165468482007931987522795011186650490400993441944690849083165864263797203204392538044197997749074450675363256282236879350242758894786480326258236929252199087349118719368127942582571834648233071299600529122304009883604584430946477208913624118586653943656694408787622998416888651262861265311438915778615818046558938188924558483168700876316626135144889598920044860361816825745808584758951364525515903634933584902469521004339573583962481315710758953022279005250442406842128940067254954761266315202842847560796645916346545566136190479149772755811998283284492752317446389968450504870945756891454133908249474932992979599019555035791558483784009397428812656946020748430914190210824612000083642521720934924820697037572975477399845365373838451534955003246253349597372525394350154982116700657785110641086524119021896526056123020200237664375916648530657671227235975096577467762783671636594828599823842868722607422970824146409870239762161622192896049708811178707268088724413487963499359462153907301287532814269981341804623375029867194991625791297669140844880650831509375396578555706563963326198372588122627551071960035160221134505855882410047006964576079852004449628895984057008224597648259487626141534142490138544460820729234104856913147659954789436826885617583949072420351395628523714411386759733659751584846581634091173069002800228724802459730605766393188462792995404898895025627862830986444815291601308329951237564733064842049247860314653084008051501778976574131203938950798090718833319672482331341217200470359796157468693180467836186279251094148542559027979030499029943136861601406475336920789091272418868664252247745673303900406836638980091317558184471048755778553558545095855266904075021759807565106133026610970211869492723761201192196982967179734069042275440752456985828052430092274768557330424037036263309255009527921827779211221262938035630449739463316962218817003784065657797154660783545885699007808914595007290487001675992432072789668994968208926520983126621394627617036527181739357714711089192642778808360894194789815172790118712065730407786088817102469508237485035482549447310931304591835746750901916396397490613916670426479800420704047833381030208528013444599715933720654637466854964756207158949736618468380381908126214402160388212059373020271563517688659735651333298883670145287754576531921161759272825990406027067172486065973098661970867568434536852949468565199136155261314886886889334130794188678564584796610369454760001164050525251421057072716252029630815428378008120187655701522002992187116725796129796319131627702273981689525225802137202281766909812411402822016791874510192998469115038750579323331021054621034056103080229353734443613741793267993340526700801854372708799265447680372762586300588872814412064037437537899926959011677446330779049734745701515952261270440020311759012207677485588354273876192905199806854540029062225013861563280281520318458086961152890417289343250312452414913500920413867887452258715446970289339695403658267887842444992559835003397477100437216674106431814095288438457448040681089338723846259972054732306043705351200716789567081838217268693918140555289710023084259002487099500970130415078056910288754852968233464544307573514887406021451630756146669803265798618517740565536691623799052593100356504234928757557081183128209350853909658527597230586273666946012351572427567731175577113193585516933856777094169765584412634361746598121431285819920120659685024952232455613187888684578815217774780524411050301146485294314792722291536808792704953708963300906422176238425327380435744011083994318750456186084239993399432196447902042438449932037142843760308375075073291323258253416208528231905299378219122821942067411921335672662687916172022731997334107597682191932102338956435932485302826473453404402710592600326058450906841816380127675094483803349379465832428047096757923441636012853573378616197789499241209889027334202838089631143040435940146901856197099148239458568725412449373554905340658756955326987612979503638627016231103831801836316278668989491637067814033982241034869295487939325659082279478642074085612437652016164309666876279326174723744423082670130681847065630096294438167892690017148094859836060901757906510141931769176280505454113644878120192540149374414787594789395931937156754101799876704758355490735485996263842350464913843640404272806513159060844241993364580545283083716471104560167543692602776003322510336341826769190018091112015188916343485144205413281264237582796130339471054871330367417965114883920758172062330953792301906076051412151782281604456721050588275038158009709557689058153399342464761110925204261072326555607227940841984990745067272191584512093619737397228202700392177165086821027606389563695341615307222880336269123664623832011812147141135371215846103570100656919552285386989375849757869460231172291569328366078903905762967034856007643267243702946654255409346383359157793985768343558861640784744944895322889839293010969519323221376789186752828485708920842134344575177883847017429716951574448781004763148989017190546388174141966650781232909761819296033351642605659911788587596161620909456754929240537812825911992056547022420401664420471691773408805874654013676162827939475172548434996125780704631673433521085130528466525143704458060888784116292580726696479842858433630625554199181281589738529886089775286667227444226851363983113582382772190634097531890393739591626010514752918645248944361807805765913201979104304118695921855342708821000202311177439876625561583543539293157282001603286378654548079644152748940436432932404949356621045435859870413354164928952975339595590745442418535166447675899229876953077754846761657381058341049075960512847720832766071975128165743195524635937292571790465902431145378010396281497080245611512470114351535982108370546203926593003657335436128226917866035375343968225526038343532132779584956923358075346769198458269575504210117988866080527076429075008724242498784801767346126462572834197038221266190846517984379109805719732827394932292885502541015642428190878013396055197924508610193756308888801754021698864268349107266989366564707103942126745400900745449127915314950019689602315838221608088677929197664015796606825907583254343415151616916577262992680407292778105023096187886514689243212532262271171786464250103901226935647355742014128486141779498585885496993784773363036830819085718263941714328899165176398101455722357027962054221419204387680043692016691652343223585922910194919575136829745184369428522279734239799013070199382507688278222414741098052407896604353406836636439340796966848086938822562349114566214553762834796356130258159792887091151653565941884236789856873977037667097440552888448474519497479906753589382570639611599991222548378450954654425998033364366851292645423096177233797178465560609704371877745010308866668492671469255012307766388864395927720812136306126808085903376973022624959140978092647462214879411370779803742409012079072378677104051651258797454599589125337103750144599401265449738544295722599622642837073810754523509951898263951359988017177505687768565506725504960046961458409241979272676253877272649720470816469669903032755618277429914537389821599637757009182474012729024156727092576981392472374291613230381466578862100091154414075400284285437186469312058050719803987895066117541805735094173187123982846416978303448733029326418105372482385867243525097320799311760761390677559807514645574566457590466029652096981187799107754128428673736424799933745449065450880922710637876679905679821259904738498104746237345119275134041943466952349947051142028487869750659853291271639956452184042998608081491813316652689070165166197146245505410613289103677836909184701936108209996096765078634312847105029602799901377065976439000237856848898697793359747865187117560361980252109939238360639580428899073595442984815798525149127574508139906272611284724862276553023432050227823407217970511058551222166900103153826247162317098893716633330702179027558809588241860582506602047970840564925581320502612839099255788129785760602534152556240518439683548956758078869610632092941076679992587013040931835105759161854199306763601480346385068540913033368655271094273011334121115768441036963022959562048664510386565006946445711064460862015572634319833053758927567975440276954728565307341044948426560962813436145937531573204719076109377519636022402110374149590236131652381418673889129296719813069423616333907457590953628951931179099189940629289130490323522922809291183556898393322343533829171608743776706980120605011320797353006091262805099680401843896481119544940809417619637201366088899966847844490762998115497542641129214214051108215430970097798679123955331031356610168867976314515217634714184472262713891832540159245088445761675079577688838758492995793681417471418706955739820598597676097945205208574841241745206577523962364028412068723865683998193196275314368875530035894976504927209770989917706135681397721681788049621131115216952951626620785043070632031969229677376338547046930309820230912755020648394470055987922181403641219513861696837036167742894334942213413404539199207977337627389908255794295387376538620241779138763629025949997786140991134900285232886299257792509001226904005812397259182373853452061682102387509953759504917901413105259655924543240597678551407489641933759119917980117112321786573560764007269503887245869252075610334968509692315812522009749855012897089638191858399049295951308469701711919985464447387714069653160059769028509584847739662275950750891124886857354181288109896391476744503616222204192740143339563244108581841140368724376072051116180195141837488892544822014854375743421464427872128905602589918644998815055042961132267253160324167697694973147398206985582582887277345308178309081495120595273242422946115220788489607628155178838986343566260700961813101950852645537286897231911879381449158895093564374002975457327357705010465121959119854512099285634801083025568723430457428174024803783061707800419343213229481042835979901372391046514565501036088758259798651134063880107980478052497739849282908267359214153264519458987119259198016493726369577802522907568754740224795077259880248836535198155881559831662536769582117871815120144678297605695856422506678741471851316806549247422663870607718370314077394941555478758191582990257849568165059053700715900365874170895412150942490123320670130112718143927949957988954149768188490978641276523845297116170223159754239260454828936867181290533368807824972327543684166748309889109157149316623399163474777944475709995769180247852306417538909735667692354488076223186476775008345133259204788415825344471136127751399338119414512746074462414914915464324469825544939360962789028699154067272106546553023870723838789743338697649034300931245772452541021575982272346368887797542572233893387843495404533829521907376076975902013304449343933153014195449466482304731805443133144504268932113695934585533579279555996035804217276093618422668281002942868032238703941558264507658616933380495261739792831922809910103246242649985257961377373419686961621323118479135797304606645989054038793672987147979380691788662203409217515189194575888557106082824423875246986296100450282743599467082365730857200543244279705571608621311026726531789720523308176133331642553055156639301090981502662758222670994966159822792808735760456133919353325467708827158801970933422564812445988569063247227557458230556773356470048397655248022605567354516076166849380617505734933835256073622571600528486817906048847184074666601177692359871088707291399101754032452490337898107373948409066530975057117242103545389870171548661043482031124052809422791006898181577876593396497026044307756364035315264706524327428939087032972745639415721754067150249710635881643602679602952999353889820762582568878566642888577206990568351249860356240157299369780334126648008886508441383401753727631852642374270577124522850965235770842762551587375274160139598484085161317648381374128854629581389599611709268757857969908321524242810207274049953695422570847749725990496823405600263384395621024518864686930066707914666902958177332481421999593039527253182651671164662804833197881558517573186080538621718682823403798211180648363987295901158576978265058570997163414750556142404875600174893008407753800941272614451571103634328259822783209422129988576894503892702663203766314328309797888630974362901338387137520468422077034871203849024874791246917833213240190426661268083242660154701309025811990826687370399831631841550553916503829407929209835840404323765460485761861000402488698483014581961426833516019003819280130044401441422166065557802057652679285532865652989773315125189068440124069870434561593266223724357872318935237264131933051646491772038690142851479303828792084650272654561084878010737272827517118676568518292996841528062044273362330802723374380689648685529870185201536887373549782312692627742616790517635521225666872904393861088895797640071394352753578586479637027186422691665368014181696651328123154482745600009085994268442481336457281019551963030753216334651647299215490280910816497188228469713260688965311530593336508869009089724471755649435663170978649569186602802883585018152048225186991718063870326535036316171063272933093492969845143499264064698098014465081150968407556396195159700962553444845729019320194628246881262754813630125498129996568790083501369058806972861109290760613353588023667585408422141125956807125917484602227119426474284473121002860937880482677480466773256262516653422246401074713658745713589197422838460253555353181289066384802082844495375700525497288547488651049357559288393897523657721198256106267512426457516932464842484561112061354936919024128838298359349210267465501360523175844176202468151446950382957402417127440388251690208452784927103155504454939947658430467881962318258991784263374749025904625888099564212325133346718124748436626310361639728430210661382418891060054869356209015021444367281650504067221303126935601493638929492271003171206602936697059409886267088528419364568904353088241772542614938640468968757090003391084560470722922538575009002504701351158598529233699709725011245032125045983690642942136842352201154049144059030005086960406916410347246066462628888719961114121798217219430958988249612739310333511694650487203780023919933556179755288659441711704704429582834377968096036171216711962591061756995055952710164415394869881181424991712710460522835519448169638725211987503173626375232923087926161362268391525866383100105693714429613712794489500083893714283703802305525706777808836036368503318645756636850959992861278989014013003144598272683271465164775264268883452639189233538708668757014323970825932593241456628962059528488013373154778575176405639552136871617113629692139809528509904202373370303584209101157401643790165557600994773458441454094369405445104958115136928705297050047845094157044525980642305693642932585772841674491871315012887963883172441377186645178311372691114664841624585552350668743599159853248815742337210116885682830975149363674740422975844008917348885644521582126140624481173571679299189903169014071521728793674226243372131321694040594079583557991583696241241888292315711194055820639008504654754119894493469758779914118314995573867412976104341835753335961832114488229551463782352584162700922811918056883738995191991180099904062572599011391477701003539584717156472625235046131599411028466421467889129264744963587458609866297317658546133504630671645907351491942409501630027964269546634836303287883967375687469533016241327755590522676246439686378621033281418892382623204038859160316679103260122471714045341897363599036812662073421240360187485818416247894357617886370047062343019327422703582784949652389385530575608770740578786369534450848924747543847495293349571773759179788332215033191391537791476397272764025886422006841662201281710257109067879655258333552421564302570825431484813563993033605252032006628881108053332201535563819458834758957916119813309148242487479753013943703023220533253233850531758199769637385392576108822800304023480913898804060662452063098263526171549054836821063290375755660158183608063034136235495173962992648651656152848262209933512189592393225785724270475946606216431475264570422283774880717062514936243609628906137081617893508620436915803551843486812560597673979628962549301926017929529281120734959919954821464962174558901261386130904760232036894653097748860666623555615644085691020950879013681787459617344764741843044747931316148001415386500275851488120418127167530428893611284760752866792189635649416356098920115496016757064101586524529884568434638046506710699576510473019334796118569953089664851858662080007987165894742684049580893197410356594655398644797172261353476458823060421170405384615773897102386828396222378936117278972600192668962709606781348039155515635678398110480095207483214294952571800332013635703578568074003012331097351922427693097768146910351580165067055587700964079797977564618565722934698422632653930087222132833090050940792394671200181561593836050326448196802750297701329315645236601676097826673032536517909139816342334570993032046455990744313593105096770401937990701756132301869190311955447348718225150482793500134338552309510148389589331593699445461395460576823417195136262033531663720514504698984179606408145920876811683462229720957901890998170426782157662347370018685645675110069866315390815470872512169820483892540303847438827642991625559690506343497504328613936632451492121653806818938067044061494325146978532245498608487083730102399980523835557105242221110669336166789686053844708164519361590018800181845426897683866825629706882737928211298157216886918543602288250807697881566839092171598906262797641151097071916742059722400110806523832642139976623383817245965925710884558424293668480929583620516963667563978730771577006254691354255662714267918648447349032641682705052180454561348495276071117680068329164617623876990812467474349453840306586235204253245680328602687019483388203543621160106519040758196774355964457142782571223263023947548403192601043417279224496950674340430654710220478101737291569473260739379836100690123912551544047882712692218793431102630763414053417532905322868142504180613472932409897671883307029225462319563391529020249202943031172130263929420244942400134634641113041649786748744606041318982994234108171246427010378177169854173998041624019583035958274141654633059432023177636515387786951472206646906010361062744836729043067196455225072942674525176463462790365571741395740929775726627690946825085668452784268863256253224997233062047761051815337258402062721667169843895992976908577488365143854219207384515597104291941456845765772416938373159204924904626190084652219569397683969758139465738117935224091766701891911321620112767856354182146238861929584860326055137376622684683304740013383633106195117408432998961267370120452598586394226461955910001491522260467960243509688071948804298048425661622627269384723710197271720406683536594036160584154882488860033380988618069198099765426113289487144751476108364212378270401389650289358798267618350977292499155191643079787283538915666408905788348029835114505271845082160132588017354704011875037793589586557672893492027751638376208225564693431463873201638881944571336828575153568347750431251731639602999019948402102012919787090273523621783154363041970141672862708400538123068104730958739169130261618418551935114307765954872425371866153961418174740216309188273661366129631255215925372039012082024150274958618019761847276649117075562929616933541776023719488429352329329816479484990558974109621367283215437411904893361920302179625210793624483213129542263338043292528433972633952235265647911110636891693291841035836005594026635969644396546104056077005157469366382196823461957598975857217608771874858556464766840579017990456340941245582690989718615313449615661053604549626538307314401806359232266494007722701955383402620042037206185946877279302429548594155237425088724571360201916835108400622503202030416448753063415080832862404507934625479591921662502225543314795449491733514572970012770843050627402370046608122696830546401406526339872661971993157774078449349922050083062066397086072527646154433861280421431652565280077671805449529040521709645884281470081329420413941997614871559809889386236364434485176757533178526157646094317186312809323323591735557559006621464925006266354516372040468208950005077403426586679256295352002316389303637885283971005326154730433873626022625775507982181898828221589655546270185239681438642041724114455657538440775102445217089804572152185191117643349964271932476776492545458193661618805575616103064837524116413511049852848680138378975061282285919062838652512107805102026585872965157625917953168007642042432880236209700484099180474853703382411939369816325025666787093379159816053701815734219437807996945991615818722917463685569097878899912127382310175009135142933885424272539086628542903372795509392620619445913495715590664763373693602699799998662025870640744057428981548435801291215736047456970050326582413607510464128503711650209945629102651144741538614808811395993343042607638285800454357440532862205809771536123098613757912909981123813002758330582800851570027940497060455853255197789299283575513561073282703245344902418201207816040482833828967977469389403648194305395380017088787736193551436146642512938249232133186304395506641664118277105252431454496593779479104967611162043681116184155029057471902288516404534923137740024111038961869945213989857249926440708729647862721625688345063737625625115800651546334717101313456498235577287142038534518453495846561737960935490823008486793377644767889437272457489912758717582376061947901236763487965213011459073219668654940596562770436683028207403732097648601063151587763311802228977275676109292647011799905893226136314465362175755530113798346952045806852845877204775816001076322554268426264380651312747648410036285519491958625928532498965508049704281855511445832885511372369652283701719160006719516792371924719281693524548458482641845167631521896823325294589867015069590886324265497046734870190945237486400611367601971450094916169121448773188741491739531613160308938829564250779544899518504585887921855460227922901998683064019932828089568688559220107295435027484406347220922212456055737298593437403416506756524464455631155475751895035604888261155765112661216708362065127982065985097197889701701969478151619581192567468913280721352637492694716247820566778285924886750079796984770684271058672199788096027760611365832082587747728303962403468076405200310660426229383784384209099664842616722695413520392772318578965221566445864101815890098779076808624838111654183832800171763123459544676398557572486960642617926798626743084235836028126245626038899678691619399567910806769242234257976575704747455972657325804869098156142106135081293462240745616909127545968504092029936183622147352744624237664044321169110995422886166571403433991629409289908968278234558681537232275514909110411370282663821876191093793170277063946783153830932240080583531360457818913126359321621173136575360693367116891842494291677609507763271115552890989435347789462544794367311985858309547357640997405401028402725310397973920939121306493304774053111301872540205963104084291076422744356848833555615138745851805397925623965195189021661409829566469962624687543898305323495250289692825178059573801198170059745519256555130292799883176632474823206182091084902471822587191875741928246808270606468226758428881238050626156967231079906870770431118785435683087886190194260291501573970598776412097839183475159562709807993703639819045654650581848884703289098699084935814069954416931850711285667601177198840781205006780831427696926048020925116041941797870931336715658236430110777551636181981933212530867080386050015336471654456883485914601024538650227020870081974758948633014480324448528158376599806659701775536499470816672775960308023003963051893492366265070948768463189430039427814196744162440623450972392610481119654876450000690573183696469521522348068327202486431070188242188685148432416924563355796125132702581210385717311474599998095436889123299365917003274659037228549106745175973214522992745121507210640542500415490565555585124597219571146585805958252921102974897028959170478282492385333089193324013749227455233331391237592682803298416079710643620439093717326480044349456778663261334191243356053036092500695476443126771079476614323254886655828254940388120563091447907479435053851557208089933979930310861878143161310014914166644402266517247799949605834611265158507567457066454857840552016466013972006679986934124710721081693336290363194308139719368963851986611626852692586116898964470584174589432213858038217668183817871966046221684047811542094447189290276780838390878274162035256434006708428810034328013394325187953948068793687236648088884301777641950610168920029518222729564283097155558520257385144279172536337518116118033478337000938722792143107517521804541467173000410980371080677104063366886719756972838390663870346592402327580986326030289614079316312533545239492091885933036248012239095073496736895052001989258678338331140207394970017680911271413910290537542249005625321031056733308488139719678056284330750268443603390706039105889480236308886261617569081606825789522953628720124951492534859479455878049601539184248900963229346819820418432136761401919406545597344997119651471677192727286916057063708372270542382055441963856100997031714413114917355495514532246631446443590617112122852344097778099855972843140151540524136194845504611088010121968445711567608374678980845253655113085831956572586031539108174267239372491243877848058415980952977135518110938282626878086329801648508917853502822326201072745177335778259143113734688299864374600038787820884341434524631274399398389571659355531833501546299555473571338343315845686111101614350534328602268276360675169079846401712480073972932461932068055073009429662166723070772361951431323857763627172310606578400769814580174705377115923736677170372349706653983515514804497623739017394953987526519738059657534520932087100382709652859470587984415496804071459249917439115143040818782785353709061343617945946699950380219931866055116266387012719402175009850383974253123080189902884986954079113293703433110925208060762058456098974645792295658358652670236055627477825780588117894304911934845478224994309957969335734097864235406575149749344397370496169382987857724819189441827136418921622060055996396015201558169750078879865950122124707406338777993914402499062442909427443250048469063899683238878454061711900141373151160199157292166210333066346565553029797719978917729835653133356936161399568988970162540921826207699772221600752308872399936986731494219661170734322066614530743684577897993939605895846477097400698415493637383078924936964570736843764283222895973773334074616375262755498494692093680766341364434341945517121497266860184644176141189876247147106661816251217110189356696082174657173616387489157562070684607553672654870807680827187601904298989437018348518784027901764831670320465245256877258122781729206709137863650720464526542632390946992223283519321112697000191918489773983638008790446303888076105717305579253856822148134424147923385123279548686502822021256535173583741131145024440019377238262970222449136920274948079490052709004133565431200755826751897535752362820335858635417660178906551067647014462106753688882252009038083260145797025278482150173982098879176087558082944646533030828849496615072832700337822530263454312338585033529478904472557473231435520658542707538204311773132198093987703970640542570114642442465282717223512589511512103291495478756056380644854546803995402006775550774859287031026345309712628785759270902399525899964907316243344883616642975679435159249754604747196705753336896011146233990267202033206886743056830515523960892675559158623439163979245409920096324953859328941136736537863827302410434192151386663672851726403234210326673177027886066527098000188352735027823385291873792117444567870056477218080347380793626179318097459392351678940670422083812298152743140905034718247470186625837504987866490270451732373471583795236446543608797282810699764153365208983804566240441158384441860004970282662356552103311430891197459139475429557478015492833583747670365428463409410140906490036851100125146366986999394654579165384423029057233434330757614267449792575920518656327730729976802334742620179192195313067703889329858153198070861104990671792736076824986188495529539544644653457150796361820183625221786660246115898935344473684624286891547383992836300789830879782518399897213902466435389141801539173361713212296473811369915469199790496102921140778631124103211522235509652644210896096677423922754974123620232580215194348272044824287795762147413368072124817982145959111491018501801389346030847367665230694557269097020878496569394807402251400419442870536854218286397975503636615233231385966640349332770254375357617456333716567549789956020864778183829266611631894992276085036273435828829088943674422720419892200822160157659744751017321876145424956201153438159196607771117255970968519194673567575369394181672954190449976438299054334405986068845665185221895472558168221768245204967752147211989553373612739556519065044216597410638853726072550754440553255185298526363191367406337871946541882815702961199141674602557642665548087652657737257049105775951837818463941079515805116684244275039411867562884805334984051566874409833607672119319443109164935619402535416998744589529239466271868360697034600409539795825162897991250870405737014345207806988198687076596415937912198044587372863026183057769358064708659765129545095318566676408156616816232293410868804242438580151318338774045186872081808002047737085342650685838759020568129100827911839906185966584684687798650339691478455153996882130233233531544069323095916030923737999522464734809596994826004587631624681736553405925228986285641895754115399818762183936852062435409345885854048134785796646604929793817873552676534893153278640896399144039538872051738021622241530787970964216934067703620595967736667686399837402156812867904127492633112103565051977590442960042982185345044569693055197042542682642524129521609569554376263539122544268155048961871991556083548378261375820353229873784929547104652436351795878752447483620603758797535552781582561383699267845754115567079933946575981975564386643673222268462376989793826206870489065532679934704431333240779304801833087888339552552734906878534877795124179479639141343395615203086978695199817344541733685359791917236861364274824764062422134521879083432512879202163553699445211183536650535997040143218058299455598977019459335298940362375096171282129479834559560123982788041546606052528641108260711352898200441780701331200886124574525417356773117590454206696396364562648556528434840654082040258802785109692887160509075597099442982124123166697843556470485523120163655164814814940411344635775834593428651241209429674739292551273063247821502500639702926921623530868444114952840917082141786058990689747601035128349429556338619249524505107806115327085823109075078883083194882353377643010922645868112784765679187708199332292072192260106593042275948618170412496733172990535119121652987756454572326531823879279260181596275123203704819666736263448804593871007704102912247494529530677825537598768421605729777573994869763383605710379555389832251196741556149738205864875699411370712501367082129470572796865761444808654545929074608136005175013551303730086476740624851908631806772073790210214802065637866865980202426172081098086905274311762128605072657015449867079895699699185431423463431095779551617293411978257887615229283739032714141841939626536899724956467980457656966317026195569689324388757586038622096556821245723939840028145125061273767925364563890418864844419573896018902724563028403796191811364609053018860341464333931958546633176500764798911098723791940782323537181906126225728423820137627983339443818867898856177920050337117221700557315472592711484879475294765481173829753530237224890399286793551672920269595675133634959654715350037877544030535505261196228524642685526806623986820478665716366567685893584274447724564540667581987676920115249124424869700080309936475252058532542984646852967956107879226209755148955282698855165186944308156107760358582336374101442544187799818144828340232041261897968906232693523323343786809951324293126759106337967888340210090396917478500379325498408968671638698030356266136890417579683267489566168712281117812061454709925770909569987751664238096094162199398153134558666273556301415677079862792551941166494057462416461968222914706806964073684721428474609405602679623174253539224883055730097504580707768909065181753018001558641626644141442890599152655675773602785960222996730328240087631723411261808953771966504994946089305633744536488074432404908126747247160576032531350317274670751133959869680592111442624954981247287764674308495806107595172475835320627851074750678786604979576633952729230656623816938412464168588581641640619472241215401498846563912763515615028592856671726420712774591046558175221411441843137556509419551520772268023792845995706505718549482261200214094447180292914055598359531179110004910329345684905588454227555759205593586366662013104203768437945179813091722289438236552029356252180427350060190764533777232445348295696628244320476600473769771100283734595885687757483278754023780967085154831432578851571596667221704988014143042374391288206067387303531380894181544188188237463828130814419795206199978037052767655429181386252259393991730530888516144157864315499464700911865269819473195818435963933501871444523318982818667858178601434790704197894779844610818475253542998399018805555127198473691559547756691538673020324789078715686928252980029353305420080687476772053075583530669791767658208792583609048367172414621988283719620906812637699876215991554634503318036251535916423239056255173894713450413442590736842858743197412653981923964251847018238468250031394327514388047653979505857910548470405519631278293801998440477285336948818908943492671916787996653593731533066089106444309633504658501596897880776199147175457270763718763243018932665482393051019813389455170549389815070586650023274849881419425781578860784805699941450299391796807550181989028385697151016867695416880906089885992976290583817550044796739177780406446701113484255960167518441317303498553344232689787745319470337797577076165587961789223042229944649517287856094365432694168853246555352374644895346321352275436277022950681971144190629725794384471854588730480110377487651186905742569485737581863949182410770209361980288416992608498844554669087609283638887425647551913829877236898285436370117504885823159983318068108195388040281514743944998376266147024876783107621666083097506559781944935637663216381881405546837565492216088541196505607604642099641039536226601174275463906828912521474844508608509356410890771126533757569138522836809245810510833508822438853744832112848450357380541760499861899164088446166411158258985898283203813173545496410574661538747419365269166380296095533789533499902389395887981214294563402393914632092665515521949250558998834523026084048318654910599592547963830430756843420638870120463763013022365268345206216106871490285270285905229705370377594884479551999702083798626353935875299465831872100222132836428311575523831868788764932414629651606605206677181061503825183599351005501691173978039215401488874194844647932720402110978462036463324978723286038253277539029554221245706523840710526922914322620765807180026250915253104743511236185057528488241722886343073182232400095251324424865540069623478534862045251557057978836112995370203850388936564622222183453188376522654008852344529448100271635852944895146393478643646488130826655737231134617478395826047272430032115262874216622147202438048919269027597583885436575820738822745839540569408773889322209495887378160739315900011569804970140480393334709280417379864468141581808309319007623686716559244861575744814548521157222686292578320727658495264638905185869250157157116110924390415012574871851506576858225823095781405628518158999267010354172005564753295297658296310751314365537377413808578654075723708950727266348081288539923059247273571811852196901972265332338486901610555089231003164087342933210278431257293491057930245901783434577801453645841386538514440613187199115726653920972846281047367741744472054707537172430130738351042801897370943111655894029212789465129617396380520358959634591165208291624897006039503332293392622380626132323864567756242410988903933885830751210278455052708682672882033204717243676800430816691284342318429579259556709272505461708476379989524457935934892868630719934022185111037630522623852539736531574739495715456632777779276931539386219263972969667403193671602279565434775573290231952727877549331913970517158431019650825934513172510574982344924856096571021387170073162289328643516898822734523703547637332190761741175414456217345886481994686427307881628834069494364546607879594418202222858878482552867398871107670133887665286323285516759647982399046214469517844890537891350755916130049848563996353341697611724027866949986530618555381642789618871752694351960209082808314504166950887131454550058664990377019162164113778400140429990391307881896827922254902762814696754402611491773749552703966926453825233888886522293078097596235894056648246582692056806776379359786969928861789826906851897706786600120963734123022782888922649013736552873414438329614576443413481501888115830719441905215890119969727350041398914829046176245538619233291589839615468386906442975420941517769915167694668020649562565103699481218889813809923475490326266734697260879859882642827198871459514853511360388627056022023846279565249751257719419264820638350870621705303665022087287508629114173273292690789329665128571383505265920077047392649951491991681457906633840016907963098361272646397761222017426461952691336319990078893217269964580112087225278204990396487697073686321623736341782399066117237559685616832301157131998307975490171109423849283285034485126790387562304871292945211456322520659961131256344667034014796227977387926192856186372968418100928568093370738496541534855758671811731157147558880282697062004600699704924645826335382274363801422467739433383940832004372073867492314027772872835004244162097407763000803882376723758959866537785491592444049034782258201739352387690692750406383811750653836550077636944621369335155129856020335337746443251804921525784775048386961412837613591258983880259930827909987164386374142945860387619744261847936515462097208768877181263149686061446903846017023899118286041657768111222331914472011549221975635223385423031555460212708268938975663534549018689740182452083775082021628686539264091825139302442653711587964712858798187609208383295718808634198918472452446983346592314810186745280178505246699700022812221718496008190124416266318284044528751257668518653585914638815156391476615714772430373170122706323805109734717202998675413439440140217869896340539110511999034937926688474912167064172470693749527515977148566909408573237077585127898350763169048948219049532465257736144091638049883096194015364378300605426555058154000134891200941538376720078891869806132878113752287208499284970286293123298351285073129004892066663990212945591685540994376886452465925382677773896296109655500661870437206562332869706188671368193861505727069078667240864134600768635814723788389690858831361845098040688538160346271655012157394661077044330511939058935174516525382836848940719539614894975172640836406011190355051030438789292069406885109023621123620119085954038899708553348434305659727473819478628876808093791998478868759046950687144628393521312287233880951027916223194701057903881497723626691328076651778664652620642867729727019720541093168096750786058064839992493472476491437315763530080109834852255490855713360977018239657275913812776684905382221183009885075684749744368520940730217222998263165764374351674647228059403599664710063151880756666676620373085862719126849241313930656994641820343064213165102192193906798929892836081996178343800889500040542015380111244125674744634120580696821205009098933175813440733740955344135265489049104610990001933655579728300042725361465447063918064085803796940054124342941520445547284371927669669002977325668094748126520629958905903040657099602152528127154357488565452257362650600158526288924920407667633588865644849574949436688020803494912267305338246219702706060426932519408963534997395909990665931831844193322484899076631911426948227713768305197780455621313470575823724295983231047242170182371592753376949267924399853496843875532842450703644467590182251799982403304091036008614217090166713752175388460641421122809132985132700138959511094127586232840558828008807994484042230807587859932651573777894664218038616296494103751574214548890535973219194324015209408435650882206558767470174029661775395471008946678096799103462841724800482537274810917958095923599467868590660043266889083631017312734688766967674123104403725396430404466226718098509761023540541085450308034360842172582344591752393790366097569078419229004263659293715865481420787938990914547964545909981566476038435452295071083314397567270557465133200401523118469465805590867153643701147695521764383915582009523003061977253094062269858667831502448965330141046760733190636627994055077824312878646062701537371835335559067807681462828986601999194219157259205971222388776809779865473578178902228900508856684978466336546351572538521373545745737719430094361941711693303622882819211410366063744372505951997275638176705806510262339202427967138093484518116667340469124505736314994271455322816148143683839117519155207605479929590182833169090136972543808735688309911162096621128840643117645931386227337055049343357447690459641358059863959954942866843386890112657449124094618578850915827239900927980779017902400012230055657293559230335781229690693875109592854658084310106698509148265179522239683213263495754681082184826527031775495850064920897794427211585715783010528592101575480606197122738091845080518012338385131712368743497932805404730939290621736313484572161549323304606499746948419898514580499508661967328115175558402192888408341892292549917649581401143016165554516409377807031420426200787032896837034938862720084159583270887161239815603178973059072541688211907494595507732217283585498680604263658419152639496036309612010913231147024358808076957781507296439732604882667437496416013578246011176999295855007231480738389079478464843074448130857106843082693852292562733721898752247572706446655593126517235099260634892610679487046436637522280770925766824850393330301853078153212331030551437357492719927307113437257891348168027139841457255902892418436771954596424398589734358501375790775090720641300598769772714934952756097085051038676266949184637930454470971234982575407447329697763361989805382460626885205131721053025411670785521376349208940653464139381115839101059045661324015383631955453438488090500395038519061319998236658062830175040716986282485489331313956663521677084762409940636012021533350579420910759370099665818963006069233581417098997872645373175132082363025148077661597949865950432422648177300060214812536025845838372850868303770905564587284196632520789777783254433749242702847786762312357912190016799685978737578624444074759796942835511607223544977991587358368951954794799639402969792475374857323977699600813304605565821707601060378978187425688437330153699884151458864874554721455790628964468106873778870456258218761503376696512409498004519190453613480320665772728883229822065191855124947791976337308242224417521473369207398115574820971414202501450796711857872405289727871158363611432538530975992975217982401913592997706712891191601631921625545754061826791584868158206985013298396845688877288932226712740529361035469642275077267062187321138249014828407566462379225804384621697787488909839069440161536801118531502357396527284996839584605727488537159770663172559426423262567892599216942423892586531702001951334508691262797650502681214947328482511425910906941689614025002327210032053463235963062503632257108683642640739970474942706311885420411900587718808486113561885204960368512212304271948137191979448170222714422868382287838683756343821595021978641675640646270845089923969376575490954838975236398881025073046416728983833925111000956538982426555982294902488491313893586311022233712165844944039546250898428230136493235980168013953885350212892021977818341512488019650142198089870082263609000553832560654563634199333227434931836301154439369766524038699361113686280021097774208431513208799616722025990629269020234345278749431164803894780499530344048104315884769964214974694938422206695416944903556300211007959066922276721198804377981140373775480603690558095443956950844133447786005907585263045037351221159397881103228831046000585033244633291751544759180691301375074306752753520926525122249684710534823569854136486706174038230934237474250947687218388688496535199273685681470355769740474714451988974642639141231038450509709022794982196266999974649249149998074205683018068061439512082251707002462695909307594852305133222796306249865813201520179473406150794620909685916965760147012016412355442130821832991697553002282858526655096917854765859976885416808341544383948485007884549138914630876271399979111530100197557359049290756237606357468034643207419525359379689178777880184652052106475190027166590130594849581826810331058709831145653323275828695189380522514470872420631485774565246523292278011752947985373361385082328850458073673729400730129797898164688383027596448147120089938565248071640700360226537778138682098377562084984268884573158817363976310302609275733340152953414502074997627171231864791215838042246707159846564130204882444160380721042736378488166912351400278816040807592278718661358194516929657837114654453544899439121761837537676515522434219296308254404120076390545809071081949273293230363405022187905625481348437040265652083851996798306167155945822893557659221197863463973603172538527004274209539060745938868630570614882754722727959695586344530537552559168180722446887130715877074994806059471546741193226371303089886723316569371107784241221878212008119392112399433965533827255677753519449219721101272109341670749721058678004159848518756327549342659887425788605920527401835716793479827045395171835104599051264605381780703726446665174559590230456923023838190002257983849453310210860857887791834017916941367437267384377739538220558707105273168864987838898970632537430149673079582724365162867290358660290789841147142656146191413345776401709585508533922898942352851347490724702288340535293497635831663212723274499696722573473731641421696084790333837724614493044099378710957304801207663571340633850889423798296171635614320311102588864930146996724724027535963484919169215554659354290486245304293611141023755845874603387441941960136405375090574178483016593001445832320668853061562206614463061496145868290694806872590298308470391874668402543012112966363427328996720188553612425488483029811045556123922631357910109859778733212655636357456760376622522075666656259418888783932910990285530658609168466714618475678131176263836701073220384765914376834071340662341178172220793663104018530377485759051593111051570971080461093716246274174697136641525448573060641684805795342001489130141447829026889214468340067343177486156495989132501982342846193312369959330365678285516563228952479903684820288224998652910481666032047186241980158857007825731807271930435441190143659711044577657085679989043572760292411456748578191424986508626259889443869327585158376681004243883973324853287273754972362179276238953618872534386763629712859892008728310664554844521539095609024245826812416263148795438659077428368896104230231079425788250830278628694821152955031266334425639276149198250836530320605699117049977617230432846996299372361790995214817697386586093989276079270573061895022417216334158986648709484962874371188899266779692473638396240872575333794629387429842116958431290272711138959761437786218090527343832556153048153165526265461769895608454716533846386211317821512535949469948270597601840899870653741993768470805551724256883499910509577231256106237679179519746349715971463001044155109403268913380295366966096368128226094194575496001585709209524542501091284588053184887280267090792259229527910262227726159260047891179947038124432429858735151027761780040431078614180262437634495419579066136061479280214895964210367106021985512759986581734026754782110128796233797331575106268652289577917958627272269345446716707400583164112369516478672206738897935422724126211074409706672314530176671327516013744640227073747101580053356608397569212113484790479216107976435407047872674677356683830955460068488929475188796625670322538209244948257994372169647891504973536824875600444804782491965366650063615935367732381964036419331491887387945446679108056854925489977913908421450186841637675147847510231344942416226908069522851373566557713146985903037999560067346942786193476749681794532319514610181352743457939984984721593454746932303801825704410772385769334582775166828080166182157577943368847918273364898674629284036316281272233451056875471231325133103554966533636832309378068754479780825234117644197041803882754608812305507767526144032332155048180120653362593948032137900811182593693088467616918281662773084489110775764135419013629460731083911117488952487159383066021118875527475553172442848552901115666216135485165410410475261158150407106901415198144494628861635436591766371173987860809217765301735567329758952729381630621399503290450943513636867403387181029832906610550912844465509091723930424790724232968421657731623705656603569768793467813646446781758475937561615546075911210415237355505654628815520261592627939466222301182215584215503021578912266671056464951882231851564754974586730070340005533016858821166551200148297205734438619313521168978102413376446137756385435814525217329187830166124509856064974616583106875177369782207249915819184053725536028616392881269625443014562308550088950880454470993843635731395006905658882746398227910968367929136839111001423918540753938495859805123704716115874113473911907775654135943985598071584929306513163806816056219409088849561734062403994587232172602204340986597651320093799343626691420169232089773965854334198153992228219066765169580099666383670625000659350531824523516348989741881627503806578631291724019916421057121545288527106662457513147832551636969869357378892757293331133704645709412095332597586652846437618173161907937061149765525285042553308382988677203115210856018845203673530721756388020430380927193310732251571204688161604623330148349433245713320591553199940668556076745663627745108282326512677771307062859633564638945597176092691840459577752498241251780494344855870054369531216800694151194088358532165052457710282692382172211864035800816522291986773259595880154648014449275082415876796438123920526043700194411501340156185145526933151818386588961394541297305317757107009600377969798685932038739500388937572056648379824779645097552259633490648446771663312030113904393210601736375067857762455271770544256925471371938783759857577186773708916164445581092635402504182571017842017914308028071026542488254547096598695772442659714612411119120722642685963644379813368188541081576812002476081483514689090049895766015138954840849951108997642833154384429066561271609803427202228771045951141556048869056123819247509128223090137473094703029441833429454512889022092926598324162907514570640980403023498757796245847546953597641296377256190333154638943901486384900157474552078880838446120733889253345866313283062212117830529033481612556938340273968498444225460487239246578106157197568929041445202753347093298146352848172216752061600098553754795636351987697552409496649845122987574694887243534658553620043396001496600364860355585737453326708660323405056077110822390337553943747949845063644580796747289324276687387298492201493190404868491484463958770227576027050490082861179637818360450274153136680436191989473900239786688379724841227503198783569687942215113646667425044847242394395969838336195153569094902950002297751197616630348820790385887267550425816122573916992520588690116711144181538805883133071377092307127281922066488820002222545074094677536562958381472892752124895544428783201547860503433289435081658023154041498165139010575503543545749147374231811440377474006041668873318163928117240930296919037586467011092313292961680140776216675236018218710570817369104843989046365311918648483902336582012556775464962793236878775630901122722995512951587837729341366528133435963313392217797743733198447952541628482723918258540882550420699773681641351909605393452711628012050960635086344714666038425361027345296638933443839272257551076987630065930309931505790443802150365018882400458671734537626786629467287363161250745781664607163183385334262518143130717275715026351405084639027981184641424827598029251637423348486592693271552790646105399476368848868826349751023735080587954395159226035774323716891019774851552313437411977858065859116142737593650581710323420216377699051271768388750060283618972397675809290903450897605378928155402397857674185793230217144043853208224804542982340528486741170692320486082108470815065704431984024909286437672528365467274150190162074918380743613706956000689052727541903806659919399739865921609299455728384645127290221656604722360299273078518732609947119863201358515688074290422888993490256101603582743562257753210784197794862982536169858708050203613781237044310461130567603439439409114078141248490556718220392894028905432595658448842717807559762108230171530500308962888758779446456097280432910661020344319514875911687211527149060970438245861333210589139615738026958356871960367389720055849991535933158282935558814645559786342632152095649257636754174729363027409888706107795153546190387989020204887330618669489981708107717544690130573914065193928716061610216407131506923781828930992213630730414038894697972279107167348786688335795033098022534369381598480851787178797147563348432515664801428078751243014058604259373071510486637284832413093206780842058692798836780445934564020054777000333048140822037492634291939909766436751162158096172834294750390582591505726581655318854631078475273058136239146327214054503674988328911604606492770474501858638069827183057291845639105612553965763763557372539471698645240464224266272308656733085896376989037001080318423242125585269085223476532633172648075374509972295630304040675176491327506422382748365630901123696166184104337084697937623010161737317744097566871653924573950535212737157624533068820084645484235618841003593485594670385377143503378552088332721434415442469216213015651565354797596933837485715858815849666356202547330922054715704163616749791666374216290710609246205716675195099169439496977679810289906957516472890939658218685252259069737120087582358401096414742417528491620947906531990059296016369938803378192323616043707945897391458691892678581190651216680434084826867631708890974384563308182259994558820467313857603228392608517370702788137370524311742238665246053738427536033554452030563506800588913896352937168303240340256620588915161941764159308837855938263646226157910414186057200249699352791853664798974651197002238213849617615630406972567537183141288239233259202857048044191616497927489691039610128632161402046715051990707096841119823543819654474489619015683256636533058313084791090229843169217180683664967990442796110908678376602982221622847828339988468987965412549344742889015481460147193811098587259047168804871269533904914662459521645119864059379470986868440414913620914508924269199206509665834729966020497320016011985717617926102430560975423583854388989740466697271099959890793998646623324476818861071514576030638306744154232426256705572430128956001066411099491759641578675379200175553459725512193363777038424834521764192062726860827937574259175041958693854033561236428502347795713436993233256932810713983696994791966227019757775751087371539431717837986626488154052711602431944410234600818238684042312004728474766867457827939717148989057928212522431300138636415121164562178418153994092800734683774251124002583962171394948488910288662324086240592847479388126707406562807065728586691322398644087285675272199925403589937421181962454541240952622503577840544841063040064209751564104242924530951528100266165055784533554389068128180675406166268090237651955549123025767743790072577530186708347638499018115319595620360787230273791179477956723405911053678811972205226021977365471705372078108798857996052526129755988111250280491174311148082953061155849683424553704106969771759718960342756054599780169560713927398435480753566824539052508721030757634210290392801516178798741477216960231959803642196620407597908126565695997141663552649105176108024634193685600505012363950127614942722252816583383158377410356629623848460660701160631948275454618389865277208842687449967716292791479297461846534261092167240135461733945874858191853287430634586088142682217146665619632597442552948964494587511812756858610618939133336264476193084453225285167966949720052987230281871692151585031201939028749478133861377669990602271238250803076300312552704684604336008665037096031796379422033507562509625918516597174796926001402600890427153598110803716722739811787621565271409159066235414107006866700623193505991536789775509924765582838541956313287423631067034765317362263432528909858242611411068242384488457382043135609809030497371373955377908763427337486019765516721251389436010036749166155596464431440278346231509374181466482278558957846164683150704740727664868385829634142619189235497286323324170084101888576448570747275165473291443818136417519720622310550455936652704408868416804850570727127971031003934907870761414301554883002583674400930827219993667243817460793298045069346958424502870337115939423096885429704751626733230195878119010656228608604968035372217195383121893095336537083135582911483552436659092241007635690000303239250787490794307166422675068098870429795357958099332255539912495362692979978258306374907249051759016098581258189221129527748415192879738132539068708399351078628713952552593568930433180384183332745616380682386232026816345996849720140445086150878627507232045107060186962976102891235439663899742836362314934049441207515492761424016902210145128238674805034294345109651685165105721984459542471908164548595107207586511058110202685894233698220669171242158777579834183069841504161412858874003355043331273354324548126795515020273051704637244592556848358005809605605665707431692908388880227264840661114163389676510551700342260010859694963485954307327480282561420910549904512656066026397089213286949404694216653409283739843146617807773553977613080411025592738060786363553749707371443280919207167637223981928405406365399355037635476669735850434354591999737402326983517614662695629794512080086838713743237182223980973813408393919524038824960616077845247918253184477208362631557875623101637907685886833006885684943956633378513955020405385514435327518466062476764723795741159520613752721184481545340024333633920071640849453443634761411673170591621770818706080177449722224105846491202458733962519921503803031176937683352166289912869620219176314837596781579727238175854177611404874147074854265726089518643184667271908561088417421926223196659077873171502823958567068958500882333303332562923777429067550763572771839418261079767933697893727221128518387912827287229693153302893777608635796885269421186538047080684353725251241083102885316265195830114206143915236776023159014794922238158326152670577979703871281360491044576870055915277317998468883983235505739057970848152891359925751437915603941147163989560051073842365715720627103401244968535424620835704096060773879217039686245294637254687176007956875853796929791193644063971558061608241492885258100537093505352473157339713529825230008218388630290901936189963614005937258732271852522850539350798873119190943675100639635979759662805525351616616577120933636732584937847584089020601873037014115499435165029576010688898880681502868238637718306908315133698478165536496183457859426602581764098847644137152134398834543897010878572120013699148422701372882191320876076167346178248852383807484523217414149789971404968055167551200652235909105156108959540435686323796920221961918758815110844786422900412944535542478412242752114354886502285940072658013347694870272346513187566096443851077589165391262114834016357916938035958576391130848293671525732429120817801185626167030617698075675429755565369681683339460390078307156074001335093286333722485874579458112423194199305730056988351489101127080229838824083710925678972640490580734269016831648598844512257477455924634814752173981044378160876212264851242460556620527381288348843000968635451734483755759467436313655315431925760901734160550964388591584498248630247236382426994119892169341875413661268132885758916208458707893491204270263065580074052570313402660736079847777721617429515945538056692227259312166291378507326823572018294108207277000259938679672044279461134538905673833326831460975883733167447362243832225644259251644234506718970987594989845522134440156733307563732402904787834320970882581290705521751522553037136388983726208898689806196867323560929499590439558324840672415770030023743177276133908161762188221158812760192590299450341447532567652669634110075870246348021016536122854110548248353841348774392983929835355974023600082844990225375361765515090725371860137550443721355051056699397218551740627193486355742625448438429759635830870466878302324192902234398012623390794758155156888986804447426301165369309954183046033143387940781585827638786820126657530415943245331519938411534794606957327213221019788182115068096640015888974445543416371322314540039415044653857529549659700942446848240437603468036240038577911362755159633409621698974499944443703974544965271505358989048401813853707236489717613864306167599088016286459841475922496883233357562693994052790038018138329161385241455814868593941943087746762415896173096307275062035548662155076643061558082282044609758821261664427139625458942794766069676084851178887666460935493735282872202720323776086038495040699252062287736300538076405083956437169648669401163509033932621136197231814724491662639511831022944482666885423861409440472713256117914502464712687277070346939657564807006430826194547367251964230340712826012277765192373748977059159826147859876577369739281855346623414571065308374812035125794721592407559377920298821158860911297281581728132853137540685039364729794182465394525810796165247794046161749457022977877836716825596333363034975686448821756188759844650373303780384653378464092764493002459142956428789065651082703374902517241036850215069631359164874108658197656703302190651962940303509085383761466587284026854611659430070420281580298347321459544667550463943429036472071625263669950915828770522028720407507902616031802035555107940770708774874431331218247610690186506866939526275851896805258992538523002602963814230878283400245171202261864376965056437498433643536463186775559391855560740694573765038506415564936426667559399250915268000291861288255629981717347785539218024906328225044952183527813693628209954266290422135380920331081115946562518326949292583425980557985603476357985905185909426995393787191266862993630410088404559671792743506706384565108790620526821903875555839431718418418729711199973430045275768776035525404966448326733276724842399293477241753533885434055330924532188166459566970288497799578638259968315655076944627350173065774504732911876757710104661291175247426099017433292804439898219816592754072022567239102837665339781025213454915061057700984702347465900146195019896836114929453505547533964571850819934692936620199182541363710518158880354266671871160126793324828484954073005543038972387530393477121913180647237792778548092233467850217232690276530009599577465186463876393466169757230616122802138927254946939241236302092568670269263879010480508219113537616067780270560252409284177055542809733154513030928462040730349952696627378256124392262609630925922235022884700237602374494791763544069586928232019426195967681099946515664146845422327290189646574233111457301560332705842854551309242514445312459742728185997640201533513639893560560366215748748163958257611466003103612035160100741814905046736050317068616721511433229209160021364123013019621399462263510249221481048749523278882177272874462081550330706238300206261539117564404261272800885991869481846407975435004807137748545895883263478727429903517401114379298751608178808452084538049188815437719146238130553656630806967810401479777610548980787823382374466185146166881169791664891254251617356276144210092077407349491901445518308111568832771043425274365382213797348038074233147146476236513518384405311313769573462682108858044140548347283826658147224847679202641569862651482780510591916360272473539463542252604968556393199131540487444181774521456982706364189499137213925432864805925873971915913882522044386887133899996435464972903659323011333583454667819317200957291558344605824989421829067642733093091411841172400260505856443774657729612185539383538735452910545513055195236208223385779146690237154930500249787245296619653953416628129288149487993003834873542836652695318730902591103256391812861762785426667732163395175502412103302505263204495524893282506711752174062816837393151537199045580600351782160254583209521113742241948333038629703258170194579444569855539178276056618612653118379321253751632888420371215005584382335902403060232229978694986308181342106269427560629117419401746539606200879812628115329699285177288938316224672459510630698171960149734907814225015091897490142819168613932241464786425034079872530384293958574866137776892505703039565135891277030827703784918559811579105083884228209767476049176514993662261793895988089369194262573352286735374156719510713916693335950420651613894517373674044319653202944015828920794986558685553679191790152751791139990929840150352637344546204755203113499821097277258729460894879915820598119011210278288406071556062752061298865287443068636078008543538186943736278378018942414250026388821547085575082918649571804147476658853727036801818777775525528255102887467827464321941141280049503515956343328382214003124394720018470698329145513133068364820673594852867704738320585105946350740385963150936187101865488484687256329716822697073256575908650878299202458045710296170905151518027394325523596919701066212397383357898908740952148771783124578117658236874346753066577872484667396091179369232489880006827766471943038858744607887592976997526006360369894620513460689258118312773972246001720384514257780432425721356030522612218177739652254578711183573449517230346470255183311121179066630171424300035605668667131162438302688181114338329996670259918347798345015923732704150375468761641139847112665009515054657751420625179205646541350456733962888458904071485340210188359233595048484279182632540777179803878872180027152879579842664980421230906849119310128713562290092280471661643966066455504771598965385317017969543777425813555979501292675139070872360280707722910476128243267690258497733108746019138792941760928082319754815403940610739121450199555056650789512491280914862407205213930565826562842480663732101537655062677319859699885320987124577010565010334222836706795356449682404130714155428013639371157441581521333376556558029368086289931917666878926619678893750433094325278500805056712189923191478892274636295208587221625876315596717884239842922157425767810937033498154992888205121775473875496593703091601646038695947847448173124030607896588541632295724217534169689956326477804482500215947957870001769524914897181102073415517906028491133149864958292834026250675619087446795518201929450024145718147784499659311541573311952585791392624069680526486358657870423931129101916393064348989024267551871647910412697243802828723905102835794755958791568783048630480281662605704275070840353558530340828222707665770453589079281603734484410130338008326124152362014719721159273896744636936757316011604866293154750347005680732456995750193755538529789791760363891389363277972899730782534781952100402138118192039317794870402388410139331939543597831090043994231868349074855194771720006303778096620815902629448284119361463819637548505568320459508619844596434134279405765220579796991090461858013561328012777227808773719447023948675435805457768237327783010591065965719415971325728241818666544845674140361753227402732859382908767502495522626230394264364015859998499659599375493232444475143518085131634860754980695376242494222236569616422389737476043570548333994216730579080531754107408010000546324181081267162503557653010723149136501207831182834546246184870821220733402618183017690461508439218271771054624231372074419338510313132131144179314053200651321002105047230495702479809481730674288360358158277183326097364837763615910119358665595748815441614340292575292665894818777975572101245374327646774367969518071038913926404976791504379987488566025288920574292129097998734674515645738197750956762805189654669725126271793213728087289937332082859168436277118144587608803217022869858952695857914450063582171667380385189321715448551075920652849834633507314695927591261493430285324932466726672110417109667418662320281497850487157188758637522645041182094429598916852031569294000961687409782698660984366620167592388734503863060849604273641175489129482567036342581896772674670777990467673386110777505188920708673096522911100534387735517066674586561242543944604855755665998072821210820656872059694058834211542065679788846224945003725726496233292526070522778737925421786297329354626866156700991533338092847142396444730789000207227119905705550934666703556534507477149019386177606247618548481043378825492393937395350000288695087670211393397469769699159795337065661410960715556272302086552499412273118891663742497358749999235949388522645096102426638025441044813323983895121355417541520087738613448556281119072498737523618944679811513338866984636347366141951149449793343951489762030256177488550198801562700088946565572064154987172874635744530170984456934242509167861082699102595031620764526295166459234250918599809444322984302305363917714615421044279730051474399074428459702425556129940669150020119340921937468388713703490554664257235639161758530138087706360411544285433737875892173781837192168348231892774739042464091610380913679881267844355059584044509890311567718566396299400069259284358980468071557969788032685610570361824894148179998309431431100493863288438959189415637226482766994715838048847767660765080236911384801111752906587448634973089802579965221753008784818132738241137409712448837459703021328596959918212021555595891425674290890178824318171140023791947313914937921632053077879756141384911102303730177302171076295189237113563027411783468300415175500453420794243067329052891032510968602907003285327810822153512864562856700203847699708147656586786421578329709933917938946790211624483141246808752363301360447238730459784337414245400110294835464344858414892876601983522637667171295986402759455139732029326103427703138243201084271789886520506393956646731277318680974480780064895642208318362109121919464447946075294117860364760697465058772366912091830123326322901623090414062031051672395671926912532872190304178959286645012968395699855216311065377881114468694168726623100128453641377239974811456102398326016433962970606531241268556703759482769983491987424625970357373809357259255741238828782787106752559419685244796984014932641200904445976643177275826239434334857864337423799238142004634409288363606866795691271437838009801041588182460858787762971235820145066781299925174817241429338869080546545905476311772299490224670701234047264487365291677877187347855331944051176583874790770320685203435789411441740791785255250129665671857197751794369955537107329125758957814431879745455134195983223707797090505605259691931716447071810957723814864204666139194495516036045755970892357404268705760211263779104972071379706729123375639042320136925008657642028272657913314954242650388617589892253558062226010365254647174488657732804415869066134052488128090684517309794245966192933351104751175993953240677465387715751632194827164203712134035591490934040461150665821314922573168419568573977048292259993609775606715248601502560570836943269390545707281063899445084488284184563589965344163587052392560681526551338551261171215712570076767428657139546327960647309064274422965106825526007863588980665192943855584212664274968783938868612450263953051118359567707418619660957313640641246522752371757814160297406543531794517416784535289750283616172023353554656864588633032390709234193211942919449150250739221256990344892502633744089282188772952470280133381682566445144470873960461355208151322657635499675649259647639513669236954010871401666702997153195115603359518168030694558784238677479327223411763941957016323716027158196779350732329592127068782702675099251606717896581160542329251547171288379377201275817454005418646578368302441301652292288009687262001529637203192727561389791410118865968558030688311782928569181049012191053606890016278943083873394122644640786857790304250884193825689367147697311082682629051372315820030236499467061824759205448917856147559273293598477569780843462382342243270038970340894764814422730177954684057212822428991789274781961761365944830750150452429207774813978472234961162229845959908037514201593080257190691627438443712062089917248513881815363447223996594864164038469817123981780061411849881306219490070544119521709004736089937594542615117705840697846773934981076430540714241114618982119490625506063216442855034330377482545469364999568864332889855496167311709551803352680538274524408836360970694587260531584499539610343047050969110491860510315125618040447549439774589735652565635065276726727286227638918244112392511080062463536017054823783318695072240873904257603040987479053713639323133330740103674665698538470511204537559179594773610566131007186868726901483342082341284782594001648644783661009197348059925602256586420681286157824687294963402467401844198316722781797159386680428553950578625123289345674986875849299788444378216384377823218661782732359775856680606860724536332088941817359591824350168065549527723556565552926024858740313515584075080675544403326992386046590141785548363221606900159740933565925629350656955489912949391437629677944190102660770727195570079917587726683307051526092104243109448675655189815361231612384816861152075343946567661982174018938138204327062315731070632388462925973413883138278390651413637439711905962138450318390822511123043528377286185448749719339312470211241322895598323080504159633543365041226440773883803112796564857220467869901575169626852938064715974226095284735583280885322942988953365659252342423363472789909687405185903655882324726034085406241054603950266956389090852843882651573196731804204460365876107832832498946752754515940184821859418042401470209280138454330096465753411913746044367030739891039453526793476569886039908487088895496019633468719189241936856674332790898080504524174910531482457722279949540625535767412483681988556001382368660306743217704919884950470747740714465194398815231164613758810565780288311821914268840981980978266355938850090966039006051276509377816961207017914783832014688055976570962253535528436803802239333726700956046343608435370603810692820518090350577347073842079345387132699604471377341627443670406915983770669618108308392145071684845842129272454126473571396154176337768631663273229076107982449563017155041260822277447904319102027306524248534561322874764321547339846919839058304499412303089331409238036269326341130505807411042865930530745535959326390228013683889663426732192576823569618559675517208265556663939467109415614320342355844965420954825204096114718363983362249430378552250263276186706288908011419837017903868611938702806955112601723678970377428970019933245324621384757268207903837479907157869499284770782318672173024165529225825136337991866714093931138950153418995807360339131477227582165270904993574665510337461887732630746149055180872096315809526053723271543142733083666399970428229846842965126491861071218780669754923050591194497950130131486364102348208014125155258155666680798614181026683038835893600859708649343677406519019160278687325591835655319802062756298483827773325726899395722839496918941908889950229880989569253205100178221284645909174427998721946379048709383286213948450321969447266089626608925463284878566512852755170003042113159823490715776000106287681699601935149536452813127679768724952043984886532480245142317948070978930090054704440331231960465494424663221991656325521852216633422159791320701273933751958312226928857324249244924090026378198624683523638723538810399385280173755352889994317352946805255968541820368653443981841023615503325552359565651067621718123205590836365505868480611728529737820484857229621302803847133277653549364933937322150237970207270624703270639815524198767048120564834250599664123266972757759760018411688430199519387442423273516416433076946388223498600463403782383439413253622442695919225794787777690378935200541611869684974898578017981592197849371329416778456896578397538827916046706862459005801087224419795459869460210988802281059779746361299344456289842407207578632864999027422331265361623565834763657234986776445353338334964842825489590303693955707958845683349165875578421359233967796119702944740954138292048409660422882549480068769783617998493000481737564372655993632001366385660788620975139947613806944834088312972345474972715794615802502786285442254698817474749613340524708924861051946217887473660747757447119868922468730786953230357112187560382623590026922028002678243038397686776017993338120684433854062588256910387024024881108269269886636166452558776499195344460677808512498539578372693532472346719603100688161354710229325283053221326695612598299238753083655713146049872767023520775771441191824080279984369431252378959317011324691866511565069395487831466817677182894894013947437500006853944884946476943797570272472860892681836428896171677048291687695637898858348299269818387164754627858198891570450204155563139141212439243591768939081271633367381001215133568797564123062022588934101982877040462238155562439985027482672955308308909979708736738301916991740154069429180383069596464621871795893632122370033826604296770491353163744493661580183267975499752335842973645684402226795105905663939812302413547216681133189994024271920077120678775805575402429046098944046356886797791331459714418479216037612815183455266808592553888730965015928044634675356937785941795517967123620601163965900455285137655437570414651878648195602150377644314271758822826719570776701292328030820091642633756942029578528544648245253228889615327594172276017818128955974669888042063224864757416194672525134765728960309900469413921665964383156806026532836439940165910688140703230797686951110697533200035709395516216632471014333365391307337010174421206382761480831010055554056742631321419879679804670610035875608216363413350910170706026986780537849224499851648933050594226895401874553544402503277154229941502936413808819712773786933135935145160868670038819439031258712253479450636684124354128957977700649701689036292943646482007709505191126104549623189150420316472704331140688321279282723053884811075741395509170417105349201293147590600472665810730880156765369247900735681935711415123341603455120870409746020896969771084688400971332527740561183830260963143146310081105356749888337228922555723917557663899137765381390571677176106843188991932291792570707015049088840161091480572685072467925253774144011418812925047705550778229380765174819724644767799328513323904432936405114202654952866006852680272644675297558252285206412810000676351712618342800503655826650419701515870657177520180223997614855218562989684364830172833177217426463822195432651136692146451912284786350013354925474642793153908778665501529805136689492588010447635103979521171424702095411514781539361113660425734233180031373733314800704796399213466640891998709143294756815652492235059588421888432332463286244244907507795871731130697697107075004530767523807663757101028510364073071470266744881068419517056008800757521285902066456693927216495338132139206511728961902418004664262303780759927155727988747600918502324578628861464560018515319826498950147277246425590491045261476138077528432848420272267832290921071725988067502226545644109521998288140634009767717217382413896253372131554189996242634951897548239472494656984498295984887972040309147981704462132892860766378343476588304948387707267396266130325966617560643371650168155728592296202505970723915540177730168715654349809329530704185150453880806716244193686586951964684916587102101055137431665321306135564251579405220795616054581370066603241277412326529672843533500858278215141954620265482274352142977011818586558161769983743091492488120790279122009318663967882665455639033268453942170437887654696082705695269227177980283375312804043442730035012303263343598789939868193069298496246556971281768664698792559190241344355267705240867456956873332727596634182794478213254759761998860463419952880451648254316268227712939163610383023188285567756298337906168703101928412556915732965953210624035157573820028041399874035752649311230617120942363157242586458845422333078344186190029025849248120557500257628380635220530934028148159732554372895548931071680704586605238288316174030464158411395497967904047730261337153257591764868208035526598501061538180583664086796029251770823591697157776738549976103662650996504711802748541604236816753430041082949466098634006570248148577655568039512385602612551290966851272040776543258333485094659939130896322965857194794152785818971013379599663348040184510187172795527622275216015460266084740486172442121392394676040792936920429861591128563987552411940278337687313615522029162355090802418279591019301260293061201562830405583675515022172635118364971203942090321540647552567170899088536757519829169449193882386534934629153750303204225402294686232365256068916030087548859582203626791503298632459262339555700964467168042415927664179866529628454041159716347272351504632566107021543056934525120921709574520825186580449027138102734411694747932697014352126074769566905827727727337974492280331446213765948786185065538182221523985131019813480517061485386551936530422423868247069898166881060752197533095159717363930572973775966987251531842972673926669759131408674412368488838426264710509063446753305870049931262844465364928838373008115922333080467959839033985904285171954192849152324865475871857322795443673369838314842903856831232973219492352793515331932223578071897971910355589717750188031966850092099075715384956249746012204945154518675279913233558886537062432721683749915451524687821863995182215905659196102220566437144659722096912687471144268017303128320214606427626118134091080603565721974727278913707771393773953143491599452981199281518528774101236917944498945489458399887823664064222531370926089225348704748903245870350198261218534553778023117986831065644040774724828676696449959724137067945034764457024458450057318535124240820318126156203283284988005714267544803624517667647008760644568641338348886183903652338120175473806834766478115540422642516778035971304196188918603725287492364578728485233202324562101136102956115742893822515252084968842302166343383195529661444283135323879163228588042330068253869347864753408381635591316277627917012361146167374646603658578535272665682547893897908738294148136920063612613583134246565732160339444537152032680129479686987200962670188436707225599440076603927617349106129469700869261786628466068821348860358878512951459779874585142128845943626886802230828649322296426734433396925674751885458262392978456960499867766409379105091266708470413941890155853473456052935484195216275927801941256073108403195170712549006883912431291730616847984936676060850979002071346018409307101752961480161557674312164796871685848049944462626692897516216767977470242218410099798855123697971940749583427219006494300294807943310204793147354797871888379091425556068705440799493847258218937216355080544202260152020793626941744828845087828779403133692857106706958035862797979889717338844104967586935843563348404718674121889623633836446054377205160716938291742061077655355868163711349216829459291412062390938949931856702778834324586669477605516322582559265789390876472142527209771671205754099539559614613313512021369864191788813118119918520044609963354200881754838995634395783417239932774515707868603819178557853747576950611148640747301374484396409398069194640858082534585354014009127903517317954693823842724473656897239003882528371327824623272834698485904625516768875357444280235700979943831541514507973042605075109090107973540876941085070994276311227675994570637521247761987489355454061784449283329329763905399881562657118592387914999455978291175811003494044046441761301046038067705265376620594091557818581968719759508878450427321491992860816668865536945460041713047719615239758580400735920416182421151223123935444899531691442689756433717622898139049902303162419318881504599582976988796769871572666553146306111228998578476627986022381079148364333885655767820380732935868036699578483392012609048180956912868096468821798489465749110725110634983712191809930269251022767492632579466146853797897959079529260272413376865777563743858571537025736042502960403073636242019991045695747383886185269731404406651600203206683420366362050247435327115814234664086867904794174639288737627818639253174127887065047508851336643715847376658527003392068512225766765192873866802629485735660365355785367644426432253996369609189297248347984555139531076623158711345023363494705150537832126969984440809064286410455806777272909407593943351116262437518182442209966100401313136221206586235442098229951551513408019408914912803614601419029322958359808541268111003738321308164346069902832986566692166065356400468190163020656261845040791865969094826894345012290705207881140977419232541525997072047753854126815987373521890259419705778294720483739684174028632726898596551508105474870841773538331495337306531159826460792809484142380063627512007758009407417622830598396154577724559025537633137774522873212479368196945703217112033685156051020429381011823549691262787038950860870879000035883603254477337448283827491079986823783223375004275295557819488743379289742010306593697531136881680388402952575991854652345399209139070174182992243716233010128251554344608653245082094532196347766898201307081654835404121974016887835545675889287487446582003829679956312009084086187340717528758291706080407936728227542133095407901157327467266759989027570088593028392175375274279611850296545302203373107471229476538085120179920084520463899625583268532097576729237390251796939572048112395638168511791676382091389293404102006007552283254986841293100614133997367404741134703275474143916912813502167034260652344545342775395342634311583298593933618912848955543826090202010608724708033377807626108033796629235221097320812595946508638327491835497047737086194418053942287892615488765186600087373382455207495078092667059106071498637122592686003106871592883317382146506802709206844699836264478207270373802395111356100959306461470886604213465809433265458120811828592585834851529445601227386351545129798412171809808003814207310713286795627741267935777648541658032651168672656395595691469804912960462566329732865009269489822662624044895351447222764844016597267326977488464163175026627706819354883438136255804670074740440025208027226529233739028737156859354936976759218581283064958371838223990850246838206493001218479632469872616456239008220009658461553433523804979224237343727853378962850849612242403508016000873172913866982697232463478216206001231562172448972261494129595616700917683241390043412093008606490358959596790559257575289590302371790002418045290815032674351045671194166133841066757764495457322453096255263575834628190561683510119751643989532488943024346032183244988475837034532750449047731246242872450939169039942988549557323982882607797583362080081764914742325619043073623623035314555175700230205392098625454124380993786569829751364072499373712304285885173191037418936023300751951308146982122055559607055850274662269732270557010340408898967275663374399596669957317673392878368247128557324116103400820607139053562959853421394923444977908354811876135167335723963032442468410604577263969081268501502216723635055018383679349510610034193119042282109317219456176565677138308169649032109609669586034243329779838964977425175082122924572455020236777825054106982873870691619345507667475784606930588384430532910358782238272855749520379659507152565873615183307865564817442115635444548314169773017506548709224753742817522916833932951488525929247167890319943043930653447163518574283783161718388934023561863757565008852299193433393624633270903589585465778193184153927971636520153120190398801100514795557032257200496098035257403788925363847491939955390368329911791227828599948533984282935295408170775685854614452511487937362207209187505204112581836767419849794547931620316735877030294004443713795272211342367847313025052437170692464893943203469875036137536677060812982091395896652914024552980868832933527115357582915605604300368216756472774718597948708567155285443142459509225442132407976080580320022203695268475778060017909679608912104549156164981357472076157261119615190784233148853985928522224220186416197790186837166978186357088032804862394956094730704992014565576082984001760969860985972239792447125396053828747370671025858215669415829340788969386470435529609078879152388484405548950164858761268789840008691625753369203575455958794200287227423646328998180549759587215585676935360117151929786354483050306509672192730097645679979628538104438330879575830541897988001592860585560409259730293052590355223804343787429049473308019133691304412932980118225336272135947996555893575060025450904509531253544225556109579843681459744897338944098987539709146133131412486867937429216213097385894227439827599645049271279233392840967445728055157499957979168616341723837305073260308073923178329376691109750319531444935966777239645433389671843397375531745240031429005008274537912166057355362197508338380939110259475535455333795200897592784320674938602665731510170361470504012870333966119421811802142093413178600282407414975772970847298081424273586605048923332643929552422011676723916349053833174752985066673013640159307069370187590959388438417187046019878366607374081632653924918868181586080121575470016409866628531824144737304749434408494086454487816786668453296445284011656174568397273250058732889297897305022299419331033662485103649056811171511210449914259842009420580296966083316759377029208165179999961242755599429581542156487308208641414734165429009654072008788710931801799637834421814965683656210679931218910385474159484912007071462465073266473934003825186985849624368861104702118650518980347230558144698218767806180940359224460401367914797525117307152811548912818006219882916507618772975734390314978008768340931116256527123406294116496076491456248023957155399163681139566334246902615023078386654473150970043678068932949322139314258074607615415172692213840526557512188477613018032218601900953286825498326371940894987440588525960482632959752649603145959983143360804495514229907613124752187819667865477565349604900178963931721527831956840345553410669603798014891924725409506101675638679232183247590881903265323232528187594498946757509446328371283366919609998352408390948492810154068138124420548635362025787943499380408981924290988459006316843652116149806329064710200518023368111327009106823551647738643497514072579615995015864607429258024437311135902805959977104562343344581370754786007552530509321264144920336414344010929833549506818562686006855510538354375530415164781846318969402094478566107137102207276798739386023694585893069347122974755042452137821315775191581930694243449179704929539700234485244702496267788909862944759872362044541759071527548021833694231481462642962815822392706602757798690067162051689443152091321424494378508617449904332651752668051441813119293792687421487309556169065745644637161878755979175313026248969700007627568180224627314220619982877469322176494038341225915461394961742517421533527037193231637863372478626259241636842666191443598131268728011368485618818110515250561414287425685587900649984982187682664513310477661066935404757021835045358351288028299943353028385004572561497762712664829388660645029487021120222793571970359429382229773479772947815982339378280896503885168900435695104187112125384836972581895737184445447522786103855239021324015334059665129978034551199197223946973948865578520325186372537529607232673430500944040154602571863471218288121878667260317815189757277028206409521244164999911572495561937215893058319484078372100641983544327559109708412785428064212057875006265183274805764045961123049402594226764798187488830469855024246192958528680839966770143067228005073296301451870195470099379934171893881782660334872789508976812638101349141766917615173945003709915671787871310087763243780343328005654418159212798657637601542028408305024642604696350685922125294674092182214699001116062981727364703833369356946622392680485912268674967673738799774838017853597293007623558887439076260105488874216687838844853054627033947791662496293491949027676838027793565637414937997757873555704448613967609434024250062539022840328370116488336336197234275860363572719218972965758895077258142097118777025757814116991656431464724636550310996199329211576549645052691742237280780173686339405429780917457861030459680013404763174893352700190795484313115664060249452113002072775277108840262353665909084111515096054139185303530054925311002848589317582128315976557495370824913854833844104449395534053984911768437344199393049805408362484272512720570604483710768284885796783763209406833867424497704709662465309815386484772039431373696352192788923975347122992262454664033933015044791768501403004853408331425739054983082217751696759660269839198593340869500459808337800458304608011349045610171325448204528621996235707386312483030788986518144109769823860667540697560270194823550086875068530992377177910686951658593788875948092731690541134908129298673525872448215197516967623742053789084361719398593720031504140106846296473907876369192486552164920026701818578439749060968437908145136478063065930032754415583617229680757278619488871885468430634037583037873519123141523588129700381606326151171396510246239135897883436922296000167853586566431409808195286224160580370248369688330797815984457536083784502345133799327330051139155940311003255502890907438475544350317437692599710523169465310489292720537993653661931417113104263535500922903652112733128941218588505312300868771818301557005496649846560821429071741561172086003276967038108196936472062113905327576013313704666190833044031717197604981420624833328288928778201288118317618941116761932546586999493961872276653136969721631554213209220844847360827826198261448097742901908623760818692667350666285302711246457406487176563011502144878361390435734390899621822322172510360102868656582953624627094251199943474459885129931582441769429944987507060399786989581252213240409887760089122371592856979211082947549981618539464309264914403581184540069839483030402094079864532815450070985731282690137891472900683985156874408209310120095142523629154754592502308041589925932745172123290920581019536311987455378063741257565130882623657586240119127219755187636613394041802631533295935839755752798336845049348987602567668515963358819190955837110043828608461932622623862290024893793275701481192162032688127666364269025236824618129554485507139616492620107204726240672779451996065940184961267582948342051251120893820889235174740425704654353737902363200590853167828024681911021471164265833099310912499254147292690952069206295780040766866820747374747505540789633096392973218078497683200137169014387574860019114547304694329323729374406939855679718705599167153187036454352722736825138124065184117597070224619766731031249898979653185472834069199718453692966776988096884174293786115917504412166743268709818325316316890713989279530703797503426339411204943568457464898370564699303504244965715049657777916553509704869934865730755570285110444582656450575673840027341838558675123170517467583720332262975452438340868502489027551427117138610443498857246835475519650615379359385243941099822694102984900546412026082460868508669042720563402963180797436853230346694975963281291430359666305260534504858565635319163016110245441010976773577801635404141968593206394079793666840257929365530049647056259292086018298131975622660197419320072551557892742564140419494327177353074784431430862335055193163892918961290253882825054816773895466959577514321079072919857786680604907317921788079652981416481098819243797647886908400726323359634133253835108907225702059837151618215668860886568677445615457764632457460437078210848030849890439146235848143621628386496657568996476528561983856190211612987666342382646489835537509947037139591098660462306308123653245391966008356423911056595762728948673464807703868609803633823205152024233910456365273851625189539060398648073865151566546301353917070683018831172257127568978910731483218799016660884206817065680815074942751450325676247657331357951318628823799190683482644011398783422979720613784888307592143569063100745359360080599543333810164788336067242410622383034674237001211430556616549117603832298536660366819037740685962645547420267737590088164260961610540899067743293845362261922263690178405189169519012000843926203661418638067369407307589170622175671116473221863461362183186565946470049415490585967167739507708606769852311077515254165023958923154230367807598196480694995716381351274133391185367629965928684044542165245424698036462701787991200747949975479116611680153022790293577959356097722349145370193147090379804725503986298831854775474018430351674806113706963802270199586104483778382369407950422452584300674035939937809999829825730317794496858329967929604699347780802236590745883635082245223688028873102131724028675024022246214738448095443053583545259699499459012925672235652576076969921208307100017095761418135321593273537401498275751613387473420700117755840716956773920891613750274084108924590235063950297338232195916340958136539580623112796138902509785831527396319068136039982782326346951045089261428837463966072243963095208102475611905952869537969140093131547690310290449549729241901905681756688427403810999818562719655634710230477967168394063092211010406862834582932324964710904288482947460186963634638135300995426718252684036533026069790397271340899726884066718316018269935896027684520049411514955683444070113478544142617913199242143856666090689727162003917298746803541040287321698503228639964245198995557666180792171386414104516202278721324807679462195416796195139727487066215386002290921579491388951513480873494987850011987566934715859588064032863926014657327205632014770585292762715605343531010080004252918015082471628907204354771779702738901479205443923318779472871544664070967937984408878295319818432432905590274561773496854382287706714650066731889737084120335652374206202625398844788383805380554269564408975293763351770411597221043537422755595404614165029294025035412753156087273883125154563624524986601626607973838915852577418751133891779555255150761803629555418644671240021801314078841832839328383300579181153726596180320047208369634573647260684563861432642983826764887350475386830915878707705666501937769408171915184948363187303275291171173703134343226056446058159625200097923895893606482555190357163822652888011209256922140777134264514962602536861343694098646880931617653770880528524556352274820280349201028672581364326650590874617773432476486765872314748696880575965173135634235686717638588858839513305438463045132138407083060879171909032894733151031918785403654271605917717007916464146456449991065928382040081080564197926519896812747456702040029052435220231004841854630696951497841463827834426195689500400349229657255508921966400055985438379435587674904584827137813642005329072570007041540498456070482944682062177013658400314590683443307719577697121824723729590793978281615568220854404412975993475376292586796386082069904584234107574779213163322895184559427550061010676743263254856896513803786526172925758241687168373868727725597170269932523513231998961427316368343199385889821407307718349180839184419169916575767766185926999669443771213681211647976221076388102858023872919687839216565408697415907532706365196893583972782240666499427929110903850989843136654847736601450344992396199425924474130082484212965797475443858905649919859503798851821397699256869404997078113949547630787919638515455276748125875564758732921812984943371550234247606854689399625179470106709424097424272699681607964728734530466167886199812546787023025976449277479823743017427156670132229540140677002598587580410708627920015976915287147732512546743229557430009535401203996160906496175617168766693702681024373612068676724340430135894023380720353229987047550362941705653781962740479248115091407448423964455880188156568443134494295300010675018952080771843819473712121805243779441406547576085125069369167851502820453724197155854758622665448715135416414319493126278585573918779476502146410847705268822213920169916915881771502637225758662737455173098622676675218074942023831030264549910913456766974808046467128472674779558704877373125771278445522470703432135552123124113251906029266461847898769491613920724410968840886022816395784505540010393160516171105771601047985312901341471976225328585605804466680729298618712219671322362261688945139861006600884103074626336121030587909556615872277035675057424568617255257429397406547873645202231762157218834653064428621269070476429486262271567726468043636721488582965801491578313860254651360214959941827056386066959481639202053261724331215395594588762805353536524089864609684182067277350425354830879375741853991322648513988276672472777385330585727027686760567503114665748110795568691074912246548887062542326927901842426884155493010547027779979029923679808550587525943442193493140370004115038448582863213794772927685575548682295042532155949261563482268732651571513096350886172801681982005098979912171621688690172403107984241892342375903571592627817653019142421879707678675973154530113495646430824912330777231503732639252206932156270804419278551055902048522016813005720812066256948653641185703834121608451769539686059811596120859752955496038826593250729909923720184660027686936065418795271869299454703276698746693466248164942456558357847225705583657292748845522515417306690862199530038905828675852327772885158210418672275673996474424304488815692238514425031306485262229606689495909575555496518690022139090757238663297736094486220133757760576921877397163398818524334183071925161279453998565650112669654562372018580411554163922906888827988527528068515450102176895378049228428809257431498886043822556352324865084655698011884338146140434389130891640053965600632276838440206850084260070757779990482730174456832449625475685581848454700930108504477042911102385232502581123657590472188108183808428498995132726621707212191644609133173179505426501983393091163706253543721573295693242972437952068051240918257578474065321670976887677683015100506451662340233109486983735022527200311777258750835031186940744783531444513902790097109321779125807418156408091564885694085337139539813008055870795087366371502135501791309440964963637221050513893947233562196451287332697895934953357381308142166844588832170039542542659634256630787556815139274942101681542835288834519001692538837502359298267568849710169467517760527325128670557634856323060197852736488628169009658028141035738432643190019917222756382507822398074095730745731665792714204479253879908629876669586290948332141293576228579535043280410770702864847251614599807114561883358033942238152820633305632183087670939126918985082505652159715852279756341738275398799939856421025941727876631583906309091669295650626579363330774148273121158308910119799173538694332713880058094708560000439419624333065034017089565723818704112396493376729672959772830796548308523306825155750658601124179626337242266598588989536631625386215380909819930716536667525113783443495742312658715007421899047030232805615350788898248358186901947867789044483898758058953886252482879863755395465953543124389538946857408320667531267221084327703559041785307985111466142647050228780771512626088053156086736287088574658203149621534042872363111490672422142229042902889962850821147319290921616244838176262643987725421065149616668604598321272064360408123489268113032188924258893800305253067746441609364510881768060090467178407824682984521427359872438709256716012986200323617760532458988106922568275038823085269820125863493748114337039170128220626522027254314153597686812833937295108634222019073153265188046192082080367581228929045070110537781604770698797888769815718154033656749034773077799615438520935228089101260083799239560514257278155639177494719761879721023678175409568036188860628467040736374104664602700726078135019550383398811826279781508824227461978977677357900791882109866073544081017504121947409611587662916359137900542371450678870934822483515855025911943181947818576174367677692064875313843717501248258838759080403657955260374619478983291804474342455337557226857896719345580959691575622978692751995917531187101011398726068976876201129128307820693725417355696106359569239062609058785537579141471456888230538419506563064997527015416775676811545862594335654511311220290903982174749813147276264874577078322830159691121116077657040431378044177617546099105231086319598352135512431710717994312594234028467688608525983512685165299404586803996811851134471373351560253229674706368385764383167958561883730190053080210675464357268640966663696983321291561939791875647791040818584510790292384247066009736794523702656978947552994368289821275823190883938001483628012895857552660048503874940043410281057671746359779310697332719729143887558068567171422416672868771059813914929342329776370081870852863422058337237342989882533057359768842986936848038766185970706129761335669570914732292356921050947520271373427590170020797113721543825676115565626567368450802793757207038792434055234459285487297760322046386580642893531741094990606063874734688217493586661667108299120221375771150496034683726207569926409594330932295716051638571953395206608122260220778319401600696178259500415706414275915627447424786243273262299099302684596374137589143957886469594585201287071650068092561586154689046662297801600917631665775924322437839066175698556767851655232325706718216133730190187726929313371623448523333478716098317431678488453267132683276085585129395903365963183478642579888503409988461048759835681662975269167935248299697920098248757421547201131006051216530478739260801882143677404959241940469235261103171653188189541333167724067471681385136619037007071066835077768748503902692225275836672149531081060800843409273304634064934337177709525663033455261699403560981110288521707876984722378680789965683799008288286294582854781017353247761387363751543435016834492981748841506306525168909527332554611954148286638084135425750234113200165745443250403672609695003975401992649307524894821739700825273203419751983797776299963651952648279160479401272508623571859732200915510382720633587253345447439818532948150662783489985343350947693506128775048670890377779987155623115541739203688547517179367890915461495765396035688552954903746472398028189315285810803400426532438997356485583232739629428527040077554074059450405246016269090450357843840862182872684731515575585821300695246351705120212196527619648496429654347258537082857859747795244321796350107657971229110548078350887973042206297310866730800323168874534245456336871093890477748451147418779112021043947409303163027424074094594997881453612712953364437061883626302493501032330037926618163411959325552593723007523258628564291065326655832726905919524343809379972897124960903382684196147979905747431366471875579563921368493232131841443840434650092237462303902177672861124025258235449823839539420419207603264199691933416307736327828279990342941562894429345890646357810038638429715594194976851111770643894919688383562814982311451432925542735568815500949607827134891751154829372720180350869112817075854153589356252983930014644961758443369644894938532806921958335659808681436536562979177824176721635199059262057952730847154668097513559672979212402410308061569505427123142576954194952185814553628082119259798688283813800014115555352511092015761588619281768362026365125077421475701505600284322184994211647107344590077719787976930871834567480002096844787559942412995025262068577613390872157392065628155138538895641983687693680783347769843051106306317269020285786432371330751432780187427662758731067261270116100921080191248025861696563684615524661594385801780628884636795182641898307220692205787133829865693295505533867581092173790239169974588194842679630467739182572662856180553644584735920100258677364296756252331414016425518718305253229699861859239417150406342992224800198910386439503683758158539049387449261420293191294779361253425427402858567218771706081654536547886588522707747919038035223493048549738829882528819062229679214140909506058021809691509550483342627891595813716666640061256431206515457003629449279675622915482758819221476308559135757838118101445867474332381304191972791458680848106428831833924186061728591898258712518022945942134648210603172601922295392404896597204488416768642992451727735561196343016073257670387080384792361889066393717316300279059113765023789652692550888351494236396562873712576808783425378030675502342369122792634112996425407730619403099297213551036310997369022706797340094723928572118665763884193339927503888448366715396613127458102742640212815540242718783115207333288973124331135620904448056405140398993308766727823511811004802855783395356939166415655383805443880618141977823652678065990446454521950366680839509275005859122837264930416167263721484326370268946370349899356703375021782605892795360371916167754429394927466116359326421291691050256792600653355769198946746209238436121685838190433115051511309595337991290882127030365232155066090740243668714014430978306464068279005629479006669839556929358885610432064230893370949174749858035981288512580095260400758748615279842649904734637104914318188363437324461760505051680210656270263350359054569320947594541357220382162031614491399788692964645145740910943658229838762919944749226612686914329444622970779938940030551784476888364632722113061296682286104761010438522189898991514785483350228539858052274878710161854976388795361842986884405673064524095369257246746410797731325049171852016424021069826962769890957305570057152572077758652334710980938266605926796001515084998841429757063958140739652373092757786884695615753804631522822461176013909963974803221050835341191960074553833550398084923698649787863802854034659387706446832585556371049111662232406374460468264064521542389692466033132579577709782671462409045924200754460462180712340826751763367762383300889859230958668791428933107365593366579467438963200193326119273811091429139672620078722290001756177743906036139738248786686785383769012556693054250433568933055707517919923587038899828204867582684536486827748631101751920506477431498264351223547206768580306731020877250827346422236198835567758838971279130791360850731230452881864307170240739264542031367329468414009102717663162394768884404644355465360714874443158971725032935208616796319385073292468297715346989048591357290255829131435401445761709722541424501138628038368547146028728890400755293837188086177752674264985107852005670373764571696696803023922205201711961593540720005172071065291033152051972259114351911049393915068819899324754955678223924127110929870211832821375442329751347857977131656581008391326544124696798420852406149590367594937254832576744249562626585509721559356831381955780121424456904758500281243411327408832237703446808237948299184874025268316188058926981465373093354028561550170566300893960926940307916859614559714370777507133865654279063236798336434300957995316570892257685433030157090606490384203680094497178515884411195974972690054381380746463543517604569895092906918638270342532188347724637247978572949751866841937556510056871413667661750424072121664766851061857385152906815109398963923026291371133395347288910092241016086508666038159589025761467674546650070158623676723451884301486935707336525684294264670277131105982150972408673177754628546054402695046874264945694333421166037132355944568172577237677683511196386398709471498477919581494557461439277761697587326121070178441088481746633049898474833378419595921267298790528344954595999006557939476903130231310705241102073344240491666671856103832353886956696810253244021914397619922282530557885271236631830597301532234570678304465066510970684753101503920131575643916093176822711978936243675031626323619691907814770032194644972402784976454677092085204797594259932217845031061792385625457484491045986029736391794290453673445412020620643757621157662762383482759732876207986499814959474341405201622772737512353267620884534894882276438348214217182236970072200481499755139888834344011445077138033635482410719811617099412964957955800733485529652677541395432945116828819198683621819986008314891947547535861002387407280574454723188851980277050358970976894316348606250466025224802865766298582140443161563052735210867183557047209918074608176014152451840599563707945181992948441792073174409280570439604040512633318388149835702319356983991491976583601396166396690053314107459543713000819304758827695622940629102216911547354505578549829912866626389268670735011315645087968993832635855195449706590460061104498939334027490749839302880644395032238246792304561717749341473907631911627328511132084966534985485212740161359425712752439531908386688521225714914714846420313713193639485382865762387686483637075432167954111341472291362315193533483734168832182141481288337308017015954918986681171565153921171047244701647605942248403099291842435358846258874746296614494643110108556797379640267422455871485749152601933464353793583233080541500375225275628823730694053989294264670433319061549295946435642566220413544623526375558256511706977452851581088415933621189012579939028402081669831491924898618225392752291603502944553286931472871198743362958758059285855315511851305435202858488135543488661176757763792177187169932329898233945786434463597264561105688880084657411734117760732473131490391365539949812767912401138003175307450928522236538974626984535939297260221908587406741834185441279338221346035295069011324859330749208660878405867389247801200009813050426388324049799457430559105347689584824042164032326851847375005002609532256572793754901484658688219841365695029151867319018831615007314262592357733161501892785951087914013448576816582651649990935868262907095486008814215734068951983249783475240668664062685061248030065669086726079645369760914241758499689252590259331177600819993243595079147991803380321112717333235698689309806128528659477963600609516468597998967299365922169610283928082433209648374993434068163833911215882890131493766648931732248739467003630955322349734649584919205502508467803932491423373849436502140492573226817125197359654933151272606865047721785900037239572178037451293517544282979053334949924142440178105163763783225690267354023521744307199849885328282047780434011511431566154166347525065492924264788537761279740023867979689509995198263760460252287925933777814921103139490179474955783305284412472735147400290285263153584960103880642879770095457025377223786457541666972312493447680126134615854505783615286063560162283605670735799121142658077548181753831281400770277048890263783028728667277962790376753526866854217891239829258830559431677856781738217251407065709964693922571493375294786846850850714194090981443307354972836059142685667835852833337815972281186232377007710731133938764962870643140405546365734655243481132132093540836329879487278811915808066556097831022305352488391070822105816804154694376318231996568562442467428080304834056859195012041218499719215600218743598236528843102056006411312338539263227998366999321688671050491215928358716069442568773967369453724503570347529121398150537051119087751128483874782713618945357717415768680162317861226280759301291788816717494228066972869302034135438183564237647828813965242907533759803714205645653024171306499008635982378570594914417108164449867350801971489359559507087816363327502149543364521741309598849278746572511524952925067482166782219681848311826122912091121683397642797329759261437653959617362853167567208905534536172454253859341054224588286181272004455735897872221215420279389060350707938812641113818836910153978724252833935913453559341016835857146639654275353149682008716859817051966408950646016507250824235863631971338508296855650774198376400310418027940572147864423826223294096057553828218545560676669300982830609975216974775586167349709694608247273728913503731739824064725470737087440419961866650591515287108589417022657876114403850438978710730772031922905044357984404791818177340740741135338582182291679386764883638230892938843346723373200056285027766899966848923927421924506926142127332251054533158135809481988652831690621381564679896720877912858760069077118014569479247184551156405509337388815349494272645138085437292261307804013271894174774392087795885953412992964467424605488192455370551038826383643179503663049583358621933301845737268752247654692405656028393467629155395423970749947911967315019245253935289248257937923887560577906112532865820840040489843924383476259853946060720688849105841437737890668551972508697944208985661819047675688164894653705605846551775214498878873878987165558182339625042600629370043164901898735834101136986298577713745142663592095242182836940202425586012615924495041350943073399695605115772646168513574446015397341098750269361864369054570284670369683909393794773459085943345412959674898306705181091427306443778855676082730812612125069931930951655806895112119948411930386837069196578242398100662161696101692675991536736547646286626410308217729594870691143028469714564377378549840891347907141931818189085627033385255652193523184859270924897454743760338709379810525746278895300481716578068801565664565429215495615305266839448187213499336981821549430159293826596183165119091592361420241731797852544599829374639755149826323779002435692106096426069760827376818609022490502139759245099624984758912265733134216982856858660586892245135911842940765508813661346741576223685277687593373834362770916118299173576259330663415906813121064598846503750026454816113885994891310561616214887356619550984135417037618112113745716161344468360621962599769504882648671125176132888197455540110741994963687610648041562865304384713732768941121825065639041465967608783842066983431092321101096659646160140913726163847972518576181990511326325421134487138777917359529763743451955886025935735099577469448621629513926593691911823210597719867054059917537016679273038841923644468427485622088834576925343103663138081025002405411743605456141944608857399249783607371874997172359703077821442067978864463856900960700198210566205460277423853930768593761292789884553126037574358661658471316375916962730272664231659100270780618773495720264796626462304293089138311731008641418111125824689960099944056372592215469059030870070370741370928929783639144074412114508095785620501450689643305871361052086538489983772894388684646776384304602590337457984689953643130299124432746494992417458577298820172342520881362155599233268093198107726961698994265458583762061207291861762064915211275701593292915858625888215899351503877217972501869245663595071358606460431867156284087800210950681597037492934309904789048978044873275081381120150007246833463101935185852409790370019302191845297696128371994515070653093153642905520989951350669496426497788625594839521007011957644658816685066912287769166336231415904641818439389550350287369770106013047231750072383036108937014600994673778389467542706582782307750425044025640972032860419008194867370231505602188488826771780804426031436326456161359725553620958647596971269712299956395120518036413910911668368719685285735092484942059973880721505537884982350607196993274308843269782823742264270719853315748458422565883432314098336311359102126961897092100594715477462391845068884386980028778317938076737780312998725179056144105246576381984363556980330485134473210967259220364943832569496024418469296123845902304992260473117453343014840958744421676830779534362395202716917347069549245960676981914201318289786590356131281264804531974871286084319809618607313883096030466951133898073518573726677944133949911650414055435105031775220645988550257731341809029342816032408847059863856836223643583112276263750612204418254797884374808208745442345321480830756818911700211559415081877544153761054265224444741038524484669462808695163101638661313835654170423858021482256088241948258652088864673019783513336267094049400681730023376218612291725974255798862693357528506518892405452576199601718911963482116508410187971052882312545790031988859737829205515375609959952216410805722942328731026885865619873466075607514782880055752187568225100738958856666906910999127336502991879465897651842673100744754476576201102535243493106732658334740004226379676801905107918405178300035765408567252961695975661681005484259201365175890736426500124050603344714773685070488739492104577470050588464464928466853164381657388476019777200575087844567709216270708453899152103223619785615966733704146859161008746896833323496113435070343515018473073509877534635518962702160807880943271533035699334487657266353059348845463235881519307358294027870677851206582064747839252594748130589819013251209390706912329950536755609620603999177914185546712081026094920503131023085473212196146771869771895212935004036086916738317108871590922571955275023986696564114951139932277726640650718452655832912885670727150294207062397124673466857490693018603394247422250998965550225251192728934257425157258540947643632031658558153868514625779990906129617959569703894339331818805350880227753785014294589079057811655724223309884340682881199315430564574727640556670498046438278825158973267214997140478248763427234944563818838982086818817630659803504102879895949341793556349702087927077662952171346420327913706083993045213169528410150390237044475545633629508409949498005235837925040753762594870038419802146463247236764701773327513898641854506407039652146322331528849105593284515687063782479703525399295092659571862731166235007295508687967234021255932545642891816004588584676698251444198436405682095516181538092491235446782575120421121492676081217984058179010863568646144249762351269192657300590203842569793317909488098622414674761385281821392056267742469226429099884230581894268113636762685323443858296980219522054068854763848451477775708363770093206616249218358847543819775794531780562937772909105739837960144075511562516236202773421291906715943570544182661873309172070110586860059735612297669081734444693565318401263760287521656433308371539358687079568560549079220123912319404937935630820774696094403331821950436838905266890289861270045324263213062878896707869131068158862010529215901735402594413249160138603859287271990348222451540696056154373595726369246634791810943194725639160550614001157032243750471836046499053801414693516268473801032593936380244402890540160703142910790384087237000785241587025940409767941911913682506309924199243772488970175079709102117209032454462543226902644173579877649715590166160308347205354069666482253612010537800081840863748360583893977796054242066447863807147822105457615192984550995289753618658366510453004617400450436457624478851564814076298453071277449203922427414732869733873698001510948812697105918274946931520383556791525401583615505088553244319264416944549863740954505766780882985837919775252458370528272775872794852918471631335843484773713522653040809647308038748154755677494578190549033783149020924239798694322162349575050357206468928153158659679654307361739931361716767592650593906604132340303930956968097570629077653899462247912369511651307875002105370083441221735661293154273658442290587866383443526177361881853323179629169014103971365409318852517844803143783319925074234084254945314179924953499179988115779179167406825155034865799918645182392378836103351278721060100771212990115211544963880002220350001993189425368448011489511348432972635256334037882756285770624747957119119224151428994402212494776641574390176800731072104314159850419738222420597669254502538921166238292543442971754768787737315217010411701190703049317817983921067843063788370946233940644406583593703264242715418306635947746894484944844043764294142169867470414568924915070852083611966929223254131065842894120251567292461439732184086006077731687507264200578010928181909851121025404540373346218501345266409521214687430156271602143427840512596216646562555776862944478068680326381893602973764006442138043514934233504516777714428206312740793523580246842927517474766743877923095455247909800361827327100390416649348818624021232374052311077713997476122908574522935601212974294625399668705646327544731638240039268845393007282690219416930214343063383444759661645314680780367371893811110990079063479481062946877128838736971069338010456310161069455835009076051376436921753101537842344705843835532748913043362854550335766514033622832562718765851280722421814000508413739593007953387168685126701321725434326385706123689467561724333383057557844697096571253052349870622817877883203231605631386934580399086873646030371012342149464896000398839112714833500025791801317451355114519189728019277018797347866450175403433668356049413956470609295408348709048023102145491124011375513514914544119615620615956976981377456346793358192107834060531047315689802214496459349018604265514804583266815497247673641310761688661987873784602864412195546432513432122340220964717619158548422980383331294371429197223699864517989099071334575414085309174364125502236007788159299469928175707457125557983436543727409407074925464511006490051367944521406149336637550974021448275136077875248726725174262710158833573108416297876573123873063770990760444409076933177192116622660528999992401383766480153237039816889816687693731943701832569545848856374182070604308993023591289376711804928789032799552580311897405407223574359496036371808518248757594154755446309095683590687577675146112148485952580953525112360772915124697304016085398819937943738584551593258053936061495375603268545289501372954089042839068079297192441568983618994470803190437435932826179837760580714337811328993389786863269163557633940948814430022262091005983442671545034456157936067162225024363770152955752500068733941733304744329912451100820607688282629430732734861555219516501650779703460414754749760872237383945793558149674970768844660689287449363066955918962542813122615077843527058144290729704886025179863642422467943168494010613173695513347942430618951464541808929263782787005191105217613829425947011907727147689875370837825229438260304061376565932849272223411174588666715559631773848775114263894519735598779060275510196534779291146558808360536960534012861270978566980320088021473977582773609627346700814948039019105108903826811821534401724543860073761075266290200065177807018202385766707308095155737023478249805697036043294803831061095080347396431333966772567112404974700024418475067525532167360137234716316336554937734053115518979431812405246728730744487704038976510670185081913150671677987551040830015462367663034378639699569458710272790661809467294773225675019538323435069403082334505611914854075407476726200086923928946271982362900029093482840565028439942953802100559142837431279810741873212820922192768773454312261526059950111282650362726118484697854361084430695883072856460674478014322277213925060169572072827106507644956774382745943915903840788514207886882392283183410141962780350640703845627267683475754493115151812328912372508354480414430568695891559947277532836943583169741690244846743208868181202102498053584964417327659413678776654352930441303667426774400111441651976380952388531420336536080163012608025074205565064817711620637400409466372329329827913333760416744326345747613995175274723280425647530175158859280943995045450698783641406770720587735673478919430956186063811456044575935809441183037004846892170152551507054392392305450436920476131611413602316086188543033879733731436254401864521384475762685723185460734611691246488880478537630559579945700721818936239448779194622264779202641302306869485527561178684171297532402834013480724106632955450774562278288536330168397170080435270914144442583759325540144375103514625945465979985189590363200008331959893746706006266289286371150717589919442423892638794729068020199775839251928368058452168783564597208391486594582963386565049147225902685532698381903845718315592212846709104611224679779171361948027775314346863386726783630299884125425607393420293794938290837704934323062416203966663925383112732259680420063634927182824342583501124422463854937901130870347227854754321942169266881111939878294190455736514490447555369548557342396050206847890362396524195788476209099611575357465194465986124662687182373199060865080642921999131895744253713977260502398398178199137458508837108077780164353317383848233024028763158212543983855427362404824639841490854882542976445451120163281183661684942036981621205046830934697221807381522897913270050408688688072917075354423842502329090743539900226726420936916946712395062427271323999340457012014582649845441822223734720109349344341864148142439891474100691461758032502089875780765025795565880658436892598338017669446278820701759018634254143163492935882109426933042412499708416227385476163224212268857769777265708820943593448912280573647164840928721368574807519441462566268862426537068878493679576109537296590771069943382330275692194432838526310510282506729501483411375125054709201181251019759578939555288129485673499836002964883764079359268185215517565889840430142487532246207528777897318677837417690060854151625105285273316126639116506792975747000016230338119632181323879248305939303024951251786894647315162511694628666449707932793564317948880709209915389273130129735777818499099090160710235222904517654222038928152821592146120156461705726359622926948109887819140734681306186121080645850842641277553921980248302979232359628374917215452393928489371857518611619092341376541303875520185917079720619868878926287192010707475564470210538705833392522664506321540697970369801891734895278055452095323387708699926171377606827757592002792597445619563338681241552347250567519408036327863340909135397216962519326687133574584092969617387995319186648082704218159124574463531644104822766068323570042147937529437087262737407970154466144703127795622354205738778702693745274953216637021678169240707758812148043300087653970765669526833172196202122144109672703442030112283154170662947894041459980802783642151065651884193837765993561298332694546996693776417678242698896525395796384413914481191663096110439495013576995692686498094998559668977593683950970089843868836000916251772194963950862618629023353230787475389439004081197566888898003405750669759686323430407658353539423818279162496517138617291674094885355789804828033585950714650724559263076712119166068988995218144728922140694078431090580441795831663298488593918622764935272276300617541127044241412562567810598307717130848317976669187242469821014061456620532287962291621409432851241214300764642077654974995383638090952474676201648443461855305242963386305005394802925074753102889755002651252222931318068028718569005589033868025899043392626024814614999389974531804228997547493647588033750498817271279988144956967044542039288697985982660812358203429830058225035706125602921733646838421459259836585686466758785727401734900990956036321291085929914469200660073438659071393702805759542675445201779243394535859952429832042493190999534481828614153745498180303543236824224171068224866062349425536862220112334006862531074881017259373638612045925802833232640492394758822648991058633218684415743284181186129115209348501561996830409979738259707775809649529908367565363157834817023593115464467263698900892394194058551495703863157920167240571498493376667779599719612257666090340931337264639139517519020197548237128399023884662289762111016362214374332465954960795241049226194972497604065326951712652294574993946969118887066338604851599363886079901810654877518723655545501595007100992947349108529966578639989493711067344984422766438934690830173138674175165041927422211640785295409965066030065222269098633526758257199301318665761764492386528458768125223492394062288137074042505527391058938082397669763801648403903853136437093292465238219886944029368787467791930242018792623039028473975285054000201394472443236786322929398943236272373926635530922710907740455871482561798655023538529939037508150012059695239708669557542959265205583432433137801244227469157857792456624371263144510342801754512115833456606690407708470004259267345253423392437142070982139380456729271611677653662862795336021681481907368547784249342956130674856470253777650891511428706188270602630824424114509252149596909657224731709880637392616346236656227557575107169353829621478509472200559267260770538876857097830622099078297520498368616726712939156781608402387998779398577584210392373055075713168016360210052362936015669080327429188633392402359011690411528098340118748318624924383147879272667739565838468198990095343062987876308564488946579126974126457814098010075896231939505923400754395515228010668830960738444321410332004846658349935596072754936297461587098836726722655788977435037349899803292229227979071320394499448814555891832451180921285051678592700575363276635129637369639594608457375975458743426995315163432221474645113524304705829227078095697976564405835976265996123481925846798070090073229069997282352431775752097670376886120548433531306961836660606810613071693228294029074611967911373068272421342519702568006251190145621004917427719660372990480638266183318165481829949596785963858560571646872312354502534399962134364967839861029460037848196513968386974478993235591293193805327221024486962606624876147376696788836100675957740894282404648573953235375382105169180589717767288783935405365402087797443870819224959631016994545720101286234925266916926689137833797819890289130727534578493284180566455929073472229320259116598977502572404571024779323505019113238099581070693302945302852623119370312550305137880302046436216540549284162321027666519329064636147952512412781195258194324554495400422218686130477053975204578980914342162730788691351676830508818471033490899623547395776826476361566688255504243072434481776352142598578036258672773547961215705906840465240861234527101647719710457193525719827491855914183557358892071958750250921797744233726386738662126303414817454676590511837117280999766373557176917114626663841815086111374054694712483184783803556700116879153376745676198005725337062567366551134716555780176525662725335668290529511800000013094912975537515285342221295286322351784261259919874912591186293323744686358556747282471071054349457452037349249911280498232200087656896075953581714403892501349633711793527607076953682428115448169399026785401165631586188128410202921748029936788129445932112845984449875738510938280937688790863456324124059348727189952866505184628183506127033871947240160726870779013249220548929084274194883253928074835329328398247814031663377421234324250641482873514914681037870692844096698595176245904369733941313915058648388666451110129762137209804368695504010646252136599657801356752337082586871738782675781701419304663328995156884184853502862535996943531001068056059568372091990418981430289264450714526790394033371841301137421213346601009289990584300340226735271396149204392672233995398490935705947860238223763245950546021198426178505204898056928053176602869192278438320850069522526388120292605478744694793559833617271284358628927761111336499480164037840712364991426096464085525850355913306104462036847568333596010849420729202271628078536145883200857385066527845044109472050937949212203973611277627792385076827179536890507843179333651055935004498400739276235067018180326827229655808842855233371878798219042318194753942432364868969529431660450642876436651844012728150700786044542610809681259409631302189970532163518507184713480245265853598482360653440838738344027394170781558641950626203679354348614598547150908432375592013626576982059379872907481079717108976843055031960695867072816986129168239664698649763041104166255665865948547284293917908307631046546031165893165938508900452740392701856140757171855941237235427235045203205462584468796720392390363250584407392937632802805671578075137559052127868113439968916622384107958701152131498181086499563011482473974358582365961847063006405569439998842311931519747858726644163401647568992991618370577819704066881738119559941830568187916077577110595830547732195854999691406106007254303788520814550153334147475883978590954934291553397973869136835619018712909461623587038427437460141333688400745359588212017394378636177701494299465083671238002888712849321358943793329022158931705579095455000632310033565665150262354221892921859549650438960282496106253489469856064613578060196777805484744507554580571831478089159687696811686003058908176072658193880110686949704974185519060243678442107967844854351551540019238960385526012134408356160440218936362827126171784750178972221316009966066924440430369257268955621666326820615974707405169991975666751557331289457317396585992278440857002353078970128285989750008478294084918914207688103879132108229608490022799918838184522774497289258273455062358543237475696320683655380159920453925730353498713302822822588179484650696946308776566763805432076800754652492443414770651092703196954480176833435032449857591994446759694514193986521687905865302308412896557387260730582755880534520000481440907779759947737466715004727125548373228734400793166120807012791803123780564271400916098816882939013210481899922493684289852195829752939071091812695379437173894125615878166232050294050672455319158462188014774479969540082124846784183679285957920059213429789681605617214039542215378894100600091661238300684069228830175729760811686844978693223623875302334912360041842666724184051618727095463159111692983287608159160946177562476656853061025585594333599432456941667753136636110155714643333809215288274392114796899696317048811566788010878878372873723433708301270091247198583196995664088450667343796571382153469664670697259476095731808705159034303939548016607090229030543319005261946908279501258428268097264655039727829560959340349247924111617041779652307754941968969079402718874729118907383413281149679002476029369597346221961405588161500294539216128597555982040179594066482637713142353030908237725336569308503591369163851841588656286620642550525979804945237384490791346839722103195245734958545657846008557843908081718528723620908086079843375267848764528301651229098953073285062680270617113482703072974897651678817358451722227100652377169024356073301547300840124979377830301327767708679048106482937979345344390088229377569182758421742566594612376008011124604676976334887973643007314741549692703329230878084901904547719620160458689218713282633160292155448494704735386134396291976135929040973775959884338211596672824749870467795624460796004179215469745590726826375473682657545062646373400264609173978488708275512164535441555361530376472729740204148925417676516388309040784577365651387376579157759185515054086832339233372942839149999146837990613108707670554485235486265220136088542894957978009411660087024142793997192088683589427591532178268210940255525540028231989125378425299866025282426891980263416862638638313513802253650201410192330356313619588778905152268313376548245033675528841570697164210193224352230445892699309227797885691939488874399660983927074692174226556534078989586720044523585283709152680351922625632035365409099219710134974676707903717062429196353638563712845816444787917622574714077603848273881024521493305645023811680856388223609423872022605570501830497190800738393800188702761943936441706593604669497237716932491564545478319311370485655616217244814594659366980266291800689255644917246612007577750395045823806114419389403847764647089040560637267122496258322897125822255894766386979045642497423476449914342080543576696353678937771518040935023354001964140004574912505354297201966666249936075233007778586475310786539972840471988037346834525785126434444108368531638117539872565057936023182366747865345287384334517965308053777642470866242888147294845492179732299404703104324355814701250877746355867849860525423589805444566458414844992088516741693013359971331038521035137835841402415074015586232769671375620010829068287243774282313245468868769847278960149762693680475752703507467012840593419434003861350652661092947409681713043017101384520847723602901140349675393642562936095484317475093157627030769098790413400828859082628871187112753913807621331905706889872094854003360278118133720611272558057395258512487969497242921469668511594591770991626039455289162834131270716762788609651237632489561004588167047862833924962500710998182859123610073097650875932968936976987037575761374717599623256588464157584935570186330136965068313068964976843852909100557748861734359865536654337064654540500315686102074536666016484041890542184749532699479226566032814194306749615163572245246439546306283616717706700865350809498586290821635696090242616053364424622312591067185944672290395802185955273234657014027579273770136522041919610831280182488949326725787621663489098331208806583512494227754802492038838411936824135239520149023557954877964362165048865973633832778351967668427187329408782719557371065783576417320158496361844011490500684620515359988674047144200562378279569077746626803836900295479984736783991468964755487811570757059737616239783042585174705401050420917242173342699868520041666075429053542512546219863666300937950317795728851826540978130338693476347051113316428733855451713330077126797891242968481999940140901830435208104115356833279069550519419484582014354282656130157699104130370078414535131355743940187367769808515719142854326309534892403034994287224668758556622853469337021650365978692618822100854371750388491936654866944323409769712561796257556217826250558674960751830729297834874056969563179354009798169466125855645131629914698888121243204486890145331241953035847807539872186493390200543802811562229258578769790591235531540043438561837324973740168368234571052324543588723968299993038931388337596674060394064228169151675373752112872517933415576169288426783519713414468152374921438191575893527026130010254841520337737279113874401042464517945892085370725434420070089304760288335014814318312855622201066241624641640126630991396034692527628725691498772012625202770282867043870384731211619789495152305747402914607659383188345172835525197017176259401364244269896861501645504996231337562015839747948733189067029084107571387610230243487817055278138604271269789399457511100658950988716726729870276777701107520282802433310861877275429271368970816822125312317425689237915393239542856005128280344062371905687058798175878701189003492644866657906604276206443613954198221475350926489726640811998188706419933812913731176767201073695464880005065038689269340606569337265446905635327664688091830156975455724004430632564480283137222973038222804457333449326722980214469102012276916847669791632048663440943660409638951434225443361521213427926936164362214733415228297237446027344812187039151978681821255370798297533892088728805875848913287302429483680276886919498538784626746463984341453104055221098922569321590330537099493231771146151001314863398971090740875820805858449698975561472383280670817499371595419578831970828619126044231461525182795749445833139192049721915798436534895684805382363064161938350178752282392860426042822603836049484352987636397118067602200143251804633968342209270129407624838921055095824735696815311640724413259262130038989862921171988341547150591899210940705465530233936724641867791289269691265021841609671193733074441299384935616168766470305482391521447697818665487189213581267478203718304983934101061159834734098562100210440599143184206538033097712465656220953751946621894366269425843287964529570346979557156457960075367952505936295814150356345284444234424675669930629938423554256718077744944021637749721877552332899193449334391232787548774673752274267392644266957965916162350940804301034702027411357138472446911229090111859896720642389360650671026795404667005482597894002306242313871218060263470196045572501926377459764965336238503673962847729530695535911416769842370337436106874452272064625649438643451072309290955983437276375041123844361044674735646280387626037502160402748333153125624822781164784492353822312605695219649866292632029560239934282215783229312906049683513845888325210329807566131139992018726312895311435026476251033327843296836218986829982547385374937601461966417966511472560490277582826606767215970926591961573681995596992386365201354423819421938958475726938516019175774828789871598667103901525964763704962805662143056909496992823240749425591150565206174794049949763903242287290082026958766173614574031123917934297599385799437856718606603771814072403769938312459180848889632384429058545813450227521103878161711115445460102961530961238608763136042561522070916553167880550629047768172387333038740103386061440485968612773610480702560813800683659720177409674175166452218879901808922057701244944128815280735115365512604788368671008648701683306271594670827100529936329421886193800824704201258908142766347011375429541831094484804438484859568382059969919254547570009473415690142173650863055946239335258210006340436780189801818666551835184541531213604063318176613844394040325473984404007039880084034055987562032667233438012430796653268579295137971823635360914640698936494253190952470779454870553671876174563957175448108964192253447149571484628578509901398449297939986456798896347948401625400436456697445331781563621353628340567410253637585096505628503280196242712831207105925372899868430264613951879296090507500434534046928385269561511968287015461310537608152655183257509416179627380661244706540591786439084170023334373407441878021686543186551605904760101465525727411002624672725839016000411310420530579538336243583021862517197355998988590334216473372112895348944902142781778598543447870988070564855663134654108008826430802407073733640200090489089603519383934844000198787374804788782248546736747403784177620363672844569161478081462586430577826203164430767419225291390564364195178933506395321089237433847964021219535246717593023170509373861146152509052124757178390817797263011766880349477929635175077833620412812479320042747823954799118988352494696044894648043384267266496253721675670380420527984864218133642968573905280049066238519182614299791870460759088291451043992346729306200991820059086096628233857085465410558045526746506126683191740786653120853533168924143709398945403900229078362828123327456437407070563836356937468792169494685189024416916680983116970814314062645594368218440331037965378238489450907241305681085177469032074464199780964323523836870633337541181236072550984393884217853453911769848987442955184491708518863443198295256218044539800585531623283154955085042475984483112602398334685208579335317138570766012303714990039056028270890230434897758425240331637892175845975777991701930116927861515331940007539956746691534529305672321974893706853563150906870178420099462657377319591020579337189783910031546571133621364607138766177240102456508236161279745824573767889692923153732369827590927653504210691369663218363701424054403642280554810251953179889450154701433388294936573399015715934093612754445787150119606896383938210201105536105456364817891900166135023153225542154565538072076728939546787847939126117722126684823585215696136881680755764263371580196673883139606353053120866545169459663683882847154747609520119162546509427943821168446153748153046408458786894263506080574643055378340026057963574042928632796371506715448738283520958821003856547548265142098089033900293251192273584153854647277099163781159897252668327818499801706755773126602170668678879161107199319711461991704230954156839362613106270709278866166917006793443058624840533233030169194103728762580389174689772882652174249798905420974610397857386215672124086545988399793433992530621770175378838146739021998051603742857807088623501603717756809606906295735141880898404777258999068417070560937928170886776534865422097877188964354108180980719014059721315002186695472112632303687962005110084857524848917417677045452407870952054969952190375712067401621866607343220371417094384741603474436008857401314453154464499138094357199653428332272395800442010799810481755582435904373942297364992474591948265576960815391861504610761188793489409807745810409345563413689571906157624516681928926160495552939141852352480033405863491139139503120332177020211084857037582548444893796989479898954119643048329418375816784788078314872396204175467998422650887116308309783381348376082083476554814242373697019722109202607914271917207767182349253644657156806182175006035968623545675903378815095017366034248896361402889710518280023289270233756670251127449611812479874843897318540736575432048223847769331456178116607019660159078239248893986706254553749654927281641140293927579759340404965267248655162901195897977724586218227450756136476010586218535044120009549808067736854813307584653306597546396413857326538440920928582819121543331927170201671091361785659533634261908495397227107178023410372906947140522847540985422668621748704792287636637722483421317539842071574093236526197917721343618838872335277475472870316952724056840335918155684202041307064908961522423998123864665428520123825437772723968423299954776495991764228728260660839382207599126576567053826088594352997724207722728831131320329246013062623404624823452734222750935462097996345397525606359516675443959045423784592306011170217297631219292789245556382906449656038022066650371005661203463219746622243196878585136847458123876552280023747546105354768835202695921347778850969039405821907896105759802624380950720955736272390626187048357849354839152483155270771913458794489808149580164129632869790555348832144115830262211757406823174373219586672034416352194336359218169567494591883577135435617214760346037816232653580505146938089002762829756091166219884427059289960260125055081037148659670594956849911516139097016381138014845698435650140312471514701881405383801361966086512124422656386718592050089567004325297960779157660169074965819217500369795523956886035755328255592233943192192393103648170362489455710780181179301718374705364874672289916147247873853200896817293409616065390875274369762904792783413670762280742439056293219998550326090787931894702276242872519777126550871983976863522112046668416125310569049512179536821246925171451145952018905934721793467824565951279919954700904916021087577504316062638665135005245904706701540545400361445813888338198289631712178091800082727651263190341466292252433111954930725955092770073736614996159442332547228223277374167880049716021471541261376812801210058698257437698053205090398813809638908747777538703163229927953999203345308773066484622314115109213226585657140291617430292942550905101369955375615494568684990981034930524126244760859864525625944909316605630057973085225915744931479324760199164116935921605161242746372510510922985316636528944673896802545993153143436273737661757755923864009950347309394517027086764437053458113244528231306587389157095732745731976021011622028193440822585297785995297201630254449748300245193855793099184233105345301636793841377839938937435378149277047384754661859136028132614145648323543194448745320790535121368825159897440617628173005096999232196478119369245037700275569353184714096363515178892255638072980506716584605771603450739066226635957915997957613413270271412567798167293566941004032065399086418976346508825409595771946048542879853844741211846627402885494699821413364870445120428773302336983731130698921534229575483092945661629808421085162171032685209079644575619203607104019621489461954170291812312103721603567561259909168169421379196721022086846164615079299656410280696303211182060300609770789438257427309486557827540357519020342765396865880002538702064224937835189433537233363183825802979547317952457365889409390318455582746121344081608065504393250548946414781929980611005059933753777152220547628051432156189440164441612875697152832126939011496642244374229517576986192648655961885112344351115750783127416122441962821874155165403091189482616647426365938762671920707740925242208467849205049946435949856453993032544641368002654944072985907041718661989496609033553724201674804870588324032662867662470473410390892063977570899358842426531422121260678417179635172658603602040631481478606803813471003513252223466080389645527597781351545503022722345659426675836077454605530250807180536679201848988814691706273563111740643862679695222035564042261736833379851982063808154248911256570879242392348601246857733650842632790505123958447415412784078824260955215992783400872621755622534386115616390173463671683228406044098521136072182320203667707839341995915141948498691109005982459409527157671723544846010557898254727268240734801759728378316285935595925222117966942289359054388888635426833010357792387925499525143591333307998914059600897799658283910819004363426992618401180809794893733419392466794590463099608556467918422558849413293812991979905988724830464387053588609645749045790605226677844183789556224032718000107317467217909835022662500831781684144579621185671412047242479059693014743269219737086699016575623015369434434869563449925967577326686104975388101750353246335153540795649069558056284867413521417524301816775878717764554391152306710578264167643588954358985696785753206747553374100844973362782162030567496598081986009336882741003900844158392376133411737600541458853687388674992971079194540509153254342691055291808763175306624618663175682157392995746295490479770980001730238561779297599335426854889193779532930530005679573856280720529828627944779512115081808176122857501277417209326868729849782408919484067192502092937289227317089190017949428538054708487757782071737556495190129107094050509172639943188252370981230797862203546216576541921465567641843479257988931774719609941743349444617646851752772512422811213093611444272607047558690689187116134498575639781812453369742382234590704739060455136229649914689297892018667991881778661199978343302316250569191761975132265716907448570110189568765532034857660339134505908907549455455116108040895232759409553559870790953005741205767984707584248183893959949184422189635241731258944001317871065541196459092133843286157815821817165409939791524367388970494651035904349704656549191301041072719812292242576777634690561176608751334979112805188384343825153069056028936180726169954503861130414534096619203601710949694299034626974331354265620202328793933182891036438207792255230229826956664585976106440669236098107885837176275449298018599309007543480095526378392533023406251859691603528127605024001594747219105030658929477899521551223817299861247880982881460824803977557188309948649170376104358595201241268230341699545883162462762307873382071570688901807718055793013345882707568944325019284472431722719060323306324906806400572229675885780544409137087355522338571280640993862017084053385094406798681063947719444287958876215711427328218975724570138475806702969752136209103284501545040415645214989677059751877636861546270025184547563829130889049308073906468786561044461801471678623201623350929150172102715886431379913849815325300092137997176021947534603161778152743063020943059242899350042606483667292734753478557530550782409267547337476206815550389823941774686131549467303626434543690027288484366185303245395830180670170560534904867578636230874166543184528517321708380501925657577882914771959962929233742780994548365347625095006236219845344953779468378124618495264603394862724458482750746127492413377976969927292851301105111500889721173456863007168149261525484525395094760692838146131700419816147011424629182680721922296096736322293280188797964685170405615294151437035332386908480581710248716343580119614362081504145576702810048684903777937721155907776878542328559369462002056683646689596413183567233163040853870113325937177739119445419685557587473760221453325849556517184038495233217413646744536273650524228154372430945593725676471643943905882188078531517730337590950081764200502580131111465202935876164668700523536158328035643187204424711854006289176593981194555008366682309786677460209903615029700396771757788506504167679189044182112233962584760432866055304323093952182852089762535368687423353045435159566809593664739913332547801027774930107444701810098314583773643706129134119977933253949899652113648411035340704046571839021409400616321508394563589864258919763144861711577290236555889135846658573148760568787424578497297122662035890461823632320064336346682213728200702927192852663868039124278417302808203202556024513150983811751324174504456560578910404288681546394520940362483682081210517317708141772116813035314885233069582190487668495806678385697531939677304963612696847747864722936899917112054456696762214689136917762093475587583956008539732234550731566848581782650488545056691211427576850649771280832131866434815186089989285269147602718282316184601067154824917238934206585582510111093445962372676598372383089448785446451228749399831198390530382451707499259735887060350180826861486387200555034671724924568139840171241583065791651238664498451091655093059632142072963304130495568122109843932220138587367301951475428635936448234927347039570210939191491941800307655882184137301792669189893020810735627987168145980432688718294642844817500206873025476333339599948068951139415457798776054598125664197104606951725774460502381955304629058468672019106455410279967044532959302230932300136616093438759648777274429434397836016898417289830467872194921572567448158784950813218402217856021626671594496967877753316589442265840465630409564844388027631103176503207708864345685364444247131756855369322709976813311237913921512444409034107246205907809508253623690359111015197498631707444707268113165102060596793390675326222949131373184408003833285402428691219045069629704846580240449038470047498402189968250919914855875234835014765013471229179029801455563527532350959640199575743900827321560464469761836642334203612878058047528851544567126342814014104464717771640998008909939724594458555020704250327860205000110772352909763677024011556321286082600340414649096890776083522186939779067035636467624958751763552796502123705525927336086126580667449812955000582893905564133527805329131164910359333953000528736748405030342540969066307782600770248527114434035030723560904669254394882373728917778652998148274082388044576717685773883715494008897987962824939346061683321022152835570502047974102676009527649002654650425631778321832246000178579332537733058552609002755722381760876516705363906092424912368991646157146156308679753471433857416254767921148269293625827422660194586266098656973268317391275157999118121672478747509154197719656065717690936170769934982601608042214484095585447391820050015636862854814021180334551580132752902262142632564401176923981967374278734959699782006031573989935089498119136337674005088874311745094984034789066604586659038037768776640460095980969392167265861846009206490240850181375994322208484029153029715866661330581537446859136575084849358980739227199541778468736878081427738520618564757121543230292256058150915295580621603948207907189295871422819723364277294678179999366836574742100350974344439063271123421462380960439284101435718312021428381173521542337744793524198021913404351028280607690467864418765389819824714961602457601559750903671002645255067705887264486766691910549417904581330380675426618974639289656543177344324204216918649871927508567349157381289989227042197970700780464230672793852693295097513222609840754263221161704649399880613955257590584547843111386835360102054352521275384209383721824461637197669482830720817612203620035976932263225733861694892613899014900332728891093394319983888588462722646713185439316815888967666166101522132139406759801346731409851817592254607237579378381150021394942127851505963547358782713791250571683978472433236525211359870341087826703981027504405861798682986806357670222499227578732627433555242199932400767283111802432486654852700751299205848722655251173887039266002992928146142085581800540513853045434671179969231329229402889772774539214247243736588131215152172650497708761200397567233280578476597112104091300089986220740336828263055102026659731747775058544248865643171632023286251539163645006469784412557316221127619541720225026406690428237925417990978161359720627579673183035865219808854844827591194907780494566698364334183074651651675245341893090520332065641383415114509031659301709499649166566791760303389294124906589535438205368130499358753251617120596710144490141404479590543071658542810941871967845779386046796133146461681220210442184721086184641072322413906852771372031666551454006705292418740397982318733679325275355020558048579414886724531288062179553721695270720845878130471520272744916133714013915710149059565927483348992980111665387974236945552951233608634772252479632750528719715761903549465377288740727923781119163029687551244593857783734915187809044473991784497171840297716245984989385347925053371312771917157189520497109561964546013066452210696645793796030865758083459049793512512621957218525458770778678471914936247740913795339688416088521475337379438719772766088533535126092799840667824710895994184958634523033639007956973305480688814252089738338184887009318566017171612607140591941625352435608721666645036174056507797193681096410071088687473469304828576021654804168191708383259581411748612252743439841908909682468640332909225064795742288786656007265193984246036678320841091854410999350374187990783966939246577346752968121201539093514286424406797369057118517741302510646425099090607938934381341968010889771770430679880877383435151624194218945082606072651749569544741834247863724720395758981216457037010077977987221086818318946219189615640596579811338410570123662077465835672149504181780279331281158607781359166934069307133151370380269109784834940262262627448022660848051176154245329097482841401405034941062895876464146569762195848521616772902940394509938704894186536294260766136656339962619225680816546903603587370482491023436240196590888737224757784478948948833348774639257522961980593367520092387831052783858933002562992576430136320954102530736579471450748599801082029898902485104828268382863367019292155720273325707891395361159968431946131230066376130028685888467043489706234773402460160710846394698521140511638742631721735413869059785563963806457008884504003332783417814417098730911719009999020014346732411804942954488851791775593023574959728806806446022531155489291708950763783400561252437806289539047138603196622887241177452176361112845177736288996554510019104270263328006111104783411678789495755842519541213943267019094467873005550022768045547054323876948926505428862267901157465681203684364769811621716039738710065808862397883957024755022469182124238689153119795694970226369184954586394368680702644218805780079698387752008085677760706206045102350670230009086654915677433321997715563313688159411292966269160775872137639267603725146639281815026711768537574337964022908066128338101098070019812038264761222686285743977674959454549347553460176942503308874507083038088828802420416021243845692304168557176259884651956299664809089088174643242535044348016735021862034475871224515425069896068243894276821484647083867164938810799098191178364626867608122643588178559007489312436295407905760852011348131098664490846265748403980921667475055224284580349616305537116682902084576537002872519369703168689888276828024906218092827949998713884913552444581900838006954730988608466257887534405696388272370296000328713032818063955772691252355973041436921343634768838225960010654415435865952151626391889645721675895801549638508147299669580779387664760413522344759344653161103849120339165808976780446165559776894905638852532312054513899761180492883521942167703054040575641075362314116923048735788778177805037788882333515122588480070891666828201853669955730723938606936786109215726049950458843682870273165840447287429007924504152003891582205560057071845771667630517044779627630389727885335527566513735462629691177135800246935106288507706973346682957234559382063676780995149031896329026816564285933296548537666991747145475733128858505713865217292545931363180692117222877782034746578048655684367580688996296122650743036419121572882510129748110815987050120837821550516462114084454414377335046305135950236885802697369242744861742131357094826036699630246337144881049711545556101310654832789429131607496264066879348380455610028792407907199683753487250789309114574157300126907881276810022175605015292714896170448660663689876841033864223956025402505304994124355719534947282096707304913565241182892848135107887360809322427067706924999856668780424094745828871218523058620032619283121201302875191601600926186751940567488970722985739388021273599710259542089127676478148887834166050631648257235876260149314967258417733151295906253353860600925816415801053722916028366502961410601052550291533662311040489386041136333562782281136996662434888328106585044103370075492089007808981502895663598700986863552795918489071738102969512663411837611790551016945199602227429084552864102413194365781622562479179235699203828978074830723147515726438623088933731894050610040055888483019464154133143617707366751732218345019812155848367564835095013317018869393481627252606952341633546922310399599349194140093198560880538844315794148735281533549660691022198001958150428293304842296722572369548051997789430276145842007530325848860814907643493655449442741637915378423988045458471625891292340320490518690592699691039017689590674461616028108108386996760770064545484558570484202827411566638757999735559374458813995286954234692344931432655996201696183390513475667770769823687902684638858114375834034305121767750386022795339924559637369403914685549159780314794911616065384049295877723868114346330913183335919946771029777880941572438178008104860552380708956561406520612171288224285966621242643032452466728816083891532300640013649571993441477437472755079932777539604743020242676249225067760105935703110490475687016631002628479415101642217683917179889876711706475152280565755609507923607065147578038644608417388308005846349540466042071033129590918872534297298024437640684954896215045614893695411951870824601748041901924582796910130071134905374890815082384148554207956290721054714972542344368065425790479253444084966375359116937705963204419219149238471960232982787206311151443309109708216692564268844375086410711115110399291363995608917247241651269234744227625050314913799618771262463476860130736822086470199096301888472842496286747580829597062240305503152804967204493536830952471073983244213465954925563105588928874034194470392919148890246256787461492860248678263540024170612892208981141634386212707738830127721147085857959639107235599272134449795839134918697009992914336934824520857244683981470647747367366841582445187701013115858408511016140969767574615603773261222323324703479824229149097083204728469007060485222243383734794557851999537613057752853627644909882425292525990049851670606369613783329847924365640899270518976973221434549666162885533378027925751923773670530307454512983738228946023763262549682533533811079014631452807983977340419535706082055658617185136407230628887751096060377793830333613062820039177812060946637576794455892572143283594911470994576330503583372742755672915350422106785383304061304246823515145346064509001743968622229360011446420801008588131139657687919455457237258407573202778593769066304101087549519730276583641277050524684487411233235300309920099994058144822941661645657858028296312883486947647458497455510577192563400364677067173960172148374694967052854724126312539897025077432511668117775939783831023463095463084553127313921053600033208678717936557645099591003709451389816580239615921678961906352342039665217693747118360801552046405765864708993493291710898015931682871083859721834843077597471797245814673392889166961457012606871536986103436605638503634146909135367881128015522088296701885341490241821745499405524302574867361346171015514259353964397948058624972403784740386009789086061513654440489501237432395655729826849971699653243647468018606514498350949316454749210644833249026750832659819207179828130229972256559365131570003339832974558114785073476807405900080366064452412026277629153517885646653523928234220229444743459683640159824092070198318584560412113370648816271443326415435650848337062556205881533863956787739892399590661389611912865064776594418741792924322878591825171301058742973758010625558760428761313062344445343024169079258026902972958341287140215724406471011340975499008021269257378751441970390262658319294969337135046931534984355182818701271679400292613957231950551112580623389288270450325017407834980098983740798588512656127336980476464196641872307934923764889216916629922953454933644029677140926124994784893431847301869083415918880817761156516849386508200271907052374473662535048417397903655876187678512077961931877567996047824575862924752550290094076191128593354662935423205981611396467493094026260464750952673564774716623559226470167762445881387497964370807335168329207957643087732420927831279288141340264709449469272707764329683343905245808384417529405930956836335011902098507771469662470337308621776066959356555917356505984913116680927648176103829102009356465390587510973633273720570314285011573575026800933358845965667684239916861952677679512276080472987385417162527263201502408472787204485805744481939928449013206992271573359141356421781343996702467446936492463012289446479739862001191277837426534241833679371636120281975332952147815556836764194192761194924005224655025766611498672112940705471535122664067203065745442054863797806846632014099234288937514988942527387903640089847354265507719861137530564343122961572278074756695954006194514331732440500580790879411711657158735768634760132990462615400856524580844874958936219316521965233050946166973690097672933395164962103647136835330760899880152326015758798065894615872635074845179786966050540893683274060779263538352064726705597593231340680720864578624016227443865127836881897641927904143553386742905132537249732209989308638586498675115918293936167266413222027674143790471132451882873747624353994097850000342592595684994302498708054784357053508042073983183854532659126287979745032120953003684500955097148028848879614170335342205191898119438941610423426403345132039633325356210059453875620822658416955870979782343907388059143759511053181075123964389388312808665280386214108559857685528106212310469531156440076501629443609914470832615285650380525914686334325789709487390934165698733829575163862492412909350367696490183076220240491144937248891041189203205074727501287612897990699164576522886803791341641261310284471081462919911270155055997861968942260675652494096789671509936971402320030440402256853155172170687120367017539650645972300731817163633003444033052099403101541451139938938234582253779430191506962039101795006568307683723031623288066811205850832438327947216636167657669146306857867795602067346430707904906382523730505560084929617735043337084132780374035737453101626797666429430514342020979259725895534843278115515348035764026218351500602006477655973581732167955616105803049220637159458310252098924140741064473113495466069701083701024981494387235644770746048778806503665033875619066239437970294865974069335099434294277009636581784317488440152196006526312050152385235834811684390905309008022409388508619117962514242414725943833108019584424663748514334483266351056142679234395003338099813938803901259878150584455172676607981660599656238432070550229955421310782766338860022457576625227256316368159014006543377598499982004466347595209775586263598279613891826324449409265247979526598654122967183545351284724650920304738286991631009233221865069367084630878817345119889643588119381505641948325495378054043255864533520493365062940871862748330137507107561490512325410251684315598236587248316619518829632652002293700763047669379272917595034702522508724814332645333622536886984473587461686440385807222971111973533852788723085799842890237687963031365676043905688408934389507343231075408622904395557766227269838726079020786072319223939151852202902262230050058373741320165992138028495371079876122299102439562962413707115573776474960944553488759005333304053878118965803761403241026474519682419197936007168129777258678514728841894233506677626226135837012221242832612447799359748676629319562572666986768156909781101632440662724658520061677038857609032269799981340021431697081743969617206450354214254200950479763674238961240551712915535804046531049429092974828851529818197073036282673491136110813728338022406013531389774359815930194766277572991318976246128781040990771215219878524603638134592277845571644404427412334258703317108552150700903990236179354756667632923488757300253331682563408597685357504423497486361017329396699665334545559406142750146813047246923263703447105636631550470819045714584896176519354722203768980367589911705421666022734621711135931909755789858224727477953116570059260048967503425229548254543991206665762065550628383491052165756639169466805299855133635121659639541598236321354667287209979853349379170964386779910346930613582809335986042651727320939035149300389691992414162179609449732021269425333888149586558955407425330592722003982383212467075036973084609485478890343616560070048830335532326081754581868240892863124979858493671264026372202949896342960241302803990105778108551757705264088452258292364797416613936057301874023780674685910938880448743888037281043741135419199208065956132109462537841921692478879858448978011400017163679160788809513389278344966069322162142906984829773790779324025100009522606159998571491375373871791112892790126348087923740604518772749777203788753073636999896180828857225003740742945615205314020450495544749723396055771775663728828172300798684967350697869082825835418342594198324587935268603006165090932731497824150654638875355943870699651537275581790177832547082083790323454149205863828022580827269206622163438555589856117289726173263809456754072917933793935657690737117812254842557628935342673391393381774694961725763600799586474600670785301509232807356948856514973064914934178059243308053192925283267780175861286530746116226902070629129259248490574553650991391885767595866975715143894448726608540712240894526152887353497109519396563273810719824717565115389197410339115440511643753922588889407152821856720011687574622190896597251640669475782424440703714376834922966429492180809121133734184343419931696837801704268679135513670629297703882155865911228498576510436828222465226765763824910474009379819499056333105849112605234506630490528573159464784424092197745447205475863561140513361579108799106478009453099666357819245531588545185101684489295340433562161198962268664070825526325726702119380105931692802810956962595949081718469329506287406612652625409068269329761939664654621661930534460689153312558782803881633636261550318524769684235759241260095604016481521836472305054279210642440734376667212410478255423370299503137525486579080395127618064154370277253049842399766696308484386529593529903290262219913788120764329595323233646240333949678623583579689846085305120302881443997376667066720204930300652269353882457881909868994980583472769214789972226790815419449750471630031406086134824783688194233125876839159432432246002695926367533102624972325887243732040545954333872566447799917744205143621851751759987774780446012535116102260231206480634478808450880731818468888012479333804178730036136998945751854920875739957313685543879362894278844622977074929482051971489701738641864796284744695312105449106209737129103107429075886428148011359343445431532049513939579556830129978490497855010578739889388884222617960625654956641061844580309419483443198070751535565925763572580970093113173567079203918294081843784303142098047862422385721042481856269875305925309048867946813236037739795846265131319663674307398994885393401081725571570512611928713376682823994509487003257889698497795320300944425797554590987465705301487992801545660916580826974998204086046915978120473471424994057924373103308816710055276412739022852054264275048349830221461966677077493944695311737949437976402898673454439746491600965456322141677628659742289007834407392654968770781753096886440332660440305761408208416420508010976415839007076388628282610355331182514964895027036294047238588738780901227190538670417923102160124180482400463997672005113143081401555912079394986685792130189042688911299757292778611149141204404637206617805528475667809120187447149266760497916856189540429152370781817203881268575094651509622504897762555979314644444067510781355847887620863574892618388371653127095792837610307737346061896020205911026341885698926728014733107202150194732230722539813553931220419932975508102654557140701274364714113653405005386553713590044662262541751924767405944264935681169720877964774367878584094457476815916804408700270222361377887886096686229869381090409998792720663088014177526971166180530104222626202480842565001627456022168085029112774192371482658634698147197241533243742091776905082491699770360832490656078795396910248813568208032411940679718408943138002344716887777089262522720689299039905794841964905783622811075092257113338456253261102870887643963917818535140627700624692115219291317754052584639929044922222848586894040840878885895969928253140856335779179144858006001592384782127974733612393143791949601963755422813184196179628009815604585949325802895923840268380890295473182752709162914429682201370204195488838048321414059910743810985734145594445088244506147652276067761759950938719274211812292527431617639447653272348312719113690124604396675688785366939074865483655518480213922392859419294383226031722044481490837528617053959787019304841086353668757625468935710779447831314415492199371954942848305703114652224434610720187275444322555455256134543463695099707370926931527921524894151157590653570600245185396964020498591148754991715674734987354310379281100225906161127916303901922725677450629581605153967226353679096671513339832666960726611059774229373395929913944622723795283693115387738894964655140690576715071484807329757117317381440902565845287426637108674971361406038780659080126788154274897077163460018539970772764221865334043528568804396651000785447781324994999238342156164209888652349116260361192661098876526400667812471017066059771903400123442928250097395528448726305750011804625041562408726289464025449279965293781410187925762375495113251873008709481241234677679532029698726627779388915923794946311127311375918551038956923159456759116198489236355894306814092257898451893383780977037993063721983018942245073537861499020569775069855554059299780194819578396609892675225908075593637912031223878972109763729428609345384219498918096747766156327857624068893302014012305921179600073694464849768437417804339879914519337267536575965582005202457294748452266608146456338965289431410621667225557633505971924334202369725129030873239923260963562451803418993640451678962105256585332614670870352951967468184189975856320063751616663893936024596772550131703329175930190645937736415627847608965815607816000424163363006791718009357620069204375125789597502399803917367278376656668639754543817721635679186617383236759087311604736124085703205585175686541302433057770058609515089852941576056524098180982915095606046845000785030500938218501871835361557867544344475562455904556447874494837183854005980204724781390004213281708038588145051884780965019197214944081219605031059025811446943876344269714083065697163168212278857686706921318684608984925665833563271566244824653355724191366296958584263600045837016397684929220357578098521388567921637519002014985332051508200391687394757894133746500182645945777958403279033284489601394694476924566895869795714793451442518224084233581358632104975183237915893027262923163299437442774227803849381330350367677746729232786691299297233919060864652009015677433708340282656213415272166325607698342315247405100306429506336069680106158766640951382714683072729781621144946694322535232553626728779687732071029061660592266894243125801897422475832468832304259697158847311653706974059761197817004374418558154043240908212809315506748280750082714016722876850286770059087555078060660069127069518110619326651111867499737197875771408312812543752002577203173648227718439593322728772299294093135530097772156211347003453255714081972209474626969905629557610046132843998519023843959532863253530883713249238016139375817370016895879890045388874853920323001775420617011417171985332122439942969807491767649081918452828028106809197462329425221818568204153808067333361670039795703031586467308735729158666267288889984472607576716926714446669930731853587573575533945523327214636563678588181630740516638355376510527352351690451327016623769043969659439432217935863427058110234177098197250332091184106546338590572417074331055171412623811995130218904576590756159803193276097068997729868201593437557607171041960819793270947178363857499633090933230030238606820705726056863366863586441445555356386853315028026880329188130961450395105908001393703086035991786366648909467502069305341743027947235168450782654023790252331365369944953721189283703874969091695453740938006057762078164648502828609958383505112080511884614144141546181098074856929997111414650536293426980030931924290856248219554979664401719770255254057990216074290503604135288073642933269635571901777038238747394887774294515780004024661912789556219699393335276798939949911161216712570221716814841371842528745548323860711016403357741481835349300823706365378571605600396028546968069766492294786320686570361684551135594861478841992084166024895541131479558019326747262205807801383714295992964156600100039363505213414589234406780766209827666127259322075938355514162536179958540020784638065224429494649031849758616618195266342101321963362069479505754246578490039859490656781324480798733815933532126272924157517529133851037695430872728101288634849543844504126854446313560680697995795912273874178316120843774704466530529903276094008111664054650948267329251461680965261829053460025085021704232773522659222786247137968508937132511148748642421622515577553426423352917302937081967669010641612447120517331309763353565030536434955403296638826766916476706623102229334050483560613201358799644803409412461738722309093058720852453129872563209844959533100659819045138962491579919658111102949979467100828088898374846000029600585217143743934325125266586914753568058764205674531223263106669319003839197316162065947423406241852797901466907431584535425959225915905126706184273899053031277547677659772228985676188399321705436727289627811199112703999006706364772520617546904570013916952283010535226355675372108407947062201650294448153376585400495274138376633058841236322715354348337475569389356909388522577459925512279755851163926451825947064390792894016942398482757208672320023855521725821271789162954247143110571253051390744274818206610159996966484026658808753276465747728104840206498071343155594079707653091513218390794374492141800590556449035026891041829063323034451565281174780674390743473549593773239942979792122971001349156489702506461996224808221425667259842824840805336055298992085190260186828661637611452218168770421104988551888878535760993378247934166175426223333174788377999407742143668689611029718847661968545509073538550257092775264963537135637400609951465897417672160232177477847094316410616292373466487472305872395816388728530532064325045176096415101479173124225202342528248742799320294773004534810416662498233690331539544414848641411239493661005734761377815325347322115010337538350871485189384216899380465856762337500893544286986953405881389399340945304659973203039676458802691306093254736497440461323686390977453432880468710590648040920405486106121071841516904917423493530770480279669088482390699445973054293768823339189362673937098642892815153021500617628357817869746816917386652161281868616752311772968576478868158725617757296203089538258748197705792188665446573896057697059194243100778690067472520579646026107050440250827015334366200007350219705481160384753502973884746932962283002170865215233954227231667807896972790705567301654905098533125445425743295855516169284802190632600424705489276272262651863944522660649835919773697866198924956540728881177659751461268408129947618174108829909758876993529370006500646945889213210706914856538281260410370772927990362463506551182230872583454723242666544626960630278723366944188048604079733418215810300199327171058198627761504316107683179513805791805154405643668882579313497290108697906863273398060771535996932249131655048168393588977407199786597221263018937034356390786953008109474152608688365587889732221035444901594948728100308132546854688787898864906040076970600782505997817814408912001065743068851631695614434854050139263075292119406872288429004052721482910211262239957737314523178169072699398246922383724641731171859140411345445948782024331497226244494008096105935829196412959757061940934362660610515616315381878578168021429371339700563078736731613940103702195323152620599720205601303423608620978539888283468394804648325812246934568034244746207509746352445401953952494648604513708105798752776106912858048956640133881097813773015032348471904541057735817761449803979751240165720808291782586632175065173074831046186598860699705548366023436600843459355026318267183846604052782130660931976749609535921949384490911460330553105795903165938492401967092582935161199599568861443327328939558000365174254574862841239194474391428543902565615163939308546480799297119804046091999759891058657374380773395590348600485557374085932889453308586260839427465287074769079694788088970160439618022148134912374171413806460699869602935622200314763292123919875689141993110697168437238810661983735227184868613362708405986533438747794164650275282208601943092238678681741305283811727581081498475135538093005724265683906044417522475226680359701065541135549824033418775948137037373032027542147973622558254994861159536439971485845042964696519013637598572505409673966306848755120662656772896414199580543500504970111922499212046998083920539902985950363082238267435942076214380715855656898454479921114717290131032558743692986904048838634276788422623292497370875014590631412689782894679476013325739499344982882665729851054834390304042893618920630629864908441681071396033375993887622402988140153255263531776648376544417136473345031322731491274437935777077974286825623615446020269166515862485704082751199839458833725053096596194973832640978403906756831347160140672960007702859250501617626566292398002984509879318588111153942939276330277101677962284439663841479760155563906091615879865180605675911677936843359099593664705481558438789174069807172236255416018417429347707588286977891964924508587890027244710747674152110767467689661775495988999730219597678267265058896220568994685874565436119915207785425312517341617481891351274968153333666050498298097507159134039831551814035933831028453175684722790900285553973366148076129729252826014365909727125030586755024362087740280967487440390971488036948953568373014356900209706300882107320865534537045039096405112332124945145365257618303798504390338389646506021947527657279938021475783105079598311503381144492858119332802673137366646581319347375227157812483119191889319259639093090405370922642168920603315965710097983368173799872982841195812221721415585301171362887572048872739328951198768041263743790761772699320556412532722144467892058388335620579787193044737942090766654820968495008810539067484967090163066738810552145597680709268149813917716663421844972802792350627096045682183362591174645654672892308930857912195086985130560216274509532187226532152604876011235400535092557020218124692401658619520160580989737566834631438719654415380992002821527925439265984953073306705037053243595248737318156318595702047115941497411568559511475213739740309465966280216144034559080029381098465764643336810976374237545283553653561055953976830219766055170241963613940482667717850618372843567220502284004941536171798092352220233723720560966298653553878755778163022858514961200376389745148578832267945843914245749455705473227594142470948739623626363336923414567760451386740226716145698426181767469498680807333408926346575307146342584170295842236430117224553432457742859976286918136345714299672623762809263163396010475855384185934361128522374818117521795355203026635416513716002476843260891734083238314050432506309631933683513616186075619197049864968995728101740131190314178097401215486999118336475342669474484189559184229742450906138115676941623678162586580386688311655755179606958011885428590313287898842602355290064750092304882296232722043008893565327488118031252304307108427060196506449292245427658007874989602220976713752130832655271059309579856376166482450522128271052719250813642552663648451260627770324195923607649255485220271536194959275485617633051648745607045050509296758159525772380765799220838124791261444707238657687703318778055957392875519883676793515272811678993329624262954697560608511330718362683361475928644057706332275617096170339904037834951253448207880665050051970712025095081216752651000183640992912070745472103922345526646185837165214808216743349056825238076882911013112331450858735347139803749365148139856081626174087234196243925527699932470660351119052521356345278419786710273215407750180096277391341065837635997604765279090068335839988294546799984212206131897094546395367799067562736774021664235180484092211474712316409618441403595668733121838950574072152902822927237012534069767119581661184016394108653406253181027502842916545380953302634322215520139890225707157129138033596881874588212008525966789845250591776737855513977839385206929142996447430871794441675013879049855502141632593243073050949947461416109329779244848405687027387752464070156124569671858672816770687638805122420816746847216620996469648286053685313871980860433187150742381576101863037455625515454167897519980382711847097313041088201960416654847518198301304646082067730697294392867455046794272753182062608859738668266573448289469668030102419316933803288570291451610738731944938545975385649395454531362809050323077847951228566487327948673384713875304017017112612360223823460183491984184895218624192712429736410429052369705023473957708466082986778011580636260372735254068670744727972560877883628853925641944562505897802943851172813314943170613825406870263545707790619407479079217224111980008175788681157595158252168638735811184099974644390549940371395390344988774452611991351733454942407242630073839024002604184923080596688506853919230952272530021919381651596562234650342979178297225398091451905417856551224801879212700017222941993605210290043031219782088536759066490643613367111325858988809722026200686124750373762569960939741135921247082018227821646767284490173723073153819566924434229911835782827842649511647049968517414804323433497448037631919243495909046190839394110013322235106979021970980513901612217239809756772550281275438955149287801905125383537372877662670438447572645022102727534384757316785584106633011249608268134729405730275394697572623666767222974779892570297070442349893716935991910397884724875038209417129432491644368278988882450385936643707664635318846735086379013579339644887637148494940538394762933266923575662815253119139829235419912225125798119931478216379393435587835933363942611963954573345510272462576496632435292494747812432028772583721429260021306515604580863118726095168831187808579549804832273745001091526949399313485606696242246065428628978306651604057267730208806157507523694496182670102516354570629109950526383636006195131859794714876612906822435544193925374092555042669405254740911384367726505664226552219020821848267717474439433354963710533599078828727721179995618836536251570229019077218579114381950520491782733552729160920356292832712880164812703976514093560150475382619660717480108500218500653180312595412067839710240713443471980036777638336147126871593370898365153979912609584362980865873004370154099546391549874342507874833489209400393664565992830263049751034901373055535044562314732150856273016783148802423764633373725152953804914488095032224697498799010950201993192979195132668424201021658288907901683063470118354482791314083763685580368225473278472718264969761025851460192062251829495043021901898345166112912986395177158014871376696850915117331997819773825305226443471852222068863513145683195818485798587016157126737701409847012971711666927239193062799018537384878324129549942596139150772325645999576131691437540248823902521018452752726114502721775709945136772271221560591041050296451046537633633740266031948043789173811307990735268484134686647672390938652016654469510521418156073088090068089886598538384239347892281001795369939689669445363780568146242303529223311468537563112694967070847911504657639965690502743880864319213599127422353175708277016794376090598587162798091518305100368137324673813234550917866941003705343911691204342749760660544006766941761523853928411535186429782214497959035022164127844583739290438630029554705089068359835633574201341560956513123883500248971295061431647021423864461759159554677223322665512901885240036081737780389702824471045089844155254911342543607850688024658554643793192436381333829626878580900188047212127272345606092185528778028357086135696699604699822541980557845574644321309713832590111175292180165323718748762527772824155963034302939889129671821942023500492028258892383769721954337528202180934341032185497813767749221335830702155127429439980710162769763685830787802221375520132039364704457329197214252851837433585934207589371238325694585540985996366555876535130753638160247857282536776996643592901681142763539112305439197750305356019184052170859483991993202096046904292361449192500350081237858159495510056154777496041675283095695469045133962419733830010747755406496756447135033642553059032573936811583399104401297301466688062258071439064261440547935260541538494414541195792318515591821582383437600535988240277909715133203271480447476965260652424769788147622920471472740392392954060479353161468360215957362719508630523375149335336434758136845553644764646118170122575933724064383912534926469112095581845741280558649826371142399319730384793824296435855230055059790014038801780180412957229670851704291407953129324690935303939204539684741692497705067139901435445518378505947753877092487309226087997745244922919762724767669206187365384803399735497847945331044576213887180015019749077865250526957187803899416330715866138024997580907262686947481992551014048060832447232661965266453426983110217299997800560900907191110350455570395497511954513362337892426117446278021781467490760333644217254689201912246997024542952689457251269974951256962748982567895593816665901802417181537714738876850537932923877269897112561956318667295628937871030253985454312902993380677970588904945768954138850333637053939513976728492396957038342509041313695430844626637154391234001856420398661946115821458075149544429178485902110481075453954436929355208935151232989855910174836316659631957739938144602243565322825275497745738840976030701970221200363886186345876318166811397492168069159369979240672819089033741584423000022353033643074995027722756006310642761368070219391084501236667248808816751956125266186272586753881455883580996146551712441970718043565558424579437543959657797866010693783414924976952853031552330792632020153460624044263796848088541206897945957115537892917098739492306586890438739762985468390797287321812493795339784514637053784007614877273716034195336037606614311692371848460457250546896726239488676012718535185001921736176956074363117641274082581216425844181399517774911528343186947787341761456020769490118475959492384747643198874078004047519004237174936255531330338806844951729171201555928077026014933605036413026485909773566772325027147583599303544357573918737835309497093111575811089047577576044317046820708932755427134465156967652768429235415084517919880803262763999550588903183315723093469108560986474003846409580229898756361058215247139206635045609699204122875104735515883955482549237803663606937088333805889552595616460930367813605661412428159728288216841196202251451264775591329667770098054915763814328850439679470413927922244059438516328167977648290559987216438303972102789574547721241403155225314295658655371194833600740119849988729774025386949194728678262415740722205405002283805848567774865677021156883510627719105006001308587210026517497394721795831604850150588827784594485483217586374131283961148862783395619277897687048608749516278348822235439400207465428740700445490340068374762451897458273131329966789202575482554852232436871336876795945705011159942924635858986269929980604769355906884072772216181980872358067235524278798529588486178107936275857050720468271405639560055271154605211765357277458857041459208357172237378522325861798674708474543367361863587990421022612395610193502628852166834356452365597298439104387157667731937610333058139159188012815999066226912107828460432930837203728825340906037557751467465957791673907728784404139614323009951618699603330818898911580843750190007773813271093890234079923384283058810466899959081314111867705421367418671399258107432965880284349565440237971634061461769973451053108312441685084102391506489890552982098342467149265096924529972082928415944696766348511578378330995319484566203697673429241569429509951073885201249279127651852059077049332163428905436614730640349842387254895974183054072608162800182203046376801028652382345682714610443071651484852937492219051942060116770446237967049134028947744224642810534048261880470264020893048368984605884243002098546371551819834479562873328983192067466913343245652104453962381467904410374205986622186599103751476714941068775695192048198806631590849761872942223574817744628065555602716510791147011841726469319985842834998529611524725721457128479906103411484410975791101047692630962510704943121133238126098060108830295701084200553053438871797328592787452986290932483462679096653185231940149085738508547490877832531502076979987716989902640688687494652467607364529617477315974461892301736942864628617043470848579808408506615220324411792668987824072693801527352418373165001920878185532953256539041232508563036539200922574340383496724677200505316123314645121699747607687639021032408975401574392458565329154590608359018686142004652341253803022570803262779779438915991160414895143363820263179175851418939869818205416901995945358430694477510138953436820151710643816439181702458770301176720240439698295594434056808873369992972852061634141522994042678588920874969171559149005309430834900433361092096638541001070873573105568210886280019338518490059116318507518118095554590523036257728215632045458790181632084959771943591160224177217657111402342322885865387911012773501490817016058331305577979264503926626543096352603719638902747029419995296511037654607679646533095983768312449169226213337257240617159343865751842167666023721050960620355404056005984845652169925143426875671583334708005549203664803763584885170881343019135877863874515277062702877589367890684907512323394019224897202147043810206183064944551281319827624752778254983417004620882039734168881916673943793920598753356887215563950854566145064839153621748525762651363108112478448108524241047412890955190518381404051086496294770795663712019092296534156795048239915290509191161336110379390785040052620035239189581062741095345791506501475340045337703932204226279090958431122390508595466764803555971812572832558335892488268364837292695964577102886075163226297249981737223969718592365379617583993332822708180897180378812266004921940000453244643272937148798790262873909579813746043377652205557316122866588548285946272566500354855443726098668675419726533526596353643273353396551568817448887664311865547224927278906358017941381969551315421987283453695238380849402616924875755296255744122190884221660897576147931850653968301890665038828390398471529718380255860041888901868133830892280723435497275757348136260994915601602998745294722541839094755103225354246977126255539860249379304169196643704537303547544564323769159006409677901242836741117681709453951407076069824765088597301123353618844738165023742675312175793202166457430500813519565617673274207103139474238608981610070718026105158219584046269219524743986229551050460745798642314773594334451995051860181474865873195658617709573460024601777890896135443861871809672096815473968360261212576893996408799040021767467903625188659578224806173578872352974007257408762818054685814718210994680599553718830953785214835492778851360766690984987902876092856182285479575672276009474467499552523906462876126951841938930041006365358937468482504852724402260645624240513135424369891694562276297425557611121754513699541733956911747780658744479275221637844424161030504220501665718109857823121431097983355017121853620483372525153404930777790799377406855280989292826761448603269900486402616952815535031838480930782146605757064459903418362704925553997636189747976942278725820834248391883330209798257486565286486180660047627648831784940194410117941154019391425968636493072635681959594642656598091967029224335539722527783550806330674624725346719623783620479967007709237119847070345740641478620621652817693294586310700790744468115156717777542005374144945231139080575607147803006842949056366852039226261680550127313995072427604221324740715925766785520646154257190477319268798833589323550028167381992483950386157584371333594578084670242520267175919628577018309538896886711933723691565030149993397051841832198138408914364954614353439220689778757204228953261601031728446530129638209611382908360177021322515606687108333866748205790214003296877203330331331529187251942768015897778251682521688085149802799850781614046886864548057137011184144454561864416608991793476520213233742075918055471107547852245602137630127977114813763682173483885148925659997712727179918824592248071744526097980017909958376616487913291046694954642417717434736053610465640081034971077478035559897505929712969971681805666345659705323674393832754824717004984282066086834369007623098636752673497461102282947584062771173273967617485634547811212639194542576159557194399987745357346932913256799368279743690200321158966255149874277078053546032673460808332553339676770028579285618721359690229485797332956956747329257285407788562860889332065190498991469153750487213726162058312849353708718667851105609062278169498672514156430735549927824387006286821200139556941695731868228074402037617056868550508206618714255859633917718885221703426648411792759876089663618560406166781356060261789757042595044671371867554701853119763353335948781074610655960349500685394965746670667387354351716583477837601329112046728466277819165569916352390467054562932331284357059614625061346846783174643966483022977389627092376660113475741373822050527414286151266729118098503547334455868536690382582232244641570330389205088914920176238163768569433728889168013101954095095122089905451442093664222307152317815358994505691154090565479647872592410129929469861890685123598554404102783099498139318750505815607649960605576038488696955115891025247534192991236899134177646050446596441053478803676772411730206200230527600529032481609896759891284301394320958844823290684111427145943033880886772146762325642318609037830094447489283787061001939055257008263640962310741728714019666229665183746998166958650604191715019374970088732820880827622771112212474420308226671893491631269431900962253785753992674093176919820726885360672902119285679344233704780948174249379781681380620624000594729417310100059650095472127678888755453644941597638142080257882375493173464141539842047847000377049564650162242894548823239699651332023083181122918944642144973867700243186110633547179876082815577036116779382212399580386965926204359197252568955219244835611046968896830974252449966874300885471708529389637343118458948034167252344049552842975388487002249728009762074618226423823319681071339839636825517015605858307205564622690620960964255553226320906778166317029950926499491436546464662352001125740870996795413714234656193612871524169593686012577023919350212515965655304640200438782336175581120162927567700600897754689459083085951151393028583723706006401965196784264219315223338715805259630116455237621939690057299964072077420226950340627247331816947389848699597249645779905799778756072617877213245159833741257128176595577941636790545133235786160388415372972739710504528067114187691651156841219766616507510202991177977779043939167264817607211047482933038541857798981582572308335576017175631735116325549926053025644224200829784603102185887925475452627550530663864560622130145986836451673572615060333381285199392009622193697202108826742520808165505557956675008116990415133253695791262486541591162684729851474489926533999701036628080094619455781422371216725752618054879883319054051870202912665439095640395385013613593208542133638368296680853862997624269703130238305340049766000578620687697899158626219316319499807825020488334995993635981011101461223953483313644610722849075781107307332759742806021033628221615784829830070753411129146692920745183711514579185221706299589169598973270307433829338135978849851791774117791943494589815227699559998380110308644696740189843140093590373714098877724866978260126331913614092732608473323843180128675636380486345215324960439207311116200492307758995546815873545731841414116774960826870344444977908365158180634886935682581150855627564965067953306439921002564731540628496854516250841735592886555727646820367585822211506144515354222938325714864956372071038719707881883679256355340424591941090332419842906988352815112069610656856761870361029237200096619738520030681855880387317955761913642096191977827683761692876952865038445893666564887217613245862007201570586936992978443841782896499389532923535405069539181807515008833967009190681919891577024956457380771424517884828792170356395074959949607233658893290631173949750373708059455093374780069442326347475955312036020353204394095739749435902748100400840941737410296936540537674145646614434984002174670220370256042110104187191276319783601274175940211253730530930862804135322210356188926771693582127496256267890949498432745390941962695684244435721575507519624890785225400488866005593392973709406557806353423246429965925279579662986508892154716267332186870595288045631915931007053269406217906963343747273206254929895731387316066651848676590609725460961212510005358508461380967999954293616015488561960902580558848845221597793757966915374940518182487120505816139884231032831925819166108318782348365310955811499331057380968253622436772192986154376822817377733252130547281975494521193893838210252083295873993650239814657407041802365773324238553273320374528991643908058025305397869692103503049665787132821384313600012223932842739514854729314271931903992293267079765180589755285674643124749639104699985432692303901918757734017028717541474622012032179123247404597081829327397281913912195460910894086664892704284835125675623346097692320526933160794553024360671082579616909450207554908775762136400935860361106151105918312011021985592727915355545907513250073150167938605585390698974737080020291572111679385405166626890427844454490022834538409738439614638241310891619844957030650806641294820036332914365574791847646482097176424462375075139917096021366566603055110323530864655049721525327407530718808222763084465818831959899477060202137217559606390768078748146568058752004541194298745133490589916167633901194529953430438053335697715124335139919537939235856437521688437673085536197950093509009802690374203304457284396272849889353082765967080753087407733226580961604827565814314349303669631747825684703239696958520151868299616426045192933251493358756117976877783024949915820998951660988419988746656837677239499424576668749731297012897601130597245009201857751563696886919759598400081991199065735841340880216838098555555704562709447907462138713626756408297499172985071460500933041461124023163900078440223436435493981977617601556141038015109278580582132642183850900695109153563301873844570456234684620128212410346436839641383163194929685799915481558451685058183101653933213977215941216394395522868116223834455840789020123188886213327362412647367851754203158095163129324358347765234137074604804757607448889265982552063926241313463431600352408421342941259614420295311257595465841053685924100346530469387699759496828079370236009941619550159208550915091330083628607269832034195674202487532348946482179739193412018413927084154303911927463920843745100752086590886811948629067545328295463772578781647249372160947400443535962185391707704387563388355230640259202070671412613007892121819723945528265432077662909606030799006773211709755786711182587149954688499828280890547443351067860844287145800010499887826656646554075975513934618133497452833251196454837912970978895402639882611082635020697986460932846968212791039700109679707885296031126148519539135316815733844421740611542111942889791002805351892362479840819325852353202033507269390935287642963865693802047481871856743892139812554395613918520775126794649924060958351002273542440432180164261511021807228825534227124623997408995539540426073790029794745237521525250161465792403196608135867901800858137243278633164405418557822262121159889978906451886363265672475712442073431671252146419894204226692191571413705259327038621437083804079699329046105432458401738290784979424193915269242897963506006475888279127100916771132727165338646231337685082128208899829177317418495030744499372584743089314083095410059735202936166052753667208330076751372821222325597801294974181247702361242733767788813065489724836284142863739150459065717210099309719394325509479023713348592234736253010653292341798388212827995150952366888539628141955336302942584759818584666572113783506631793349581253632807083874892899998064146634421265197384580462230180837195207179096806463210570656513708556027829313931618017337153608003513839255848117339195107636734712818682724506456056632127300556138479776060883487273917951750907868594618877715233222742403505605461129464459141644993133700783214407297751780593975180510723093294407578352048473969721266027971424642713361051808285811471481946731798375029943324144783795659671513978197033150252885586455523790308085530290431923840121923879185449739563437434730494974878893423895078300500656409881214969810319220680441298310362299860443062856301374760327427692102031501728902222059994872640044460841744268798263186424222784915158148556655990511113522596488329519513853412853215775176676822904803441267900890526975692625901677947898511764881167618726120944461776907073177487920163637858235791362610198028420414812314047968763561213854721933513662313434286455561224377204231396237067729338353034405211055483409414938211550832569791993659726214819452855113504734463670556445491626351629835017407745891690212077750908006861904839736596050863570661568053206649351064902413423205877262470066327344989095751862011711071101077260544320628398183936822303443091901176833345495969873259547485413246456917672942781477272208070145559733038295039481289961779247280807442028756865116988375834705838671548170439322603854962366620048881388462967207535247497572914023967434864458630326816681556968814401225035670361461766647253484730655784017796378301014062935179123964987783639169689269974947991669014832370904000932646308075049986477048465871098026800353187848144578869327982713181144013342880344349736785568663780230108584374871628880954900061025142147567407101302616735521485414095581660935860053763417782967713834674966352255408441269101886142612244230045467751490930680870527947253354390821305174869650307237424350888423737534668557707200875443133409243004182139555638716188207400458078923185892261634433545422142017514455185960536111590575245183949096782330817293792202733987820166363617573391283891281532728472061399196270987502895209728691879354633836240622996195670608492263699903266371253971871045600503853220779992016021518040769945580584095586862374855774851815106044377695660381481285336869258626952685905012222824134285239345856769121713223104695819756723728498028401839630423082178493474597270521569942252537279755337964017586493255727423021453468871488521768348906693657731811306198769617469132588773028161098027923238996163329905434137989908215633428093256870841035277791218351919297743218622558574678074616366979709535248627715935193631532225286755258754903795532109732132788421474409921656985000837898288088804003155129965823510529626161113919142300246655240777407314253594729837025172469854504439096052516080815509349569034988931351446300449547016737000448690135175085145392949663546262959262014723868708594564142264193365169442502856595269669276122206265961774129529920402614296998902615100158165295474230300531067028496348187407128420375587982701669986337918339716576007896472754429066861063715801248736389589332633234386118788935418730016029545785876294496046647475199179231283178878811475664984916707764344019244081950145796148491440494668409967102499935297533372835269462918574257796527993124089512878494581738615898333917522813144724958865013322311779431498111467393019086501099304342728378762569487277637525594192801450820696114987267623813526468093509515996824838413756468904085606719848015397737299253890340034295545898146172910459305666016938806914628982144033546869725908012940867016220092376330756204298977698103743119214491221386898010582553997775550452183062184126032073238238910022110682297550046010524935056141266750204533565436794169776148215506039001715621992176467792133002985352563216224029177564876844370997143002432377510015764264845588877522751470725249461574510145355545915905716792878708441834691910014517659876678205208424000007673055729523364523466168765432339043758295716283139730864454871948614140037443572069650267744807509495561102683165689393358186862973915118411153911110233754602357461403938632068772020062502760510100342805558985085998165885063745764167182506180710398810905314858792573492778413595019869531032221006808472329901853655831301230304431729232078362766794390546104166323371358370884750388050388747424737153361022896758423641761197499267397385915414130656690226681281910254725421617076491244044265264177812581868819216970691656679977962834947160618340745872162099513738516126833480897482786096806887987556479853676212414699792589124408163020982498115812138757550525970617402803769259477495072660609672611509550021955150678318824691139986176667041374825941772806146674205895646705402788756079359741447475644714662048673564442520204827291441818690566747960874550619699582980525353916912186580575316712052956605392274078475368978899510959332339482270165387360648003640469511475325851873840491955313442679820519891481958124424468384818575175040471410588594538128071526738031613671334659599061748434464331629935108720817941396555821472641007227926408355710748678526325846791718541019923803192849636108228658807771274292994195998656597724376254365630374764628886218284769748272629973008300655637231115511380512067224197004138234807001287301986648364497625097052558566292832567486848882000728573831429984918715600084306183164693149934483993848382852257032209456426633114367186317269196059191983551845001243023693907895029094256594934484650398235320715334011508667983328193016231468873547338031986788999008794418793212713603770866090077637064700353252496167054148791923060864176855268557562795994159127924560260543222871031607089227737136811461534470027637691190215499240414185432708565899446611061593588586335214597475269285462487528189076897644491358477706077449859504173510445479914330491254070053681253260460989442413815992833995259997085958484236571126741576010398785405545701655884918317440265574764042687043396785415766481146778515343169645749921281874628612350756677009444441156004774819641064657941397884326232864963771953033314301420167623810458228100452509845394235199750136438096213126693423263945910035153439456584159278974513974633630026233591764496161824665244968105228804540036309457713991325089297346080024170090175309641106455922941975472031829304661401154789597040014183538242452347034341580405914646013611387131226692016053402983217484633536607873816763693686629169992033379668651795742961276803712394998848695454373509417870907923158447604344663959566576442739587519099754214107429806376694949411119034970202714441065185954455006077838075809112493666474159235808478211411435639850539390365412835569731304147424252473247529867594037605635811454670788299613172030373571505940893681481957015688927942307657776464687978773614873210153728017155705011715923136175183158982217477074152534261791736917163838503281839011027196032787254639713406432993408810017785407676476266807017078555187030972732865761152441750394846197621745635962064326830220189552298686367911475296840213205649605826241943065654612743742122110277255840471680513624647552440785146687474191189886814334259933202805358440610871887306192023808051534188631135028871472849262976569550421578585626114113725231220771487844314681806806296578901157508436511465161524516485786104498706317396028383303799601628506542914356348453055632868634768032028643245073750423186093611076429573474630776657103274934742648064239429881130210837419521787901156752441182992481309663627514461886979219433634235953318632544078728508125159735194523781862485223981102958439255578834658844123789095429500930552686215019380028173390801554761884825020570987419498957820066174731980430573278375162635681078028924621423986199725296367009147425957275253323796744201739801743511680036596147676343156693864317529045575820490322084404522728097056128912491683524516708072750850576906817605088283766940983176490007819640128010607662325268723601598114360615049712454177907021869162078597079801364230325409530130272414179114984308123797294000776252824170400540146994235489885537308334487258019733852748735903250893586081022773862683099682213536388294648919185417391216448512039353491688492531643604901194528495306639841248715455829321640573765416627162359998835924787966478262687292740979149697059040641745453813502901532660058832936153807100585510168302738963741669653065239529237529385137055495843444944946210901224137901827366438518801124532963155201009996073110329915710681415431767802130091703892619739518091962235847405975398962912652882013626059825999038425299797832242183508689305270890675207949819257180555503723508449005351061845235171006781147985788355906462990164642709148665696523462650235108974628017560151112653465633532285210489020532711480384533765733185479357597015346237607497275001105225754877029227466054719623638362248030070301485088521779797449849467740756380342487482453164332947394506666989078320000722989029235822750502148785755448344170461226083907449858485335410949471046230397199479001486626621587644431061820249084373881050985541052029897585877408718640133380762308763380157470852015765443655218547659896831605635726310830961593721671125334694815878381304856674216864600474195113920592324813349456721436570815649539950558001398268902503842666456459047058796092102992830907861862161035284265658185871135113574229656585553067597460007227428661946073743035120980564129047005416852643133891557664988828809931396419029241296097545108557087368413247541859562047080447820572357054546259331997349968988702204869147137644452385154125240218291786194651716308370668664578144592069208154390791648630192738662495702013803742254548242224022324823896502446491167608031603574421949675121431508058410246205767016509656600375014138606293862699225506755221488814817201001473533919796504010072843261736663412846117548784962143179478474913678098403446814779190365285998014361733179539785692356188428152340681127818281056021811038682174972926608994575738650520368938220120737685206958645531727731156428258922635284253000700624116371540358289273513994119152701928905974373854544055499615451034701543664664266293176203832242012375406479115915175387833724906033876258296962609487860597776491268744686372472383878094508135229303675124435437366296122442564369855879269325265393008005842230119456227111490195790447075808024768788691035169474231794161175718526652718596973289858669462718263485363186427234193319190762442938537701136552339224718897971320766292293732149121983114325332004011784196976430316442450020054983527114799864226897541894952900071329167973722592257939406663964273372487080528057712234439673295542188484152100489433113305939931241156677042234372050367557924430921683438963298855141817322969699508738718837172078138791217726871026046212213216034718373278465873148414586660792817877465077935832179138231839183520641923723381226607703407428607639418956065753785292718545446956112138766400895856472624428470843537388073926380458036571128873003483297365785563606110694257388178880684602826145406268693337729919051480718572906083981953583549054605635596537310503659507537048768507333584037395016564675352875359428115873110888176759342079288412208902684110245939216829378917203692339925862615224668335774674985738783871140959464714223227083417689031056736793040877519309634721300504746144934667686018558939772996072012145550146586393673997205518564041755897916575418931242484592559596661373998539778313989708003063837588304291999889035352970805008134095749539868103250072881807168906687490947247590186501952225809957386805861716407716861836970784337005619063715117514580806215500076694925724614755190843690545101586413846911363685900945612386756097145615978764505588845291527032361258949949576079986090048228955153188477745343526494587728249087292801793641998500724565340081363128981918697753068367618793983847470093233065694904006641424563366759729855916820179997081481867658490121801593851506099629004294524521404835424099225242061828344507371644926646976512934135385484191600560639380811982016822672716038236446610017175614350456613756247708655222420242124376672959364555615432070772394508709689081597182096485560734449077313947630322673160576941927044705807744176563337148263277853183920048154197234278269118312151713843880363119338154362145262956574544806446605395241791098538098449918495922580052178677130963742524441454930162304063892729224383451607320362300188004081544171176175522090221443050321602187543487039334705302936180305677621090139701531088439672419803192110699654317715438962380970724901583175082007412427926797658810243649434830340581549607198445132408594094787019387883904515686296825171451083160590888867815979660112249905885409913763901732657098544686204041574571286684937471027679301496144098989765626469832812583809855953600115669266964626535301604018031844224811399964436352146372894862259090624998013501140091721754054344804304040040903094013768426961234279108745304895796812752493976420533756027988512820194042911220863671569788203053263432129560856964818333772115084410084133715451463954887100748252102417774390358903987991839120949726854069596381424118994073136956516845593162517332702525813526294243471851226376053267415626929701419765277901463166651557048247883034667411287024484694816587432267521927595362256379987645397047272614598622598523796113775879438301622700892074978406334766794069615187153002836430019058595540299705171496191117639722592470185568335603095679330753320236398772366755240200566129529724120094509585592773779629052441034893821570571674724267254015483137992665974618978170640551259958167258862009241615346570609562480140471279301541265178637964133715999508995665705645705230521363572270418125130526614341178257834120733400703055427093764178423921562805672628994830797819122208793518074260429477600709948215662949214564128829448211819908355610507880308999881401975644948376830782756670489255080257381641606234598158759154478603666902311107895675198343922100851454410945069639699053400115144448980023335051614318406040110070357750004130468741495920459949360923564039341092333627933309810873525749343447512174732484863948543017392623924448929137308651335067063049561385264606895127931211142954939284885974955797935597609869311105083407238058061023562727745984837450396912130662670352281305892108062758165679526905070820257408658528105432176370953626032116076269121630615121100907377079129703768940649620798149092140408319221580058495775242285588018768921045147619589728013616655372961355351159188910203727650723041819896817178849023387565039056976571774740638963206179895932963567963625839835598969869077697518778018679196574177307694745898375048936442005547721315473830760918835306819165384835346508254804708299660261361753165959800988052812923079398549209691704893228455694044080039475498381186622669527147719627892504645580886850654751824198996980363460579629455152531468108602506571783088516042505952070609791164043455602102606638881165824380120995086348611932277530835863014799548251039120944131489538451989952328860651867451937973606142024248573273749594415884776026134711828114384266321603942013375076631998970304156988238251691508491370261203442340818050221976680535435302137484637496898909330024214526763064113749658810363488278455657962023261323204355279759304287579662064614764548239102230049519081349590128094439785580886956527142399213193475735677678573052036029050487486280512337754725977697635831527474160153709841268108674797083472508603114066470490207145291256809827312809480373306490185579077907210750144701266940015437441938834997318813352206384680087299298789761062951235955557712154636543469829914123992455733138943801006418514023899938157379304035006170040902895340159922546874344831766735232627169158129760866129624322056404409760854192364439296728648104456083633346502125195557663456377513386913745908517227533553503165391258683444170381443169602632869182538144793805026716400667803167097701432252978831508199899465673648487249209777854459131241803292508499223795792725185626607815258933396742352319711665342679190794509565805702869787285295207782308068052054020691324089461034018865662588946028391187855661190250299711376035780055060322323177070157225188842972001978149822778348355648406340913476427058107780928035004569001500333563315248002008397054847171197341586022389375040194441213764534743408552585730954961293419902604677997212160956155523755584630372152551375434832014829696885493439169630768798441418531479706066041661544586487300911995672138058002678520036631680980537165887845618580466985154755826980546373432158250412358576687620769357474303833871704493984293761582624090026892457515811133325869908093025206815796977388074206805254090030378383641611278029437743031018523683596979607291127959817128980469869327201396433209077618101582825349781971270145790756663348812006029469538249349154151154742052683040834991141069853740335189065421778025251653634008981227835464120032204039239961433571551722997455031325758483209930832747242757508691911989803558519378683922323517557732701069167792334337274654923511393695807437818258424110180941985183741040985924366887117203465386365698261513581753010493595465092584045213733699588919161006134064134436278982816252404133677238365111423683351306078345447217172674752777699539740424174280532496731043067024576284418615547584366857629634887070669779342919693346519983293129244913087519795894964951241565024474883168670918069821176138116192751473736835126442432633649289718142181107767519729883239866532090826376568965171155153643636505734903526709028911597496244817300991694557263470865892355626729858486206184422847497285377791524104347752881565855037315053024164309538255798053573818523856882624152459796319883400734674116837149822082376722788805381049499951463984146056425540235141889838225634988392540865099945156367925375328577756727141606118184736158316659120872953152697693664217136818311878140230794575013113849737831144553127522690339020192271041621137024521353213383031122529134130049371681310927167486524378004773170835838609201396954977618626080311855159209099647871873579561619600855804632330039547013325553763298181053535979350930306297421526640396068139616305724218317402957360592484715290135048026262294362546707420774602821918877645746591943040827524942408250934176677098649840942914705988177394363604911763026455644370004428424305850460053489639896125221580888620058707089800787467285568956272682741448777354218008212445452618395131046373342655672655062524194765345812143775587120453657876993809254456783943299363217564719633501776986934753204541836545346395737153100698557422082128489843481313039797366587223414223594577232515429760432670613897754459593176304729142573962987171264796832303933430442335702977120107242968554520710756907491859732928347774353904100695068950926528866265982536748807922102465206215044404271432502637368371595014828574850234605470563212353458565806440498748214307667718886824164336491634519657096385857688981876837839150523247955176594320213777814894413959840318603505463031379877387940082526851059412081618233681699572076259574416658965048421482672375286706425820523903787653920861272816864719422530367963700323251099983625596193001694252567744712225418460432926757697051125460808458821231953917158580337099819659066791451060986256265486636449422917352742272915967964363948668575869087549119012858452795897801490075097243784404250857416906008987026247071070120223466807165622729353004085682668956710659037014086040918341238814415708841218377352741655185910186969681058095180711081873518367986086407376735528852751792257975511131754886782369831929319225249045460902623658692228033802994325851765934493682091955293318336239045045316438896831729877004152108757002180589319584856383607510156397856246072579881534560508971252238470592844318753437327361184196234798831934654300179691168436517152200482318353945697555872430202340491644081691546622397773461889202410491101900299731603808092181230427385868053291389457387366682276134366874072181933968643199612999958468740332681040327955308836117317545078803842019123637201018949757352692161561528373751435428916952560585544973940971201197308236397554438229230802490725027642517333403629495955665346656048373130440896782509847905198218548553949012078828478801684825451764072395696678894945449372605156681523541470865608369978014856400437862505451652716004093794348231305472250753984715954162152040391025499335257117716278061635478778357328181021932806795531004978702216939944212013666145073604104958380362528177037954847256843406286525655567108114042965123612090139948858397934231673457376471736115399887507860672567676849347178360936592053491890979315523108890273772324824952593117998346166934401583072786297481563778469930785723537984958953131921976314682046971409169912449264952308412195951654870837441437657535151282310508451084902725566406709162009015482269315541078153729295781437914708810532868694574684623286748448907813489818437425822410234145103418465273277708924503972519418886769188303093660292067120855295692058953057164126950869566061812007588705950552099462802656786201278649644568659607249494013755390336337260832684990931414979440025638300858167327558694699776362732459110893205135220055618174045975479843973190453057774830178530406386158997987266510740545131494456453186282704721565448117002061009364872805073737113683286056518857843145757329031026087090509436082400087591422941563386633987398529579869771214201473901016974463184104731393007236370860550886946702516487975349955010272062067666314570799086807824346255218763890015683560360404153772688065099333304388881313058672920502515985073741654628856512634954278479052714193963567591680239440859176165061391235004518177783515245183289737562850425196418051465322824024284356455499005811024295834817906831613542094438321122845895927813938826545176931913832406045838270577485617237141697551962689543875587044198317223490649697038793233500446468732737347428009739848032556329745694023520024808805812134859467978525419171827846376946120992940461980203461049862073050996457196137047527242784865404738036660115554970726948823673569880436902209611991542913431673486668405949073746279238801336052376324325611065929596088708865840993831874277107935855336611940312500299289604519596643507169983899764379601873732916998235486866162810147629976672470690790141625424689573950411605011141486170577362915677123917701751456143564460379339563845315036788537832923411627141002032120832612806638730138653332217035718212358411363641363313736563115056378243297481307060134947728721268188524466605875538854313998379309971217633879398817970492123679942543509483431936503150763833076687324441283362431823919358540179490851331490898340924574063341978149115065413874197139652547197820685267209728720023962544344044657215908213574866059784551338804851768265055363524951293146663519045680575658399513033249572852159173347223699807119032807519522719025981134978821808111383984323108381086454015920281993227832223824208013485344270965971678510039996378271613314880674664368177262307605374323748562793080864904398473905441823813893044449127501242562388013172711316835403006296885378736505355541949905397964987267724111719354021565023851305325008444652402639818525905023604367462112379785554919033524656563683155095261004505860649683264585607040286549602872908296276690020405368309651202082710853140718132264059878293818307905223386525106665671339859098437956319544852211900282492268329372398494880721671099918556071272075928172021236457892391780370291594112934043479290667191975909195790902484442787355555693442879399872498451404575812010229942363413383932444945421329608710170595051494091828012173805651733735019187270898891562842874063676404026579687457894550881036413642329222550232677260215262084916757911699364640972751842287288739261012945689877330965449099712396497195405612076770442415346385174113422483288049219337993055218620592258252948533273306548801561622227200099376728881963945630540775851291231712348076966466747284514812898639261716212471018237712264273934610016337728449146049115732907043102094147463659369748861906061618352148355471815140412291239988100307418603311658053097200984112638251209450261348091560779795910565240016462061206810331959409061440982780959396721089826001832335323607602715153421177667436642057235406162822474549973102782184831305587045274525839215591480205714725599445501492695633367133648082778379721592045326411889447051520139525461299142751068339389151901309550861342790169711625191463474637569117456839937362365623197540166819932872726432527919978770225766954292030184765839075090986862717095279495777526762870811145642033893962660700994251131871370606191211040531626652769605693650051351626813228330496451976569321473974972304582582277135324867169079185209339468741361525372360174987609225909331881874420661486776738528899634251734925740799845541295901963201881803118303898431693374608085719474868481478178701440075027051700647437723234473719068259925725548585929919173163726069463463714684494521604866990646884945597221388991186418850454332597334851058633501825104218330693271966130033960906726247991827353622272227849077129500713842973679754045402613974177569843324769617131868112900831879677496413601157049742894971437923743773167213161591015990907670569959036060151624560432811005056337455673166671947936868543034418407780798202725732568258905105739106001915139070338797530733506329383299013574674817061379766593135572932210916371347440418116627019673466303208062688736119810773573462460124792713812018426763084448747651009278905820775235167806023177581086389155897206434375040357736726504998819137338194096797466501682365890203038178331700828254276002049029189728557184649652238670211228644289442024686112229412640126629273565958886214509124586954633151114398866866220415638679973605041944722487848862417392093052124659131801134655153852373050299519132092255212088538351778016973483186721816619450783331641529814430657666775536575721339892967637170922157563699760245609902020804311289134550701196507419734811471800264035518729855276246260099257785219288881385565200971206375015794884178313140808254621243082643582600095163074825974635913610236893487920267763263214971743245306870123610188358565454598294248809035815406847925472097253704533890634437087030422985321476594549986836414263537435486626867811355576529990603082729039039096502096713367165318112565046131328123220527902722894325185902481793461566255470848033737212742131097852003908449924126321548428107125525781737566801799390888188586281743514414255092606897626205828631987779156997079301601432376248749379671523389110649911650866781324044050948576027836028541210074444139557875335513274760407806073648617389625226352385836116978417768223203253192987544407368793061550665882190947401220682441094812696967453964597260333902177058611085672925488519843721225027239587730301134358871882769562932496153089270119982210045544322613218533545855779385183756346636779409376371229598207765698740787357798219378341704259305123810793709800098598627394679289587714136889704869029108781008132167748108414916901330339393325376513716091719748668021744009394032492356562413739318559294725703027619850063688966780768402104823280358859385257376064830825720974284859594704542926489082316306448458845800114003516999168104471684325160429608663050436540610678940081954269721765267335925398172348655184264778339729402040608306394988182874985020722918780788871953868076918835123273642598357892445408882725405251073529313077659405856826818677951654066944256586542596268021415262047853245214653373075766573073050503431344340226451240901519731279781079716848084804342502785324023953381831322722079780541416285219425160068682559071034652669830850997359139460876936327276427258360999600258306759031670555200784248684197813171878131291945410315044125498478553783146596940041938447790753312735413533685454068228668518184993943322524378825610348434066887923325861156979379509102939729751598199593806296974516136113389145052583312658923514710212701932229787970590171775177942348116549688968490336759547198618110209946586629865308985236452424659071983898308839864798838627014086106702598459938817899213559660557188207951416609935061773139329980533686656634961619752013342418591629955654879346982543561162204450169733620775568661305017156028205401713331054883139781541493847049502822959576755557749622184266089530646552934210739666427047855013686599604790853684586184151336794781967518018963193117523534137432539546408725086443392979157365817980144871982908841570138746312539903222749508677440010832841171401158588437201448310152579096632267205977795150086028011245400820677464744900817191063578753385497282594963821356851432143085897517819571835836371483266822137266275945378131030734497846318816722474663465921679145844889794435110209241647544839827623750140758995318918821140077539345403364752880212456112917460158532490722324286636080344859074894777651159647515808330855068431138220937225490948114110664710861803350938981212544399248314252919750126724493267758342227392254111720023786024456922511478278749388904995343509222778896885663074746863626762612476852795513482831811597091278473198111220055997693996559205345586305991979796644812337889515950065379067667897320165570076480238134465130279612458949159415565316471483844275694714209183675472144246950960773433717987399210680907015456155433595970569244764125959723474725872912358963685077130433488790498352837454735696587089713038285950549386003266272307494190023119181081745105844597233187214089218311301069637178559645281072275720421091118402167426185526040528294976949139316005245065950114279479348408536393185526169963294457113382226810911996762410316432731103677811843219387896902952981818477735955605459592359882416238476254987168806904876886184442401444107794030479077515990680874957703154000163149086321126176735143350663371636223435065130036750191009193586964637687390364714351212223844668149645621452573342156257159990586165067639966362828569572658884198354084315168421179801198640950676596399452231845274969020687943253235628679976705713570378376521841452811868031469942332724581379494041037932956941230702244705257318892111755264935345888142602210241218601738194568146429035655500904923418329175549436631190579139859655494863871043767335199264790026596701566030857896253093313664925498530523681251757435143583145477290858922737933019742796505485033020854478562937569419216712076937466543624653906037976399612284277450183634378132868234181205074846136578894251791395774425324750776896561242337443610992212995297054821337754345288044431150542918279430745913350310027077662884178598651949876469777148832813519152575190319093796335631400575714475021965139047727755037640015665996375670113023653674009995449934058887193763725587114710111081415537331570794059804291019380090565276129659124190194117793357349116154412103628383460942009894455321162699305891556847459072839484073826184123714667681678354902618706403231579268693063240983212962685032747796806018011469558842342536675227193446758211195200343724877058159059055470262394302324525066839021772210173791228574502779545862901570235044428692805909059285855711130934253152950867576190997928064884556580803864956037365131942866456169220427319194251187626169995326216015183449959391142639966093776391848265517565757080435916923769025716535065538176055465275846797601659571318423099312998204531048460728478497744563543981991335091845542545897605860660675736894237385644158778295144382688491811790247844166802350364499895541972529664028638538424471682174397281341644590750786555270867987671249111196499716947377896299092921914836062755348388170331735781386857377881534331676551685321070531951960367773445725927508404004040913973107502231626564646349454780939145078503307002454509638604710846346065062189633364915049637047571354920027604955448264783520567781335699855601653756198161291227194412227974129832383574166124040102640857274343397239211171882902925397353998082617996520056798692955742263667706440042944142804201338420663082403072777491678560892933204105374070463019087127411156234819006103337662996305982482111828083898178403759719061013516330648943070676489060271163241411435907799212784908665789929208350350338736459784888334933337983688387818852085786797990335017194566928856307638370446348514792767219827716514743953514693224318493944670827300112355035935195372082033851798387225861082671067531216281412382598485604439225369467535735800506936455443987531661939514000221685644632995519909371374550344280267725352887623191014307437242486983125479170812754025838721030923956518277443763934996809950127150751201542302318843344830007497272118543011261487270597747334292534500661540295526820021088262569479086419711809655241849210309427525102057927827425675543227253224056756027703923149509952414705776780195747177138027421187174550517470592857937013512346583193850033047777699133361787256750753899294084315273384126719604066712675082894242712368834927166664561515486908468614015260721698734568528246604548880514127164366361269548802826452542770464566742379350252821561348428727173374919977768787710113931288798699033673970363715420458199438165947815135985584686612657047607787353053527242247482954564394716899569990106130557790881271531822346762409910339466889983377408005826186458359029983250471593363172365135424952365583972621743145237822259798496185965943242758246253456965091650639671909412524495098440438014344300073113875209846930999399357080224071091563756783892858166016953839925437979819183075592375007816821597721757761543278118749419879762230588772039212948390416206366539211188356658852625160141162902679409359566618395977954848628463271835362155180186179325391242449680616864032849999572056126400005495808678942429753045873151409369205001565746442695585582902236681895558477274261315332590200402514755788371685673177191264414422407512564141125347662284384172036870428798570750313669352355644604283616242030478776017120421433965090830370231782655461468269578244404965627230402416570170995033285634403231181748980723768797118688758854471688634437393055727111030631924525899139513475053909002749082502209674137942256984693963528428790242684934644982484910815777761588879947086230513786012345370683259922634853503714950669666627996648757291547775514416628812349870097403650019222291260431998067074369466742913786048752039986040875118213872029584411260915971451437767431396949600530824716477383078702220248140742765998428270280364639616345580635955033387026194034472614191096594254374278274340442985167169320484286198383317143662352403904198562505275476395961720879798040046920687212275651078979731057882955087686834845437700160452201386559519684823460918119613591357487687384244894101793895930300694047264260149222710432601875590054851221798157276075939933295412669081438895760349350211060813633009223150841153781052076057201743215128417601331745840334610928732473998918893691950510740153821251199777468116742281080192945887910767540239714249871952367285878468701558640923699728075720775486431444208071070303860417597907245609897725517305661086744300073376527525124499979243119949427028238629310008734212594808025875824497191688126817591766233335507534575862380934279295058518999550976806052841345183213684453071801155311737727206609445476812257348888932980688105867818056961985230364034578225415797922615122668869888094341241224820812565664128861325450851646083009391675605573177179196284776614758784071163640114862185224844238823388181011924896854754708484329999037647408967800904706369042122222235587477516472886883802870120336335133982516102083977214108043115221149095185244062372329011619795784473469891756933685131060896388065402213078834467261001347198677787905324310694803815619704557792632465000386362966938889158661411747672754257743817291037459591831488216713064188538056556774841502029483081149786538598270826754167188117676839837001809639381873142188621098531605679087374007890917472293642366884826056380933572191337584880999876852024336393177557603849268286453517587931268867525691689905075777767782629593986774214320328989038568168950797463910454061726695091997164901289341218204876588716840375183976108992661705375899960884807577305126836040901833295261065993003656838867816952200537878200290280119229162866551903701586905803425912767106519833913669398697295719606313445597634301715366864474510870590325554323304668276482478187344582927774451196842638306757326479898842940164922340023810243169168272531063163820535578452341624343997896793830830997942974998551095721304432497276234075834744898127668336774137382241562152075216782250109726359358686641321060908376615606497068069579624461491615671284316389924165672764952219853700946727595313336403581235017691853288248883156409225372201634194176230849411906725202947542287814809176223010084155720161289785470594785031203508313909162842869551533057059127262115563484032952566100974229190147602591506890559619683682002111760320737847880743679059584886597402083041891691945142409633728683369706165481616165095573740737218463885989141685221471082261223248712497901571591281816552454959255106434229865807631096840821378041537596616733716661247988538045563171398190953847175265801600582505507146131842909492584988155232977467838389081750762303770249096051220945226745864867744941865524699836178393981510620190434792656459398271446318288764242171573012987311447484682259944456218591575975538788571760717164569955321546140341261161663396975417557685843263052483711606619730287174576569139888778867172387786731822922035949891176180785013281026087815701322622350248893415637003104265300441060264851098497493028789966956057229735557919121137174437004692066301497767382142761684954707813213396134701260830904056943029618163783034110796229487037754455130435050149183978501788263644549111383856504143328671669914944282180615073291287315902447588799560256025407456399409645517187116926223230174586114638833422405553631517214204329062041217110056665985484533337123405988839970251534803008746580265169121152492363925970220810591582946425852405134028222308101772799810902665041829558500170655677121074390717973771027728607948735800631736082078403345035881574177300039354883884370865631175633866534173479355148837712028440707511399890208715137127147810701340499431915625744375373129964038314027897769423068655746622003715840412758680529147314987726099004923154550689586519349606185508592491124846918697312293917756109051461702710902019375811138483328051958361275849509353259202026018850967123343243802378123479346782391167513472699869099695328194405585903701429783747727295289718259108422534738641481128708177214568544733410114459275903382176651744871056845965940572775822416187758598256699400464600595140491378855564345720578823354335930114869569741893709542771384372296631677515840142439357016834893281944322928935019250288665498054278518367150629686726482774330464284553665229364140792418698547633209346037895262515733034166573702261720893553745955854922095351942235985701690445952394533292760744640154670167203000652976112436177072312941492070572947817870759075485808911019317597296546715641100662562521384648407858416707151165665978499996011488893396130069980599374256011584603688450993111937136687479788861644888463789492369537498800023600980190811728586680844694008552290074248296747433063250017652877519382742518841338139382031125106649302340280435518477319310785710713881258285750460346936355522649663024431730866589206782129016558585865488552319882799966446914470323066240280504920661729421023197154256721769095976771908004267342849412430264076010966223253266669309757306686719829278331265819761292665689977924324955707122511404950489330418490032742416336928882468824933362244446503430595967910985580898634277560956222423855868061704829628729447049249391943489136730087730543743889468648755971209866733224338918611454498580939553974736694518539219492041802767703365360042185499729018466924495687151032343286519786495070050932314347387490904137010947653403382568992189313155704774601326587059995798808949481588818884717015607210031247266927314105043410342098547602940617629444605741491771072091930351252448155907658660235249119554738491453874803271509627146047402925612333696264273922229320605193491865343715078825022720273496246825667021663721279417066770236009803065098428090518513625880301702718995434489311670018049052020636620040848958030190344245890943474803075059079418072516820672890381303551077498450011388566522439974296430350511021571095211508947606383643302781112717159640438910881644922178072484022133572513941046731537611024407250488919977885205034038791775802272463613558650769478850739685302914847462073807742538458786793930909965916524227971482611687036845111827606584187291780214782312115164073097391663601546773901180900722530906473333230897068929496962122765409839898332697348383302486134966676588864138826295576488091671281113054940681509319300254616305253986664301095447892881115311133685868889288079047112228617047638771193679521088410004635327791504362859789133932609412725077619247309380390295690373120581103138401090707061702992111262150376542868606121891001445197547094985918856605345150825923260076982575587845596576317169673279570080646872815207655323569648425820516715412272287213951752878160323512343826133735070821488203437260947721127277913901895547458114497954364092501341185379524613861639898936963160256433648186007605318920635053282511063850438131256043056800451105557615807012414195944863021392929992067122882960415212116465526893925813565706015942389325062323266549270315266031631466687680123484009901388161624723693445393692780025539850435047783450686735599567150332332152051148240709986395213560758089492553631820622701610982609208712136769536521253929056539745586481930359086883860366838729957596668997088099333901545651331016452543835428202043078154020426395546871678195684617908211474672689749548657844149133870684601787517724192283926466127481625943819347617653011186033043748961838452724917897542666684837396082426523117704784605430786553950951437943782042392788866997995564306409608418772692204178572400078041141147081463732962799293944928343238508898731582152786022360541881597989166354575073286596506773051335000926591860784667010596946408183134528290938143312002997638265191487199580116387693708817225384829778098657856067145418370996141987308345847988468161106273468634074969560400883151247080934140917215648104878329225454683338437030362301424583142177213471443258097152422988039354484992578025023664912981493106057846711942187344590779733763125265828627784776639875740449532699854170596547141475261973656000286423658337856611177974835532252430092417557598900828721198873191631419848061201813608317385979342437262314350554926545068582355852406955790253971027279966838391883310514954415316105122516721282820842498922098271123878603171324492724843498633927108116913244156998098738767382200387521324146477655709490764515726404893822750589023956605121662651191704609529236959566595899091965395529348046337176197064256444032086161095622869839257902060242795329067954390473294178504647669152893560522798260316869278662203312026391263323647308595987091051069511484503745012306624789522593389801772664706152560384215457271413481657406124349899498384434925489140012064848388716273552973193525609667067650718850930692988274483736345688977116070085094979113076192897962733078627946177362182783079808539918657797924367425462584991048877960769186396094597761538017941485146060992919556772343506243254861370323015853906812856174383560489794517594773246202656887317445612132973898104792422981571621477252791967432659434276747384091432518459696605981733907549860541944143577930337498903156698996312998050609202745261238440109863125110078542843260902932348490995305464967853013579175621626319475977320577229841340181726283086675682219667743831530456442619742034806728770229822825200631562068666617614046752269360000318559780807229993476841993454316737704952664740020827207927674529323277028579384097735184110321647441309014494551231208747595645684323113928554868224729549818409947491471451577212719653452914151937557141284910074248364300212001485083541884412880463996078038783385197235349485494305919920311986109185248979560994424344472732390987220951705692009301904410286948139153940207537478887964815007914301504024171266472329289111843951022769635576181852941366631840986479471464870918041984060627585352708891672874405437584026305825378130014782161359679855477174274889208477033151505270888675391225902595215084154828521824132647966166423588015897363426373330476768995369993629507980492337992572107961709375372749348063135734721482049364476453182925750433693545333088832996366294326959625220448173691288446977866375539257750628765794325584300156605466996221001399913938827075964703240288300455744681279682827152861837812485958960309418134782971758826630746827369105872000667599735210244009635643161060228280584895290978050546603962574883882203077706813344117810173746798725210429838827205492648127993412349409762937140319220794569161088656725443232068161954489834671288732767508774355583473193179499246212118482807272782695535012075823245755280806842690071767862731697390709096073106658765000677613288472953013932280557926632636538909243017204229118953002548378995567213381291981785408700586276018972580121829514584168297117314608982202443077778108996367039230815023409857189575842310865750686176763381847353159982789426245242625999681535383220231175426384396046283726329944622553531199143491646685978227663898879908273504984115486377106514132565013534478989782208581965658896183422494913661009563729811363895246735622878773038935598908352876752937241502675869141140256797445262879071420658888960827235926558381085488163378797140350632557379899270253582126830206119055075157536663834273344507837616559795876739447620953510780462041015826337123539312783032161745284270642216968520152244443420902314902921213913742276807491697059415337728500854401162313435539180898353480499652761874782836894518885783964709402594781795548560965296118573416657439860571566284794405662587597098433658155220967271126888916580373829283279427487992902268391923064319665752118094538588803730477329140293471200223307939218695492890980762184973740644114815158852519930460023597892943259354008387764953121681155203440235801207786324353802518647295045660363191595028576474939814063168944786428965123449812747107981015537233588948329936471760961586732407489943662523123305723071299414705805815378822521869562316054155570226482148065215640920769107374838638071494502640151337655177588808406486397085827607756796606590859309651701401612307832203354804206969757445470669184958624270709494851959849268459934459454192932553906699490108732794439548834352847198436832561970135071903809069883630520966353709894823367590340790253637331384626513322464686344313951435030025932410988176220108649935912009763690889591289646316205813569669978693725689568455378413539671232642087991844826033103293406544111854823904296007348280093005790114880035035953809057360824190815003412957530293194647178738107093674265574961807448035741018526839484687877890137811423244387810637160045662265270956579724929029540539643403661824358788360787507990871847396128728638960278211529266142650603348324357105480575726711469795101798886072395235293059998538059414429692358269621019531382241470090818288371600368003743801835343168739080982596442362698633885927321082859745251442843324621329934692908212894440628233132872019754886535160111878747008911225972927542329525199730669373244640719802547612158894221848615371636947381753100664394417781395701233548374595091082971144105922102803194076614880236845655647378223884047659379721737681641591929914319272596068915852086129348961616787536694357874292081492864494361123629256110276067203846865040915232088716506624519609033313815665877072893045196792757510237993201749057724191162821933714736650925154336316320107829855660096811589156199314708725726608251704811081626132824880093744253049271672432353177537502220971649891137103304557366264223515091677875006064925456092537751935441997679533479769787144395383281147731806021196878250358400956476654544431757978749260662211629570078677029214362019719543151183687914230089303849454973852692141649515826865917096054538884654856359328004872754312047092247772704826148769773951620976175408175470210640840917564344154934858455718292295534258967520801136230698358995052061989213785597444134378113203197063793577064689391320919360146949824695499898171104439149143179099048217858252523752652438607659308786730051777029567999931067790239573069007859594677584738667898062914274211124619762251206317807137135908997232478928959736863468812224016129200925361822197684652937662348316064464484658416800208144181018420824185214722677698628671286674378664232429940110339333205973767492952952818854497255343442311687311434145552156866035964699653415468084598715539097674408254982707594672330295474072585090847784736662237310462881817605083108482983119591922045432274426574063170952581761259572525797023413538517264623620943229223019587367642156838070525585207752409207216688414020696378842831521515799231065535423127608240388020471204271217340393735778178026781742265462663148641266004309239241557351313119273808087664459444428943060125762436039926610320723386875746547395600505523605812490432238917971018693359285802176791100540741656227985785779937721275605340088275642745723802491649338513606679174862361734105433989823320448166164942138672567465118924352729283400351480939525908632458301709839485835462851372680200513297275532114656329930472682190584251820102123843165353241869391777681928369124323704097234728494931535725812518358826534504890511893647127977991029908851547095200834187549001416165674702516917763672397834894700293158836470226796172182912634147083620204081706997688855775825479108764958896370247068877507892966954068786296268550197592378384535750123989785032215994325956341866401636840835686140028086447650120488063568356306229680999873613128267144115893848337286638622052703489673666189480213440805587379020028224876467626477523722721997760761743777203614118580913614975811356507165155616740444368342034205766863751693620761101498746581755488691211970024406882905124285237920503415867699508703659953616413695883651710948264049456028924359630977692719552454927698723971404531861138264363373698832338650717879765079555027082338500824551961457635618610532125393440722407491414635799164737974410459608836343354517974792804065071107210742107613576474062670501586249695825789945726970824159925654825886572842115595414128116376797969763603595315521552931429285665412848706681879812984352425776091340147064539219735990293273807236481916039753145944360634113295424636588432923607812091262329571298206064130896479381870745484538820305897367538522722149740947309005716087203354784216378271491060426888485306845879386436711149266651971551905145443298892890194731590390575504705507640763966987531039529888971908745910006442018367273792733942334587914676977894357049490879312215316234486350681904435481200471920209383831770248983037469790268257751228398161009005194429995980252649745538517313270623302421210877938632407916690185341975083128991327876948418477188039771785785942105611810703809569055716927551542125007509283187498812168717039309075527679000503398909997033709687684155147679890201193751246182552225919724379268278264513858047584401112593156153715315831315121321215946984558840599486931889424084740045556641822178830630364874232714785038779425478340265749546147265032677913814625195710166273424617212893392329085061499591214225630524949347230052859699733680609514124983794749965571603154630636906730900536465093333138477835174571818505481507367767595141035027222421817041349982890002309687776540838232019902380299701377738524149490630463356948467731620260865778998064391555441284214397725863412486020351797200050970808894762088030919254927948619443558007624587235640957463824656591085641978466369377109633272462970807763720154431678795335489334567582037540148367522538291561184878118915556524574850378539617658867404516559128834379465585072336334428610390750197036526796451188859234566017665804330261990920385740297784755187204032066731611103581213443455116027090963666349800289620998998171857486185341890772541738727790648643328543792675492599031890192792318893994731319164133745499275985251546618359574624177396037730380140699618065821006431695595816992331207085865555409315528315428607590204043133573891401320251727319229819440335757314025342414999691481427076537818943148431456029625373604201571590100554817181054293204947073459053371495825524817390705954721008052440334014340925202092257983983049492778397367146065719876686474868090500636033847760385222911133652331122359070057884870889009517507360030180276061208000003675705553371079327696701412851455030475621451105453327068436195437377739328281775380380402590550819669346081808668909465722103784034648117888748659783308461840012866680498613779139049509282048075496168367031104853415067826155957594478799353799831834587945652713835129398103824999439138086770732018869122764511000043914670680284811344295898054846844687852741855723518636293995119870402914980770974745075656531926509945980417576902306820240974995890578408716958773496284394649865948431294190079388639128637384938516145357350036927552868388713868355577477539209249227963538338240694994746520753457423473099362504101243248157053888500863051337476249138050358231496564584691797730451114956861485883555924970707344250780686176291532825973735111351596830926328868116528555678837362053474149943007607051742365140160269277694241299114599824707531698936794866992869224473471693523456755555739219472146915021322711664973585607268180476814693070854469401118240479390614994259909713450410671470498274639285980894777903790396173785430982963465580777941088425692371260373665233753299944199141107008846534885708205045588500336344651178551011607239326763306195535712412028823763808691373456885961976971447734796655682725851914421127247859594875394244983768273996000195198197549297649385858189900896624422187285857986830845148899319754134560220400971730121213935520873727883165505383973585327239014351909839043675830804708515899459047075381450443922992561313624218535220939330409797169481343200741646385328862899679838535102170484988888928271403692516433203206096366494003667425665660161672161523462619800673694084253534753516924453749243540766019377621473609534664972738046824060839978403946794128114299363217801178843578150316645869612453978659518556814026720757358437650208020984620615377613357283636981163550073158327636153709868173130128523589945419067367665889784072151675173460078286577371068175363700868467637963921998142773576725886245335002332810058281856732096375436213219672907608979312317161739455039672530115148605918060260913942281294687269072027680364770423808651585428296691147331109183878220838737051749618058407639690159585640542546883485967657529008750900777322021456469865633651480421410668089269578119525524428416265043219523749600937448243880519014155121438545131307133078441707600161424288143343400821216641564055631613629526069103888972620808845803091178305890321541781190681480115818144029601994608437582107958964744618390705973427260033668283177130930836324180038612840345885713012916943705516310534307091132502543576919134682702700861272471144958835088178770773132856075471280065812566934861440008878031473563630980225594475192226966229085438456534442792602405305391048552091239641180385578809889304600154234010451099952844007960688263850404973404575706893816063810056040273965682214996636014967493188083634664694202500671524993692727993783323517802995805590705511959164119748901338344768415577565805082741334873024840859054982563022656653054251707724101470294654462899229964872751331099328271113790127905180697733243603323454892606376981722332533315976157301973742871750504151721691257095976656257204582289560713743899239928133182588938792013340633950234106872032810705211938076129358332850740748819656891946286433854945514243600420555301867523908412333975697719790003034476572181179087709591565024908693655406026478938361550607895105875490586093372319912495172779096723701929212123411154160328542567541791217455227130843023060209354062216389095420296634118399048675338454075885510857072885110756394536543569971684951741339416341385988320094510810878209851860417552841799831835591994507918302866027689471212373337963874587806202764657707728003560944423798688596566895411829166639476380232011506221642224071363914855983191712567056068476631246403530210476192492517506288395997326544057981825265302874431897103830069498893203201142941649720548126251609158129328590059567613993780425126577849829499325841824085629634284659493984744870734564750573683767556762107942048942692244686149387432841045102726985166164318763632069532826854313298400675450307867826226393800237233127197666614305369472274071750059794798626390087491576407124840418004840631866438935448650374972474059540033824774307011250824284799546034887874625703722745779111914511008659959336552244837746664975693400819042915238503844318191890278015640414672141873913687702806379710692754438913030586498427450917876653780322592243242578299372270991580803732557041992195311588943625380925645667027179089919121184380352781110824224617156926295379105465340755851441933438642621701703976667991979817036599926372200842540998201725034321246623916828061401077097515735368199633926142163409439756692983607913583484910245839715366263108031285065274431040254150067083713105619138918898397014858163903990415123000787498572376159154042202205332978743479606977382395438250854713984278601307584951863648840127991569910816318867555359821752501327243576191609043564572306533228233078320268451312816928226288315979084467086731707147110709718108854548030923951657824778723332716378045201160282736583836214497285373771069898314200951380354788603804191655582433782069291150096421622077284647789545355987813009666584340389296150920271764613369561321222342784741034258020987890431951689181486054595046537464727884434761637692362570051169387504021151906648363591911813365201365891889640289147510471104750120435150459495905912036013530581398709320601418764772456490473671362181697125394880886369285126956678888529690663052793691909352533099011532856615484227749704853939423477636623986671108624197397376983510009241572734159088393206712759840555033551431107300284147443572794566235062235806095345950026903650151315407032926933089148528886094635584806315415236084508903840484669597979006372092364955921517656226538574934540195325240435218024983981692312152431029408592635578070584691767011246872375929902598347380276490122734532404492540768342293539838924378600168131019997562584206899675636920370882819759304368300380002437530344264359198986061097706336783487117523188852869734290065534423427486810861269884898444332276236959515399861590416375807719525255535276183021781745446188485468381447708144447037908467718614346132095587755359118677414432671920523759153636054106618316105117215067456211029781206374270764309648759666770234116109672500292277900498502010527424495988359246019095048613587559078490578435245140506583127186964944730377008221169379568059714821220624009226202821307804259488372485117532244340019581420665759419392043770976577335323852380216822948849580624686188173335081338226801511131568557646180992667531421569491801355366800213518583006785676833206118576119913894729507112635537251632930219353803032608473226241498074176635511942658537983436600126503894669289270214595428944219460249124198696856948690918040277448940087142178017844640843385415622176041790743552244875282002251905777030298083238856560591671337070904969193925614846377775006630710601753804604097027463553934850819393399544602076405537066035413638674242177537222190106581681695433297885075499364175643690854697987347821107366267147975328280253311331828393084333292736799853956989691331951280894349136133975308048884539938988106376621237350384203443824783704553601125233197814054745122147820374743291928460855193329681233899336762308057130013675579412074366811742620672314636091153378719624677185419270687337370312347088021169031328121442883239231580746023224830204940104128465882985660874155862600513273835202361184094356659803394400660553212634847404131451521478498243688461599613606070826332372752244269932254769842029838416321524261812663409630697670725798601307251212183053015481557021124272060526305371209588444309487515584641685527220355240452949324111194669708017132694712305421848323460234575962225790682570594091418303622641127601043411033965379604589467237766791874017390215915316121916197791600040407127271396505667628990080672051055846369018360142303028236838219392233813023324247764433911788654458314106173207714200314435115196995474422055770373185917437582793911352689763305433931484059564516297944928655103179613624162956162901603673186443651089740946931647124218329856073636809453013821347667106009665386804867107303144064502672757101969004839671745283568236945779858605777916630950965931333109961583693344384299140936137319563587200438966267008760590322120787888716949908685090411684696675223557963656422364519035194187349213172655299239559604941494055888486957107790920877066529602657919832434639661390624579897674592049365015798006509659876729732646611909138051388808518845228359847365918056754754382698505554380687727404453152416362314184277384687940059132188164844274078736652337356313533524094934511491680049019954530632399096125273344680282756386690153393563198713069129861493668825488450484594227981775802997234382060378159985356644126922938740850240214225631407086721857160618961570078716966099776145833242473417410253007142264766540249519909799236848897586730801705537733448108077212927279923523941883281973347743651966512469975836442617762853971765825763191497344353704124085433436305472071833729022817537658899003374527500305371032762119444667157896146950463312569857476694050568091561760285317197300770789100126687525448355078784367114102798773491082717673830639282669690517844074668264858593482736148882557356561899905751694977822319258099650158581496098333579974516466071093715151103663837545391440348763529259465309352577992048359092525665298863473502378310096778732749988551115131515863515691121720501699408681125845272168421086252743705117965359663102464795124475186602335320871760810572729774545427426594548940090727217550627256575557331395223538673128844816818008598218218206030623518839405345259959233256763955946212605211511905062218166223818546863465214638758428912640016569328052088618173214599876786084015360866366743643743901724062897720997006579435339345712868445252053497823793808388109941399448705101352680689772176340669087037515075053506226782038504213766178262828591698226983641652899215358264494350353199222258896053203569169966482939041846847702301019526212284985334305451252302715955371793964296569271154315512740695847817862184722255689749531650441968331010357141887764757637431169443723738928579227421190875043719150851012009732085708784588282337400305130777751240220045471011859284552071927928301281799135324636435583295554447769408107028182142977192491841797261332587450965744275667248485588697214203171155524828133635873048136086150468137108432433371464383594766267634478835306923695261323920281670262949513738944942117839856717805122498390186569917729572817942739276170600386805973299964563505894643976711973241272227374327615777850301289769495710408102579836200479220041026392095537121058376690630673161117016549094996737323643550375590756977178909244024110645746541003950976049610068501457457928712527311094186354858632925213321057990931461123420672102946563056984850045194185878825421277547000567592303840297113701403465337103718508288080247045426825178101899685612707835830779057951872853986461786228692959644045838789661073462563018996758113373704961717055021963896522432400012663374269301619192977327091794184091185090818552841468163430260528123461848516009861438682420349130613471218746886975684544446606410067766895560107223708165552155213134780999606108932978816987853113441405235150943210851583064579956094852790624923355483487236529830237288184393886702294027635746783276599282304823737106030260320282203204632430811493854625245243183147623129597414117073868771055195530006704660655278304867434709499691998681389354634168236812922149236143852748817715724003034741709152095293707565405588178463348512979672154808822796927560869990842634703136821683145858714045546614697381938333995210457069447328857210551374428383361003255908939562062577665679746350515427692274712599400018329590602813171997217223257227666661028705951791005548184322571192497433979816969988911091073433737194633419045834562748837443066525762851049282682953723892074305514790569839999326746894188828243803381356322514297192473992363874732262486343280343397979763273209921600003960477488720102185081962846815650233145383281519309258176585932222022118617308246887068846349909106784097586536515240051294131730897271465474151746465713078154655482944711137394671237570984232837430952703169227109717239724638845981588275241326906857739428073549270107886775503329838209217326584646118034455726876414331158046160691336920771173250978561382072666334058149695645036694160110910107466274984955832976264598893089667954435826620961637792149268105889996965914989663272629825433374442718386610820467475677517985242182122705693433392356481835600504355677435781337413585088617091209090043576480846259395097598615218783220418948012293464340024931009369581316582558590589142037815325059297673712620206409451401812757101590405367929917807069323105183106266919409696755661780778151097014395180194554757730856622220210191220897491522287881504029408079578384917260981880656133427433292240025414485110671404906943645692288989021661823089409450949435872176257291053117780516195085010890915751274511936160756459418940494744734581783188220849229779584973172452789095608579596180491109723282074578648078610857376743139659188156334923913320842595809131385561209333533588116897641772017987129799253843626768106676858155122396520055037598230692024141055587674880456997724382498286364791029420254205115916614649132098784019905270345923829634951974820322685587288609594125988740589724557412202430087522707108450309349556968796178139969823917364199348916628572952188095848434600375163150333682949181246027735328824464141030274214440715423852710442667997057407217803091043235119029237592603572732119717814355193233042277228607569921418464493716105857480041975074381616453142863370546401579544426838940657966526179857172490487889326482015749470890085754601741569347345202852626438625676293298917347104104131060530146795258269003955783293833865440472229987964347908697881438862348250061184612241275426522515283033069918314843118699998493812613738941702011546815038393213066312728472663008265465172016880435132532956514158187290716200932719289545364969554976093744332157215426531921330964826878598701407960759942890932235857056261593925416331426883522606267334850673819956245131234618691628315077083501501854166378326941353892586252225943365923254194962740043539513969391685092067504709831662402563839299383754295690609848729660353848321894762575351848779557827954299369184415892375042349128285594664839681637840033262914162884665194495364813250816074380479057718494926424093651838272871622420814475986581790232653253328586165021493975175326552579298632344402569299423692701410848749069322520788731830464001376996009320951630871560936539810179475135408027367282041382873154341214770713178522870485954782561364573658826200198705957332711155182387092831336522284267391252684334836559077889762717013021893095723211570829287471144489449602528875177589239964762851463115756495927646101164557664484555980378762617949862051355384611976418835507706387843158865710665144916543767223238406328864735663738302985426818824016516721629553683511845436768474936364049598873101249864899229282456417064228110163167371327390775400165217547049029629950584665764642509639152810031098112665985793576115039898126383809689030452388470592918096440769618121379076418304874749818664523955939258626960641484446769550168239360806329992906881065024999038179609136913152649519852876469899974015815184546492880058803267061756701638304333475951868172503034825647403024124306300520027720563858985162929478735406173047055753033282557478162905585042499046620784195417711072611079645019282798641006257554162209355656150759496450063556959753012726147512402479297292132605637511903882638934474448306923222648622419625462616114350931167845991185142854152181278856785443998533436719766296362938307996542870734612836381045288756245380284739122075175662087713083888839362643502784936311636987643966931366461706210084902687889567826832372194312246029782140843276408243830437386107389867810090989520544244699813006271449478511854644071270466424646516449493637642668367699392956049159155999101298896779857601982442639657003791240029521378865207591724414974455705212374556585177769727582097983413260176930382006799696222074048466985814626461093484543038593340076895249633119159582570495498837156430713592849174368007151453128232994954057298480294036695431704794682078629440106211258498117723652615674687045219785731374333085741236195626167605480359567425235936233000581415493660746937260835847595827453522879812034641430691332002165766241882196678171639711727631005065164981367542854167212787624696428370175302621756361674151780017806420837873297898724969112252438076442766588566401822471838871586487550986177295580918364844199802898811653709117540093829794240571184210349906059258513634982175896695366446579141430363355085435028690903773336478771393376719368699080223196775437300516046921664111156896573204677301003105472868291999885788068057373137005193748234801220300075018495319061414765481690975226979062416392529875147194715595399560566441421123521872122524532906409813893244333258923804775207088574583384105906918227488791723832141276926672559813225372460980664119240366204107408280491311896431495613262585490239647177546077476161260960850606886760614148421771093569112825915207911003123738356155443441476418627115486792880587722403938605261787247724510850317508320732207205715049169818718841480834537141716119265583322465557355696506829089678456823887246466639319329195006040351343195458952111479826874228371674246383619355658597712586939976969765572118635654789672508990404823277292255901602660211892009204542868284604641904876370144250198894050330785565089167717652541688376530509357189487800920553181814175583411969599979527577434560351550766999992749151657542763750994183857191617060719674521022182049660782223339385876806243220247614313521948186121430556903364708337057768545571805374071827757786550305336841233584908688469873566054411685778500533903063063992110149440902506900267216179701139561995426200090968872125195866750522012079485227082354447508716282943277748873338610845640739752616273899294889066800815219120897977824753315717555573593400729082725501532518654693948100387374496688026548736199482255230359416949032749490643897514413977708176202834240500293610329210041356420640932381217577266383163355932048700416377778539000338934105464787534495134203959549031878267646140495459737645977392194489265394069949942042406922022696561771781818710305744681124931776767147630272185361752042605035692168109279248279728403555319478078498119862556980944516372089229217923042083685105737907508614454452463948264096416699109137024662322314813128830481924158807797620721647026817621001617026847728764277232616928382836243874001748058125652058727969434075821326647248681275248328109800433081793576366737707740260153155274352241788041352513034157592388319521774823420860333146513228568639971506972429032833318423468873937090445122628997418685860960996275448667971479020868251260701947440553647121502555536375307911380172325918617898023771196824340665523121180602071653874810990456769596562226843442853605662395793235613169589351129319957895900177193380347915615771586310727230497716791040412883018965284142315163193525719462597723267639837941866119717371545592848289592883333093949959002184769094478494020416395338003849488313524334434200043176529538759943557630472782183402653183991432882261020308262377167059349704466477780897005290161186161075737637412735750051657443138464211754437270154488284167856549855331520652085404334338273513336386892789319254032821801818035026632780086734339747608423241232401241364867852710767191703302218280484949763646041731406833495506903562179918100194803239277131706061237883590889096225280334260786122702154342542801484762378206772002154151662251214212897358616695296418919531854105300418032527987612661087246525377876234022377145559011015496293992550645079631753211424434446545088226705652069875521645171554178943596615165142248127941679651025624168129272624462402663202498173817498779996715290141489649489188900147172562733486574095363018225845444940946162030616849259210046884284294523834455791324466771456804668067783957531788798858512471189625106514204678512168526993008455509103619698586488436480578074343460603194438232516887568232198264002988577832403316276777994503361860024370984507702361522703788600204669042690365964261310277501014115687237310432691838871479188397247415739626255434683126269760235250581698892296755715717767765541727723868950574661083809924472499106733815228637821715934841593905329643095799375633787517592213212999976698946941760785491554074569777392188484131726545312445798313827483302701858311206547845593364473445491004509076573852367900171749144264127394273922947167928979258124693348152422989451006369487434243273636959566776612927449839850900591625431216584362056889594945892780571398489736644324903319576174378357549529298445380656010263159593960979432381945495343998048483407856371522324454521720026106637932455512358759568472221372976764290003874673736668675257644253560750986551838538365698217990005310896337381863969248225982412296800442346046365858064268836734654840133675858711028891695628451427448729931287867907861695688265595922709670679969492916473015352389257267226849511780162339985429988996146242650573595518974514823267645529277748986496883086326129071293116541587148066023127572235317095864818743179990483492663535343238709769996657574785694338334327917243550560466296619626528633436138954974188513451573947471857755705626945516676367668272423287595950506065592422258351423709539331459897061342375751650991449430237404344376451963089549994743892400309513358561726774279127736768968037379404846159416280573466300976668884939850487513643252915917537084741665131185280180247391678021200696459231672797147368781815133352815819333396247874500109540144461838012715656856922696628848989497494978698313094008545074165146405679012913324818377835800184622930515770841131931840626979530681917475083175193484543761057308762133949637135435956874035885245636523815368928640532202702771310459617339639333196545597732827948427989708862776125357999156832908614040787249299931262139154540715779241380651879444498302458532912253029314078308048431951701749667466929899140607397886685478116437450734476473561058076917319490857943584926448894609805987574864650779158209939971556556606453923713776321472191009537367624245199263018353285042426591947485570291647855135588985464440030157450764794428005331010833055744679526814758666932003635182910145372886441170362138139059718480763195066614046468098019728197748182095349295987205036996728889635546233278106193011659177011696553892337819628628069016013269539887477998529864255966898718609785216366287000295712110018828509963543324447555709352471111254907701405023895083735772545489087819129798896609687843959313323132894712911288488403645809211935338598431113872282750891581263570307177637032091517101243550095680726761268451485403538922435987925987622927938672981482670598544593706930990491194172976884720652008257674328484199669980837538415359437360899756453084138844613046723465414168462356730028369244257262450315052763893279082620699435917318098926014793596868321068727166378206747394805929559384863977821635769474230578654519671147064018371819685243290896991635506919641938098582559425869519917550560531840126616299760517638371404214915298718348701925127769543547788378070766146919574226434454388679630958807072373659666786938144647690633795590926273420403728906240197249202111948545006472478658209661324023634872071349434268199721854121376889022676415287258305418018259728505302600415356292313583822607728076839196968044677802551131111846286518141684975900151074719266042848098765538386206462494541160942725876155094080497340691523595473587195236560968701354360989735748671627108224960997471765378658234713816600977768245468771642487186721263574188833296997268158029963511210054703185521979297224147561827430493825410138052760203600762949481080895135687963321845845394275340958436828438942976710214300433262648624330176492609219032512866248160938569572481747994165508213223538229641400245639453842222629208631979937052866601218131969038445232086742343326005303190139804175839706059932651844200741768111630325510717491554154258591387489776594627884802665992387741456187259692176969317157592612793168579924648085523056665796204621469552772297844388480020090474783119419663622321839751314541359938050378063430871518098880424041142755961564634495326941688564774559048720717938069810542800354502446694128357965862448502896806508967258477629718542747950926519874112311413058464733162607955795568384613837567388428890385855425961182300526741619298915503557991019710529255148057950214685084270896433928533360552724078058618782552601237107347438648692397717602620982389969940065267922445734799631920856165383023933091338534814846512080613233372880374841264083774427032348550223597047697725438468856733215714831684827859212571256500990959342872267756048685943611238581293749758778249800998929474715506860843493829060375697326223326532294814538404869564998033613333340490678166331575117573216597323427755119198265949038846440215588721222734236780557635253110574396184559689819076402293327688955417146085374935881413098123213864206416993160292188096365330886573134914719340656729126145917162685564716650962250745353402484569060094156365837193790624737097254018716658592137205553402568419736917281073869292413935486885612792686938766686721625249570689240845480067728977582388288194999508508325199891395580133909797744296763780484974418970575312089563146073625479951705539667142484687143505001433852085293514551069720258082333458877769221042301922259794324072849178593702374621193025340321260237508561231399984763123999852952296849343329903750193198603693152772278091854665031929676971190559323094610966337367104958809491147225240883877328727470568056566345910076121847126081990306481983586035409700468419309955622431016250355120357329688422346291862928815031597341591497990378921439783666426759084524279796589894511701080436890810945535341805643449302117309067106130432120108577227480181372995830078281891917812443144797896224927185807962874778119405051982657722223419591820589995216775536319688375667693712464959323768207302994526683704726899124968110455057713198373391092524439558785394118375382115058101780710833035758100119325212296819758286750291355743901728539664163551026543751178738776757836250809698688062431507240389789072067847910780184595126655320484317154305214776202650072770898031394538118835870077449177727274049525194853567282667155452544102590186140211194229118886449732361748184212296584508998737237787749750219766078904905052559402851950139386581671157175126594255427732262239794672559784557550885447464923500525086727145523229267501480710792684423907184707764716357102884427630436920656782684356193319063347918602910216132552335924997916007804141668765435723428685467852672579172088801271544694726423012766926810998906200531755988067712272438859568673051589232414162147486421388583202693526986469686732073356849661629108554891625082833373722045054300677184061980932155301532693900453550430464339306917591038871628571785985645415955688867854673447329638763397883129287145616477258301368020267114398216519288443313802673444829991287435210395427165474494220391091327922966109641052120599606234213878380462381312809277069437804083732786231949757875343829279127237913433871539293722586284525667113651458895665688149594055782463278764047137781650358102214162485126281110486295875045084141235109178746516222041728998139084832490835450539089323681428336366856709526629022822216805870952117898503992726112979296425842365425290978894901320107434193034298218017505334038527756870598154521481401007702444661231665971387807096674737883333728762599558860336531669665867375494019469241533059215911653569315816501350936661832087962494856722286486373658995427096039137969121738849024003810488138285753192515923312381614336169093690583151790227781307987347905705172840442844086679193267844799822151467607720798115322935703371716825763466591672163964975072562258488234550939746627431191954168424649889006839818803943225388376116274675154866169593921477442937635474515456141716383068839118428904469410242685894537788225465792410523190003047664503237094044374106852877523459289585320019208550819663182082326230745512223544292288216418214069896737652617429762972257522967646672160691298810077028934012087438145961654209824746828784377345690741053559252522675774449478761931318598480844302602682115300732143401530880702073289646289320472238336719251094440283311185077466703149283814689103647332000214811431879734359309043128019080473325274130972369285792533566353932940581654823960091580754042554634174287330910704609094838256368302564252158021578657139843955535402399002026341460546440040341939694456846617795708219052282561849599096139591747657869120390890360800223099130568235542636241275757268511642724685231917190910990577331237308984515958965803675396617535117668813142943246102210905638179813743017977935704991843626186191845164952919470661864964550170114560051881883399957072113872266610638049836164294548648646224707464723717610525937922181329945101151299107101270678908354755123720800438054725809173318940174774709949467310457212121639891959475928158455116688802822037463713818934339694164058315345651819687842088965434789942233652463742609924092862549349371069776661683483465876297205713062239720041972875910667935361834002628834083176187846280247860560872681977281963024176381624630464456947258138207065441682723014716845850599880048370989427785666829222278973246623049706888687864590969643644064035251014992876291737458880608197777481657624844014321059846081132996786981097420164246088500646932531452145319408094005022593640612681464324450711409004770356674077311279895397378132325519786842883944960107705443744095494767089161657498390362699773592338905031752538959626262336835659340448867802752725670772689206493248158370719134372748719662762009755734087287907656137384824288487304501074558458782718751141058537470761537644757697646046429292985929951279331710933468816240993493640961636479870191692154534972341196149165663919170261287378405692842566954577134160409714747304432281013103973287938306359394557143002751987685162356154460832156633643392645681203309379976558027879068641599839039079546002072126775727145768737824147564780321049032874657193258471658056002822511799606588319817084609760711725504862581760575132293004875579936464009192031447015509247432778837848180584076974245237190714253998347591988574708490483319071438662655903118636928503128660598769171216929619278113979197348252004238378538001964474838278046814279620003647640031636537939481853128999819013153098097794044672303141768373363139325781259789677723866783829995455371663844921879460319787647000993324751937477129502945382558954344819683855407331394939337479271124119405373617861632386086439905778953208998147925042182438109258389739410633768200802221941947855142742962716731066548967912977982027699301440417895096871931786297969874262923711140954555470674191212567429778548746798034447734634472267915689604965902139770641641174316944739176007987432409178622445368055912979320979743354176285716641449061883667268852682078962985775083224219759647498138206711307454419395834683941336267875072948474034871985238299731368481141070084784207820389202723940291586313037140242393938060477994128302151227382064055244017188417433065071099493381541790114472377641429078707886472967982211556853332224890555463886515850534834954638195604478341357035094681795904578732315109545696978843912770622634908936192602461821753224977763361190486036266630723522504710550305683932494684055394729804730972597655779486926620068173624931530965279893121823204102042783853128241242518114087029610869582817948090789508022424490999317171974572278670906522096721446119465202454500366769896646902637250498063453695697761157372435777888739905894861776299348668101530884449493563149656317132823843951505565959137725750903988217305620310696206287826992797285370614929158039959295000719094543894784585618441349305127142628333064304900632979191010250419446034882200084975208531131797534900794872107932067807615157923528862506063771234197429659282365745554788094570478827107886880875204779286712733719295284040191393617674929292836895307872666436791058079680909209632893712485310744257654506895830625711165250609778814491698185639349061474955651760925465145430365134201456904407270263335075681241898405072305013603622131956143224587463726307182774671493235327603281267922378748931254547919448957175282249927320304791648125504031716143550031082470315500423065950955591468758232520265372928100759605802446012151520970063244228153924077932908671345218804973093166301948332819898038863403923320437857039344017972982675368353348061672665227365806974970470741561483408903647056604784766497439375134483435973836165224395682620833517543407720799194322808733797717614317857969307552647010591748892848928461596083601255581688605933798543930853590942107174873998282033191661911203868728430909062554101352860891815075793263220845831403043577637182216100971525610242119512663272061704167582001856290596178251144855419398761241980410776973586999099883884354690956880365245238800673041318217640953240169080425005593051284014549363013548868302367425211452622829532717235867498275220079924458813368285862630092662219489415912664711141973252933301680670031110456020612762913727431717557060410119392143623333615772915289581177009208102555179651180622487426355368501088870402076910242997996073401751285665806150183749415710593376585655563916284985615434355968233294650171421866284497165110412141931605317824777152836113149756410589576438655366716283884196934092111985355452278735734815398991367197535056633142165280404904106139338743427700427053037555763105577611885757949240355804494777857211107011291080500794861542309697797678953175150789925086688454106375768934567492032017690213026411020506976287250207349239634311915382571425517776628574073847579471903250467691288188583647663624769415977853476746812694732925387588566070116042377183959935454469725369952173479236537480891921335189142698269595630832260700133453943011097721792079885810656068807659639732031432416078729253126406420141340242768466596397749415972439029488424975629450791156248742306073597742797712539706575996430401991795122167888141842320873265621615952850409744342605007076107713284762691936014261188822634246953941611342964320820404697007806457267780191765019832257793734611004077655104283864997639150785730605987209746268272769196219766377265613641565315466996494326213857516605083419654228272520891697049162799579076065232093525582387268417757946601425654981662158799953313471516531107797402604616506623789492693392491667972228820496401446585456232008529112592999452662736789685614878245240833433737823907405030062825223504148226818256787756043954678244815364773000137438703308940243996128382575883291512092783695133371083554920340598416991014886576172967612701253602199742661345866241588121223861050985178641597428261193074665727062322512662140901949537716368303195884240042609309034899428023361680837301493401096575835934833154617570725579238491033230822685451314605726330769063942177853609965975330955019542164803388732168214171613149305179260635588574825900543353935215245202084257473726558943797315403734655793596254801555371444100482443132615006371864055589709998603138373734867258701907551561950855629668112149977539349320594952419197068075924244732721397470943642067090282579514547299358865269195916531420606195869959386711656285655390075415932617729379817669702422297184749438152233810397799976785858275266476983189436482777661730541088141866447727456487497443902679353114513185888404578326790323969431931541784431344327629922947008681817417295517049050780776618590367036319558331002781734469346077264134010275305959903709171045285098015333101942589519071590898145009049240078156179289380590082922214985740775973486364882785733937171785651704690636659219682469284734248804566813064806302696919705190437855375748417069707666150891993961651872054113885861678845153726892542489723825933573711356984308354256769572442730684613863277333235529433381652838271054941718707308798057228764885959843000399189874950662232688291510909203608232585807383347930871057705799459597222614899082449742078515935174566096531290014204069885458530577315247770547114347599326530261473517667801545796399813204413188130522418983319608838955201712715940934414134371669772513463552623461441289010058259519779393547968557449008311983325217154382909740235819193037270246293914592892868783127880311201402993428438129403549242378245650785078308156863835584700255206638931400910429749441301702511156107802282306418453563517647936815444044717801464386139234069600631573628774395623183720186316306957606569472642900582418963061569801158544674189420126480715131236269105287439741509927536971101401546527191322970090250068145323952855021545875150783955278124220248500193076187584406705478745134908571811040503680764770790476149966318316837715156213888120700685363998140998376010665847415915747757530761920673683919473044773243818179513242259402534436560711086369918214638398949154931199871769300255155602979580684165017736716391865543399262585099579343452014806703213764429184684158140194893082302181406594630817878484089753720875489862964010793899050411777912195075685359645457058126158123150317446282125284022519150936833900401491304087656528880576911933015104351562848731783830202231939624618950446380861757166932675498674028192623691944482590710686176805169906204701878795461946741670739490290231370400469391660903225331740175995061881087136552848555686952245230535485064950838004206862493672188358939036771274704854612441544361560280947816276390139111018771633044464806766037568287480638712456559282622482149563965921619166973487462727100072390153353309388744181910039748662244441559822317943705274515312854009702834521412082306993005656260216824698957334775626854800412979589457187823796445625301928655859129981895468452265700551177290281529018076747165982531872269895642187318168279191552874066281826356933264082913420223075628847982741580384530604767263751613056955307645060131710592926956484496396297603325554256744582506077300631593527330439456362565079238205719719068056653805300047333890159349406563502263110193789200261335065596016497611349969219432891182240963997772297220177034705870914087935499137987848984637253636757331049735959541548886581605578365722664079825714726724690974222415150166873609077337772292225596162824503958139784819287971321981494368036170194420383645140746107865782595528594375613787430056435135465803134636740932928162285408637116323840307078345487059488288995069398862357977016696182434117618227495008549477701834695914981389784737473583284782979610284744963983318840009309616169965583278642606587402499625157222542839730472126587310871052311289081639545701341409609757855028525704294034906885446409354938127600310480774102639996684624342374220923945546330444877254288558796539852190200932766749233146854788548326636796467406798604837410344458547862638342664220886771449556173100739406693017425244047591818735216737676427921687607961653610256435389259470147842169321322609294945639449841063099717391804516863222942920016815604337525531160084967524102283000866346811160472312574507810846840669923697123086221213939770577454729140314763798197911062425131219417927171933246127630323707468200521453979318851565373071861428782742165442417605819000996028532373822699509335600303337406557122859242588677296739526143770882218382870673435125441789243840900685977151451441714926234099076217924393003937353579775267108304135389235070107568749503102351252069985368562216683884914861128443606556970787460618377273701200699775058534132283132307663494197078215563726225157016105586720398214562293981581402504139320850492422765923590873950368595120920897598462818684066200590188642919542086569609034019162083533173685007134500409274829340818298194733312721168908553446984067791216672481938985251673084625956888468306296888942074621437335254751797077864567995805692034843305579583606863654915587114610633854327563571635794777085093298353987504945479833781934037665532136818101956504241589895227130559394590511317739047772398342177149912479929818699920003442741928494207883504157677944293939199550997433570276430703376931212651415935009816143110499694179316151783868080188405818886874599430143039394715280473818027262590577117544727083148411883945753736808896033107991230547636067390802392995695522678447110158539002446323111552403805026003413440163818515231230312584535024870269070600998034121612560686282887987451157674920764252521451832040283342839436752946540916827675749292451436363126117199590544929099647185255506946759748046489717367708557109645624795777344775772372983044936028156828453315180124448724148544483221271852546784937395746627845479306042523532906196211077024223644778835480763529884742399407099708475599261840489765160334663217140580129004187686499120131837236234282955515327115877075689408596481839974633196670644534268133360695886487360053467480750270365271622411809031430329233340982032104285256625995333737224575119198999984590678837061892153290408285448743777961253280065665814888220546232274556926602039924472147065371831291927754348185697253681844585398182240272654872294321919418168892743369617436796111281044288277148646572657913606627736802454701165528929815797793392227852012328319034937795423998784085964386456729696004355926397837700483029923966429728194642499542988366512187135384029759279595818659434761910175435420133810977761234753004404192838510766571324816622498791715974837413376253603561977751046026982769637403785217001270834736374377089510183323786015337632476031330934605953825931772117576821187646889381103906175436882987191154280848376132387282206033633172747051369299959642068821426147096576519701564343719808016134818607222824209524051762585313585767464746875183071850086966801348389536987579444221517557367225221121064466308826653283446051419392911564078137116993488836281614864423656561287866492842787187500139475255334044419787862375507106266516320388675407100986118561710909730868765973938615214043016117859467295762597520967155645284184012739168902581680293205465769516916790333021844144254674396514524596759523146066843388489780152437289075835531312829532804499033905737802191612753304147775340287507139569652364401393846133897198159688223794033276462135418402291920728741194124331088641267800386845401918499296763099395018909547997571611573015089295015733663863548872967841251806621896578882963627581669243945624892590422575186988147091420093658395729216478306988638952949219602181816601023084440587733207022146219018960637660751529703826678781931707697302405596626013954964006211346591678951674909009469526550369913202764174906437407658356003352927102450689387207732906077700431456853597845406261381378807406670821563181730896784645465401503497677040129266730138140042453308943320571675659341770724708754379599899002114428379565918088468089994029813986181445143474931972385347923601066290121189002288418806352628417771131257704683213789459481925761840742403391969667179922532492815490280424924446105511916799694503060721938554728537761501834724263884575973208209876675305167714002431682158135560680122946047787600304724537091825320644344038031690080099682770143180406309327597949097583062349797073744999006240382654572750552156077889569615891613982507470251210276017845311144050967345221430009955005152758786123467408601209575256562265799304975228299441263897785155948629103003721597570338128203545755468777293664629343932233631829256941866784357218270007088745131728409005827565567128645611387341880246395837246284484214489382568026055848197940207408475848958194605313856689977517050209745708960919748461352245130559267695659159361803268246204833653127902090797357477858609129769984507137483543093121103533846516489858623199593644763746658601338933084364904573511038893854482808853428450541608475329240985146215608530555053322754790307805689995413174853804714135885321522254409244656338726100548100716270875722326295872278941455613164532930258952731856339421978108691920369649592694281094896533541227785249175058425933015556195504307998085739079182277790969609861508877136796534259229192837372986739902777209741154884106196869448772925298321085653149940238473848708337052955230021884547150662323062181500578367367556335607742906103342777334975531569772852764577774736286121944950694630124409168062862087078364537748655921654788626680105625955178865462285329086428559420120264147827508923770134204827735485536442502361866547270301830818188129046401749030704082243283903158191414144219655855037396106070722310626347893635003484416433659156409461152764116108107314707234193912870505658704540066035781379940938265792564589275705668039878997207091123003410452517670625114765825303866677007210006728749334311594976380481053571053662836668029354627909835985308300900722235738439967409029110104113694560840195084956111786063872891266382568631850635384152875719074046003474715234687419138514491295738007032156283506604164892093483163658190655715401784606371097150232838708943604554489598763019380205076559994746082403141685713521140760552639135386436701639309484839305801894728465227748987632757529005977137921003838095331279941314316465307792007059794764290016837532139589849896754023952141950533997780506776036892930564098334782289145382736999218527269979655831853218882433858684559414486797093312538090641013149407375206416895459657990293532840742105154319653384585651268227755097053616097961424526796515037499725424171425709345570213958890194241529440069957859725994604221251666170958424784781167502879288294133552418991892071955076586982521000670266810646405652005608952328857365046421898293386972600054827289051616262890604531779317934843301166273080681112478719143523956927260917447954129451074685566193264430320277516898717576467419306337350347127550319400326077852655248942594395396893676350540258745318902984042443270769235698624967729884868877812596020834058221628043464557792904771170201611674210829080239711844302152224759579112230900308280740222125216734675987556249939227069591268737953610623278901521629060800982570039192918101860076327850312418515080306114592027750671465306196711607514754701317606378670417192493383579407794496628646043133433746159707177687149131263390332516181636825651877691974687124076197261097054541176257101462730187497836248083170432513163168671379148279276321266676713876627378849714173995816294793976282975847377248273666320885300711442937092955986447642517614809757984591393529285140428777904834656303287217351902812924546195376634651830104319589381009803760007162408677628913501437779835707813417159510475745540710973586291763028864638846279531882677111350273376989046233264162117481520547092983823215071847115852632282835849067420511230562599256426577711710732727982825203354061436358301998439660139875333045506831412672684591206095359978805122366191904385727687710502664474297074047407357734222568845525318098655631235168731623809142766506372171014916529982744183491797181228881837782307670440663993725335445274742332063995113372262286174557296570092592725389727536210683929889830679816183490378162858181513745044822567427099618377817277745655118379893828215906603588539286719851934156151371930173071453808229468985432238637727232306384190877830635686296202508628358870984813177881083197348429952549160597911612053947840042907731843184378172217570237370593884095946883953696975976669013558306132761410899748567782024802038666249879156229878294038360554337137934088928342552880226085495438173183619950435914828482587627436172310798087226374434468925313805175777702713786531627671570122160077513909152419436280229184222497745041343794485201792088330394349714324085300790514691615159338212239135526535976207805417235047619946445863604456224956557385743928920135147813295599524630323115120812459693047410701972429470256445118051786746945376558135779445652573867404791203300358040798542189784903304449969277641880580695173995083533091352885800241982469656845148846224471549162416005288897513457111376981415103513515528786928805985851237860881688705763816884073161279950955841997421611973606500591960930548539650553686619770282516735701159913430141907850757406312309715149404626444352408813770724652181102712102743632664709614678394822908613171688790124646999714932568906095089426266489802912420352462436220674948185257683442504181383003517119914594278779464929742458378403781928003977353804063313516660315134898409093718650161127962818783485536217433105121153631081126360102658482948702545739274435499950669852022757595347278016780230808966911328488614391220381514978093466504576870758372972781013732887153434528869389221077653590519500506804334575379330754894542857385734389852985705647932399319332957203397745613793695298673581075811586535714340128539724296152057273660572303211171100703263574242985539684138851839484201010814189569003947326303486474130830719223309297178745686557838692788503597460419101141948525575844775476146596586769155389157602105283477684246405466712474867747001098236270710066490866105094084626469966351797375188204997194408156332824716630168407861393248947439532966054097625946775375569352698109160873930245851822321643106117668417058317560121606418496298559828309513151214440445544476220828448749890018831483017994210514274400419943511306974747578394331134172815863488547969855234152849554024529496989774208888966084971161061209445832269173999115442962874035434440670246671527321879812129166594646920485262819553597302477072975735440300895416286230877261760170375871258647483281892985457903050418648175917827778346780308292653359289324122232447131246391026047064446380162106289171718403970037278223393131905572836111697275754250950808991698520830311135778247895123885975212492171871730031062673757720333752909731326188024405199036762946985229994552455187483607315859893276061138787963741180734181584097059837802126987500184959410713400643187660709410861500366368346714679587773887084864409352087242018193048158710745057241002764731410970982662586577724209949189235849778964012056373367850135036032009468224322430099554068145533021196853469449274357465731361397007862955790057568901517589243773945290751129731808340594686472151233868905184662132040469801957913306167733598197397315448867332145484686946252736285721785431646525829039764747491809036178255490561522282764573395650264324881868582145858567193486417288351660212446300971499777164513496354208738429346561055694481918985537380674810911148317532812863799977317227262603303383560009539579631130220997709339600702015805470812015577338480177054674940079023264025420367182783808165585444033397550255035731217626391259847747449974529446908475847972981689980933475127543939982625490056122912899849016207456731444331520335846280587882886645421079030844792749186058318598754577872747794394374399759758469300135553897107838433069257534720132056432152706702553339601314584551320140348702352016302653497267845134161852920888444140544808381273989079679802004100385313957461635270754833413404079983342403631778461256923891405884340972930483627230913995902120303026463917059308018173767696218528353853474158517210029672749782154644985836035696713788858029350198947715709554225626394461647862144564817355467993314069626478896651871000676369197550403660995817734709580759782292306264261199790794397760788899237604808314297776108639237330316902530834663131676560801558029281939237898046769624248935187076487053908143297869949555786202507557209800221734384444933799797847981528900821123912270910600772146440835148852653914810791159849640215585002014723256505916901951015069504524096824558534520604545526697075208049502207487175246902705591551284652301433631566678383642960117567581806228108491475699946879762595121186951476007654194033594011392801658101521033047741218367395270417578760499074952432165550293033988766086049952822032395045853684567214346992369642817584273639701417188726905875929497713564419570047998453276657621780257820118119056595413810305793504105585513736743113211602877714059362593946241778376587067733973226639185204612141609482311526630710932168269821537965984902370670279668634745446538377419553540160447189390794792169808365066252646289888481645663708611883364202560310678502195516714263445402225235050640049312434108224025537744660578530519067509922719533637777422346236499328203825724421598712866906414978791190290854356981409296136062212212001203456413698347268098709232675776640645764207619805261028778004577103147863227426230962341819329117192150323113308072750305976679549777173373523997349986416296703134244714397022801263452816005683866329302887907935745666323783683600203235216792016904401866642035628646980333602260074801934054534647951693980075662932834254315654740352214256221048260225275353147377975686790813098739742737859027862784353751984766082356523112556863357083547213664418942245889009277250149224103091241472144599584152345769885710079719765423828164502375926972506170584308392118188244785872116394549368829044642247986763489624780932026974397045264916173697209496036455890229188223566911565881770803484670116429878730686577818226314256649138988409393633649847089249530571132955796767843939550575002029037665879006848756402795319903154353175869102741982223356448016949070308784345356482193916230281151518384138833873521062243965004476117725260991999806699551839617899066069133850433368491029814674333264321134026537516562460231889103955955286293710467092142764213110910494313351576137240113435701338239345028495462394213941621808615810153673617181204369214223537362850407208702488879004885772848248469993438793458408716008052277440933914418616399442782663405821857843779765225987977854653646260188468620435175488642492389266110962474701354083412874100323460221251747636425167158980028819242783151425219374082765323275442477693361520321600837126576170320668421854119515316386523824469450853988415763006210792956588424821845297884197830907593163874344113391772100354765866975370911789314695125671864850464366142195753680915747065117357165459854697345145026330051717701021066210215748398891968621972720663112382938985256024889764033441099220447415456392804525455203094128348604710027936711217618179581165834614127912202602787394320708174704794403629581405323863880618376119996771174143947877856039268736517111368532690658499381314549925416819085407344732131752613146722308877486805016223613640764545560774113483960476053031818777887444042121597027219013332259013069916137790266706776882029080982184957068222766362160568586785163078033388931327626402401538351275574840327808845594577518213740515647766228541142287409268393020722540626254436767218416350363596368562676623522212043969123218104898370436381087679733014479211983057247915898900777956997302177886528982833181967074887824822957326323122049845164449969873772900081906647684110118888812412798336229284848118852492739629858134170134935023272415586428777979537633399089011252117217643071223401018473352473796834567767761422895460104444976970102541718084729754714702051307536969081937183198150053799834530555218949184573332749504154470910127806669655211593036994464179196005019185667493878660030279519449726697699156060839245942297674389791311536200256354404324913269314475551903913049995806526568652205698779863074820005570064763135793462214492067486660924976243781063754295611082095776438821134393098944107466531575433792791173651208717729817760293691524642584046333034478742798259145662556062686529655143462951797931061731260614333709934073735663582788234158177640087569947856278964860901968945198675590277000383060392686697554028014662675503901179791209654732753037550936008872222982083435113956796671559376668258706863239165994012199599297001522060096032321511919925659352701724569168290863102263077027427755571316573078153288940834994954587973229448850969117972538598206269151091108926139993490526415754443607463010930317743101615218703031354037877795448106813407328341671124012986670723030367671540853159985798770612201705844684932522620616791911285455709963300466521073145123107696928770168621756736466835003838129378074454915233721188393729192883467263271321036460660904309358095605397145247363282488247148473899589468093027605233578960392794321961188316343225771493579485498005426144565000379820560817948281571331752222679323468044222517702851826556660270458497344877649818002651234620062086231144411789103511670494302215875529190398624679563422490884072858847543757785343448435880245150087334887924659247501523824985276241729228032378824511939149301320911082864653796182835547921467626651116443527457523530746587870962691264737191506710361713522158113517696370628178927555861887426893242255294288981896310784883737220238994734271429021490895700703918779330450059378872764902926552710381517504529231078329930206571205548541386635757515014242724429775328952445774503360790676162938370699801086211991386789745130433453179237871067161268417395343880353358479281192519177616741684421225317545286343727332514230297503875416703687616858875243635023040390841825367560243491405859522178143494110178290331145224446793790040339768152363465408073938393964780233435792761313464856215536144731211770830116011648648040438218836223300042734065562106320620086079895674624724997350834736178038209346434778673058392646333432569692295450876952601007075857329228320413133075342012407187816993210532788823996207104656701391272705223712977113598518214687794318964398985584406266930479214638446503051031061904547061744013063109478133164870519811804571098645324528107863033597354083831417586590299074134810051747302377009376918380459330803434374680596175294850458881715397828349502450885168726129330720479681282275003503767509012523156321329886344194241082876745254058732765494131803714008671802762191938437752962348475881169466978501750224450761027468506056498693584255880934465407683631063019593320089267207281067651424768822028586201266449687467868837018152410143185455149451745339284194029489782493955029634616393852568532214291017547225829833696882060722248919672574961268047966920014367688141291178762417928725096744261020083466373130259200275065676912777190434736357916304672152329420858786498255594995270168527636650733051772239866815148687768771828041944094836881518113141314157799322617924974590328973307394754344577871386559133755908739678711335727801466927474942747456719489682411456651492261261430043309871077579283885299864439754737721123477358759467675844298176011448991302155249109896340684615737883414480478875460275196531936156133044484118906905872137661184473950349602075003627547078257207244527846298686517678615685274022883158428059669836897641258098654683619694477613169369590426036348404722198082444800804925369541997937498377858852575045266933181466534518078061305979846752259816831415792909614970755459283221863856469809197604894965462619738188508064310599494035248095042794170765228309181692848210302316744867325471306684182081344400742876992290159676895056483641381632870975359544560941640798289488398290196856254524922636120754528364477013640451252108962974159043596719597992579957940424950478530541794413268674946018992078266047439714133550559520393953107899398612884125743717054681304209838943198666921113747200799737045321761812907385715594107728130414936590555733452980222947100509557899051020095398438669901214456332968606936903269729377360766208524482446476032012579005097708192476179624440357144923016318293635653550693544438314029883749872049029533778838287221141314154748599481913177533924962689554581164585364410312116198522787682262040115410189295490256280945765627171746094417496311882366440098553166549592831161072857162631387411578862647878806130280737994789835343308516305340753326850432661243967813090202405715932109649304319626597166425198956203689859041557888332122818393659197320529390971299482291031091358134574570303966537517221796907533461259672796857418057566074598883364960249679068421965487480252423452428321144682368064377672323234180121233904712642551030996521056913751067136160187398523471495486285699873914233819379600863988093100449015810402111483836482719935246803098072131657794921839555915039019683191792217037536491385644502843774102539669426000923678695484583244064621191743260650635121389990262083044461522462125185394478784003435477759874752481779261438817901861892560713202907456281961742317331474711979312674784481205231684635020761662336177008949325465216943108410477949960810912219551620299699133227826134620392834575452876636822287183718348934220122475165503079026166369663490628440776852950058255200674404219307692077400774417467009579745174213622793088292509734544513100261335702456157578756783427093046645555991650945937822111698998826492860705217951837095918271380222919352826216369146458218132365380941646005537075689286308041732281277285042387842022038874007694487526238301596285529517391011990459278155320059651758665530743430211854939262333910890878598307766180237388688730658286282073265826842503450388829438753317635633284488843670569475459431801719564891838297021406619458708618205891227590996272956291550027651323171916106202124987254696417388979910681237898381489113356024907560295308430417832489317272883488136846628669488624261320141234864846491819711802781019914371204658703932638493474283661352465584045620035355008047210539818243572854057272011381666055209723796478277342498246873218037928359459056769539665119749375158288945359213362226969985718722866488716545124623310504281934125160136243664841813493124223871274473414094379008973234304929982975338549219299911752452283707198198196644467067338378875449800154057103353748964384060694388824835436681913741642881851060676387669482383980405642409600217237411656259825408424505665953985219916931354584506988167486852644318669790480411926153825027091708297793084181052610049182521908264839248668540601306780665039394856855641870775083314726411924077885374208304754809604046253107892079105825052597926292724743643908275909937330043816132567627715759110029870465140956377479666611766626188446204007838034797971454441385543848886276134172569068116764841879562137283418345854951766347698812983722319279851604310630454685436645617566788564092409197867091571818034298174432233662458244644218004192405951385196693027477202768851281236966872461144462673764994947945411687098042568935714991431211304929064520145456981437206767974095938589292208448184374242157073331464136661394982838451754627341269383075952054220020586739282368080484359204223699320575031654319608222172301765247141052520884415209159702393842018505549733982604294150581230533428465083121586591424307997782092455906729379685017344968231465121117666882022244164552423973408780293384126659317715101539562685979610836081942602429922611791276865805981050581883911034445399322671864358978249960330204075965587418720137260093023372129406055498154464647419605957406563005259694148768807232471424592729622670763146906400640033387580117020196884303302772555726086230300838277690904831389588621934449700853476939941639340336402863460428181713846553107900111740248836437206815379587195865361695888042839459947842231925631088576756210758025110531800881698499351260239108595509754150194048132305893889866019997549360849702965022210374150371763066895061606161678824920203563386818713117305399823927868541910680843464273120431429115347286139094337539307999099881239866188330938978166031944873306504600523593068637416720195270734874113495280656896821731425252277841775274940533316367900503215602011957626616341067743639889504720808958476383342574615629097855161984519405161032501566149051606799583118404270816653100573955837825311785779365605192765965575161138360370641392634808496053382940752604333540011511709075462183610736359530315462327517019265438255888573717511104784641886654553654762370470691816972073353829266336726270814155259198719023016757940222203144440195505046649330620319188552132815363352429519316351689643770037293016332036917063704806734297016178349548370872771643956692668819503124109886450358668048529293364782967459981181542249154805406814314039623212530937241458738402519583328680811675001153707158849295197481975546156378815774177008484516312420877410341947510699973788810195289731314555815800252722367446189277105713997482430210925035423499748351554392241842144649410259568412780923274226538235372794332588895734649478494943289681104047940885432164089173497100657250136525960829420264438747041398749679626897417445187327894160778279966512701496305815537366638377808301652695485660055572372204717973748266966906182535890019787945788708948026048601407081529615172411766554482603585232955479801165082469195199065203784741643242346880784834776393187370423647166974209692594692572612676065498521072457436300247359602270344700326153635656709267337081919872287013173650946678098132001536698291724578758743874283819442413362854104796050176892220429857992603524953435581830597174044716770483758124941904512716017090421925820007827966662279030756489607932866559347157276029039176029237903148159327672230611663092377118218894742777330973780972794657542968415010480418407383801836450225708749743394921064083329434120635230535337980985325602942314479617210669982877568888636749577239855622856496906064804587791334071817950098145829031685148804718161282830250230235402315862270460399726821547700944581324982547960299752029873455264360819657192323385353908885595458167205587337763026399831176392669644168689725823816819923553740348485827474720071145290322696027032231809924026551141016381551875091978341391020164625541225991087215524714876773858942102993644892265867091591085012571373590767123971528804564989457376176197604304826473414826135203199677630269952921475893842585167457594917548128490771931062579601793730500540846193364510782758954454450736634507934570790528866912067971636217797036861993311162659146275985504282015605149361986905796111370908677064683618208864343027363870750049225521704473560186364124852909045846425627348007716787898135880774977921505538769254218583563618524380697621708203413736474714013656197382681430884063834942978614428417238800215044792538792973718766655138354342048473157163689904936178889916210905070138064027105882955592106718782552719408865137463532482487335527189053891981145955551536693834326140822535349587148725916623427574089641677919338642669139787931376191487756073665237585140953050912692350726296143589414413499237687994563372915159367980771113019808562937192807795869070173362069186819860637603583497258651885900696155211071896852513861123841843134154712150782162826827028035606492716493583976543723429011161674784939835903138734264659368025880581791139577749170871798433578732551254874515820081916382231559854433607082957989910265958426368825272344571593867460896988459677213565452236143602799187051469651699599084391335198309681022542639273922473718914268067393545649367760280735483462476891609909860586943368321975077764578501424551356938434563840857477611510562610076302901199188357194493480497074950167679674136530406859691293429495685954937482747675925811084219576153580818242046847385252325412709579890360717424334586262522599742832723951910802822850271631409715648885908181251467619235150035978030617641863241619425623418005465679208389053406139425401117473303498737231140815302913324446051218180093541085856552737775451893074235741876327831655273252809416994902529863677325149358060205481812386007551925970125909930170695485061601783792947160018442398237763657435323957755560952939008791123270498567473411829726337326052085513892696809118206443289030345023210125741702247030353296766467044235497143233613883412718091568430745753714767732472390491284214612062485477269958571792979553558041878987400326543873893238680576466090300348707599057253078347946039482367896912345975487133197091242578070284716666103705738073906057306004683266431332307340093061972838927383675637583088201372575502644074954781971992274317099158340791434487960731409764485317044273825647159620546721073794261486158385347516244922338515455673907076705800631081143754602171715894533231650095906893684535152181518125439189415552807265541099833437705641204302875329861310781743750027645634048802220669127965815025882318538011018429023236241995797270427571492366977717185988045480075628692689087747311160778399408918871170346516542283307723206872517731321779349661413858962402353768357389475032239230321688623066594776831051610408530293337062191285133227634946412797296037074555175719680457665522782053266290439664797074031645187088485125810248994321419004376880870223756136214099252485029971421173693405670035587771624805426743524237289289629683438425452568335673634531521950541530110140436317510848529394114627728514732709501336855511109794023994405065042745709493304235869508780770192552424812540782514203397823796813432972294184751131999102593282507644816352249109853806786021080593096868851336536422878776327209833525800511892288099724796544752977026610538310237197635885361153750479039834429854052625377075016360214371584220889403784909837378597967153977231646527740025138111432759183738899419530855759664178347952395286470566557521147998133155188711286119067195868886462960835972633189150294695486273463770102214055209368935332705154860075526619809581610729481891725267830414998129967917391427748654623732836161476888844512862249016510983983747378277511687084126750664205007060347387694206223500487993126378307088161992286457286120424775288539825519238059204369266742935553375482658662226719707347875699666651343050131909956909358168545956648486266008475360220014335610346243225006528847304859919763764739763462275979317030843221367981607810362508202399694003254835679043715166798481033139356100110744281296706634407222270006555722868563768064445956366694333724920028704763913028491500429907728850577423906348155256658206977547787225400638994332785985261948539330266685969662182849575976745694660926525618863029852028098484875874270755441750350111294604929382292358005260943593852164582250242359763749120839445577510084112359671321473860280322228659742926771794435979611350981290103717081626184509678988088817558930599829995604721733637792647379281467254264445238938212722272751756595018729381126447521332581477949309435001890178952040296416723164321152157010526404827385915846143721795664205904147864157740789549859468733164111216023925902847342319230909371508999790943435709891113985404294973891238236277042880638894534060933363159020104021127249379588262377857466650395729261269578919329917579017452332971128765831237882687652903333295853089087741743524262805493492839963172080275105173400264202036110343869741500281426150558724276930389759116174043382540479821414905493868044829967426338096834034144898032406867043713107857246707546894799084107677837870985984907898796651604651573742309630931613489495629450765599706424042437612378865738606104093179853993328552361301538812161933134016813210816856254245647131597605729520049702845263778409934244434004635558588768905800419355359712840526360245235662852029656090065813517257876233537558595592291826011997160548202002549270295482722980460353709881570089151083579284408597156201130145150261464123243127811539348577655205881032474008643840684017284687119136653341294536660506063117495866008470128400563201950525415833151223463313112282573383032161614792104616133871796253358094166325518320859341239143776109820447206371630886317083605166970683919706971666878569875974838812433815138247411037619319453013847754755020035424256134652484714195670870298664028310396865166069844083980680031852017399263096402512260662546298062563526895235383042503493287614974936519226759659979461507366838385149242717524099549951608919918191540782970230037334341714371854143291331968918845848928823022067895791746131284228772001396616128540317662164530735056216223667304324080720667093105352174390542059139509953856090984561181027240619031130305997961186847779922152283830438766180282195697925931102596270449644631415557368761251930000570796694685467614284944473315364649116205452490901259169816818693020114415667874568238817200826093454926071303595856450396094683559552978389725537425668292391362504016210159131955622833935821595993141125725595367155726504847513258470090977697464074522740473078762432443971343963251300116572796870997663670719937197611650068241781728282634223643659066999562663531288350655778689433550929468836663019666927285152514955998471382804908759766579408116981310315268667332813492173785163851644316209251484875213222636821292415832395861809911619096003387008784746703077489950395950883300047900627646507327177127086040462158673567493933501785809369375121567505227249944830800886698765942342337301522779123869792962950452423209968800738072534368704099088832002704842499771263248313310260644139056845124901206794593640015917312140889042526679296797404092074488015115037954574080655827218486433164056241215488375770543625207904585074644835639445479865383013455853324359036173450846649844020008205055025164325406042323858236731082196834193039351377363643775961250967147853594267168321541154658600490477856980810495347919949266987191431256725654632114447106244082562040183716406538477727953950832025121359792201189519812977402641883837353707539667988673137719939031409629619304689561433864220162468160145044671612474527773228171100883009998102791438291641238061968269266972809264779221694904750734731770045795134364205298094002957874171274784085592928449496573982832420745622412912337087885121150289655025704688940932457371485663365693713329045960834610270426988017785695643008333525858606757292991494346050423290596852634476706775170545405387486137664560573171549880837860278694842721340762773949579142621567348375244066622801404310068055631003575269450381955266291397005481704531436321361668491867386992508568726429002305155880019625767441939042573771386273174817244206117780054897592177181628741185913836122343983862080639666597495821208454373226692747993389837396899608324555411111303098993910363022466001100304568635922124191874366192430741176580600305941184148391678752921094915559872177407360833937575843178882522148916333469593251322722569074761395396438522381793076066817895097222019005034023484542870494322024488372732592896146620965573605378011719502663611443438253582219000168068973806740840341722271708501172523855746628136158524154332548163648690903523160319030878349937899079147151176250337328803636761858897319448284589823904373694494913929773189122980559308034178325792941370285260947348042138491204025335960953131211112033624137250596107523687017295904240010580182920790450190106813068708844918953191117369820064515203849915966709806413173512207423114674028470772088453701503286127558713374843808213863346443050334412248195050899111393533258102963822554775391679547707839973100934563770383531019200107596408429460684123030617599569833913417893907436814692410666798654245661309829593865001774959096638123691600943475082027765803885873975995000644710744349977187639136839886713741192997090136791399172798227299404274327779338670264712161886342228707045659233891017663030787951606192504621695193379698843904907902471775887766431045696308198688122823713622487233143949407091481936482008791564936083136549578457932326434541271753045411476649583449309995127345191891476949268484500852200447404992780987274686389117655757568321773886400640292611409845288323878577950208112353220179369160897655339625361234143910675588342852085180651436168973767608518768911259562101572225853079389255650118675991798740733759789104918888199416172255527031481847889880728247825561484739460203018547613844456282654883673794597887197567857236903490333867246563877384689635571679347807815154885178443573987989713539338920946105383061304979954065663659808091562210601762034135571972781574242580575808395994902407076548807090681421514276745411002539388538713206868886373292180346449543974246790314119104785282328849080946851426055020515961708062053547678121582473562310794945646510444197010489952271414238377398335135241879400808531043095574156196439482866533177846000318692779021460127241405638157556525325388400840975149785458206607235121337150144610729538321639522922241716082867318154603998239190518326427612419935726465675200812518138252562287031480695726857809480051756348524054006845374513571415653984085059204391873454878692433908246609053771253318605941468157318984533124741474671948485972201867468157232045329668108736955359176779760141346931545654353238849474503542191842369443448807981695497341311008212662820876419768128474302201393397007923116849111454806998352631808558868253481674348322456615789153174640401392535437581360401143885414863970603691283373495197662315872051702865563865166566113979619881752882933779930907855822821584674267004869101690980477451817223850401329716184589017762563682758918051942099427805802636331983041178803003868333282345963376622221537114769972356836361698085144090286195255459076450195714695742582247028477940240218205526239802661097604626030237130397437399982325779477026160430544411698211869194217683422773731115510632127320567357079325229169782140734261157063243141705440613859476320593624530915446388092114545605528712838499339892953258063616271322593799830062133068566122124890280716591669248416828654622396282299696455760349730404264578625588628888770926892235642825222651944545892652961711353678913155879939603676275722514011828977811973275561473533733207249775510989111730837726113499248515996548301808301211477493058460681883903089298372201294178080936362405046184295783771501559927179140798551407669323254822485986323127412173791448627128832351954598266244898585800360391976494616651418447777897459343563855373731817183861231197160286072909993268645447868376540160286664644230480687597269431506361600820898657472280240078377669313212492366780127057997523084478786190721819530726254188625608977261141589134402217258804190888025791226600721888764446193942486168799445281899839472872331422415436581354524733232198238469494353203739399645990420005709563287327339623160121587559813806338890229404361103847345497905648334453207646775532009689845370515753605166622005460367101345343097088743096914496349681847754631536058895725917669082265990771367057086568275283703289920435072999617306311691561067925937484105255027021972484323874664361932730075570374740252340530063650435770617180031278160700483480579497182730317583972317592344183108488553655097139205103379234076108070498642429118771519612275099217399882166750770653617875029979244564187035425911440068429131487639558753324594294279687493741938536354322014512212861285579858215245550350063099010385396174432728141970968723740817944924988663818966706895655586425899773104771709958552971842985365175490742153047965321422701547785333753182665997131381595043396975648962083210289610049882451646724775379219489900374930850560162708197200589271628289812400902910761307931952985509930684307143621677546337072904239224742152404128273779768596761718426845687529467607098195889957646241177249060253932376212811542507066043831717446000563165454631876820635274265938863809284222071873462663739478747244779808867367302786754378545297231172365662721151100743509547048983759931803150227581505806630654707882073586884444497529926035800750501143727829129692352537436754852465029661973316665668182036018317408827533718711408713098809911683419066983566930283541419214599095644108500125998443963804498576835001475794287316202585370487035172651765399239877971937839158085581262873456666980988608577075959507847435990567539150286113624721387341331533947885323246342123972251541798881637331036314026464666305865816421827865290215713243631425990872784260520580963166817922360593489111546632531658890416643567471218626929887895462074871326344883021943854146502670594593430445179098412418766927414236366734143880245820635935504677184073604317913714289632584145482597094981425367408531940076811184361165926578662782545527724586747745798387339487768124784596744809944216733904926957128767677483150746387568949623857955743798760671231522059086079526666742871208069799411856945739743165071746823895819721680788979591420398571155267451782359475411836345200664284331108860796102179250751081786837323107090082225454222917685539791997794479099412100119923853592142082548549360313703235129349332881617668121116609753786210172752802575337643222673204712805010359090744294533268984937971346993448097513206461080795502275123358762556376099919068444825453960798067215102925390161808425203495424930039386369304904164877973462256213001538234496916958261104941573456965598545330679560942143760902687970824072927105553721273192293050557620653854678619162376464024717419722424142547173406770744005127452185686546634998362013425733070677922868415033670640600370194802720299021311994524919190819684221132158977087936541113692846773418670170027314731902637940695270129020548193573173245207755044145679219163019486178724491496577397338821967238821360680831835389437072918930147128278297908724064017169268975313178728524513534942800237104574416511734692519067829014258771652848471993047198582572386524388161701469884634391909963374410691233507833592402393337208721389140935267982264628085513301182687027721417333014653483136088354532481689840489676218710482599354407167987606877626544377451282733695352825228332867993783273682574536345703934281494611281349326918883462832196615310194567794156858937451455731070255109921832268182420075317931057938472237227642002675866158598688079607006460263654890303031409892124408570064052113503576928969234890865286339782248795991489663981469568849481118184005047609415536963857388713590999331075040267999558303979321953842939195068034946793560931659491301109186183407511381618633426958076960277608714910631409430181909237230840724867426156534073614183960980134937886692339573192592881860684322428098446351016112144485599847778134550638505316597773198406898599937498289488716057857856830667543011161142569974299875216765019886835342957812672102639049425809241457590333820696750263979285538262564474942824563201627108439911090590181724841911454479731755792573560735184600168988189436377715635246188070407378833405754718022750694666215687299253348231768499944660905603998026941939706198040945860564777579660883552708218874659949913169848090008819522763964668156411315502471504801498020159075836508604360122999661504770039496520942044868102784939047209376649928471913458057119526912881986864130229645337034956452202692816261486888063723521131747595773613460991551837569589135517286754157833356514545161561448271279423122645369400713329752188662398233916113645194995034264725468178305873315556523271685983787924342353623485901285195810132283487452017242556923074771905892483297259460533450363605955970144066702143466483899449567229860509009171347161266855448860354123850437961360547581869281770695141942223383432249687748671231382243017735234515043287116089430205281210257045273042535607278845430220850871373883776477866392419157760226786918049842506663467885233161382039810804540984807143425664643013039049801461815498676555762502852994158216242951432259312433835214467771084233075361333565898827813838505808932575476785674756002266579782588392818507989115743919556694111689819889740697263964448256162925275148789926212857479619426650805784794543109196689857998192498703564734577186394735764473584852551064226029381178457526594112155206530043890744746854435710454424783143255900685839532431640266367756454099680518920757275340609152738273676325692637144006304033883381006593986986356554446101287755824498671298997221786061598736431356907572354096022769438903420762287950305537218931804082214761042995298423898074138278124284248890793601650296763377141405317080389872282450976982751826770541045547162742236970971959984048413732692554467557257000765424559497575461158155468933669129142023904381158830504999506233727177599475560866907619391263044843946677344139272283218180480863455176659501544394050384207548488706796148871084917054505812074134174530536252730998492448380801175771925844240101012543852434516713744159409498085095730145658028415088448220418667039352248541083364125340922226514405741999270705543606972593769528481158413490470982046714615266070967735014768604446786641134960713671677526051772405446783530243969447275615351056761395243681198528933584497998192539054590352837248527240757425856724849799412340412202949503641220966746166684976919433051636901476551762207872106143081868929667434006233714694033712121348397106763423544939543866819403651550250922368735944193354544289547187139023144548830005842743628614055132362521135765789691650307010971537126507026018827423770995837272388138685415808171886438435609396530362703320661611846390056720327037030468850010188043859140379320586935732308207448570844701268303220744464585738270988215939727565986451022372686768528454812451214347319513223195966549935462413164886169857360106603212916333176426582856039350021799494386330077986266950780013655039465587167349252823293351612422122836123642656293878222491787714322277495498654014838532359803492307325896238074136368293046424093139628454773187435147336014088153956681274813112008347327813872598921600366793038257461057816182132645596618203815729990073840431234162108809730947801903954391992981538647223961722949170599844644612897245949699363871902943661497721294021900258222311155034987046393728299957649591267860888480157084034685374561086624782580637785420127519235803482879745800735999106465018697329068584725819581754463970455865243419953212579513407126799030316781231475917407549901492559994943181149606940690317685743533529363131378908024218404539212713293039910773263664841259141648790588290467893063560136231637205073324586751437454343698703700202238484371217380395959725945065920121199038046418149000884822294455886284890459308088722869835964305703391857734596047122857353043657692135470526182941529321745188135994813498524006562925618014781124190178146490331775639977320271775632108985129444443673470935355806632293436215577195740620901454274141290757393569963331830631848619002266070841838751463334764768354167992797465223397928940290890490944277807330428039671905424151977968523983481887001116866080642340663539346770383772835348691674048851259625068508501641594461359537886802865923991597490102966497814177640215825229731124599446094085787665349001676843198978702531401397985093420774027299347406162687427277533743640776445434902467734047325846489295118387371622518121722633556060691365536301413564879489294487795802930696016236159933951898215441823542210667533235348502601726425932365332846157431904680643349696455623904680616858536988325375013049399268691781138055317681370720150565004666646900775842062714500454716612661683785562850964176574703144699580139906233437415511799084122148780897959372484687597518965527212729762518817761278983758560079774450664168708271666543287380324315004443050237817540283550251454038095730217262886260161361390086938801885592899578017180108254110769932478248569392984219703362275255067788031204030686382546374712111993683241826146373581946483641133022803008405047059609441879076169585798075927612425875329808683945113425432592897739436153391670777315247647041871348609564253420625082470159329212933682318436954576683963953936680663379115649098304513612976429353647381493238351563314916477187100591004418270358412202488310571694974969607221891121889273777083503198793067436078185478199344143686310547995766091269904866421505653948383713801585945584897261595078654846527043141429689876931814035578458674618071598617122506658739116746976276858408266705012249426240825989861198773677004862931743779961663049279630462797982797498033982486962316554291770674753600881932116088604331309769594755366542089256359979948929836226963680185429969245287251913167673087768602527025663675172494768690819754272621129298427070748912627665330182615833861372937205217653023756804483308285735648416469513743559586345506331031273880328624145211444999441300650867928682060090585779473127425271392579299320810721046839131030278117107725644048599882052061465333979590476484706587175924452254495392852647548079603243996552941266213532954921838350578022679696326684785671308864150270053269607532851993079555600558662853367122818871711958395933066459660375977986316990764543930072042478590054848806592016508446374292966881863028560643531669788354797342177903808442671879477172775322472503304169311319475902792809830706559923219590509696563954278425869644907304074991942845117056076894005357408169620024617381218221696438279691485684077785919465974360299742250258817785181339338106950134364424382777403574218132840713248110966238421653293771264499879159258100345753980569812840471662968230331293831514321750689773373060871439605096704616594106114514293736862478460704526117985466802327939055786008833453222108590930155376244380556309833807383991251599297117310363664436242205995207741483477749592093857616598837059017202505004378400362051948682185531937404798956487139576686630833980769784901608002194902519120604760213207174480051682224998198528094567431860595489428359047894127485863686388234176290729296242503626243238638238449580561267828060947105478695970571459296094637245054137547775307763350895723028556172956201858743049148595816063249566463346565055212759761304301872598302747320836619616526455737464582007699765242833670271800596126432645530347295473973790017708119077478999906755698110425784107240714562443969779603010274691735332962513396723324650981838960223267345501108505448611873391415629800448992087418585772407540785215039513233392576235562708968887274474737843240088096182864017636771104816348365036683076241501936147642059876721612763867689316704575769747339420545288156390853976307049872710791523119616924715896265303361641943120167760202019856025807306082582310595179139903055550072497013518957449046004386559331990749170408502516032747257174723364008474075225315349785282735923139453161568926639628253112745866626520289446590523858219854660569339704255393775504732907177119499451559205162952181442818878871763793127560813593900098732411065465086953130314724910583155657166993145073989490768356761304029863521992071208859288665380427358958397993226132749872339922591727944421529459147523811150835248121516548994723348576642680690632754936973936574212972317704497622975151299558256406222039773259513134454707425319279555917215597723576630631126681817829946587375428302732306132593280020715724751223487631696943989264960354610787565818865791658431501628288909749743269582022321803514351794431990533526889660374111384427454470649101585960211785431368695658810826868231900675228947030708803846541988026894488683321573043486221675605156564739469778665444991975395057699905466540456107007517745948286204176736877958856349196133182559673090273962411800560234559604419127913141356241589115516510656717859958109461499055367376926413768384866886165282289933224194039953258623859957274573942614939339194690822622506218723612699822568914502646499184810595770269215536667533945869268844813082218993755783440748311088675466791969985707035224860637885675719683325514750939430324324161185957642603411014032140456513201830104171102082547026044572177195347252707468172201432853683724459044084522823841984094161444720088677322143189437456705705973944062355367503273185859102077147667006602669211726605233024328409800507506419350234841595714600314086985607466523439950388430085561577270254577067440289341718693143474362709773121814247308503861330627600274014568077055057664690986463488060580769576846515990060875068641946433569872352247870924056388404771140736933115968735865675542919432794549528949729718039096970463166695766451621868557924551970303612229870061574960941843837966689709652903844717993149673047311051278123276341614746384533587580990247334380859659211272292812587829134147599615655769130426501118685204607899895874115702196740014992237294365948427289989388471457138120959008605361692531519880327326245646701908823832911981568008675592502498330077722426910620637819565174771365983708029911948375728964475065706374305278580852539685461556615536057598233046417134377644958466394291140456777467754526496651123623218806241713261246451372150917032055171906841515645652318875749279554431078271987057431310077454235233534733878176821194174132518168065950269342670434740042871164766637230445117666795671558505719816226375385286850737331638713426191828255990961875012671978090033840199070314776872368836034019966381668866195975367252140631306688778983286318568275804459170823871279006001880712792919322849264498064744982077356068334749929601851318726770471986005349332184542403626262137278527773357428004466588030035855334404779709178038140596313457425127518443014469003593549106764355996538306974859832499275729184023213102847342717612756528335534414187266283853967214912691498705593651198121411731727229206818246859629007670177724510328300909961513015565688328083499901768797338820843246544367650471877604215289788934314090932283056857340783775331257417137344819300007369755044742281582339811916302180121404080173593419130282262948734699934030840540038273202035087034770211605601729731403765826283195043415322397434381380059367753080477483721189306141029363904890261973614684760325725676729058536335353474845999437574473915550699136613237202559201064191613910531136053285942512095754596519426698130365648134172622752713009986768183974704533045957828294693274597623808016169069115861584996245156757827027094290009980928549113450204728901328166207369377924518947989585255850308491659093349308309847827581806465550561184097539349491035441418054538061053815129378683965280127345793884542326828147663766684052886082500645142604339393847630661129003641597007751005879855764814050485664929295141927462855002273922190136809778363946731493434274836922813026402414620900547299634417211499351434799635360443951389195508655923389911082177944296101215953823086190455763975224045123148259641024474380787550879206656432575189046174919658426806421376900611899555559663273661698128891698109966389755872258377275348251484108060266231022544330683722980434837746377142993291274229266157227309926426469722463914916668976052427311292233223696733311330609305507880158380184491691939589988403466658885321114911764621309400665972883913319949087382883372759913433332304005848218252340658164214918502108255913963760312926218489096988180979615305222718196902954100941385170064527034614816861112464599005218712462705023346797327439297551530901565731357588023107598639662918572764405808188862390391557477346108275207940600288717332377367708138668450522599592309488728033403662792538650389090248895108529398042061291922563618918484820475880378950331681962220121495607034098210866179643511650123094178047604726741893042693683215275877074722558235678509992383853076315722816301114660829164298054714892892861615623054602840143958280571754586945379621885513610748976566563403931467163685809005631728057218322908053780528685827706881217682638429315544102337014219794245913967191710473015413985406037288476689010121201251756757764701643709063576559912730287101812800618901691597213660005197027153127394606524162199134408310530941595249361446293116769943781499394671500137151811537772773919456292967228215642244257792725164544889528826481898023786417875574038906580709079566201369524667852181152862239629702123133363253593057030224891643828223358537685936495068680593707448611131401802421600160378691508473665327123513410657140393480117202398738300174118543573128674903177016640916228105908298296625387003223651937715743790776174810628100437919619977307132900388270447191377174159605301237333042945670567228481336144796051037632950296012213679332258150662963855225332014283859391056161277902796375888080723996103825562108944007280082784724057770553244773824887672203273543319218348468290431287268692847738652498414070603589391647319056027208458417064492112474640201135659413434881151826486695510054441015599505350603248064985096362310727412303458337806602598841565105671862549855811679332299672830236140003224913678965028189832223903896563672153148542076763992406709272870369032492192837450373448436838078708314243495228325722387491300041100060572835715385392087450377407505519339523968287703857547369356873972057913039627425237154122029368923502495163696853575390515389247466382969270607636452387748349879429739553017665534893576711938167233480030452910224992808802436531870641787820637166004028125428856854722025788844289817325895625591549864014833601320754673879005543212034789260734819440566793947083203459393195020038788008815397113180527544786475399537162328598262336604361762397372811245266678796318975147192608576800132783314058294761788017868253315426859161544821074455463147805912529765218195951934309649257587092767130579545119787258385569864796646276074333393732675351553377141105359723390797570623820001046397515419458746889611589744614121903125040892927751202616848118309967182990748439153884674584603523850017045355068347699950152196587448253115296472348637441483266643957279649054682463441908395995705892262875024394834368613833503709834251752222875337673652993414975823286928531595689847547694897676682116179388964119910530561195075655799882631606926238549741359829196173741082119909456882951518454541776495931150961831989505949303005486961141542571664486369128855802181283455195110003308653888544139238129982382068468087755491187170300808425750330850901207966083897160027616155363184016270146483859915874258695197225953946133779953481098405060922564209685809350409134544195745040610656229923613068468469312005707057063874275561781723598079005404727472950819374444216318464101606574999046621440996859625691773026721213092923330990064727718944596980476645906290878465454270868745306337141003512863745987744008435966717638141222886606557840263348006063061541184208826255560031258746612625434384822311575394170892115952093577781949709914553620197955803377251891440269716581965823477542923425040670691026405903588024036234112740809063808546427493572864665317182673023745812906712267819869462945699596771766616105773441868982252239726065182755170149528666847662584201726556030818713426243664943388355283714367605488830829656987395461538445295942168898597554793172356181834575877089811357534447518546647398236389418524200700901919039783417943982165538173201438032109313803011224305235137874789538179874012734070996753735552923302477076427035178192001155789347095313168476018879102223419164874321223317171429201884662133762663116121137507223898229357547478352911330729873759256744806014894757715182874573072101531632167376438030764366428709491786603126062107397052615107619230475153185160754598514932080188684049867702334486778571913906672037314318692148248450375796205020755141683042357828315106710142216681680841165552680739397177071658350164207265757340158265954746895922243324250153020851616791489237158693944052494158575995192072881975758658345493287239730946844114402549097225216720437197134284639700817020243466039935137137198766954071274518245636380487211584946262623721646270119961637178615583802210608344948295752103285840480217950102556439349388386608388995316946615523276617762969288126792484736774960484110226436237329987542559201688015381480138444572503153478743727506680285036952246218304704850491958172780639939546758628878528920406218047813197717882670257650081114062032703375742054913977399846711458468091100710624923540726193033215324369975527092382305112919662611087821945233706985207336364028259997025327230542284902430981861357476884627206323569199930559665466574778859762353141159828381891781867609196848291281104214251521411420554338165270023955221170512900508285101772516505055019293840219796452705184427979579537968749734483455734468559619431350216620362016864340961358690753218982577300415822744003512926890932797684454393159658013906765526861358073114300966345593653397059179527935482364729814776959346185044364648650319808482628478762998406304977635960075445948243774944259669237259085835476215845378819058520544186962739401793090077353075365636922979207402630927723674078207285596561446237273800796409575411168478200224625643749260799908172122089873480513907666708149633605823429359273137900219655921462423242903280292316675405721772437028794239787279758748660807724946898037734970230573948931276044856278813976686819071098436390655324268639614155443248286888518455512277748849552809246143902038950009996876460578922546264190472629732861076654310141275814555519244902615249130486552101746563081050858012029776555206139662860579696301646804352728700718997266532092086272867747902221641015322339279088043921384709516561278544377600809568369898556035338910561890277035281788746003890611724645419698886439303074513940197844952455409583694221289936715476883824545906473137411312824629798689993081766612210647466685787264439119022666652053814886907012337172949318570700824371434574876430196825358841867620257842669423403775607667594117288184104597754980675347270966534917335046955325635643991283164091090680684275854881475151273359396837014955683572182641856771354217396772551344951603835611084111504065836511286991988693693880321951112874825631525227594331758931048565285116837323582522460619252962218705994296193384042978361112328111604919074120475211037569313556029658766460642630159588057453535918286335339393327998486639134664067411349664719886451129812992509711506341411107285083811010223013100050160497090418744098364465986912158773474582469909812468431029688293507480638875566357234144589280416582105890960253849026981230586067774142055253855802858937573523888393455597559775101915751343364187934765969711677337617738970263105049844339821833279353203330695033814469413412576334785066938441561500128368137325423573491034027693998680014406915761736083920992186077937524533496149645665801707089905823881329753376392711221769617167040077574643729302796176010467222037170503112211869747748151073879941358629897127792706657562749812700676413988006667740855636938802013183520392705770197855407287208127568634114191675823697302205361108132245041082626988362847870799851658049885342942744764043958441572228657125106170827486171556474950920444927338122364519803338137433839263477359005141963237231956216114230110531969315645134267481424023535133215685360853011192611709512556085943221990951564736179676984661731183017296423184435276038909499504108074587444224509789123441581539919415452839886730282934099145762697164372970126348823938650207031064341212943334385256412069725975296132129294455555174772027044325854638578771099515592416913871558050303045143911232368711079814905008520254054765371124611103103751819883910168018064993997152435027563053992581412359338572826504620802535805496026424861163195262646793941538127495871474892128570852549553704258158699634049380705205328220677904474995634405120819058556276702403810002533307654901091430266147548917724377261326459410299859707814830122134024713545302130142868458796438056411450066688060817531152984652150611477844514969270005464463657803099823333900430519884195947668279793769844011933712810235309272641978105154018604841645216250138790023473271077923384137405389914868506939424523862769635894493901930840096448905717271352973612690225707366575314199622986566840857717100922046148026493376383508467376886897463450739519926222836557481597810695672841051041308078495762525735401317650723329307722853285906367029013665818084595171127244222591441913242961459145170273776215137167277285391055433713781701839802842341512474725807321388835591241212255753927351641484885038185692571681251718552607855634179127115828281817823822182003323551139013490043171405604368208509076309759229539643153684420281071043452162966057889373271877701720240176793659007987336126031150557908075098446993355230507749562176404939897973184740439271279751309178461972332210950941915910663028869444595487300041153854117017477462750589007258021447491508116816561642829085905166769733369190155213182250996684279253355563739753281310682312968744351697071368885351076859904066786444962656702678130254604032854613674429568296165521271705306081333937882256695449398305802888450685581618917870230284305112593181700814566157878037202532046592918961986070013518012917355152732028078051043830826529662704175955885407768926374600980056981319948721170689903206993775553729103439650946581761302826075216632846806337884499539587314523249155900394672818796325802346754815962159147425275472809906849609124926658769653366318504490226466157880572573760095400934824252404840146440445405735587638402751889492064650876982251208473846138776855099024760198853874871485710724783107787733494025354132178027239475435865060851544414362881029232999159518414585075057850573389544997465257200823885042875025317334151927950320820627593310473428399479676775172299955822008732524764380752328085057194387871531015910424847788244171682725695556219661122570469618399836999680699876211754032742174883685598983422155835722472532171236178771927172058842474971331924235075645967331250413365381488602451415750243678562589252445873743036911548217180503028196127216199403836658900959308233217146789175042027953615419700924168266099492105462206637453745964020958691566352367353802158587910580030825580776932916043615388057543161146729702153080025795146765217453368713674530805065030462788115665329774127913266565381344803118208924407207184295132405414420950997578303707428402871039236581504947764379606189908223160041576911688521776961445585846042545758068206578587110073664981228585984165202339051041974964112674345843710679203893265072640693777462371582243773118337038004471363668105393262934268844183011678226943489183844588946124570732528515710266951888708952518017693904411573252377394993765662915483325062578644586170174878512447285379586761799889941481426964596940164053903151585156930213304779244413754490375444843487959711543350694427752108754445157480531029296737829200313495173368422512820271106924029280463249575179274745401696579242926666933093501324420411500660764082245307339228914149261470034705390404647685045723302898697756581880011746678407911306425374831391804467774707813147424659029385023832713913382792587214155017695735641656678049954463373353419338651590602496252260698312756378576626887336581961920451943042021159352116845628030111037838016076203674643257384720931004852343998330816282610574308134259924603563047539141440399651406560026512479968740259209940646106874214610815333366329038324581454681278987044732162627166164968191337713939810962329845389066517975093883798821448386971483757064457529974857227105090008537674074697028324289705724662225708325312901122662631117088641180042927790326133457523112643342040299901156511363178597137593182520000287182629238819404073336032665228658084532534578480908313938698234402639013171123431835169740382254434693818868931468614372097472874637054308221755852599843685355410544958097595582578321302043115892578263329041339479616971454253573941646633064799790658451696714336232298046347492173400361507847543615834851729554933171909093917050497890938525119158217280980475050433278308748437234206673550201278388799420438735751486497728247084154187096236214621307600090044930685192878192070446092915092600788656928022357938701766886002902538100392673758342197855874947424567188757273020775750271023285188935613833870546540178030778598173884972565835505148313419295350569300975128399590988309119290579545588560066138656559145280582278791906906894400750652518945866600373744723011537841209031484440415717834570042647430094082591617493663494366802144534327040734857880838882852377665683329321178847305102450917240701442847542949789329716681334975559245687004462692850985387234015475309100157739093075050669263048388663496928748690412685411095709704010334394745748957507348480281368380678930766033002556053432664300133148800988695234296430578731742973668992560090773893794733527644369041776718456338967378023420958525756151372522947886732026585306634752007844024973226815081928886624485528490314268604350676901776047967259768066923680196285588374685377097008827717068182614164102577135052728663038194963991496489198798077253112029201133282585452085335891471553187674615114368995538912315137219281089777420021689474912513975899668996584006554944615122641322704905530990661372039580193770885255249630785806058690558422174411208899932422615031578184656042144005608317984885281675064815311194416911615955107422825730092184555172940036453880560249237137959908255541320803830854058709227897842265071340676053071830238574479839688765980593351720842054634015283816504657996323456984003633073365858483354930308634751362041977143375942719185152326444822931971182444879411020536948831227645284752938439540573568795652272296462757012086187703621395710636767393357809070773921374924794825217134207342031494819787583851655593967670152370293616173174304424106533147857219580594794486221953119872534777470938548622122473130268951201229043223428424693024486364609314029065273854446696273891726745881234155985742659125458531313831938109701645783711229477780036697462474704076992929698087029195780199208285697280476764990245245084815834228341482168019338115993806976124602099347837726188762345462873814036745064219238265063450151941788245521651004983102494222183268569554774253225467254934447284425092156255323978823646522349797805320408554416770774180284818270973943792108699830820155903992323651936806671521255788785790199608651644215797754077922649851481412158197613173927282100663627283411025508473019922094695051713237462109979247855202950891362967334525600827478829872253699043586916151563070869010408203160876462907915199564353353135548160206404058652395753660750007229103891412145458724299618254335074197856735983222617097463970578810960772424379294408064425240015816137877517604098158401135294300474341976371218014932050163423948403110386327051923144266396185644275324754792267764871340798728040802302045540765129396735074352204220688023191547603930626929909609714668907937516701043149760570005966405399311348525952942052297257163432703828600898115799451106515823262969766130926903651539736801225784947655008784354485106539694684573108884479374066503910466733851240477460094917069915541990693170603883103888230871312166001505539038636169808422095039633347822889384441657315498068441055285444189323829385720736069291622009108742191996684643358477449861936103708290924475503595773340236931425054076281201653479827692153811170898838153599465582835508454592389572671024850954295978522514918177247367546593461633610435919827180752847670354929792710289912371607533435467576429931024129820782198992245537703940247825108154361468330144725420162447947751132185639744227435829658300967459705940367935131938404290388889927597481247741273771739328138664288458703725250406789876827839711276433168598503932658016227307122384996023263404419509193266863968455989867969903736765062240100611980198563274753413911129812767918290928979183411316023804106823645931734302161104191290462147773522658817697917208381247230062297626048507342144907901113193930307304911057659785281788238976537756322402751616967769705218200238240625852779071285870606379986401083643205805343716318413712387350210216960818358654907839363204509797138530924103479594703232714712607436824877500870366370268868734104430707302722755643863404662644607211539920024713082352851018660922102420522070009163227332080252815130079856603542956781904436823053063241743953577310312826113998159099965162358739911205848508463550115831923381944254906871190628497131102382222077755261888156587437048784296901718247232740168983402896289358133845279811384810842114563661101944019184529509805310731217753668869371678446649804531600557261239556066420486540520822755583183162469146856584416237292787407636763845447595398531094200572916646047987982651324438736876692266136674479034943145787049103322519018805282849362692890242585814395164518626791808178449310741080611536342018905722021955638738100834377224039936466630474370353983096471563494167084035890747973904417519529955871620877606901443423386000603123119028315963350077801628081582569571777846437924359735449243574325924750033898329038402791602729314538461013636887677706508888093058255909323004144205494343208519348291323030967984672784551730551479116086776795339075711124828026957596892390399546014043091074488148467394602708237508799519940224222308474275525191698004169585621329350159000624127302520018119507459154364325079094234183625982883929794080454753539986964890803629421280726198543402538676622725408525698793162861377959301333970027879249368925467183321574548971818622467228195709188781408124405903354162611321782570747822888967098881605701283920157388730522741798263195323973537110884039198749173394267619840600186245124165640498806865491899582607102873134303049473317905553237307184505838517247507841136202061143655819852428060086052591806297369998034627827140798339805899803975536433471567092138134032041451968297564300118455802360312521334530125641067235224041205800377396434891514162164352944333368610054576489945941755138484335446533424285509809231213391198959598205112273013596835337502229438233416283661944360110485448469207871147490004394672701940187735362607578432639758430354044755972417693013661569407611905521402413543829018060192187242948811399162882394935750848851941651229225978216456739135570988366154904241899666671508322448389795676625626184392661459133535840923341071889627920485069416901936854243034883561004388304730616977599926666324086865520412249153234266125928865809062749719236967751085620560397082766565766747930573227612486212364742380835044245616597018514359244219355421724280936468458622226381678081105934791916510864744659806674725250475114680595585171193958194102151572530595756339821739176598663347044021261104042924042283817898387650879320980490471372565790152017938670199985838525270980014082438441735058029344269534721435269971957894443352706745302556421415315212287891123671681709930475891046238835950871722673949249645241530771699909775455231421154675234994073231619342202518801666321481092590594013264315605071842699168912824912430152697088251766449995222277097256856154259394994310692037180528269961058448568308892256442324862319061972065831115825323294557783970440077771465267881245879018458700244450874975595839426906165725667161678807949672755380080324212439661920931376388319728029535043636774934385938840269755942794601416572335955269893279876740593517157954786209362762549913088718330631657332830407159350350270422400417700248121991410131612426496338140200854002386291324216441229212294888618424215218987826914146062297055987457986106118239952915603056776622458293941133385247738806613367674518656769791401261378080358304766781181533937286249774001692211419646961643524306737664818136807214278541931022438912154620620193079609485096334076068638055350030414589384683124411642568466282901273136649350058816215439359233580790189567030658198175915524791083645154037073145241435921155454300581968950906035982540172247933446160460806667277337950380953245316931974246267800774799882993340398368871160403850521588298795512963571190431037664928195461703581496937474298906090438384398195051203353285080788741502758435361243871525720915002999843254292290102388710798406114976496521176182605902484976104682082981188887594919845027183871218316738876514734250089686316950732767684869956903056950327061112571585355590233471749839000276917283318381402844937221486236256032930491042334562655862164494369200345023874255745870986373367807096978844587928241285008364763727075992419068165501480662128866084593239763310747742287144959116428592888963894390802344031304764922644449830809039057924264516179547347544691626267369950876503757967435860726803028518520670118019649659323249770590936677034166683368006830443710200319971003873908033515430680340192480259265130748904554267201741307968293774225273130181471737729526856428025714242421060265090627518401282331594891040038844697658085245118896845693010866990424169278304729418866988993874973362484760692490844097446440598998293975383068358093660205748721556632736795750302812479164078438097053154370177933992276757990121825292510837162829686139407861898714227963205568655335978232849307073146272611250111993640823079216029175107407336909342769589557331370977979110794736855832739171905901877707439056368261955254839468481100125987150558472569557030371724792110094119353795801911223347027259257701178438142220490096574000704125318507528008107409990903040654193068028277633665592019343807212670633965382457339635195929121948968745129609940452729717592917680729164369281418064250883981968982181647532971667294566659261201151008900992710105184708495789976233207664577973548556443752640768347529818977000807187718542890581323333766148078952469820586012511030003184142120235034575177411254662299962355650815633928219254813094651588205887605499998299136912039846510020576396290233180129162235381042699178529042784960997447239476070710597115899536415920220760270923566358431854170886001138523077043503313860854102312998553021714881080296879810033815798382929208628273162027632018796179210189230727245329706674048479711653886373039929721979310398677368424167432293465965842505304666004674627352815628439225872144347937751800462674847712811415344077558617998526868759816204133706172087976504234599792258870880735044255199139063379818149155983988264566830032757385283670524178179560458915921033135515303164980980139588759560896030751314490934682757277272587782921527785313428418346449151020517211063693739472294169922594509481476221034673219770524339035017907254146186729606555394941960809436425382125639245480340073299555916369863302216665820328183977807056177622187246477035019983225576590739533329223241969096366938466200857230781494555135027666654499339886373066549705527816902649381324015468776567381355807710966240768677505202266903802151738522375733043604972674691540600899188079298778519459974848826607751917144478145755629726017866524692190191850509194096447299741488886824736123542680822236921712885003539098121976342846637663901624987099854183524725839540384091214625007818321730644003864625445694860410888969464374009323825293735497181767228543668735112506097899324615514626313811929680046873890219101575784323733271801117953138360076295133198245322848915466102376768463896561700935483775202905585247678158752341760252329709958479578816579721011050970785977066995076638190990061363197565822737624992863200339092308650749260782481732121617171388161523096189950213621382644313974603818235958948023525341566187122291161848132835000791492424741163161623816914528837544125807172790006387923612436294924408769600526739328451588194031985391117991856982416358298988714784322978902558241732937875214455739462384788247068009954682208250672579126218091227071689454494417830270783905725703913022304381394943701100537949556847223599937865352588740429488069165496733638777724024945935964924569883563744885121439519832149028206729558215363248101083506969069159384522940548469435087280054374409156793070116222485842799703572234619247640065559202264044747234434158324604700027654660914582811921584525926275828352002275869766266144484323714879076998357183968193215098238054984339266122926015550458105000396837673353391904475951095319795115233051789900510783752308837807289072495604253213243700429663199971124328307800103997896217614746375652658718532426697766581325213858193858367241779083646048843980001913234363584050937289986404610036494670949933407401076214282964266060094093624317875940010254478726069069266884004661163572625955844270188504089137594526179148268616080756166423571324136333283106361527756931278138159652553719201631403636084355802238876683976077618525470447085215886041769407850645362512404979577062159494410920688998406465022071065012414879623601781071526422441399243165232820293228949389001767022375450275814071888110549030933353926040485335749140219349336613438333724148614890364681030654276994630148541968736168446457640691154995547889984866307603463883477093033110942108711178263406001320304111317877956712461386515076319345752158254619497200066132078334052075723067351849094326161919861288609426739957013161236860666173774236581969758054439682931528024062526604904617554206909820442824278320979742081674262610282938160779664008369165634854958049729635866110123187941438881470891341623946368358217709425977129157987807124565979842317649500194494053660109845569793067004467660010957927610705642575679182401352053942584395214834313367133424781857635296855120782951320300318668612473983703066108217368464415126555952715604086864919236905074671318120528429401836356048793233684834418292696466131914733220873654522395978077922982402497822461603111135244887939272765068820152843717896464076410686516398658513228161123129452967789661649913642089118111369078391367978452311201684593997486494402204724419166552498781257898496260096720635372479681042435399530172945073744448485008132292868933218783678413388417032468489723630751322237523181046459676422827783974733810598272185258752450538833900469887464640158124355298609771015042053557578277146311534916294271407557941441468871804033557422792968058377139493927445747674200455372304629054979933348834412641452053981951864701933088666084767567066706189646453571330191567065062107470527924748170200219887816517779729017055000551898002546796045178531932724042889440989383563285380553167064387023372786241962483462070279784604274275327169742166001773020637389812520792425972871034027981344219391036356337592686012547895880102477689126048885951861672890500332211008059708050860095289640838156075411745461036128249877085378225350003079831258820642183806602371377795320406870617512186234461395006836138824156643296733799377842892770344185850162198460742188434879701317851749181921313529842257532093905711910318151386628368715583136986116638777438779261033913943453308797095502554202513065459590973483464364708570905522475459000109901083835061658888368429716335898456147495923045159770823788197544142077307294220040883383104825876559839829472899336302292493260226653139822365573283007557815908369496161598591130128835693099031226615869580312709463785013960531942586625997913392998912393282781046124502044585905037268841227462051240728974607527680301516518166075395104616371296672009802819566930403677432691023478892500331392930354013838770198964656197047780906834584459345607532280293094595967109647541851790351133760232956244875932216818979658045712200145885553580271072821226157984308097134019404659012440852135218505457783332707631648919190199308223633880516723122838285623725703921498705764903512240571202647112554787883711578009631373414172709841603687130476112775645285186698224597776394182881365510304589213819492554141200122915978443499355308562574754545112068137237470528804145492277030050772136715277561229465438468630494511152134071223307161801829675782415611740500437278401627462693687346883563295131917352009449056957131499149972965810806351601914725642126781025726875639327660045506661276780312683846251584230969929729061998203636981274177128374565473412185679324893080857602593656022642272060185143635562454794179589061798311724250066401217912962868194324501826791302103920698690569143819161964459557562864455777890121302056690697157210046659617305611036734679704784913107422911279947990127697631473389432485391066588987178763254854606271706906882548679439872862309464892162614466368521076599356755352157704414898637838218550211993977913535124095805430201738749187229824307540360755579691418350918384058977511187048780339839437427541990242631913723894650648855872250698400468944054263883188619875343105298495722842730605501211078091011236101699085264202199527759684813251939636359112619251635129720834908252221268105425987903635569461275709274700373742552820109519600145074765469439406352260578160267606022870625232562799090170693962286592735701354845603945419072932294583049498131905236646035270218342435095595384779145236722890783424037741554671173300356427278697093112637544206214945062237596979945635339184812196055526320613626776000159151531342320612923639305927321091732118404599344287712978350735253287577292386929803306248216484956683585417367829778098909446721446079580430653953279555306637451164084138987123854305041262510782021730459103400950191444934311403207721276780055792417592992841487708792161191545673712751573271931307404945546869635450704717006267826199331537010364036723528743957841466154296659798492828319257607932747173061297484459479883963172117794683061868351838593312434378503801383561575649415408661791565419403433237920666745038272628571079977426033274542644589860247375233293235119223242950673786013393365734888983093121326421582445945652033689287719953670882632915163362550516861976400901990238028908705054480704693623406554344353686105290210229451151535939407548913616405912103160387292645782867653579799108227544948841809916994563664203293384582963792929105069790419996857757027430099285803487448098589423763457167676757642822513142150275280527523424955013406088388996053904375125189649788520808483041844825912473055702390554287473443965110491868776597524553291767750513826604170885130931517534080701159836761704701628856720601051842931789531645761827610508667887662341096522569934051853364775781371263587800356599026610211524529553692147069552292958456084454232744126538478390117169773540327363560321070919120952904976741363829220014043654820861094821715911105494062857890884943206095999984326486864423961519773742272031655029154299054610335214074336388487877882378289924414527324711033229094173352044578507546056218075693479964574311264883281545236151848717627848590117031152692865197895603688408802172058349619265065410148696983215856725696822631223140665893024240896829252579756069740607161180550852904062284276439169334933477151215271721654548075278760734713000776871979501592569409195511586316958599555239733422496568583209719423958126496034527673350210926600038663983124663022780584303337856872794451032851252782546802464161895747615965520561346585632107258627762730915522371667743561659760294622757103890891604476987005194752600893341689202406351175293601227454576485170721787170072615757585873713479981265204331396181388350956592992407741241348945142815719265091415492321400919282440207996131844619899643644682115246136844022421486260069747160530103730931866582805212566657916992512499711190705164818292297197683706741759632954841834473789865457782317665739763266278410192549381905991659546394566303214245624067208945190398227739183859700546761342779195104440351258033522614030304667918802673873687450342291119050103351399957819922352875603448220669723900157903705364886847109257920717646715026087517447704536814548371744121724100899051784732746849150153571925876277752451137755516125989943777498377960386955825912508699595475219328792196802289182159360067294453357289374259031229873286842036468470966210867317960961025378473289576284467683919660706505167748426168459655380617661899210706366847489465619083801616192073260437425510510703105197148415351309458259141071005444688308215766174851341810896410476099268292358785247947218403615279207437632318225718513603490981046250627147704638487861846377956248892527304483115240932360412719953406794647612110624879330569303867215510464015492029943602275746498208275019448778378076403719547804982340889054481498853409798431540532414500681775827113837042432985694155280995517939168852369547267093503771616715660147034250587212640744231673783927976120693961312076835582897413567926440321618969712878932385249201156878266633991991545806617246108144406391985838758351655010265115058914929150003359856672300327564413526973023702959246024419284720483623649539270733649614458882874510265714683164793966997248817288848454767117528233876370948665470373883564609293168936216072576204829437013639956301145820764272357694291673078661235963438881743601405135346821747903389764566509163711278540556028325737943370369531912259527123595653718323630411522672225379408417369537235593982331463184021314696692088250665033883794802971681467795085995521825903626623695462602206150442366934009394825670364174717635427882125119359550936133667476876435220983221411973709045743832393837232639580340511024549132438754691719686744491429600082965577527470495615775222519660905445274712133643937555752859642090071072226325643118287615694555985918112259639166750889579746111709858759038387093051296464190402538039245926735947492332416597498732606445588684422793698038744731388018856098593975230164869387747090480703413377416656564749221557071746103336331378820883078699383888489844617158273137098366207320088202685817855645534621931236504499741026578798502179774004228140727952030578000359614687823689113181112547193284697991530724220528106007572030475008880540358000826006987230294545711462042121609158156572306833288425329336908026746058178667172206432829899494369702856585999589896038102213236598345014427986624638795824160406911303780777951104849542587585226100630969976130390484005398019513704353627746806598442011467360780490007992271942192090116505545525471623705003814598719462573374579742328144728851743740468185719303762502184066743281280656607590567033250862848918663463091301092288905522318610908308605241495254211160381057689348288833752075473331146742796567211522405084147799906640734859234246106975638463115279119619222066662343010716296291170654544931156112359312299541657907587588748458767161822293432426075913592908110067694352200906911013031599755250206030282787173596941400502623976772080061625046124192549869429166319429642201637949415415287726379603432032174436999886607013990850124845829142963478828095508862753016604328328281598418349316160761089453709479865934452115573876917328389986285512188108294678224793896958875800489667879988040611394815123695270673567006476674196121165557327437535980181244982517036183881527680033139872056533983505185924466131801438378364805217409601326420171143752935398312835558562033928246811823854342511255798673698992429808430685556531180014996346543569027033403974028832630858202532064370544430029592938442131842426631594752291958051173945072061295245687616717210805926385959019226249969430213993121225695869634407975736788129746852855481626490865585832772665849422117662509359498029066674787817753633609508800960594796946389558054988969477969966362878776150221511541883770641146486122735778897204993822585782316030753549586649482415655683958877027394056527243689618396739525317596666182431354541975488406119847861558659805270469585523419163948247428669629354930092892724047688686102216330417777282718962179970565817222898029817863500959617850545618716063472242098148060543467549860307142268054347968038369866804905697706635745446071318173917383069601582440046397796814196496440836142996431647983161209615768340545175222891743712848364502550499583154160876287496385121208529526508743503159859068977344306318223277922609701367690036752111716988606753154016544564974780541769554396790265465244853524599396512038709104190255385113056501794386967072695534121379293293269212591471364596691233383125661810009236999722171935312324139572668057257601538727480851348951123795188651632097053756933663560596621072246501860675837878055881788561796738485143518757420972288587404816920493338120957325515721238971773452375461565547147901603575958369611326325667318579401723146818260222881802647674662055977765282079340859575528897951019437296613611071461405663197240631559231703853048599511169551753849839113942036350176804318605449902013615385684743255207167693622578873920482225137494168081343763933569260379748440830199220580764931060779151126965835906374174383055013269714731923892826146294899538041292522357982554968248374424580338710443048433681487334966881287113048457940678581540542969647383208075383324162204658802408544684249481780450610898835400811874543480616471319845200151957973865455573878903601524147389835993862664530216651948656390510922738928634188922002809862419029033900152397949439839274628870937815600247127313787316104957228484114724901045654852494590216354510795623862923517725646051955469651190088564358865894486876931472401825949434812361875616431034700849648154373638503314079941620043203590744143648862402791584660267471564664860619610046701515392696908139861800832076437302553460901313776138474374586246801744138546917507453852669954860115450054726994064661875447685857905409028272048388041269357835750125496729858708381824942137918843617652855771768820281299339218193679015688872957121653428131191242187009142246763747015988034845019177522289746187694763273973238732726769536012745434064040365889904229521579746420362163078874067866539142374676400237309424739792193604300238501090320990317075563741259704677529986133980359391742122713722800317680508617619156207310397155388004659351259389390442532844564571377775082936522821456470468746539248504526988393858772028337542708526280537713423585743239860539791991479738653931400046763327657489428479700152863953706506595624374121024772108025280704600289226679912384932692162543601396331554282056258060071513193546047019175338588044799922249719812825502282426103373094318169800922543861913087175824452956888185158258797657850889278888445249146254309344727952853730465079597662502684331949550350397464444348054259584273647701656392185026367068924899771936540738529994686485299459291860995122908381586622209717289783838255799980207075230968353103817039969869527750543695139107571368958532388848296168710282016180880372901844476981889078997401645463225985519729857770557156129310963944991835509843439990431597044636366036248336474994086668161583136490501671803084796716944175039879264374686446323702102557074624458559552254804729928879691011737656709356630924983650971765022857167503332398806182156307056606073441696128698211632018882713453783145214480537513916713321021473603539488557271771079282528122777031031422342483055799023469873313456862711779720531120132253192170579076529383944045288295670662195242847992436336012563801636286420928342143783752606338735793468807049472855945556717388083356419157116899222526189366707041171963820453448674242413745213542996261894787393145171517532565611092494711874417890428613051586541969227886454498985743147263920697770045183834973973608923092008071928711022912417636951619739621525743586821837737487771040476778672723595625084557384021837119599323888193674703669283077360799202934553914085257905476324133819287358415647988814276238622997332363929039701013628064154321048164954645078678310018842162442161151024666532049661452428739530633805787087882186888265154976292431645267703412211744396974854843523935772538569455869983892706197846593954790751487798628380850189571711590378140295893133038349376582559650974226456472617995489811724450033269908670752228829983926625209976121006946669708986375704328274958453579120462386410454821998866965983678081703768303224495190695381470108861886393541750254510915777345047711963842245516313411374597295353564589082957222998018424235550344505180378936985485425258931460764092420763589751722070056598965938264735020932562856194432776997835538155747447859582691420277831266711706272914551504184989997867596087056741806092798261362872131417571474032000900696526687207192762222029649440640420331310373595010586276276202485363773272323425776425275659652528772284100720220396931034559285743968873186994219861685150487539694398023647988641727793925976813250156863212441966714803232413772938619020081337871419141649962251784242214082254911743546379589606022011887634127236331634170224765645944878594328010954345751529009708335845549546145167765188071543853539029233182680494570842268353379609913707765167218535240955029283060152104733453572974749006971509670528075350444254128181570100408265086731076304701539175038550592581864876312925895916611842943535980357417690280770265909150454229658840583229597995319107433488196815966405868752339569293435222479810644906853180535570866457897932821390412693465664724960293164360620371753479300686918264133115644775082521162742110880004748924635683767366832756923387254466316818369811843032790634345479879613832652356235768618744042786440715411045371130509518218726493088559505448436730443005319788558696470723270027002107157897401949758725993636498376748880597796044226265255864829997559842954611010293167712891699830054395384690864850520819184846024829056803920487979904989379175433522657136147381258878723866135675024266470855236514482881599320836745504908120305285775095343332066529499870404835190425531391042306221229582928608931355261396646728995132828170047404798345382597724856651351265219182672064682885301983987588955668991545362124364474940447055355733771091770210089907265403948575845163044522890038247504870422956267077146178250690290197700212065229033818167944829815030244607738624399855066117585200147807236371484616558742256850559590549332250234002903079032321992840425721627819474799016561539340980041307380987951839051643864779776444139830926214125568036714096736300780689939205497793288074876980631052986312254112938181314426776331540062978739369687890552963510982470797244879913396236911973169342934127153376744115695138933318081555989682846151911760188602447194395426693095948783528687120893327093601686664386887703494803075567952403682175924640349522067419824304198543955427504987823795820823703460252279858016244492943326461968036012627395862386359225383603241014031290536113044347570444563500781399908428396951719991980446008462439878323535461526003016726611947646882124828443025788016562463820070921056509620454118214952860600968936075712150438376800408692429982536800477634158305896461059460781777137796492334911957112988010026349855660448575124816936466008711640680861709848549680833262168827085821954354087150918784247418393316531591298590490512768194777873603899436869858397864374313218183912219313666756074724823913268321151945875621249207340298206363855535608523138571139483357657499710956251610674425666711448366513107354844181186458087662290106102790809809848343263335481752758433877409640190285816704879146686775705180180940006536127432567709501260865975459837568703348424857158194861285544995914980456048987354612689335374404521066293617388236776092816721236098790189514739028882410008937520214205243115692332872660723152799433495810988781592959533887608135464165303006092449903999460849367996195952586209222618991368558947609959262463941784756548893593016425340082395900789336526030332883016875178169201644604897585980526655823751534791110335062985478995743371437526711996742710611479759813620487999389148482512761507968432890216562678208161971195141376394867416572478108053550412317156039889681552696315115252039464383796193511658835188562568554292482714828914170278598379713532942224574062824113327409799970070170935282161232617507142258329488108417252208480662495144373001574864418246795198651908273684140567464474199935735343432448293540186732942728467784925766381901889472444700264389941575371384290424389471317397545360448668176920603816550408306242409058225143835107923191971141178039106608466258042166976876833224839761818208851871302682773644755283837133445238729063003673114177376619333243128133647845630565051618356741586514517015965061358578546727624978125754648396840451781321875051975032944217795062746940842236545735233140483992418464627579687799314667513181375042113561772607481485786358132552455545234874693346766139756201672564843047907947457881981306531138253242895683516133402664212494691699272574636328426595579695548868939527353247045605326221434878501178154125654020993098021616810629477707501782653875985603682926122939799254347009306505649349600135251054610486906582485081244005245020113673519303116357359164922905133176957648819543075374203847848476463126736931414739295974971964770509389536357552603011727384522503292734483597514038350882710237755125837308766806204571142505418410119100290854970148147906755857272904040519091759836622372814188969508003513993215755551470383132680324385432160901703411444193030688753139405337272137718811401270340935120364609432887210495274366760707347371525250668668243396704389400050020294892560144570120465343818565607819656388522973541383188707518980922263390828620769587914145605691984621364385235903376136010817563878939615138597605726509825246448294275208582335702408297444729823629701001616207409294501506234789217472566937921825625247885253405343387755734492552812437166223460747500746310485601500840174110118457542206232819347712734664378144879302360709409980082397124595017304487280515085873724527200682528246747923903831090944351148695138379632432811963474183139281558559987447550277372596999563881876492171019684441912855840642369525137533638064489541578977968904208146859101424816223176272130698145332073939125164234606797293839931360519817452149642647299533779631113324447626654318899272761651127242547824713613316071901552166910870613917540073688961924297137979575151558175189634958362049384698428155957367401894353402859334108658399212420070162625638425205473373964035676252494423439274676591666087850016398035732352890999403895938958085542161606081571494346671775513260001636228750558329911652157824462776009172234037474498182794411682753133583413443006140026129625896895645510593660125630260937819946468389987186437732235482893834510104687832998191025572858532205920836151326646079991333195188478430432143921435627759674840628283826435001843457912860395115208966678349496614773721171430855555602020911600842704805860786878019904772493783908286850962476079531274992528765832646173150018478860008145107137837091805218603103260694092210610741484906573441088465939213229649087877882694718250294939727594590473029035758456274329191899733802313930829585997585736912059958733571088487489506986143945968125571873083109282023059599656157354394248504127373520468328728789221921201371741552386761767065628951614077813589805441063747100987127348576803975175110692198880813434944721255091430108203637025412990374726736182578536120238850692652970000716880183747047098008519348893371812560627814842261776526740329260904201614861181027001756092615197266211296068765155761529785917570568750597305713284553089979331616279375948341877323281636109171599003302450236116095415989143535969659706777702678092906112442563332784504684272049755723185840509196866161382440379624948988212682906328527693629108299237131847898784345775650680259440487021634054723288885682289131761357373548667439791555488218681810117825065555882066331843126892288563006407854905478073110530649249269048563467977749541935838920236539272722679990862859964913233232798386814109034224434664294003242172398832802899101355607375400339600202901883936858861589664939844114604300127399768928208369311886805937247625793923730053542043432340373592979065531963951863185017575192120720690467086128653133824055253206120544992474000955753635247882490402935671069729469309590942407762343660100715994610920016001118565587490422589651132651773350113059584227792691605274279674328167196922305050477051134441870390348836061332186677452263742811554480173037999283021555922236175665715950355753923115996625301050886324167134249227450722742837751972382772104588853321414265914955118455637436118096726329762661169310060466933529787317757138419197943060341159449131438991964613091510835237176439309938869919357811197662496019988633275032623985652175440010121532227008955268887190638601028883760395597678446713736535494654181858784043658631537010554926098983716415279924757632192883233196680275048113022498107570793417181843524532477605821072203133079493404630656381990506707484062957602338346184408425256581848560282190703742262374271971965278345608161992306634481962793190709089847904735149097240087520805464472777373965454226011188262326259839222671404799603624238194802363680573134810923069604069001534455225486792201836971133944861638812275740727258268166283018900701353440303255087959950387053811444238345532484430759952212001107344098037192395105699593777734331766149353829078463696410536770392990611901703148615473616475994920905933767392406154888853587263823640138429456182958884097313277116246662009722865815353811208520593767118796807620575144606701335629370977668595390405274361209945104971389567480916399092501244184452406583632588874228040090418858900669982983027993386651110150420320281426535959918061437484176177117024394844959424863645397900424472533435351327827571756259288735928415319036278929719942051573067849338358722545598171057836177061021592348645242568426995540869988853129685039676534096609689439756436715666266342402980842938322046688960773609629248945269706930565700249990535141869897288312978265222550224562816722353837899085948718876132525570003392548784422095064968651795440894845876960017363553546549496348052128089976200587240098245722742714656266025715159432367096011193921177320983250023016132879097540363705543843342239841951156704380175098295867742282129580869830085321023965065920363287775689976229099085619892102414130447712747642410855546831474624711854104081696594894383749470975309118456191403079618690675672182570248140545643001200055528176037467983538163981164316614322194337027934661551295286512400694796067034225922867475105593759184558357399762999162234231953729656722331519640615466439799233368344846422352894894550789333342580691863188540841187705674649661470885103797485518923248404902913603091051290373082359594516095952637558079821676357492429877966278863602885830892166175905008067555238804542687817986357431049245012250163545681392912374804279966795503868749101752486112780498904810641291192690893750958820720523083595450922377555705682533178695541369803617596548081640046179706411398774991431868794476823579821637738058048320227083252073112051128190398585731260786618575977012395746442113056717367548929773195544486121016647623721879738822108968096838555173255576279353666000686957055325368391456036646034280318923303288481745093192658952403891336053020013353224967897733575037225661104216980167615354108016921726673102324302524152783072465989569373074744833825557754577439022808332716635460835497184965838646468448806160152674586914099828655170842306533440104980366367864952732041890969403196053621348516952787421380302727203798138461805825682242590109705851535399421960869502620634298380637216988292386467198352300085208199945251689868741833328737510874074469486327253037659544231350559123331696144515491385398058771091427258804511508031029829357879881704050475742274764232069997152637560037365812937236225508573605241077179211716895290065114353565595252265450462407379221717718879013991750390033235891491541394666830215225658195698986224940148263161500187291879595030834274464154981767403736956625211767310621561117077537187087942392556045126140346682067507365448276550513033968228242607199943086748353137962602449874403070398422610846713854934173869278360971459616307016588288811755993205157845957665317743338027812929337522256390670102555126385617482779430506640833117175549219521458808523582188204579849818240988990919825369534035397147136339674329669260063778989307304129330911607324223804459727064291527155750776917865086650479135790779729114921441751908319811557176061504841630072297206840152670501125021445518466071473122622546036812468867764153968552753942159609349752609586182844725199312093139943409134158151157626562037349263683126732862568835147325019119590984973500539957783274256588118872339476889208503600571168135956500431623757602053165636132291301261237943601766780284920513705820164556175978890307475720998802656470383413346206710530756822783950564746126737031287131387954720127043580890715960020712878746347068518198360226984130944920173619899915778314418087895049386697686274135546777822050655069186980931145623638787081509483571651670784033761271145293117116110679147517551663623694266018667446343868465379807971389951429496275807597505562789505134260070533978486116424005392121480194422805833915054822569310683092591600927797142630249113004194755142775238257386948509834225130512034750506675143369261942484398188373657201230828976270417533182908315998591066689619326352407311996495191986048764331022838880720260302890561423314102077398723646488695885630156540919236001828031520509615922720346521981447092356967629595784313119876025078456865058342643660277542256456565579759027650706692420644670090641219341071396979344901000654792069780319645284730364501150663469424862148093026624098866900292238322622555422768984790227646591815775906537291195290244747250259400365244962637922385053002331227742731261098690051919062079804948117256556199259062717456238179077875107000701432973554958117642839012092532192232387581808332155899491428882809510526004130390913114810303170733832166373525046754603148516697678798435820117306287826312474378223746005325413437438585094397749880512678363151072692486371491884647304809317526444589790216796106026622617486817029545051826882577298968541870618474483931146353834863269461520037888065988640051301644571137097999482369867960967118862308230052934551452116045967976164368897147360780309112760229091237060182444532050953684410770360592695489807105610367215280569237489576331335283789235146374770004215688190920684105644799186175819012402765159397053104664649025432051687213401032636284257240983088058403362000837419722648784070279630958720231243160654696776086078530962952717652736509230401583260876522438337374764027514899056318526878981166895277216865215428321669989255451762282034400400075306008605689499452490975255810623546807413302900853334259829474967800146949415127178728738017591873184048320422202419035664836946255072588466907447634906253801525938805640084454109777490375761572838458873731052941480373297263039194050957560563537446041947638401622799732507198662058518523955047870529404472583838155504626334721656901690915125422087005382919488376210992920405751867011245169621449567777876202787772532624548256714819109919979501573036783546053556368172660577444193201066904158820790737836198933984062437245577369523800998043404188904008598347640425818766344157759868418065641907275355820025823546604606446259846819611106962416132484551916233204450825680102405056916407925561134611314155231750309367066986000835465645981845520633608411402050839894074272617649186760658017180321462809247856202361510433074551873824962942486421086042532878295046541100750080414114389290524655747681874636378675861629585425256272865003428477131116224874529939135563079887387314297519332347655382588229674426578701360132436423966500649642830014361587583161946763063822198895319231744601053956367401805616450491873754369902803128325846456997854453554352787582474652323588689249689980064563862102079879714653273303935739350741667427749348660140629001706483857004874784484195201944137918292805633968022574710731190995646007474693911231228104750983102348896009916056795344531545870640590112465994433077264152568004968416553132790663121043672160621748538050075079532765457501614142501912753665304038710246132334180881497647030302675520232870483181715275416431429936720702522899248482375817909639348453120339219034659546428357173059562742862087148059286172633634861131619692370324450668599793598370322874920281747146896039398021720940274575899175488180039003268531104605558794075676467069358427506804595581827167258757710666590773927246106064870115180333292353375250050230191070363299919035620022661899124412832714053848763016479980431262912785429164358875441252672794555455472606807760827336034967151961383991836447436575233928199251611050654057752571477224601774519049116778738929580778068498085330300068916528228010444451436163393956565404885631997439329967310635102957203255341367475958867924682551906898691346971313823657927900891458835741659188507830501422937108745513648785618350411364122244843547144987525021290904514276586289619496317072436343611460343904208474868077761672198616933536756901691260794069165566121330292038786665734073107187602707419558312284931761369406795067116559549219347217469996229341985850219714665582363678236384847561030689556969399529206091902592603484540047445636754836144550124760892694594348395662784611526849477466492285245288286364626857886514561926939596988851610471719618150908014006313475543359823361064910212525710132125445919546071162751572924269291677216671755769525028495566179392655869360501392060422037993091359840386502570531814962157150993335847857696678366147264495748469117672954210441834847512383202445947306536518357987811322893862298634148790718318403637884430263471953675777520597205471727463998774500730128070400934798800192399025281605293589175828847271946365977965513577498769934999143999128496967972188221064277656071141714131994051574549972971244379895865711188254761671848845252916193775302448236137381190416541569017366515099537511330297473912128755045460682622049110029331547959595856250122157852224419229672941324509452116575173198578152823519541501716557135550893121215999403121214207360133386013856308246344497712410001714619146879221315545331086537245748256866789185879784183367114593019149537862792786042526426723860320697806736978098106246417651471032674037717366676815327369177980176896578965805185158332946808376567622299848726561501973584293730818131357897954791560523165208927268124013022386293737527460351356770077937182256295689173405409557600123751564082592685910290320944336660551868755862059144517125359085719274158123613328414811337189959110990838226941965213201637791762697479655128694876946375606253113218533216490718427636876246742638914419746544603194444784762942116306758627993835646781134603166500096381551925373177071947515148424843377493981898865324230684504282489674465757109428116837057152526698501970335988984023715605374160124136232719646394533181211377294592394314413890973708945331305486927815453899502283553097276847551620507719179710861337999545188818552009750014139856401578858766896885012052797134624231769749986719340850064140064131799954517296763693841212316949235521249677702468691220422692936670473683551186574589925800208000868812324950964482073740144815460912118586215423599515876596910920798264566490317938721103579328779482319061114388868621079740585807091713769259661691256868633455445492551900576821713912333785307242811682020819858110146687552524765545995361984444666066047290397196399283234924733029577475665373702962193173239799492213651166318545804448177962107134811634967344565832421158702024542557767315428651807963165329225589913634915716514929983520759854138882490549021383301509822402583381703889307634130356833581514248317965021723317978682339634771340974225203731251343264671995593461451385343549673520054320601362090444286715361965326045869617555659867774026507582596002032655509259929087166552889984877184785456192356222878032490534902295982292726902246314537319871408374704482705270767949140871099874217165725012603269554117795233061504387173631336527616430587732909310960134604985849003667170080384190668224561637906514890663170288421080168827884794404425175299235897656382443787696432562165090567732666374601463312419781264163560852737613969189708061825974790633656107235305111415838265777517841352545662942484954784476323762540832467786061313592952909889508058856229109269527587469860080216829387190862681236419056968573714800060793032689877471682622474650337309004387633540769970582747646146114440151089418379817636970424116104756223536213578034188903728985000110874965478322943438324788992485279325529520886862315365163722143517097609223098067247530398429592707348696438617664626363354302797755973394835382252116861263848943843539428406139409803683705670012482062719947213374584971478319951015915755446333268730926267271294991123589635673772011611324620284089944693414938791620230111817906515621774461831365132163975894914136418751615274760679391046478780366458941917043103293695057240533946381354331458451523869456583069303264182455182349027566243949251327330549384081884881450972636196250706965331872459338582115146845860478832288825947942930219382376167751466782406548324257515768366486444959978858437594365580473058350315958734870678645373129257707022428542763281769153556598292797858404433895481745107333545411833224116078813788987947650437882342702608352898527043983440457078601264703728214438385082956121865818770753399096301915596086186175411702538064108929261237670031210715832608800866174780917639054018566035431618560921222479415129191434362976721600645385698247389298079054989766463477931511311382839554044663477423687140254738835977316069402457905153002317552221009286619486376012233605223880886170798642853958046169418409303832127917817247329161590612367331118226009394652110383399563066099171338591246392486350338235320476911129339596998422996138764661855099576643837319993239521043319766366401979466125347625403006558412723280384794732123710376621573431217560317145988476635479142390434051621289233806913181827099495232163003583967150679555646333583626326620562645857148157424133111902203782930969687096033928278075761510537666207221336256247491911089669851251799063282651331613280706992238279515216845848428740993580650247650359889245506375497821953942347971281312579629198597767669890874548893315361788672873525245182020388535042484275607935836568095589990763155140788737192628166584544622242956289039586614815338654840267429007592050662839563688343278599045582436404058419877611565004644714039384467602259182816100628276497003187808077364237069086572833280073889101267220578203227624173409984164089301540516677260559725798976092120721846175488146725771608756837618607616648320496659828736174615493481238946701763283230346771835106170022181717057619154915320678126741549468971515031689943431142029798361155896575716272648396823793250334026136124512297890068902135915220291796595647051410269440642458220173268686067595251740941607311973433142979168321434069502867869416979588319847627271720193121297645914110962722376300371393391852643447180708238718807376259228257935275572932641902535073062367733753034848362002727263333534610999134295670527324861318445275585236120927372695377476277328666326413051864419156072478661956687545003997813928837093397696570678194805700531109247150387721652484557368393595398258268427111136241554812008720511283108537780258702215584709257334487065552361185263131553716378974718322757060698919407365470643208463947919153656190856165591483162254063112609065205893840755407908874855992344091981381379262802520920437095463219281819075367497329421265546176538135885415675503319929796553524427593650486962699636166364361825316211582775959040482452422014374900135272562523782079808757353500088134348082629606885546905003332703863061994847463703703807854854281547834756310078925102685159123214618710565204488562313249981609117241523865227038841257517586144732631902468459998038090412227383532222608619663073796141818141270023809923074199695914531059400699700562447315931315903632091656946101850731611428681260916631560880149730362861162434358999825842088946820394775122939715379669345497244014124033893788819860549665489374847855477654524242241808438288259189348503952600070335777417015981865651243440162664607529257687107758305491532486497308895829689290837969695677112745477518492959598640573502814211794432954863724634900433843139235819741348527129960311326058152458518511500108129934507926963090619909500541319632562050693539373740294233820969741065842836144633623170059372076414948143497295938698414434559825924993672737154948894250362328882326711716240928148847134840706508037760816267708939891722354307922607713620837024408845581437834178743658721816218628087134137320676303273624545544469165695877981513571512802379544632322408057420361452532277129330232822334876873877741458730759160953075384104589665958499746405616384014353670818989474288996664597311864145754348435462378117183691362823496245558998004972980487248464928005828223174959674549663184183283328461613611937779437549203320747045115438422842200311611846936967686345707794965771087229800757302205636127498784720580795900646338211178094052797844476270749405736984919592724523651963389788110981912190483833267193878927879190678481277909900874171181094196240152949958307056614032454897613043586665172187646909466857458461089193365507880249252576236187890130049405566388266828664939566214958267019044447458913095094165262807213874987610186167099063803453248060282897975252678062106035256750658454292185265929492039438630455591105915169501846995504187032962964561699114640723875617893747814038836065512066289906605367710808723705043686615512442822936237874578445469783802005895933825504322119855937521526772273697391484617214195907829093486311011187917401811342026702766210051448058112776373210722347906021021488631763425921440659577616327113553279484798317937033345444778555069947567546624471452170257271923117217706965155749820969246696867580898134882756897644258225923770449802003367111287265221074494797944598404494234738145104489457715719019318956542607876657129248375607874479442221550275932023214301681132368872585098223506775269617962344640346629989431520870700833942855830024670544805875909336108412913894953882495270664442316514340545056006863459174862766208860854185129961985201829628508528145536090866227742912294934246715239979227568949457614335665937570985111343215782260873844514384964372118107430090801221098366474770200992550668374385836495181192251760276195365108845637200523837818923900704850595452405867899160425968975073459845693092074360129519780740670410797835920493497922916752528924957625785206729481980989374731645395880396609263790773989299946927528650431212610410176466117434628522802889053643198661490852076695704964133919484239562925928664243800416897217317982018875286759309569420406150045008456278456887498716158577199919964893293908714685642395545384412725432507028410841055316571311652137312121363546971615499285515707965742657267703757348173747463603452735660657717271434015663995237631300650452611797782997552647316452034818639303884473282286638766248571873344099410281472186941754934039528419908198522170764270082808428140868364808569345778925623182686564955582059327371482873296399554211156152169262030999071860548832294533316373586556147788544040010337917988378961749918372795943058665984467938022977763645907142094915651965812457349657801257901746757461463322838878743575446210096971086735155652958128254718754732332492515450025178834220160154747491169808857585357413620654747371720305024318406694813335833210227219016575128905956877698983007873204986385442090461978058832240704190096361058155149405057763333880763791582479251509428887119677344094687045784125532929614027891373928973725175965582020887108554347931131576420566627548841120946611122934212115521106527319572124560338170847177555808643017556513966060208724861244098613035859268082743947123979036164811588480735377839683636787957874261670893140322847840646371063147582293084948094903543135679206596970259518138830844778987040073719961233605235521703773052300769237337181319652674378667772623951362332485999299944769442803403427822268192080196382171107666617556472242898533414068286458653212885243819402222578271175894144196201289382781067595484098155992679539263108841710346321794691456928552280793204645148515398349504037768810607475083521853847088346616733737060508905850344660239432148004964530517204859785022050548506800068911907469763847010248007261312586362319745605704139888684602140758348485150875550732666385324916841164599884381754082478266613750635580997887130621010058400590519546004561175060631743969766161949448538179928005501396431618605972719174526631518387964957983113111077498584788766635418525684170281250530661153985315378351843626003761473175812395675396254310072298909720473409285402225244164097274081479021389692120391938576800542441202229468316574635757244376236605071636163599961590924284705317122692782039561248039342514317846063315175644603583463427760943929605310515503807847719245111032817951468892557451847701092472960030354619850514926170778764698344972200784339590621489605479451589876134667890193118824190190493509026496982276847739345701643953366311025936352095821487318840485415487713424247747949801095859955205891147161017503421994394640968442708816021612044243144389056605486009581433914426711619260649500039860741846450800613730214692344904042879994639394709744435680864141139314662025243492287771494331522856425103264315293464088530926673426370922623661603468272451865199094262728569990026480809100278878767988854628980173975030320977215810626898415115268676672359475911922112408812880656311035404801532964598961141650931692566625130551195611679523777464168977076178774885798880518958562629096033001624957391713661134325134873038555280169207178157946090842834254656666936898743249216685195462912737178514945632911937123906993569060287582128724165491240738822544402952727201884003959749293660910971794073957887505640771484728433238475931447757230334494041567905847358129730850339414974204257018552438713328640687429282093955548246141627350901686730674152520847055784679674407073949095618016068404877777346573042083644716749767899511338246674918002753631846649415444605289354304022413722714029694350078086988999965411854152913760385544807697865565334740585909283411461094829416134771558272017463568999110584897038008876011078891153333280630916678739300730457835489189745846334533798930551530971439111162845870233674730385015214985375875614293023796315360169983865653283731162173443313100892250869067209563135252054965430596084814985036568448739610437337207494297971060590926622814203532603038846358406455804992209715941770765558415933463760189346222996758180060581609709250728080734363896376279609414934046495132275926198662461727516490677546120305200518659947271324981888537552676309411835980855485970176015224229317464640395049948879853353795809766921399131373213980835673159060648443756370379893754143261217833899764990935577000044721895629889817360641385065824834661947480468711424100502057680331907451190102376953257330305662323627866303257230277506693747907304840535942889855337151554917809482592915689319196151287599137334467866975464502691896161673910852566966365860913473924285254477358305036586881670515927203535810406018791072052307803101609833816407405342738795105622144959845928618947372661224344569058439815580024811831042194637872836241160139234930888864713058521377321945483193868788833988856608320406225397596972311051797834413613172706221073339742916862439971672785839080990186619923399389610718492237631299948671862312393448698944951867196942074267628891741124736243978731714250255214387575506352206844290488456358489120883287121876898617762249454498529208956329999268875430002597795362596196338985867903074580194198358994847081055850676236678644925053706360086913230806308598975665443150937105849642892646524042516940531913556969213248590788229158029294731979368954910328295012784594930331727998197609856423078754235800018332943464519658776759141787513963583472632376811494121321606824008645407354080548554012529472645231004785594219425576661688051975677379956634447709926596735206140414814785100215700724417285312205626398403499037600408831246306187662566692475950441204063660757648638725891240825758881011131460996420946203027437802443397395248319817510181644376235712521403088818426377254425272718839787962549474393621483270515676789414183805253305862300165256526285059832700784368392966935625738674500694332495908188546638086098339942416691471387494919564581236415357825831934885696742997520774800959912258853250353952742862083364696517118987965929282751059193483186915049126165115847426932390230595647111201989132804212309756668017846979071339822423718057310286695827637782956146293578532728774635671042321816496761356812835469672319112928462347871755111625293674337591608455315899534338115444889909039331611074950511006268184822067392584424566874744813813972611956022484734684026129521251295403102033581777901389002940121146745868050180829776515349614837008903432302228987355591475066430282688470896144920721338969283001340262264144088609399494227180094749892265267077167484002744220488588942626113767153999353774035591674030126870073607465999598465663193521012468339404359749089137819888560671094013929893639930806674404236035917831920296466296066181898015289453149803917684934808915055524340294329421355621950475268745430757804766889270817216488709757751867525440725979620310659710513766158318104392411368704410626913106197100676431697052372797570705098084969943695538570716482759450269860729360524479258757810630466546015382936443104361653361169215050916320449724761219487408381538429943936187894056235909570344099665999538156874961519320217537953579338060469385023854993350272189103784470675621492658803972273459271430818677256850939043610973941632453745113793726514292438901721232086658410156153682731171463913880906880872768162788684976668573174109509933300379199885334063468209686537295071244705726964941435915601612880094915763312751247121630988374950116200400788116499639810965740812720112799432693692706542989681431806110670233809172304500918046664935754904962917832107373623129726991061799983236905863688547669425719472345748927791354272821792439690698770984477398199323054822284641778031871987188822679425204426961144454813797591245341553318782593622159189060407002593632802577895640883880365622495265741905450511258325758338105907168466823686196419660181153059586793419886653833707074773384168878182929586603082012958657238045745943560983297120549124776201451678915352083209939266493796637596929938599187097477366564748473773251068318779021572030889546127315845875022556611522848268641544798553362103409842307144656548033561109783600841907884038845394220084519775980957579400674441611303065897243050950548885169464241088327189377789677929633359515032590407012306173016511798314015069737099335417051537534618352262907494077808644049632092584995595678685699504944268131436894832166341973397312003326000851514938744954031154912456901319387380574704904887868107562495557162588147466639313382177153715296709641143365219873160969694753005243802824889085693699768218247610630216986442009660053325960514290178097373580533798294498824004289819255548399542768078898438814943500725870072545645098109289245840960615831595167317323729964400336953303009508028448817766903153132507497588345423686129665071629002407671320828904849693069376107470825096227282874335709230214775054750711572747170320148190330451782899699933156267399405856606960048442697914445333339603747101564232341357371575010713234903483059140836896691298059493684368653922541671180179217626896824927553978884003988732925608892692380938481746057085647091515694322185015225977111840592174336049971854637075549155898954220147996166646998703849945979986365202054777632961344415327291877487902448471345999524643016647631480187880259013091106086610488246669788469172605493491993781475033626781844772508897226015208322120728619225564286262679771728832809060762113779986186236350635110790176661539080712274544703652629049777485568048515489937929263804270663573636939102999881637203037931892716925597845493001089837144090869748802961643920518368914913782635398405049828357103841529260813136593100178167218229308110323714004532378950818416089764707087386369396978005872473368303032586209108369648536653741196292199379151473599527746867650595403182266219392490309471542131617023616684736682227347608209769954915578603329548419518170399351210367174795543155728331096002186176000630117012606535355288593789197728187940613187675832995060464796487637020087933939997436303761613117854381321763542092234525711075408125394640851163582229731510164927305369095467395678026224303524795031092966417834798625141970721571986708673102783038188319532939366935118257104218418723623722349590482519864784310988518191935206996214909147002998709220598818781340283694442207553498950283162191896862378084599256669870758818846294100026038332670657957790019038842585670670204255455104067377148342618868248042389936224534171560692065864129917374776190306492590741954716515043030585531629912456647043505380627540155686496807231289397401678986864284495616518104023993982878979512094715736611475936129912905879931943222633377188116734357204466388613337977969689718371846597952289411795543489945363009619879658699290427438401880169809829869705212435716736661429754985086849629715340669392852731767973601163937085747909712075904315694852910219374466182699407856043938086750548579630672986839692535328061045200469718888368405240791509947703933364366971718816390439074160029402686744556959221501147853569920802498434358193938042301730604986806454504892252509821816507266832106647013038622403399877037362861808165240327503436978228636139849375539766468748077392443429178694679132254642414283356714152250077481135945503470047397724059187478600587932341968864507713654368549276618925790913262365601125374135931126770868755977835783549470207201454223086140208270803954866534000090869908412161046924889046747310596325236305199566008531594369647940569534728554894557666712845987055275132472640577993978499300998505909265756701817474369338440895217203989296562162668246807317584430895816391293554626620664450268884115409690456793203296915189861247147292040573826592095642968914255277834506205829894472121666547946080285208231333951064916326992249050003244729427400533178039764123598070120555777648167807137106219574580941996935110632340193705174019564681651524454619985147325301831532640914937045409441157547903513743730733003050424837839594180466513978687904823534247558819360634401381284925695142607074401347315689360038525424573337352936785052438133101757734277408618273217064658065582787395298591865213501813482132247234251345706450542243559450120735026433200772688916489933018899486170529173821095968810211278573880350419426791754466001407973375522563330533476214988909903538608180783373662687550232061990757164415414836241761629376654920447788582757687925132207222534934172899691869271485061412637575774580406479474583124829360744040753042709474081509195305755704578119105236749585349294067296359166895606246310847852459060783367877995843402481687040376647817025010981293541739513604034436607842753074636891547047576257308426106282490949810733721397821658413212092237926271690309516700307044908938460470497114782702419472943312394752991934139575024623163412837627241691553675532446170813326353062717283548497973513353021023464205411596769532968487213433534086834478646444810340160872207892224933156490791021198493452313722713301566988593565331784842992642006992920111739991650189489285426363536489489286827662782041524962112825659044662127299167359717973088411881274413174884662205152550552781240201675756236994788184967090427028803722207046144892746159773884235708996074203367803345592008775431672017637780197658298443267294422337893243249017416934591590520882311504209796574124564957767330412631538934644622603861553029691962302632285593648229299226429269091668927919355063528389894021793390399836308774684468898196470639491946318689141857190297282028639125565125460635010590933168627170111894287238016483784533262028544877070289331238732480216357036248083137463588340385763366635828698490766616365076525151696563928262218810550941395463531851264650560749610653006840936734488906604564939098335389975897638637603780541853730525563977355567816274014631965184638193105688768272737169232669725640076352509086918666647326209107245832340317826244385147060463870854882735572253367534167135460220310760640046027131698753499795830971612580442311000798264112532277428909638404205160130765377546664536095889718398205380829717712925386817883466873415524565037056468445537130797940321926194517574387293611801314465199221027597904422064610832495765595449345885991428967184826825733113099056723182770305203783600443399084067815579765283813499809684453429816677587821651862484464473270822317112710457257659128486266222920273780750115979010208945364492119052033892760757477192572053376086981227837200520629320485110342737791640545826193179222147542095943412567527110871359425400681221634711980078391815349437812183789157761721461128526061949811389485347545188602500777507207896581673462824703318588421612325515725232803031033260398387199084112836576412981682415925405246002870173757730775478858908063678190427721241277525560435266452222166304733921057105560179799379265504448160439412553853022747266799096199056122440284511223810513981711734783485625681856450240064171045533388859533207375391225213329654176674948276914085287660414290999621569998056437402472121571251310465321624511981418397103949108976220313221700149368700910979357196393791665820639387359251695048951848384075594855470287638944425957695584227472497297722912393304499285534587900669263232314848598554633831256039044466370346082959448615012418357890066360228425731414364240177209716728142789628913225051535514047659898521072492105253016630802017115090562236540467291418700605673113831051576598323345648687245839489950595790978971116990590038739029720446137772610172750206962005129149409148889505573618368757821549369463360772651668515670219127958596696257159255531196609758251700142044872404341709541789970145993097404690132502785986371678424650255487892032427076255985222523429780512416357180725450985578612584991393858858022131981657255325483718271343418607927162129827244686337613601853031899552109383746659482003945511757321909295322518728075272514451520461942774864264393425854557270775287352966431468327511671595736171570539576313289759704204649390790396287562504299650312673871792929030398099492025518924445952510114034608445644029905609166545822344620137934492108420420784976205582371804331545548352361626965206196634853130326386649476797651596292911738200499497357397638490328916764174386304863420547883666176200638667648390763082134008844466361853037737895102544219292378516544216931425856338744823427754416271056422660154006611509811706756695755558463277419060104744834756550276874807022221074421891821515930249557217296775293668063254639902575089997763513549415670237061113923283725198684193961053775911898515765693953036610819705919136149651672189393511687284312678632755613079218104078506758315484000562556703570080212835597873348781446550830373135396618423228897960743331044723996977839402850886209345723029035187185828040468226026557263047429297404315072438577734395152689341077736577161702993976118794691696971096850563754163665992173157505398106739069733365080263525205774615549263741082886893925860765221755175614839555995430203152405082954840518493277164991631813517958973469501419897194393640677807050207379262433695937025923979396175157962309299845751512272285100895964197209013971871239621800922185534855603561652297190520508319696783568136884202094794745148342769128351805961266607635266446998798716989749386904758771823637035636881259570351726789228668810901268726747736813147229797335017664504636003633449618218798156975581851584371620675943171914099008723133966928940904044121100467723521134742543092963471797314092748058253133935644989000694372919301243606658718458983197703647480105437778152309898396441652965889440677686997650583573306144564908337917114036650617322571814485963406980266251727639203554169023940079096752363740823935634268197790533667349956306317690138138016584715913485613533428138764425886893320111968128758191264891550338401147969432303034586644656128398055820571350297509082792045607512880327392344479399877377609051171942178839917874415614411739550073448333537556299953755928986742764561064369053542915639297378448126788972723747058045550304308385769905025006751242666994645837336866985483455004309304380311917916943173663446858773230002911521894789999389339075448717467933737096522431269417225451416059801316120399694105972123038720717751353822842854318914905681230845321274861297301953800423669646246748935047916005220578352304642569587377948092900398680674726370372581690088435150538469747852694095971628040345759838824726313661861020338842875698477110819563760095878131595165521753271166156647050227338717702358319003415781297846837138234752003165353599768822464242779640512067780264919749367555123455746083285722319096922873957786489456442239370370027356531978277142056325783947336862948896839086289455017063419957514307304250061033558365645209877754998986270415067340873752956126166203130163444774177448899423522895326659143012160010413880928781844079832934066640853682220129644967435021992928764708188918526388346017691844594522930991832309276982428898102138085528478071921997535774468478273845794107841005291145133705704606374549077900813596664560380133858507291529796512984314418159527264584304878932469286055161869066922416637136552781386375639953242261196208503674806859370385934548068613963077837372843593829774754366734759002018736980461951370288491214110166723467237551627525888295239758919569060494821706687879318424906168431066848213316484648006971202979887433361843335067297458356983687040098366859721239921807078678316437193625229925102279211826443823965373654926487990525131195748028256046513436537581741219162185986492223043258316258804547302014207332107142978472818231273793629450570581740782188835088329544894264063739706711241995766266691238649735441300230657282789103900626486284459691961874286832456894587615748114570029930269007448331636714387925194451515499959140243493407199667879643042860174761064294315278123090223669033639195264955510164874880106942215961468298829327878010108598061248161924979866873570772276432786288958009281639253583564640192911679237103278622023859674100518877532832312300073095569482949396177209119875368706617191300503005097133252805666398781796373449209864699980227040208870790024134318687230108328837488557845180361519571136402320485502841218927731178574393014887136549846695358565389711120659872503478166774005571740703888091706250792970538971808827287477258990287962962931875938008013889294533108350233481242480489566076159930323606083970925311913044109750056362990786698791716369869211661887303721346036246053970636370506393319278039586041886630175206414629262760614436213975832616959499592237093280977492908585668922761175853058005562046626921401573821431865846867079409482146292578570113665437844552344238616314805827734076914018156580840818132823704741566968153199249730317245535276914378705127165352588532686202414184930288835011596074210212273593411148722834755349602797421520388738699710342140374975322196418526755617593189112443385009679929277541841536033697849963010041996800059348503826785008531523678396155082042123010693739262660445517002774521448944024936950520635279506926564273905710163570659724000588063023956563139691831698798593781223547013991661941425162472540506710132778905332481262349161284636478191721724166993888881255767036703875922281532791046381560757899102555470681693575969184211306075785923831941398380775467077835600211151690573954282275553942913611023149137596068161516591040861848195364838554547314821696105881587896812599405497483137590631633970871908208586675755410963210572437355659037884518055524948530962997985317766378153800001333704948401887825955043123378176606488837378426202746916766902619666090262701606035066254760555167542677294814498073652701614372083977928127978656438660293491603874500651603026542505838539205164636992617789022143024703158918961746132593252442573864502611392833068602773808930182876447237217970790915610850948437413022657496251844228893277660392622061245638846924019359889414428940025516776631236643660592775796441460361351234018318675868866456466796911752590535091112144664813950744139134676148168273331124407260834688922891256082607064861243207261002310107219107107042281534270923209347658464758509903588905335803198878834668023606822677272826100543290111975077046544441577822399718629324795785226236058032592763699681398782448881330887105635403502661241652694177149378404641722585437673593643567854984259594036267875573495235972747998023168639341777877508925628248493049283267688778762860434317295099959689661502787217153776165954935864540244686967289665887970542371918223928419200848417789405593832543331073118608531039821821438208769065194301264149808597503241159528243490565614717842757913192489913701280898092357758123307453052817485518282732394707802095752036233400693022745804407378889887420637959182945068451702620235315437661780062615162194905470693974171565905042733564359383074730094409342382666811129192202404268115227958984050539411525162381885409499126684655743960962023101880948354454348271290429346637286453269440145631923367594954106931879043606039513894944537777255914608574199693739892259598232943752543636973451774934807772065934579471988843798001549282035832945870731380611661391979452142179969831038024491058958132724066296796224461269365555077466348442067744367554575833885891672915702961589964487756157603360984006695588754474232264740076711095366587565922544829566766078519997994595737165254007686188226989480184576385843138483964351800802933298472037964916155741824922641348335199605662771958907912246104292799310405886985454831239683137453411386011160176503382740268176960153241486698206491917993092263599213624927013668895392502428882664558402356088265755866714237075588856817655804201996163450078554120468710758032103341474344088804455788027554824118339930684720929168757988040518791366119788228646225626785444994081744317738478124994252133520124127046650780330105985748271115478942127737407154671208708261416594003808967686409363516152586392037614134678833508818732250344718782950316079880874839680531163712195418040501344182442738208137216714016716791536756373630775856849630625644420699278410389175886166274170319066676148213711921223266061094564010125246570615383861935969494210335900433286162339864021686314443044862619974472567662301504674870567552017543386183635071052469880003796024018863534403720700686068217616475990244416706615711781768838333824797525766315233054689970506989069646395797509879751120946939157666442961425018454221383080312540509833999561095419704803532725032928851387667563658356353481577713886793245027892525249989475174704056263298493768588697757212786881425931664834890439034603840866191481039897616992873079488217285393481103513614864878432362884014157185289165730520239613918106303363137311285469961352704119344469454026853139224264582910695450485025936571000060857407811553693088738303090268333164677934711948463846339477665537939912302067413860631702544527634440853293603193099450881706118053194378712049048646845868260993153838303671273744535400434045490488061740580631881884084387607592445345989356371157689575441522836232490484883897598621347300407051028463259848742437980576373481036721724204177790419466418098627069323629991119239592592027269893535650764784698455683548584106995408588811399500882163270415977341385892377108825209692738107996889431364864012094960649249302724007418391750505905859098155388638827273501166569231083978919077404109170224996586207021763176574462990529287722300012154146655550600859850385257300299861400770778887416604406286006959313978997930497489613932307513984697223371968547270149986136748517074102710100489629797662678478272371106395407883458075121335320671378732694586713344723203967090938491397024370987320097715061490485423903127261932052321323220722210452636432805058407915186615460764788425677751001748280083984314664019637425469250755586750214006106742900346168520742345072217776689809414616656192348066680732932312148190707268611041530938812144147046566728338366145737167288439142823780359881425940798771673336429496515948607156526438785743139208357092272543514321103853921353312252998732642075054954481171743906863650623966240479019421949244113454519205640437057940813345033410723012138921628295705387442199908661974175021577125163835366080175296630831741891841134072406569125827840821827255000175133750539956638372807028319641554628349356172368089893435906059846736712108877362747444304015652103080116123749081221450620628639374172141796764378493731655711392611785529353236286557779157179303969684286875512948761597823023471756948291191932086318241846863059227318651798140242648487318478217516480578735463865559301948304883619454012709138203005344236330910961738312546909640913034349659165514260270275129004063036187434163926504241186435368910878379524736758676316686605953243566530976211579933220522234516608809375719613130051580109220745646887209250095058960456540224660396917539465126434815134397415118836322611401112900153219671995743773009169714505319214601907972420747336943463519600336993532335602206911461276762490673532434124102686123385572544460592178608182425630007431433326584265651820267223397855624294527346005090703620091718148286330928917179343774431139124072033950519038115198573861239321695096454558622948630059700901570664552918500675781355409846617877432387167641052175198675171064169064637764186523563242886318275058167673770467013483484380304218516638782454540125657539784133529161409583988529962331667176542706047661084370579629101386533504342922560968738619888845696252714934642340933448749079995008701201395122259617951577455291459147691994566494618638621098765499284870220798247214561579789134091118571049404159708141657811842634350501363038927649849060502394131361871470177098269695780573180986058456296286826782281977582885742414522934085903291363632884181005578937207624893576282749787888404370471948869060527412413184092459850610789648536077054703091121326376000053349178434928293824102880282478921873494677191807954795810998116777379559455962274509525503932964857484025412034011375629271408014101302262745589538788301179653440183762030624512206473196737192162672163993683275413874570436687882321477217392097275569505133499791208980576068974073823717630116635700634811559854646491890990818818050632881404056486770506531172003647487841795588667827715082777192871274864000966200420979242038535444089916912301744773172014974541274242329213365243116245061661912944746792464594581269820325290304137632738237576294018406857319126848830670505512693628017566235641902516933473893232698411416934808214202492709107604736412502840214011733400025901487191931625824388496762080345795448395919296103436423980733849245105273367894792679962244229434794922542880040797636796332395661577645070200253952241943485161071633223450264308008448744323422818565115526249949090377077628019021633680653972314086672719290757789660780701579415525989507174314258369321949404120098509483780465314694772176041799596935224363745258849880059759093647038904100216241524290234911875403326034296766761003380390978919432090204085410171441422797642190137901491113619737563695066296925470476163279758298770727779098105752465735608518421926610136898870508388662260835361702537385965725928604136224232534078007725903326707998451481108743728707486212987592165313414733892087216301575336314577446303078512765614428479682213983118180453644019152315068904999345295002435840376704015265152494527298022351686331859425211952956486473757933084113355711465047806564118924857730633381477181139187273217718527518195925231606194084153111621397829635519462416206743916951480761085882703581117444228090260400475208185364884418552144285204238646946431156156519884174337794439436292200956998520621221248554973746144440314186693058477683428994143114711177709669610892251531798983175631207128653997104451534560467114216092005494883199006394265967304871908097302408530196680649940168469669998866695517045036362197383180190880031034938407958323135775934649089081508540050966420716570035864171835823200155959489216800981932049945808829507975043914562496912930457245688235357543724749554987078399636895858752095872148589837469819439222200906720745279388911225251528017175603305932051838309071118911138570305371484444389228509983363083102048900543053376485201022903904529041459037638007672032686883582680399024269408440493689480003449734512211210673571957253454385308811753976655960272222897050633355228101880282894028885831028186169495343763748534219153836729720276021480291999409491534151620321300703675809363562897013287535044369206518094993514340179407750029783001474386220312957751412594287645378842071414787908489493960107486682473903490043369756483495296141789978407454886220788568635519383059137707391381348463898512725913929886370932743628126338770958377084106573424770564021180196445985460309788387081814020025310550852478854709335781717211465002321482514935254168906063172572675937998343797114645539489018643475881197028447984628140536590564937907031963650680819749536272384217268716750029486072835872011637017848859030179107469903724661826129114126400691975393606573084070772512589310444539466767913840330570945506665524370002802152167414867119061011266973024717621402451641364969263762993294358730715680105745553010657792766941774747458316897127587390587935580529689306072855013994954527203524381401793726353126464940859401938419239256433294187947950029014804733996008038443540787815139219056690528820890802900643501722322040667300783763276529073362132915400430785834408488146565479901671107035345020896384347298016351873190521530256509509605855734880551862793333136905841263985170095957350595728761315982155033403186166074807753937146682923781195064488164020825559167291763448665925677237107215691796513617271959820736933440459504612996882927328820479391297701483255631803597405311404585092482789521589819720935414475391393071169856160704353624697931256936552133900355239130695901467559626060222793945741934539522599259364956572704492206068116144862555126199957553520179100599958597916111493504392563255686151571462032315897117617229401580634787963223198106131619239959962785869343861723914797730573483980261511466816710905951250578182183656027604592707274717210071024930608416847894759262807521455433602479736231391121813845061160732297897294595028697921624798107267231059215160676632744473499585613014040073263906455583841691868278449169959294684895704530114936849967739635431299798077608029186632672375904810993881608937066918386487652354734461310983364777078701777590766791442701932826601818853099294895682309720387820356569899679229005000790651783330389192756937241631196681925618413937598461679065243056446367870166373876454299315649016007605268438059354968181317610584525498856582170107085028604707229739730189620437804369003528203803130821127162650909484640824505799280270335856728480078429463742171893086983076161961547558441259964903974689703071694936389835390404629753275334136266247639130264592484547573864148443187421666453923501994948953907318131544780818182966192407392117098579891890080199230158431314795989271386725077975193583855493557731466194707231591653749087023864705356737362559835200915606267807287062058543858189695909473591422765028368316978550214071451399000155549432399496195373946135190836620962982567385448633848452805205200612790681189935270366866658816483345748419079231813641776380867224057831955054242519571359985846409198029512976182883024295083493606899702109277457271190098798397365764023175613427316466251671205419124880325855598547871456486131830776708247597182504641146069537188543159489703878547910242524468298786088793275844259795828161439366911045241532636086653641155513778136223388535900063871574071109033889972271129875642835207621221833579638883681705402924036277074035013881131634904803836741288047695174620584061050444519140110047191414976238344812828580614056544570534594698351141352673506525570302895197865925290945798384427317443045329031824261523134182595535195015157829168801825266479541024758928037884047585767433286448619094311797423665802784412272942513400995162595441198496077417337312561221605357272301261532804904950376738484778317181354803863516195406032065795185577103295281528960695863514142762307270501885832975546456734747022940232212287128597425336491098202120292947191226805264890039059142230778693600583494516455449337216748188686701545830728687653494340618583883624190815518219220141231415803339954270488881813738468410191820388290314475631879210963177231423474646410306182672247069612238673523068701720677100760674262939776266418685077151037961956483264675540629141644679034811539352403674329790821886094933664673493910200153539429543988219621730969300333485585398364490359013773316856621463381009490325204718691721600626574172710452858556387293488124988631155737789029384824118756304864771218638337671499825116073264682673430995018047155944077927664324438072208493581640641792062370116521186494070642523435963462191010897207526717275168383850231783875484561584763074950790083929238488834526693275587443829467442523423191034743385083019815383692049821678376372310026975635078660298391902849722443107757475338293210794083426957666497991063262767930784191027076178351123271119051429777651948284667054672955854426719599655062463949722693067371012583636411093602247727294173684516953568737273337924706471460898135073079466080144804743223991671689278604957148492123860027592498039554584994350416313541745270653175329752137262864903258061152129266788783996290326620855973608337970479020620466607887901800157818115292503338783986277750285635211252543172688527148975503738374983445567382519652223794353827541955431387511453401827764435488648349741308378335455434039507598063681353616047454783729109350342098269305211588728664440839676688665631164719051978703344741377460165750841711016285724520357786274396812685361092006968965283205519691241306753606997855015282297713850015925572114557322202451441512501420334629405561671464484523505054680610381864746874718536460791455023715072760116355287328109706812795676042741116307641439928718123327563482104762365292819937672983084527347746388975082279874731100448197672935730743485669008753041348847944821584443703834109843268510806414167746142077232446986951617449858026695165798352509037169598200913216189520226079080397838956427242510701828749696404413673695787920564526042933327336349361358048628010760663966338201725013047588993128839344347118778670329490866054608188891693312011903799450586505346011787662892590398146806782816584881119444991732015925278681777006890163426643455021041225610594471798086893400946167309352593949377338555559137934036037710095233188421344402376123136078990787944696331558226878045635383707742455870128815871430056035556968432059518394609473395175759968266916303552531189948746444594622574461650448843310088156110423670899021439487599141983988144296554517654999462755594967137925634003361921957719955464296992554854940375461389944694475873962792240859840194084168036855858856418182751889617926819441815632713447778968557458171772334150985419714639826230851852360272285684157144715312993590454415030233862695974960087020430351747507451603256210530806176070462616999191851308952869072569374518946461403302276354041977744668179515966482643204181293044830562867917413457221370979385517297446575545745789181261582928864625356448161068394030113910942149285631254218612251970621519161710848771630872274982313761072188189428215340401874272099182555219434815356499970531674734968817746504523989311072570302791678729738533052598418814100473164790456353432878571128590794569596617416219361384178837937854086821908692558998286684502948924938559747989027842080103655324721410166260539762229856661956152954177528510340425268109104299069759480063715904322159850750929266539398274548278876313187902625974258111123255196944492685353830796076334279298680594442006128277268782123026511564745892236624174747464784135501061136291662804674441692147620886912240425376132059286201863547513634142559699159869206529163056631378100215212593296991284664068510322939596959013450862023305173856701286358148996883242860742789218893813932917962199514549709637931615694322831055408865868468435280964159824317909459290130330771380935490981341841617938351320207378547860926001695565093701138248811301786800785823527782084970515599399275761996063610726581923175009563680627453209381583741915197019662829862716545414398123363127852007823609604030593339985213354306205753067213198880552980398670632021915023699305655605507564974430827638481535798450669236110891998208442196631269880351166034725405441332283957217124732478227444488913199506826449859681153387505267785313294109184918912438872980283809792770276308044718890149781545140582639228070468145632951575958652813108463993788295198197724168231042952194719531979785206917785809681375650158634480800509094569155642486747973571730233647313055967920339712402119251757597077490079970567740430772498528141967883986791139136403160232477286859631591224425207753527957870331537096285360103163145765870697249899339780934802989330713193027141672347699910119585137823027887195738098603989555054591752877029707008103372876393810700339098998751713052940375779948066384464286135167347815022668916785590128195933746387464182557403804000852858537608952472245856355967852907374436794988423275562369531962616227759598497665570041635534126676963083848720457988119509268756309581921258275077415548374624277390154201250994797183164946045839689629033675600722369619817769837501735802111708231555614009237279543356228392114882519731451014567093848027451555569409261796619523824876129899276823871673774770267846529794352436591260597424594037685291564963638168092721860948010419201229394985884753239726889918335896709602981971366546498785960512428406994229251047453175331762398665885737877021545750772617390431368081162360787597056901200723434702727241569908638968417038203944504032533472197371402223613576529778329560141757355525627392338350984285032321834676931305830929588026921170949800809345959845388968984762287674081742669107285928501471175307052049377750328858939536543343574146695644127271291008045900812214785866498851036632188394382488519516925554595726120574819082528533195031396945279674226669779149971364150488439021268696928127631503600979969734538096424120542899201980964052978669943533984062018076785964369395893080701988006738752006732004355673642357744849193892808531803500558651688319379399727964493011291790323629512825402975986099978487350000588645998912785472235699895166314631974115669656496870240581285239371231108554463508249166994228964669329541864527731209297587560819517249698683581525084246526150999708859003404306485250845156190192477510072893761388230049309787980139281233760822098095219146489698659577591243720971006547609469979592214235648273494704744653828154829134078003794941226038358646397079582647948259353276238429826744182352501536842706011901062797647021650068903716487519195555544765945907000168222882451653988367991225824264032843892490467775159969589720503075335630830743289247634249318462303946819071087004689750397783943393718083309454981554202052086895898970800123445109314582392812625404275438344788433096745288701999943848181261751069190758568274454184110449755659282396424940259929395009753644195924096850160308230394536437052678049158029151523857744586810483688343598230083232083826062115126214833056774113858635967833887252994000865505733558848038560667636600426457803406045430520049952157097323013830698647982108682956363190602339661908065843188335284764696250726711980632199256403190871537211113906476271231538202448435956698871527697609877219985018389028643068783494096054096052890207886013747114709047500571493052987225286425803565529756205512401943812966791414163445591993686387783335273027009412053339791819644722303996104779326963207298645888230988515417566394412592092647271353776916402534836654388328880664164917625509493788935033749812513046405352750881037676515535249883287021056443809932504445159483653164192231665368882915930874863243618119819889490857626222632464745556256809691875515495965146413946524166051306221899905965319409779161768912001379581611077259736297465410590794362647950913786507391615752322412169734382361797376295582000953352208743981667568408354784276359218406706829888940026074594152347930259682900079274494208844699678062300130058683920605862785746126613752142565754396941752595228815985897894652189355655684247247311591431580037711426810007683162074059925669194788464269535852229012978822677389717109488726765628394295781059558871038924622129995087308496841119259090035290610573447866235072012290220304715713615503981091788118291410297693283645987796336812783395056257918030164377829117447377004004480099076876573925874953877431560710270644970423975163145000966592717467519084620270582042314660988112996453172159947210010659978897084092125123504603138704978505880051179905098951824177140940636648627263986576626958382400343358503202258597408496261513144894982201365266674597592803433688491809374267780081828288976037276267334311628743103261990032889682178048453527669771916571804754827608093321118384746603410570498504527671685346229853349907571637267829345480531856057225905661946945099910556466451396057030983126627912963167724396727460417004625813495896329350851328103302579019681765055466849137909032410747516956411229747638847335571635490074097628991625334887191420673306360180897161175562267197001364079338937303784097644414857844086643427402118942007304274577548960534224546785757118231043193318198021954702517277615177220221790564804654092944706994795645805630486535659003216701019093519638876769991325077765967247726029491326141440749162559451936587966016020921474063336256623632970134100420261898413406116409247239833804489340124387856470094914182395706572575296393056972532056614172978166802094022180579525830050985286618412947456034413203759277303415859849876182202286447407785874060137622996739495663493792951074682572696962309913998389514916001913019654651013598478627017983736868113231483492192807868775022618137276347828408689226496344377775855792232417426650760749101661433346990791799360669893080155430941000782510673087977917194706103244005704742987458235692037892225356906520979311824143230346544080983386511339019826778246105017802031361944393162729691747196602959303394371445677748992715420493714753985666668874603485115869619807446074749775509845389203476093091528974957351414648121509362643106243755580788655263804447646856329094103606216791734257780641539751568278279431891758329204449484840002637346479558093709425038976990884992149218749968021783809867714004067332312684657020682883581937395995633627188316913053927312442524962112897051532271724510629083240390007870836255076523596455949069111474904318285239131168548916891020876599986199820433710114012820259154150338634736046597238110993250037923988717657680030374801732308721757767688705655213214180868024467990400259194534698907452718779799375950754580684762604622582432231045287662359400925518491686523450746184951748430185248624252094613324160461787755671321578430822576110631798047344294409801702673276493221703570486712161521622488900981527093649380672670343198542307031580930159748099139392025747192363049034291102018948775083227288227750440949011659504763415952189457196368476522649957408147461738338903785038339890154908569637816846416764686001155497260898598172170317865824403796675912651914932819629528595826948892313118167026534399346165568752067629438490226237352621739551905982512350556890354617102963937367612270256092862132281511712574037648913753401092707149045490746972559929872722547100121550510629146128942800854292611963464347283951781880429578924594492462850690347663370655595416648541444351986416722380223952412337441159109545398916342561005270194247073697072184862405447925623190005313687857725937657573526731112654039628021891887106885132429115708044310714266578436563559783843074183872849975377223304497696178376734140841877873108418604890041637494522227666236435261950954503927093050621661820208520979713754413713211335947800706941643708462716047478088272624248615588151745009166269011032055198780042063279278570166085466033648801584892472241097554387998617910615133346186002980410215682782660910046000663893912613610950824787329840568333863470744313250751108527357915199322566218617876962802285305528139109424911507286662802803130987741681702743964512351280425303278572752803716616203233507075711122020049152369166173182905419999742389531324813940940978053640841918167407340585217377363702378256826499171961260391697426207771554280852930250472289218369271900609785162334773873248938483977704350960177783063286433139761493307581557001394695556395416713618174947746549823963091273646357833538422191159899057314238866477545144054587444933471970486381192205231755695807161094440206455412750662544432135546852010720182972322260691849485033556131386019691999148963155586585656338176241018522591156306268542413333064771730500458488310331080411837053897457203062975762820477325054340330011201921319551874910777723282230675166368384254045408246510992353724247915032518349705326053480450265496571986470317037273048641250746018077246025648212260099530009401662159051047954612578673753798218619314822785159133959005934488032468176869107367792190980887590190715849687691478986916578635191660198239183786523897339762539668926867223202443418527253536795040634241263344006843510679124923189892636427210870571567965826805665007897965131246294688121976329196235259639267291814444656946143369149749782650668724176936980043023875428520327491347329177816388284191830743344451639077871895448622575109007134053503031435958914594684505478769171891951448217492497763669909776025217529896569478192284939273525502847882923123659943655024520581282426958043072476331511207115584480843969671698340635134805513792049398113111940290779919076111474477749222887917486704300689608859813623338603447092766531609874567175384523640420169400897962684937077357603709803166116559591706648645112087564193954955713191200628213625851439972399017511101361101261434751451768739404643664608691353311383441266008578660153896112704797994858515195820748493881119010023759307096953419268506558568823779700077960275408969203453005863805732674926706111887796653209658277238890217212367590634728111805409555109125911690732331278328068002030926751302919794521349375718316069487068898801418481718258209170557859964883566210493548387943820372345457657542508041084323649302281964099600838848987968701018939425147123687211199650576600365734769617134128275216714062537204855797499440356411803874595257852223781926359314334065475703697823302742824299140645026804506746838666665067984080285562175466468515751409616261540840392135508531182792730392537300678205420608894160652012926240021993852487815974988962784717134425862447588642407726243785883630297052624596530607393072973226562057376914927519121979575856176701914999575941011032380370871255514133847648027155058379494800723975245232341042412054849475404188399770580648987040767607420922162337198529136396862062077247323474551221655617092522029437294447505014732900976692602525293722754312384976993912102037302226032909513254046121931848995165788087262984385432585580630861577993477386728806043440091354339646584550558523738516764073123619443201592019534915418903094177858136190616004401058685444184256289136717246678303500394628875096231540508974042422505447310935655277184590379934607622634734242752210401030534592045616632051969473669710565893866392664832419846459926182078850866752012600691869740833301443828398249547356466613507746361904033409469190933083206408022358752998631126438188309531623007552245102815278696790006257392176888554541144162295816451174148101981160458361820376045026398252565485871135765370116019511827847747825635302156994713338650454750521923008632812047845957743744365584627737867290948551107619584271992062516927498785327102015270291316488912182033042746947860177573771758622490330626881076768708286799540571840428782232861812930847259006046370999381723534498595265419109318224697768763817879712515213874210388094056361516283658239663689202344720599073624017974533804686233881487850763785607703617430512807444770203367394282414508392537369278572623715581903550376879678592772232012450296575871112925503915367387953683724264022981850074561261336510821044656716064385734530015880566760757160737345622016518106172586426662736994599986173042186661076863751076123243506838862544978132014389014097818412393680913434677876518998579992539377978673516187829656849446515941412805212180835114539271041667906776985263654386592381312242110907856487117344217271386343636648204783056885372507618518673508410692080526111788769107525483197238146119445328300589225315946508585567257312939572314609548071112572297128725297275501227058842582258932011734040777157301853651407671212169682919462566262333333206140118631684036078612010995120221782515004659896989141998575493187274336485644440924336731367402303499112538412139206244898549706610109253664281850906989599390541030649617423790322417761823462491115278822663776560771921679711106154934043212099933952399392403651255761483298057026333239841772455572016699117479048734824091789767315813502105157628045690478305913803927083111633728480459806795464743411546499378562473026636136325724180909792791448134697025525041902999899650454018821787230006389425133125785098990702870511891555262086804243305879381000262163981076531880569784915558424195713077050989683807639584314157309638061076143191724274362908071828752728919210439201232961504412831524077912338136676162918958717201379538180205742856463136071288309702276590191238060668504959860116253444466888192571503996380075035238040781071789023908692936088211352793941735646378853086836422004108236791490076291281676514980942793060783306245328144014250117826237284510701790590362834138730268261017917423826499133944622536175014073702726894342615399654695109137458282981875735142883174410773484817977225564142068497362216000041678642189584640288955421182061761805106949254197682419447468891109373861445468808582281106572822430919934188996834334615906614764296879846444031588956558107119626091896863576385041851268559838199619395687567758920110398626937071505986756916868421247868655724660524849411242926286334554183757345014917875358491490598621538093411558741303155053237757918238523652608175126047001981602899615195819441454298404597084851166251492178208111321338693189221153555930408107163846578264928968850142157182170361019014883230096358623646744630512001203000811574577335248863272002710057993254532967366106333985702913766889993869735856235225802644232483579645110864882523214718189740046656909330634906512620835354623598377559846257523752592913360059213128786117108162496725610361041959092439631571715200333997341118964389226879661040227408040293541013339078022106286702013005986931947421051978771592802099840980801613600538032687414129290802996695901215087281569982762525918076920025716555889208935086226414058527189481486651914215294713107084267883678527178815223686543132847111301502518334180987995229209918900705272553306660309886970267280937880546047611830378190337694792460724480850263020861386219703489484039555700875796615274518251589944864917264484664645584833529291306104260544002663578109862503517252824635968756651307276588004604904085797603890480246135088247847963922193711981561345068489572732659110525264050508338799547360077456810272285784025687104150367240893890305373471140104766172425381304796710894185356873357277931370188501069075759702007092318479217074166043313498679364330343474149065837429429639091856927952760465931383381356055707688213098662319354433020705407405480106264674624402035859300778582214832868798010488698791740566102207655154130073400011944176428766432296617381740117267603502302143699637063597122919183596172188403726328478537914466362810717195527910896165399744349576900031311887501903709477570058701600517895212283290426871812825409226158974752237458239973131581688662303408144085532914616083714428089237754799618898060306184801886879898998785146963061732539711257302794040287093707965755168504872691535165692522804564897608649936314587599082992106026821236636237469768632995387801939608559745701642578925548552576472833685885521714554614398749356026662570856879689721715365567688598521864434667147753043049407762605127588640775198014837688093594933253360044118089625749117478272977412111915133110383889636711276950486752714927877458032774864088616724108981893348944863187418943635633021161544004972387919905119026450337620575181163401744878730395143745838210520504126638797399855333746880023112307158165166463863345089984887066209401888002777405870827804585451912300930181098975290541397874513899965643178069689224639499563060787444969403748124923507847179500202880352570864329284255328983386423755366980038424568108248703276545531359971133170501456889987144258956279489579974029441380522227912241874062363567288638611920348747058895271777524858305735833584137508233911844133737951583332231252070345332110682722762721246536306247616840956876935369068573159469434906561429223384600372084126633428163276766641417615602759818881913265879066192611702019757971964177698090402222492751436767227610933290123303766538050030543192284681983409063545970301000203697577335919527576773309047088646594485087525548377708470971988045762951335681839094008082357371516068855229675682536173587197373807977861543449442725200781080130193877678385019967995820455944417698577547764697932727301057408660422011521370753766424242098913196266688798243689500472694819388807178569421450736492673561741198675521968252382171013364193900471967659031232162767979455631577447773613310942313983164084995388181967800381245862637638675885238454392495881915779316049363184190440645901958514802296234285249280140506794101611273775491485610694257673702266038679485318204725919115575857356458118140302892596560112196165975004243339625330091097407676059542901516861708883280064563016862564876480185404654237849138750358827619978863963161709021599843277652881771353279883211558958413941581685072252098240076013187555715586431751770149467916940854117430512637003484693224528745420390492359835785992718716504205957317534351595008161076009893774956388842804879505291665041935213890056878036928579852863789388849700002465815403407841582083992991619467501823806768255176900121214655084160308263125956505691350829318300017141268900827422237367954579300129180737432730082566264198881324638796197694172272271572767822450344253637584115622555358260241028990694199671880601284188506203335456180034807138926024014634396754574763560570974245248024329132173154398353758315551192706872279495884758339629892858424633090399553838239105490745921821164596394106491661484991962028816765275803308396569276001036106846586185571680262645137766487198007289488146119072695418361605365660050750877856940683249138891063482323971239190126615008510421426012033831046529140012083299426821272033540841031598285270428776299756971316579720839807571674962305183464164971552052885471927708119932175479288010520250546086501999624058046829601339212918819095135598000739368279904698082942541480415823924042121092911743436327319866692929447118495837810304646724466279269164935350814357423102666481850360842064156489202299478290489628250377763722650041673788460959083546832359078726397838640987181396875300613977284822611928653153945093845663721914406750050641274688999983417376562388385225949752134563842982092043863727337390303132530677313907956892476795102266056086189291071942782573411254706815818486436851683370147039574690899057360127439316058867999470484801751579320873787372708143621565753238824089536681859964074618720146247163124289729002375540802859063675284003835406239536836831113530580174995308374836259354726152031968032218786051670613990750096661568641254479177097827894865322709307012994064248705846709404202434029388973487501192298660616015477830543443987705227597652393555894457893272986258858304581143064843857061552783007179485678660085686133945527080953116152467364006409630630343641943666660460974388607885023550362517199937088779939317419023445671281628433981547406907232887031574748349791947476714931024987173740371797122138176943322758948473002918896145302992128761321421929862452002574380698637638809892932455499745574765453547320824553869425543390685499063056006729103479687223712937294878161163587111553968402508603168634656271329918326719845318758917405186698051823032144617730298805733142259915292562562955017049068072932122312481140578087527312224184483338332204547826535543494926635201932871529743258207422108631887989460216561986292730757888019210154962898576364165659016973067955255153897378351146105967874888788620402612025901726706538758294897109934013114049566618328927711208107324886672073351284182499269364591055346025775607173915036119982788821155999781898415467122231250081979522822110799596933946630779806042205837997694167259332294859695644594846912605623867848894525297700368294505706357698782215840726454662336528835112657021794111336479755237591774793467856517997077361972178991518582387246026648566548020447634452419618911105977542810389349357072850551424584735703813991018569150650944926611442002937361995336190151561580371014938976138686281415469945952103191907786399572239282268943258803510190981123175693894243367313797179349354194986236170438901405674821092018720411027491176988380844665091903065565238587639064646457152778000867564898383679688875247433831129062833248732421080535282026473791819339637291050582072507141088803200069545690886930885853800871922875248062693044534407067602651970075502907861366074874418058745500165385445181837375488166138251357479909292754072764413612483662147540931931540979288301124672030889741612553095268107407829591844815529330255676510647676994643944750500918342193314034052684928981710058800336786421497723767548407917900529421261473111901000740987188463761690830868067225171939597267544071833051040119922289854420169410222859617107149789312442302352798282873899857018643666033902363077376691505542233381929074613137230326213360960680832569663967017476900065611304956547028446277727410045939721317355568104103063617662730719417013475839141719115709908884588005946875767443889039431528117387469243305119440677941675963860929254377645264110243186616999743067484573422451145035426370363019711662403583833164456497716649498382614954566097465911040260829197024349207366922819896897989584238284498253383485438258497869555788669435690381912057085956753229310916466844957700944662291769838304671673426082674381531726637683686815498831595348086990332469062756259189683114752618373586936013463978666553480151498652712938814725726417488990848737140863717120704156875635253988510253577570957733123943072251709825290774268025450554392478948876926068271687722030331985022740413041279920552921360507229544943890094133355537174265350514236031226980412363271246565238319541237533889212304002656109309559037553712810144898026587760698370406401279726924678501173227072545143380936875751717245844103168807035511438361150072190003173821785751562653497279354130701278588393058592674131602492028881193040633423463053610047960113465586141044350223346632964763793373916911668595643619711171864232802711593565981474473820190693780498416246626747226909372755261805718537035685970087541309931585665463071848472777423378369081355247248156934508194124488186165492643601299532438346797673296954200315982313441859032315280751963521879295182161156152374862060539609267843232842265964960703408705699675767361724437204629458496014643231223058783852249479221352481140977449689856591882324944206320047544767860969508731134333990118458920454182775133575734750699029047306635269294534919157674325207652588485381889605905985069516822027989832223547689279179192458158567594177139267839847130977252847298292914146882361251663820347690636001783974175075160523482239069985925735511499718817242040273047244545984878977554715775021610905703393021844016238150958810779469904608598391007960981832245116199288539734162027617552419682565163220404379079151327059648037053717561332311944941747785198966093856553091460572883289097716861541409756813333666534948624306834108454448989034259853804510610721987609583590263093101712858156506193836887668915460264897708360178983548996862680834263681974216200095786807841553936165162571386793609934638702589597603553545893777386156814033856931375192656687427433261101923259044148486948093039398941167692972905771426257168574927710987379078034543975965314393293115048930389971777521546261525760662744855986428338595299115845873109466883761319829574772600779885997771970470531751775063187179365974951277944421094509631636100280475915936608782968990336656441010244235431988133153006396395752769835111170670748571474419848571247211546973786126371578225984197327732505413021800532434257042215288388390200139092467208183335734894521421213172821997223514343925589950228013764029792240520648113625699053910641752436981967675270230800160126651983527769576458864733131755204610581404267858400677933338313329854173717003029072515184640548120777132448587896878316811576144503246243637939131078723343802376624009265839873536775195811704251731166032511422166477054156084640293730566187807599557170840461459887337885955504028802645515854665005785790146239723401598712497587097652831472047308866324300935386597896289491072598040419490970651532116646918945570429715115983477021632730749932579848523930602925544138970934735242418449807241235949299120231567374682550076241120330298026354796837912016612040197708778896511234051510193584646228469763391594732162714205687060815958290212462966117225076353889834668528731326978937861211454592620182872351340228618836305276414623303734319227887456265777267195059940605188994787949312427227610155649517814026704138009699049865422909863044191152217484933427005742748250221390293251480982725691072680624054606737818594696922705961694506189738109014077874222451646093075933044600879587624372098547371371885525389339378360961717443047715833288499774135493660735711768537289363690008613199743784186049617810143001735496312277370364280381919875530823937116773773102134748196884499020427821149974667043396271273195451156632483944037875215972270243431755971939077480924842811118512173182153929771380996539083629003999396736974057550562637523005377611997556297602662384820321391605014338364712925723573759471162841532525547058164449928650281282673973683746532655102628369965846419626679129545792194281578975058972434734950767440153555183312369342130581183677621804013517615463219902256285477029701002884287923425171536973905405218306172690551218915129502022209002089070043242920430895330293216160337707395858372312659099622876620913044691234851571279030419328760690485006170394163410034068426309765425669265945318655665587394522880197977107808955492451421522799662157005512173493316255713022995605077949994107967028773560761312798589129802089374758599440322474584793531862430347976494424860244116667317965052205502746798348789208717277640314214487183450474334210964905807976413339599025661528735811554681672984941349132371657429306168532748760326394175611656980286373943843297095402536688951999966925445615743491157440962084649088963579625651348278317534658868271847818455491207690806542836361150494178447303715621150197559013958095739164917219278511026968754956986509568933707629946513302374673618869405052082240689029569053703423490656482467851330254336846954215394855769927783209675028232108846197717918011930906698198082114319825357527173695817032253020346749172504267761360879413045113851674474437257920069658763040883268611401971083133110616039180442412848588036827423506713967670388221164905939160024693973290749096309536562814297695507749576288203251747909060535862203392300785986201776698918614610120234999164130334599038143211368973179250747028719693856522905148559420148215939872245624426040680958866584550886419031500591985224528158605940744962816386441831106428918975160903399768527867302763679733010431112269705893228072916511417505929254292100677340600078628693637174984266252350478363636720923003759652919897364697705518062624783792657807192089458297307228290604101029966729604244593879557157556587102151478896498428237890812170955418493821096676384835704067183340630231945115936069451564524041535294168748532965673447149883252385301301766038329960479230256829846873478504034050908280422179450080461935892465878597212284352716687272066179389244569934842910298874206539308973059628555999114523620148626365603981065614244526882311580084876162997913338643401269471587146017541259619337964035506961973108476479766831499511137673881691642228231957936702547835555331702421350033045996968845261808725674059664554666957622564651883401304182721457406721347847971436543281698767304819325873659086560899695147103731483703107969587095754479482168935780373266709129772117641971491832053003186874661413034576793562125237175073907500609110924229626730847759442177728973843760097017568919393952342667208971674459392492466407867178512527659846507325077550881459762786583479790095916428502559007529349797111978212252965137036067778538368171208549320529469620700944237142636049252168122680456340071410865347770097334598179068488624378579602257542342693646392501214685085599629934804962311172307542703032692184992443613053571099383437571429316203324334445028804164629503816430111169599507904384374331742659262358448966257130446113401230051102790561631101872859009272700810588879454988453777644401427531421469068131616549460143654092112142479397547028080979836685242961860794493745857216439678425604768794779571094189451797401050184574440587974125287881903663264542487639036682959886113060774183664354030910000325500893601408742890465393053525933380444965357537125423809668611758896703812685246152429413814865539038355286916941211501208327684944701541119344854626817986169720292911452766964433330959362296581855905955618417343626708055367934503377375093255601110923706294561992111219585987198854801581697878836736097885654126684136167687081544487810995039631341100834880031571537779143430695916187825974641045694640456929894936265643506472764408258701697110238437455327196354131847767535320487940685242652616978062129131635864650944586546610371554794842215614072776229229047522232642309304061555602259494570104601933341381726349509708051730317088881280840778537648914201635366319279196380967020215318670447915284527742639886168811358115933093065805502777372510384014363280005648383861061976888915382254529457082284724253733154095338353918565594762802898899800700169038172591909398738114697559072871611951659550169422030609889415538140553201977725403876809176974130440142421627503109186133991132797285556855162708295888291251154113589868033861464651103722572657974626146090934120756155802069972869221817825610209805925437711464827941880048067501801970497472578622655623521295515077057541930055489640996015105371476272096609404129706540914555170373759558064641119011305738650374239454640537379000661697607240772951815644069130479307045064422053706590152658064746120018304747692122561178696659504451196171451370985752819983567126084583289729630130684156092522445619596767257365485692406366992666250619981702926877609600414030739164590834725671718062421289771302494213692808196947080235466377590889695852518953756541646966740189198183515264101328215943189761458669989172924750529360579681123668539360853909325791710882555143318560388782492522266894177493852890737784538691114773702562030222341827354809895189359285979786723416661317951916447924854766172627757209876463183853837436721424173898327275087917284050340616013452395886276338483034137464343368278085093655663616261001731393491640762928668304798783489715619008036452755330749620747792539229557649734246415154204564261315187510264850618506047493904941735525118497566557156441196260627335879716557178022017452945044773443192101291047983106361262125924058067353903452444061688195153259494607196409918088717634589135824444787933184333798393012372289733998880148614001462549642565857055875947714552580044028491361336008425256749749421801329111303170935345403167641138833418556997923728451889622096606610840348160412736829037747783836830612363756269289692096701348222977967731165545329015812515707012428170883529485462737237018168705022240030802268831052894163562267799236697030539417522039904509362508506308440299770798069174541006111625653549754628392401376246539931898273724882760241723441073218756441307174322223865276221170910070416321640130909407756003152160891643463104242558270697020861249325774482698208509895461838592096930849235321374677913749247392946751575101879949528300242821608766093932386704629035925025024454449457173377752382823326680735802398927283071698026288574156470715338803355152317961617248983095631409518751715370330610813688505173895584852836964195028784541381961039769247357524306079188536384265483953072017961214938471871285841163816712825929739519066307121525669851846634534705714996227840210368052877966371660123288663012148202016872226462660036056997341255716096030435129479622037925161013189373012834879448913260130678862976878400243132701333652189071658547931355811181332654288660351762567397416485933705722735242712124528901145560064834143636732025958905687699703712096984672264208184369733452202748234464066160577183772341736160020781290049133243741983052731045604373812403730191940089508164722388487894018348021766729023168489802723386449175328731344507121572378944555880869465667464294321365156283451278671410318116446456625283109429939574832816426872393035934697601608809631192120022127318174727802397555210310693156688432950670842782993855096596650454472625425683105418560000723033707222233026010420834677064083515500043808148244059559232321332755145672123510758938824519273948335740935501137560612713044248757098427968829398701073150163952031431643218329868607705882499911830165596942989067615820594119971062008892393283223790224359982164950780366589147493701074566078780402506316449911688831973147383275174065907354005189677296974962149032243643835320257335783649462724097025099422944983540690597648873323130644970394822544394754101486461803388848025826871390495829252757782646422987544830177887993427407732095418353368631257981095695011287248871661471777753599089955057464016420050068004889864543890858072532289480639004138899143069669668923289832497246575738750025841662878160393128785416288803479354224386489800922970462020513515817249927810410481949015404174818563875667803661996518465576184668697358387362946543759884626628657503317573113740054992801215672389318225982630306132868464073818968775395895885870580823117377035494216075977509736193413303031774097422888973742824005814913413879781327165131115408827898454989245834299667247261948004835097970275894761256945612260114222756822313504310011263050611193675117975176594170600785789322808927609244041943438464888382955505570314618338386398940209147387708941434567181388608288801169961446441878136798031829862078537571937166435216670888139380442097437467864865434499799336742346303803380384354704029857791379730476529476583033650027675954938571481621445372488174928839712541292485696157953200363097633118827884885468717559472300455573044896272373410316043595185573877519131270226595478707147652754926891522270634048467260193474151359353726137749209397655574907300703484630277531384284741751105871366529863036857272771692735471661061576042229568887743470360192616455428089446684871469663334046180024809691106354947185361366760738549211316646897688150454313035686546004284011268316093567993647422499250769767254260583823091831453976835683111844146854200929047622300719134109138226334626617352779766533327485332907634140921197999601663586152739189939837898565111775862377244824060190802705931716724698748892105895149735057042610043948876471204841752426013926675936092763763386828880156191511886069615824066708480424133380172327115029143662496731397746123977569341824743705047107529446942849016318369357076019254129128977808398419364149388281362875199273007447582433100954527952288890342902932529041229237059835504910578996480111293117394506941990238276634958557180429141010956820434363429700647178268791678076401032659512504575471416370550531389692250999382399039782663991460391237950621368203108046545206010426009029795791030588802535307849146538253791177458464611289014372027237831345870045002334375883836499354307422754863320935769956396284352384179132399569422786635755455609161654376588056388293698491285936625415251825812582732547029339063194208450050329289585143757790518104886352594761595516945662257546548291752553382636015858332959727634298945712931910730430805264679588358760797294745449332729915196308801230844451813374148786357796916440031774310710889744201022507725378994575599683222752926854976461467094558137675703931260678001150058441080733615998316175284291334506371109130906676660000850699881585965068753453109395653563025871684403584621102370271827045118399878341005078593600471279196902316426621231812323306359881997288891896776862112308669327842938651452715373043357019664362434005880042528102978522881551061535319944876945055433573424278604510577294628998197598166169233315323408896075984635556475518520842255534406192305151815212609203720934458176293702192949274049146648646430438855782684114767377362268379694604829198932781834608626204372935809308646701129411947947589423729660393441025625980368345312297308757167218194601686947745835400480139413405585693232227836293832866314199004917375208206142191656762207796385391884446712227889141007401294031493344223525119084362737927568681702751911387784621696495269326768728993754033954776357085807435653322058047868238261315327325071077041714909873825205327268592804413987310442669606140447755761042014314780118319639127047609617979154489111888786923750335468082228843962680012194199574855751995347545685213427628575781610482630501924638510014018364304679565525631644695022182271588985630627547878657523986963923140966382180551494414392573120553098056758683555337154278850170555668763309273129723862386914576304931478345881790248525879040444661049854435151521313235451615955971779723354381301835578942024510359257669324848082965598980730600358083346493481038344560863327222567706327973207207592058036067736443976160746737748281105552045143879829107233998458009651701585430594039804879866113327677321266589031384923166478041477886304979923357012725462654590371586447811782438229333232663204690843276628805091661053897866459088420538418334049528490960651362941941382229554296412331864043372670512126939952342644780827737740740133444255399654593161442923949444245370370485285795946992666413366333019482979514156822685264080202908194206385535885874781581805655683283742753652396299359140564415218217114866479571555215513603859995787538775768586686111687072133407453123881082076051267151463799569971966095328454633658531661684919081316951412438331904608972233320347879821070813554690073616877228692793863688353858151244553832673494355950924427076737373599132710034024601490250992970945830209665767818669776428015498975986674561674515081899269547212742851337014312973688354402809265490059278920824371119763145750848367564761422336008963127553810028464558881564957307976301929566831908507854822261781675924316998126785716749262234432065409509696828797187903034334397525575035768858371298208821802472962278006444975917803462712447840409116212628041772227614274008793348775996050630476874140007827505925259481209171808355121355753301278116159346483496570746863065259088020481135173819918218769223344005064777599059497547478979964174922851566520189527585152389071808441525703608901738387452581474243417204331372329686772770047052718688472564079262858818493670809953537947257056826544869454242852701681637821153123176606592628378045187376395892477323149863641045794078150048416770781338439908456629407901797311666718662850310316755864668187972357116707132805287458877432949614776350793979472169352581797578220845167771850869501376377320745178643933211223004451565735449094218804182479732720466160770537367921259444736262840715868116714149902433271452365179191158658001259312695292061280518293541133206301892022823977618077458250573982427624616447023054241130414803298671059244750278097544182511324128074071233119004474138153961033574479938596676374777206755188412817268394767935338455301177701312527093083349382551945353496411016071680579874965896830215113136367061363821425395998461752727331165587510516077240303331362563139953734138528325468149562945378480786996888350296707766264728826104432450975299987001138087415717559401034157730808659251318422578086161468715543844362459798884174624663474572039577228676885888776711954471573104531541735216915006852883824877642086450301544330554951945972824754263454219200494358866505737679401039664377188205226184038632170840653578055015683888755887792935706474472808971803380587033295814823483622380471487213654007721936006368707816727418310555458170612784750045027231114692416069434119785870212345999171847153339425422150864040013579296436870662569345514578221077569030223791238312645225329613071437661910920186509391199852800217622076099941472480572071195755797820488557095069697075649219026083258087112886124228632384612282350150705759614450744573062791660766785186586845731213762578888227979694128872072358732992420381870127691516094142494795925530789057316533199061290046900645762391227351933736893802617246404568608376634051882894735039210326764392074326642062455250179319548794110363470704764462232049662573750324821051076759586129659325224378234714438797970983221083135899690170518765687243054937682527252766960300061930500830868444230280812460001823143951787316622101575341560700133374888828444573356120871064319298819204291961784730421576802385439687585551073851543536649371028492788805110625882497242228588960893750986157527689075550655146800606345762685940001134167671176664916364557994160418430729664121904305532352983305632118805279765240340825434605712715783517226941999166528691851139074729968841986733959501406001576836852630467488107128111361549665207681009646824708311961896845580589526517038186736223120683889036035500998060434231041867017416278453876418994506963307702070530825235516562874908820688899495467000881166421640981230245602769472001382237999892124131817695701938436115750008016089504067381340643827896375559483342206017279129366980089016508410699172756497029003249318741413877979947865651319835936259383573815753650349446930548914588073358453118186601022051146169958743903505513360646907236484273471807415875082535255591207640925487207231080923491600784018497961831924234959114019536959808496954685302102531786343080431733324869359007207395056558310342377468798887829997957613088514480445807363319892229556937385243937778561115051576743777564582024890107743594263437537229131868495308613216910486397584163528383600479380728867709162522866142685481168087164536001232221185916835961943442288705442067740006233694117441396631270454437920441543727889000778101589772151247395808303830441224252187799226096674335552611033974373768025844159574997523173326679618476529275063019253056869261670162363410215509639097992430998137963926643703533770031241454750845812956536392847967458167521927570384729686809222860715182171394841570646029580510479738887568359365133155841623073135347936797795036502784154878194377479546824504378784700377199771104759121571747609987508336266186076347611964099845732756958284186237440919024657751737151962224610912877268030160388042275285186248907466894025210587390160510359623089666105848524369506070672547453929875330070067307610028141911966528473469883022614290746668478720182120675647877909207620869454957113253902643059194228814807620653910783392977156567591877523137047266908964217464188770155055682252129472521200724494221731357214298549990303381474396748159612101432118098988978842022581566353292182616474823542269016537943535722883231218181907401635956857443992295985894552528009364354056220927152436596982435557643998740372593536128965302879590453849888039577906810031563396098205873701700503836397782571140202953022173884765879595290533314836208330174079991060804561855701266007743002374706115037442372106658133766983386174933937531934508418551310712586595415412044739071360123354587743270103181245812248867346761469134295045042872643250843201266938439501395461002125220819020491025860499480287576912569403866254850660849569809308084622808626365093692239787219291543655406328343295960928581230866472997284312558852118912100607702156910474449240466491138374343746654868663180576794523965687151275324050813449581035361183467915875279366310934066205559576783337131511242844863650516761382173759708227955897309883973533856247893714993763799343691497076727458646203721492211838920187350746662142485441072751919708165623083593225004269134274924674704203191479062827507047912015110607653452789248803080641448800870956734999640578536364195806279898121301847329186296664163099569938029085438873768135456898781926349558119547499838539579585273177507785925279075152371144457496035039495861127127547348281162145855344938484338259110558342590850401341734486313833284354972698629100289409325091221423284494481378463159780365518796079814386678572396772803403630912131895665429360440065134133787372129609805091059735003458072934632807816220147303472847637554246795280375563811993399876372564126778916798885659277088625574031225972739027639284002043374335117210398799898359983018423166060342970652038745559712408860020324125803812248033704860041873305550238548664914367171402638232772608835545486256561882196976055038142973201971632026739720905973444171860021874447084539684612707739209449007027947329176645344562028069329548029223940487323315881071820647396541423918168654827249313649160397690370603619387368024226635069313115259375617973736255480792034346158996447376193006073921394338047690665091793041765340756266128834801047904954276531070173137093946673297360768988513724184167511121937101362451257841892699146352990811332619968978451512415304042727975397719433085438063781900826104276571703583542381881073753951887104821891881885769437550635280615022071605889738643121458850935655283618102343579365340202842438638461242467185786789589900476331813758042880161531180892788768597532432701666490388986057148032381531444686952640554768623070713276724587808257080608462981141340324955559598492708372183154924236005756180578940021920607990785216055872125950948511406090741712663924852302198175554549937636937473382501598668201403963422403079505094678839378931626405462687888189942319641014661520995812796891363615191470890451259708757987958577281005092692036282620493144163446305371646542904308408324944877631723794555619121997000220083788291000549760280323602869712227546277531715117247081127089281136123877667780691351772046996765843983376703302343947937100590889592940152810710128460751534325548357211033926182184295078747810555534888659571651904652179741573427247274493482142398599036151648567953350339112325419977181452302210721470470368854006280379528185760445105065125656737815642606581025810351291504143651701258538808981694754148589161420445657447341207796325655225108498611846963723738618037742281400045400621404116080153931094840468630286359985843358017482869981449975401598064109065533658801540665289030975280815216764635087367590037742392489464675632168356331037018047580187826051921281581962466937355269653305043641402319516853809699639148739779007097842411075759572340483009019672553831289503136069456737513727202457005925356528820609129215075185077250678453594576945601344711975452731556618927205718177614388895281054407353598211309952832819703756321470821610794038200248294981744284962854875208076405591090280481017492836037610509846455848589269614635010861857361337475248229723549256542415875577266831307972239436051534282152121413138239340280252517102941122334424149264735582008392608542604381105731301421573484166021799438771528712112620198696624075685176209712063449775394591820764044405852718233432178968207955944106087310537657535878012636430656170409134860775525514027904604234714616329759743568072043094020063284933656096286192031932300577143314316355439629792010500990070812044951945213139039642152304337023201417955187946934778871774742616874543243900954554346968370415528557139119210922306401435587552054502656966443362318937978908114540453485326706185936642805924071986052375185680199890115718315315715891937664762325779472623279554077701758879628490397604210869586866646220920968208147756976639936740513636244615299989038947618223475086267723313861021545645136682622720061484037877215544874077694354795534067125455109495898999266066070326467186933996982576262569880364646463434862147940537275312326486960966643057693604881053160237456548470779166321409282711639647587802173493029738636094114147547520032975202589095089226885190156043008707942985428634987990935842341920130009411018274532467017118543550951810804840188703122301346162694254102223690092136274138614489225868927105986152786232786286291762696700748767473931047483130818823898475978624344030759437139756244020987602066874987105508678509552617908467489115164627588692729217472160861127495403830712844189752127166652031154907681864214925499878099792700107657734700014870260225111199463325008072704968287675034673287411945290085208788997425358443773713119335936150069948720544849567360023328456747197178728572627984117287535179999830354445762483240734315343916239527946272493745395293432105012881144564050788542674801274138563718208719245210083866952122627284027691607628977162997322617008725391971711108646933310786560355822940781562901069713547906178618497320462146351648475454682561975706123286796881173808287909513278964800677315354805653275716141102255620138635072438602632534337491532151217045642030355706406520370806429001939985259605200804270447972248902406734212128659196953046388968265678769091013093686128430288543705139045138631764922052468691012464211054463395075171534772496239588880727014265105787583472473718594853390367388548825871981746680360212705497374299953703531413819820725035611213172603566439529969467365433690957885782193693371710345563348119363707539243333328211227501156445098101077904197866702277287813390620034006557508873787659910551403352834812117452236086295270500331940235727081863724206113280179577509045249351646694398146316412602229965484276493319913833460464243424742026895982181726025606812976600624201780266716340235163617854587566674482663792994894020942256641069644146994720560089249574655124464758716226487671411577371150271789447257219728599930061412973032607718539176560192490004868377281060183474157433727306398709657471189850351813315718966772344097635956837230003243802108642146792197293260890978953948829602482175780979229757195131466896455653863415800994903799770556156055458673375541182297006296899493818325834068913681382112739986688723570069893996428255186927200242953600301037477850719441838598114452725896649271779858959977561284961827220002961089217910106007542488221906346462259476113837796093971765845978912550915998541708744350053603601588390648218308993259440089805273190259509247200967551070402697586856098152686084694649228733613651019218626203831533573514873654110786705051083238527561471683292849306976784637982232378399019474174154117082837820143980279594359908156978422947355474488913529319117191993805806650986879923419653833571273030801517584780674735895531216472916259349142495340237831209624515260612828622147796136284773662705085540937792596036593893254752051814446785964748660324987740470096734523445225422915237159679087516342365910701667266141961047605698349233406488213037106811822842488377068262652403523830863469403159273854240230421481234532264826284789700268091886398293424227481946854483458753445493975959664148692913326177192049950612347518745362264398328699542288507187160448093896125608840273524555456663319247545191254914098135914634053901899054370848785473244853867010688568402745637009054529343448187164024809098378208958527880934324453602590861301631031216678947822206448739547793145914849241380665295524345252433432065859337866008172383261516066684628826785599488462211456643530687129214768624152830373458024104987582495687491009070846163457196532459518079779038308174129205524150773789869498020478755347352326392458271481379718384623107676872521285511286661061140659805088520088522810884275971178784598035518605129996283955516327889014250126907000792061874935159187154768029212841587705984391000484547856865208860513564489595010544846981388508145873329684966598099094082864495746274476963393891960518137046012547492780030411898178674814429030395698308555029061740432382258196043026548833017312533568325704439368118660534675503122429697919216792762160152695696941569180161768173075680365292125572859002898812701772518830705729052633342698012482814619914242841297667014357217496844194665933264857853707283911387552159018265778222501731173410846464420267391194619741526155775786196558644212211697834712562686286343321261736451162261911668114893365168065494312445163390564107499145652253732470624330055479288064240804109254233637686501030292376227970957434418023831910208600373157636091353813857380158449320129567187347173843420957569694165086933997005632296382673056011825015213118119882280052044340551991706659838467194122684073116156081206469067163509038304354440131592653124816028724668550183164429205599935962667170069697647854292964767814780775252448781612775320832264895847954343461970978750989045168215818424323604122581680159805323254603531549851565753065134730619077472697697181853078373196544171129446155267922443261487325699036333613801163861713184657826661302400653024332289161621722489601880424150104266089643084897237480437966987557921871077555525778391110755311928418217579782003709444052698342907178935154444253103839019609960121259599493268947719396648655832748454046702304668886677700970038349655367728062780843323734276325662832443621172584320905615938824593999779923600375610075612467351467784730207548270279481521137046965087754395036756043591374978725401780480538500175388204111740390583202532631248782535453855118551906355660983577133266414979606249112765263240191301085509284579573082065783962854659466358319979659012132855226923309526555626155983101130383266293188987252134707283496203819331742644252985349974304846677131358782606431168792160378903596789570652335963672865157942475801525272278934092582566858936679637232989586178870262466964401672529351776250871024810489103540983692434653798053890125240409034375658477082585210278478397538621766520869492404278892977820109631345791754448470846171558364926451098297197853749529172281495812095288407182687025266901986894092405678316160785979811814301917979362678757804584449427373491832720140307979923466946769036903431287028470553429864295650449505358590905737545892835529969507823439112224990650104474573316886524478413681853481291918641632424127392909260611931686530079568482977214156292364482059835092554497324863001976519405585709347110918306046864663579031031448249141971719082067740370428989197298502825724397680653116761660557370595875008123182959763223343904171583866088473234989747416547198578540763233998342649293647288259299680286101589003615976644170871053421391877859104733247375792718681514699591577593724854770751543503341120541604392949158046080731847974766017003250406900053608506192041181194623650821905097594338074721345567171860841041522348000839071279172546367577413194464437793961892980040360224375492432296640269245307996179453566552852014507955874909439348571322036900569768963702149831748428371181937281193023806511924339781792630245411883839482333707148501170665774161457849437330645043284991307203904097025317532947700852703160347305809207868330336847235754876967574403336182621239913799614759861433841287778723287058983404831590718339444750105566500796206648034717609365705134712380598300756638456641974939993235366388887228416730275680508870343351425575668391516496392121141699814391812587012938602587506682812188574208655400144077519475078343427400627995440641214543854329602107218261550993790346953717569178635730440224513332248578456585482706023359286594973844597961397723248427022165497878835514928081791089262188163295820820351311538383997896706756091530464455519233871207229977117106580854314846205653658807897064384554035140016004157206827866076810291610595380399156752669471547133332156796552092226034670762707410183186426437370628955606598253908321482765988248730318690166055050445828517463912488126126704417406212276632023026397203027487679549433410077182915374032783360122065539984959347225247265597542407645000740080537426327983376493559343384858731069748277232302662889535533180754378260918759228269123321543210513681877167323200714204041967764011385413588617620110804152884722686633447723282958234651334907612663211565998364952999780484553928823724635987811521983478364225125596403514750934328131911280492199938843986034352206721495760127853532153811651882594128286921027378307066934812782809481342292394059593873180860686259369301890515486062114321683057763159373604780362508933767270912495621263310937866228607035280707997285927976874768008615640985736942925402621229631660565203013535508754144155086307069101074342500429239587260333822977859777145368117219152999088581123609351981677068587165733834820357266178120990404026389307769199511691911137937609653882219737124968470318407740891902376487852711084972458873306002244984620103118733435941327200769912402192228531341470679617960665127380126339516765172011293963153723945803616052320647900511158699589135329091319357947953094441673537067688935349547569632963615767489931040168075015109167258031829600381752251649620358238961852850468009111668396708826356947685194238316712258605663042705952878739047902657946942773471615249234946883016502023979670033229436954993114266444477668136519769228316248245384669237093408507177883345063794000698405018190371181829142666358994696306904259667005159200764313074598574286013263439223660206492017936633613414394732028212832555847292241717468292787965001883046168046311819712603064800784287331761674252530510734246437895298824393941383499303061495730427509281319163130656988082056379691792647321557373056351854036684933751221354190219577252166526016615656506979375897108748613181909058785605406337831501028592049184815043028572290716724135800127271149560944796099698498992395880363215576058615101157281070064953994797954512894145515099606567281186085923781364083639169142764463448331757639176157980808367742210289481985542498396125758712460169623493304026501108381366649331054860438849280032296282472333355885192606948554176568270243061556421441907713002738637584477770405063866061689906146142393942010715454810656246654107207480510094585912700429380434149923751812008675343937428393837246947686776724585781698546188345831247192766683034787856802245398639922054805923601133645878625892012769920023468477575144495996735976899780322121204484260283787113418580330796125035726418594378483806576489245226786979855721876339059674208407038531444008399880673681962551162994102686549757210705065615730009902924883368023263105407274234507114301495475178724340842648322428959995631070751549387910079596308352574656692981430055846966902328831079836913682755905848566612238090747101369940261274985771628027677032040908803129520078608828311377235292293933933109013009495016696903035273862238246640562418785987407796630825470685732078151131403842667098211345723600332677611056753814011360400448227914509277883081299377618954409584513488777724101974105931774044631226289211311503386390091281835269627375004266836523273918737334189056723480561267393806367821036816013876117716882659329423404899275676561008303796240330424290842768946219525462661868109581795423023839043453238716194619569110686252524609309988037712537417417543011081482920434596869761474383557071344822734462122927049057312136829441493544227232532509371109269484711033510292366459766907380480759734530119501973286324491383561349054511087763743877001885626148991333674112071756235770182370906045923877247484260709160008814413973861144797902727061222137885104835933699867105306588628169838242106390995311408131295790170962167420430841938972856605898137118887876003237355979207479739192794524988434526161678289528239269482768690258933415656922655447488334016226750745320907396248668685136464394954037839439246338762205413723853288945703956087831543933471668414148481367853087917946552813750948026436618136589711606406920953333501828506647627779229888781744025377618139701268133594816176140743055564093859236969370839826608291942334842444250475916827947589655702412629118621786468492915473557535898043137091135077483609383052211985534572302997902310867366792540966626126716355672585043183851615587294825636774128544241737632490566670964945287964528884821512976298293608602378340656776718410536297807289656943499487625764224448708711367570094345605661706078829178456853741665284562419763168981095686982252409561221447347314351598392065924539665028150228073832996993590108455031118118009162780490882387102018365505805672981483670361951682704653714802780016058134433059132468077579658979576501288624380703273346003833266187003388918892536559659180536570934365520767634030235578025512198991057267739839911585482948975775586962489151670353525275697357001050088325968700686545396096880293452259055670822946338181628498430122850810893103920815747707794516358810684544172840022261365100770805931602488644737023800962642432282845660648294750166872498288560210136510764884971907206434992105269413540395310370814982315201919344167979530926351819850668603815283383804386484523690594681091637049860838075768856997797346778025975918634052843904633838075123027947814256516954395960634163602939999062464201453610765444648377971739124365417953102930131881640296579607807270488514221592772018886701428954760347990412858942525309384759557855381441144296943233573127330858268334933869761879823898514221617792175391903258731512176711625177005402807783021223565490138323427325216580070148180606833648040646985954845382751360361942256572706851092491127151339479043317248490413894348763391649485604530732035285123385542742400017184038902502925206184367450305394574018274489017782000833204308975705654847764570171790471922425320258874874485249969702125928727805268841324506593542211700636233279641774900162153384062286199413879021509149734854043728387967691458652636573936524932800125174550871440920459906591602015683025036980003242862027134545789752329807284215697679961879409065243530469549075845763337088562360586476799335591133067524390213723328431759653696541853559076592302250901856098028808945213522125633715886360989655156977850193953328894684427095328145655612623713838855484720464175532330008520020376637610863069179767508359613744133909398046429627727800358404220279888586062617712166484883498442986026809826943649299961217941871641122448618029718680016498698000267986245890506992442060142927823896083052533595809639749060691331997060081719576445935626960588927263790469418120516379800477291442626767358601335118375960005547535141130689129620900614267008477086666667012595395824205319488630325180892188752097307546575211036660222153587615239276947455288420795750388208806183060907357069293240076301049034632761328289504883016841755693056794355359529364995917925407551838913002060998984872866685458555461487683260968966206943452048642514265190721530542743246013254192633741895885172118137925691697893397063395128747117655138467301488130727075570330581158245246983945096646265626703457020279741902403594125074926273890371657571103861321194711249860655419344306104956348314930632560657816074189736719867760718462757847252330534887703745600228959973155035303340436365018299956196959973530322198730166153546635481421650635134477353264358887662471126494182164190172079656609509492016851471989791457989069638506422343417230770158742175597778294769578867953700787624179620150719028245502562957803132873158759397056084620262080120183524320828746030819112826424008309302534187772442057955177469050821319698947194368091982702303831947723942186231836562602164924249680197854980143782150971753298024894461505185154805999912780952516485593417787657263762020566102397562289516994121189595685633866085816402262003620946755701987478061155452603805043986660724770456464807658157803017150106392445559093945989773541774399721523554957724716501704252634445745594085326212624415404594464780289792785016103540565184246645537026603174870761711663827541541603955125516902350948544481341122732533523757351492539720227796712774931614908234788596095689293083138242499517943327087143404596212019527043703647675665683621687908263366494848164623173218400908334616328676310428341938478207498647102669881628766480864720079895727115092987679562640002215021610395377734842034550810445537932935369451262152796107341991539550810269158757543226313959235955922782621578311162142428539339396498886789703753743075763021691098607035543102737631540725529765489491188408501829609333569854318948165660239680156412654569798308869643401124202008789078171185557478290548202478280421183424370774875560928471175043844295129705157872167581963723567712443310315513872246856744963469631279264546520739034796983143722762956830739249952997772206963391778254477268504269306478437071208416752434612511618692002144045353377215382977303312964063153645696623821272462780230061873798023665853130294721974521385681819816322553670820995355624918156138711802544262989997470312083276813664584332778524226893516472883776320780149425439583698514787829414249672531960934689807376772560126370785023973118795105081150567927465184815939378479305825000685468894085962306525177864099773814541339550127656377389396995828872875063997479950304136535521499431540499909139503163588239851490610386050116128004846592867111733469121379055035955494482357241856119575390011761480620543709707965839561417783136437060075467167618153623008265089920469777551986995375967947853440398693796488557849596088133398239141647050802643030728001976936850234541470127270924949571490879368250770135080819076778776062432866445837569182002612412240809628887468094356440241898709850166284289716812257543896234793110995718030964628558764339687284564908140283189912576336988750892335649372634513203126563733229002830789896199270864319724466529139231806934178214143169435100773590058294243750012615016931790564097477973788686092008930560165765419892371556903984977122677611511411194274134089267706109531853161623705285616185377621448465163999652223440215501566926114342947242566332454796353668074915408970566887324108939203331420617570776166438161816794131550750183387367129452391479410850596943357641864593688624662903085446731164593866386352912267531128300289917448859200219463566886161200276015767441143589658261715249996337969830677029660393710851870804922281877265809078540412354013566598557299484752440180829427703056322388374860955025721256909304985224789296538781452699762739683443222127693024727800301836347577020527543970455577974391994747616246967064053955146086062260668132854336589088316664399984762964243591244588830733396963342762356955171564530633353340241950441040997859333704436725836833369720037413126960315011322444535700577519366733928055028797167356580772241372883639895065016118103975386170973642550304087667966380505019232579780615157721065558014932940052017777077802780316844673409650665378952265691826888254715148597720016256413459088082520366504382027143542456140380935518548564800335907718315026188336891488290691933943948825764971654674595531876818309150590048620054453614133385430616711852320754429328612365809586238788654396837181893018781521508928880817350319870664714860548146584987763213324659037801204305968775920001170557102359074180545928817114393406393287942089617292408415930545637707198377766691614793153015156865394432249368863262372534416704665716770045198558542872407627209115572422273023995014865021064638573552889562701052403312093437734486206364164599301273376034798854018309882127916276081529013404395869796270149216417002577279934958632756034617998012064976953746134056894148963135362255873734458822304181572904247964471091930080548112218801394721451653169686948362858821869595056153970111542079103234340642573241029712074465959074818398374661000516574629349772543149335431446386151903888795285403301571787265961223570194258604426582070089899727289618289910232238364197242667721535173825451741808540052115855886745052263612595641236979986195788432456124635409180465135758627767182241924481544461876029871315815750097527515768391720523381719361308922802325572089620038088358157343558212918905778769909713065910614366288515308075375648688946466830431918526082224350668067482802548349561222478967574149411761092640578017972235355523341992151856390492329654891009257832661077911215042562310246851219374367762519134179091742651356895393796682847037517432218160680569238350588807280762220280893750028049943776447181900976764428406860100612700919131881587766487557918563365457222647864929261572029331222530837878275416444573286361870039037096864519382734755338124920331324370274526845997869939126536590280918347335866532382507836645675313614645681767875846690612275517249588311937795369292991985571983452143730858109091805269405172833914450172138224039216465232028345785268287133811019977242617823879862991329525161204785677210542548485219311709289949925108565017592558482259569058451899293491351801754110963923333779519649448367274529240562840743550698256648271871181900820107351533724498401295328279331417214693119516598934860747020147152319649798298051277764901463367004470980159065167286813401637158950429802774038347010100181710396738571143807942583150986607006871611422700710118024516026539173036355299401630980062985199721140840342985220812370022117125544244208635474597281751409897038059906364867862565366413935655407129278945060311880211976317128945063002588685399682590688069785170174617828628693429370494034097879803493114632895476333607196520019467470377414098507111634887834560816325540625356219534010091745339082763933347937648835110412459728785142100090321884351081682886534852029809139310805868649150464638909560279853697054502853235057484757119023343711972564787382940916640996899254447639747761116046968135456982063473025989648407621219175774266629502724728165937957168426596099346545067153639604357859087407172053153135698269719655384413077514574910653819196968791826712386704418933082203197334089212020432010155227609558449641681195133477273141032191827134821131040231784024708782661913203381043583066840876914063320460739220981226503144650353623469883257206379451146176026791596161860860131851557690200760845914344134833625949478267080549173347186092018121197562972257075961193390469277788298157984131804820780239098619347868449636120336170593171832997667604730129272572252183756506089261979764838113258636108985972960927799656366453177463993610367489057312440221240415517255577352995565153462455664078136577165025254058588111402803673551873527682754940337331216572017441448041503518981899835206383908474555576402172036130892490394911732298666594510879331695186158199672890479713693382673572174883682523967031879444139812870264878840847843279943562633949570685478239990623334030046673136929497470374329829465739908479174532121739553874304836736517029716151647998102982031442543390415670259013795526695116166833615208287144387338254231381765402221201809222268060227592720705280171445604980751649163447475871627034631496326745457784820327614724043225791344914029142202270337705728935292984603876260550516503002051827045322093534572183929835980732469844116720767372699528648239282602178832560082520725540197835806246704004353072357193497453695641800780327322845061464787830001147624667052507775402411789970209545836582666102807491557020866492598787568833692469272320508341378927746269377315681764274172281652110090530902503270322439316380372174699498872187391225591963386365411902709707723953315455976686142778175993813223147027120492231213024637244758795300196276693456584802900543181326172875150694328130768712958032836836494786112679064563930055297859925838287015434711847120524394828180553743592743796498877211577423023143358060547696588156585400895792113401779637018684387124972109595233432196734145018949192790167385257824554732474897357525735931967035011154693674408200047547935735035102216444982770316128983376749177451444448205082626845509622097866390999753808255684288100951921453153506091295423576968537008286465300433499013563761021694519548723027509391338707656062865334925515284335255504344368970996637550447311125359075492835667532744228626115426770277502623626716680256073635683560582960725226765119716767826161176087273686450039949168689007006168773706666033488675263598508499649316742958390988693469039517230282889082043418292173972634998047330519881441954411489638227392231516293429258115436735641031488580195544609086979060080692463939044033899946338418476731393509769311620950620983559736941389912127895334888119436064978815963862593658624143705978204333859881778655035859656427721201326030783262963959759577308494387608765247795797446316316725046202000645495838367581090203683180067998575481821513265627165320319494098225924042795488427245150675145759622052725311423792664507729996848005884174484223798096174922448154876538281214936670763973255987888437172504057456650962749349897181945591607521082212001983535043212210110587658707564440509868857938824814043079209438813724060908758257116113874809839730703475065445908188546950502274065534341657180728490590683339235824519041497149402378927569661126672244548719888231161640597996620672370528814312112197828957931440879760133170709804821660772127392819855576526014039895913570323882498290724894134185615970152029912345484979630000524950639258822846457090533494622286024322776535408941863989063456962330638642249691041095577125568848312110918993707426255573478148383458405727194238573364667882264906489030578200287338307651623221310041603295214131016580201704255827668332072871055475309747302489727658981799695233303235364104841591107224404003702497016231607875362632183753110534990407713940471836123084227651183722938305018550047799611939219619696627463104400248102697786405673364808684569191826722858067295364307632815690933639223182984277464203537386514456891520333755000024624217690954318710934102472399373532192671172139057541616499862019092661255328742461825417491003181007774181530826680488303652251910290154186873794511791912374580888514711828553464468047403887036733245523096942355847713872283023749318119630882245747821826415506317225890556354052593219632753715826152142847079229012989842362741642617444148747029311191807246852320157709783830140170140671422854821355062081952406056868755683499407986329262413639521008917105832120529282139518727405580077074898995538614972500897637185556283688347870781990211233004074729815737319108450265024937859061011745346220724058149765019387535384625455946870882446009765638808397815639110908285038511290086820082717882443985033658061353972865988757720637401853815412939241707198939097723366091954553125101364628068330221172329955057325527581543991130948529857589516384493517928051177736790133073310998396967539220123867542616002075064939403185736223721083208798051646868994842087370660078877665620173392299426873306872526268360002035188677043166333725600167434312216374759537654922057546302232825401853745055163831383641962507170387823433521703378816060583068204557842985369036914755552981924512258993498014284670334620782299212159404969624340592372301350485074808288141518827948692884216667481160454734665476853401715434447436823594729866048962790392490446494057698391944541812846771833299110877192379311329263933199173889959141129812484163393653357547304971130629519968108219787070845829041073851014958624396468043078900010711361287524195857674797241644065925878407760339368771611240671916818318346372637841187412071936460256794694141411312296143336299086438716854495611652753689295724433404234824543465909661079540022376626290899039375698827568076516074538560366269067529924260407331562842343957998351690393847242290783018833452250093162610106344222922565176986888206319245335673048540812569477113010268172392602254030266236854024986151482944780828075367605521248812385165121044535816873966414811974850079758579133085473968908785115576985913411204830532590445483001628451375534922723889428742742365900738624643510930286886182683009780078451762950545932879572830792289044207556038660731308735216455078781373515794477286495195530557839517468808264706061342934570735699881365667463362657589733865969457854506175098309041798879327617650300150511610589107382330419951249468376422661653056739610935113128546008158297956406472660944620180628859074379247624621993792379416532206392233182944076232679807416500392142581985873106038845265850671582212755852374855622350968604504221151703980807655135574242072099089186296979901151238016851711627009314714278360374761123233914871877084421716154404736961755887148269282636617671502481222431365688549035021772215523855005140169431230032054402760372680373658155033340156483648730866217487806668294934835130080350987984172602548671900197912126175521897351032057186122976383068275893952857622978995466458211303920233556308235002881819768959233063533003580434809492590749786301678322600680660666219376788964123296870963152834687553822672639590511723255314532706703866872101916493599623450259183774666725562625081223556819576707052480860692250727920286718527743723847038907456071498298154673145390898399560136884397907446720531539951206619974890494231779018393638327235339279742813499609576368343371190702468631578555360621349457011233104698490040743117896741673011682737101650147486178392074722206063175189777175853998366993207754676308888547353520909739099471857763087275902142117581019717405062121438449522543630322403458308677158851135374073798966276850344618395074775602799810109334116368717285886053863842006675918994956676465830613140158599270901771762352966096168419542033032749888879703006385490985014450432511947604246553253097731396836343118995216632838027187218258426431001971045479653219869656019596764678746285600376735961364675256312053472841726246775012225876092439045576487882912361032345252724764986371009022249109036878985030256555944564154170299559210542123451762787588837898834905466426896267059062637506881554447724330143614765444707877964615447612963536108482365710752062818371746212932904691314182372236303193297083934063546874290335065203496997532204313752557656176570143947844177925493094071267027488195790486366740917149956439584980134640243229516550314240221627479025001504919312981778647701341463934849959746835480014245240201435302946969024915834803983212710805723112075845732172899919043731898357770982566298358463328697933315550589658505493771479664196557775836873462185511254600071790848074652176693474032407830159728647986241821935612102015782504177526737665414699909612303079252047085006021737233410885562303663837631990251162097794309333997870955390280120196401853714594263643368297593942788489520056617141598635345234663071747821105269896826355774986877463766872805581897468378834892762181884039906048992531772429364463373344275898147493154550354143337844654761263713663026550625371930030953159781537864127943456671370789319646190981517675169918540099130637210788970079064467338093547123067066367268223510899337026950676472021984509332944905531940371196977358568996989637763559720768358492941671530839564568683660572364513031295440027885189717400500559948553656028973829689828087682596586632771553533994337791126274039375672914543905750856579564193078120557431124810639484914746722653225900770564992805914252186255631315867184363306596390994842527114349764777956113727990409419045033217022329378146179095218642122146177336379634946014144868382714334721053487723308445843197311922838439088490406144348070200987183289338725740543845360364173929602505495660337517418039556794409194287325968302428187549892174841450277788760224845638812434623436676826214483886383484099935077012189067142248709954840080568049226911704129585785159009813874728863871225713430176043574148659246057350548917783053533069891667825035714007705755491160918611110404124733628285108678072767622776654886604507379063949205465328441613518105911836700663984878892240135080370379048325508494497602609539219549613133157360696103881046609222456774731274140838364483065596740049645415452039334188595782882745135486730089092496452401530678412990074006323671455500114971941347480348561025140021603446594082659324150296316125383311581833509262666326381041020540036298090870141134026607228860474633289812743238078590829699501781551327441325604691359369963030881440524889622164443124980742337250428632783909981902905494415241536708291973539908870443511470280004041415613786746959787456124073567886093191386505521382943263954564578313979774501430960630079835513984221803798357515758716986093860632367899537310222169542241664465087392066444776833149377274732440528630444134696260270994025280976295135908012169690317771258570177309131904277466937739457843296905207445313650013524872745583428872457141331783099899531512813089042208857465389669009328498113956579227060201283747582040360289831407850597110256444953619549345272044629105012934071774141360242338055410464581458534594249243398131268156933082710214954189063106233743212228629994618848854762960622926215390246852960513418925349764647078234047321709847615818440888632698058675088653450200542801927742456080169861980570293196217034353623465514429502405239640559465999769071842708558437924250942777358183471831031947332715529633224212003576357523717105187277166721840740373459461899221441203356740637804640687263359937271321861507117960749864581152071452208694913876540727323842438697881950459601285890049973018788864905155581341100543708267747867331163208675836810887759260254583342452657953676287359379167486722719100918832467915619134627558403944942353290617843235798856651440000755753734756232914715756507632974068088088709978978331388538630670418135760944718491454868161021819588422161782398958434414185234634755944188719759997155793214267932255552882240181647869840102476202668186325434859616636537579633822638062080980251079696227691907727081195387475961909721211603987106224698571214634945426441843302267284314639699681802972954380871325040715779602993380096335489700506236900316207129445332853964534402501013581625061204935452751102032429761094051553744862955014544657321909192645087731535331943716939073718883592938431807708802359627013009485634673548762137659809593717812716543753330552832018148390822960745456909728617495345392522112177359374125001802892447734379966265645590152247664034020984973020103511022406919635570343796634963980952316658057026192551318629705358928101234179671495032291494028998880673810112968695311187310968827133263906902206303375385206839909012994592118330635582717040641100256547464359058682411580370223235512763009126186847119424682382399724307354762306011930831000011235736187590679926450933577145978215122839369167039725057820444874309381150750211189967502871477037066785170189591646381968070868753096353591345510493373562203654192767390506626267316209916853422201108688366922174984455302122117751527403881858714784934824900258724462636483565868646369366032822087982124101417803449567772296806939348106659157359999607735021067340822192814935817316560117181412305517096215810226474747004910442143797869324993002817122674142930068164833729816649402075813208601718563891530926250626840843389780157475854515603750971200143596545481616735790940509043445474576597983547495927211650598419311906379922669506191976162370211817428700825321547754206918642741801754930186732186161175013553384209990202414395636539080079522968980370043659368420123072283231623453276618180593992935398168024005406636776110930739550774529227243735180812526644561665579417155431740856426189533057389089566758650007078809407667945967518319624934842701828833233979802470073801817407171361417619605862327340720565853650485894597646070719911037121742490600835275892743767694349764352856956592575675437135595401210774763762519602619191660091337356984746013146741565099027369507537229056765709922021399116871016193758415228794850202036542253467046317499745255079407275970502368385354863126129730072653296697333626753700252740174117287561754722136519304893111745225256521969994133475251061383379351784760399068404391837276793498029024457485285375855945720605458989854131353907048697610386127588871449826140590012338472487698534815170090658309669854646116240907193053895501804094052808240166081129758789008268740366768054608350869137321399047229821293174410906338036873195307530831673258821024186597869445350077604737076352367642612967288072655756716689007862814171482820402847648230540416207576900130256076222280917538484868153707087458684862220491619186215296417847325927686050501712730718909801525715491118544076960503974330235870244231403025146879158857497031448773982580345570534350745534387362833391544590739538866541478850060041135618808880562544868682079585684474587429977908656306140397423694373289600764064821996400787583274712488886265916156151367414907210236274435575503338602336112856617920432618266924930109878818951115843979827179047060083005772061949376651982850859808890452475772913480268930292512614667478405423362784882201553478005821325500601136201146069562154753475693710951072492322606610431157251688324612195176310799350271944908940295859001819757183976090090276103707787939739889452945746709479741531873325748868510397437362056951284673245152638823121166981622763480157304759035452294582914336363777476306413159333061275155046263950384013875260442955548985042707385080546141878218498349909248531645559073146184188059226705500898617715227702899977488526156941204131930002648852533923778027786627538435736360806146830860161631340316001944720378753402814729534309922850561867220305034338816653520500109056024757637223142035046145419768486238954685564809330498610203189554930839786561712048018238529890979749462753495509015752607372150643992495826722913497401910215723395251099322645413194219128457738847427542554415452200208475407548631497466615278408553596767945526421921189712905277228686806580668167606672328777226387884817004109836016582735078747784158877483235084614328240447366913950407977039777512245728012462101853864250116311024135483805637127801965340851528320293125508225676779807595313948181592659410222028882757299367030872027311928534470546218263132492594255278332596520578695078707250927225883978643199983202645563651079742098182456273505271737743169042703979354002064132062372238187747477640250519380863246923000083468117086846378586207331100119685373313732635239111790532504108245156192363546879162640393541586237277062656666972212213018010781913789190293509363285668088379772095436991449929382849722763311219440027600537653328417657034451440949375254764306581473737750048403982258794931663526419817616445878944960109620522358760301039961585656712145504310868595453446754805066874984727913953831819120943190221638993967768784935643501183600781959399701831397323239187536015367772532024282403488596261485331709145742555110395453065608923131621419505556262171114764324367306388192764482729790398104094285034799893849250281737733715357102716327787511986075096040602416254515109731089085132700001243398121641820108260813428657860047915527701693021472943066139357014320913653018678161855983266356408698562717834613846480608925823816951612285712069428892612269355238802689781819190335259475805597051455741314027856238479318937739493922544171699672162833573848854117846115968044604045991368632483979258863312229506619694116991220884506581318841934035623234819155145959369821195942510508873149291228733644687325857541850736435002373635731790870595550766523339807780086235927941699379070096185340683723218855694427743556695605614082855277820214089498837094840397739467798053901016852296614809936902223374051762967180875805430560266807096811175157683786255021080788121311960556572264531571425144754306332706097468149077855844953877806004677667628538251069758120344961366890323751679584542482194462293115496076776684517561750340142541781506722873418765480422597706559829819798434648764723984242342180883278398307491197452854035348625713123192956587047505340712666760769250149038420230148381390101611642229146453565845401357295572862783067093335175978490404976771299459348719535561570254964884048751913608472400454629901813075307696117601336028885064537184121875711004441190523954150847570217649906642312588558756702308239700538638466046416240949727835345723123933128435113387093468158854393085990604038559615843754668089283127784297177020489953075423538319857629882338154037343142209406797894134250047788366107402027088435794407697807374387918385837231214077059880130183329954628771595183871535006038947433473709424450748149866707206938348610796665528122274959527578424216733570792513587722624744786521307961202111678132698531442787817093270065581385904857175423886558660179520898239472784685813757437916571833668806780507268540669955890392749813070943288280791142256211694772239247220938387194323642023452124010551696986881784583901707738197351668423616266467262812226607876810375725292644911954432696066859861118912531646924144568910445761181835884690145843044445670290822740473472002302999479312280449464722662553817088903191395856196065866237757473966465521598543190424045972507659491356040827512128060040804590203592832296615542009768856822493974191602365650357187263119900311183913905349279961052576734991561830481914634973195167761486225196935464801515151946537031393440205934837044310434439207256522023989616186810419640642603366711797988451801672194762662142568986169910888514367359544018857041445944904714580613533430762734319041785292474876600978927916034316521053744273413272123910593763679326504715571776703655435545810708124156593080465157223707013531852132671811166883157556950167855234478843563076197169049359766994198352617596601018409981379912482290734024130976376359927614931878331464696894984546329699135498121876243649218570528879513061371467093701002586380203830169897155159268383857662981697927110316967910700308040842503970873617424817957788984544929419245588449022088207053546437516529684479300998499575733361587378665364241424242427717305742902134477377619166744219833474295245257162961618627006687675629897987929584761636300750305116484642171452373043064301732697665707264366050037555843912949707128649249054258275588974015840409056787200788804141584073633064623320117865954023126600426962147134408356411740910803031596344477104003089673617567844256773144481998952195214819330557979901700226812441674699883439035402656307075886532296779131985435479069671854316417292157520393078277945189506108402614002009338059071302927016061875022988559586064562013289080393119026573308585662262146896394355589202697528047532092351439088613995705589669665043675669853402029563565801505089288703253206253934537782724017090894463841866222776961351047665090195016921950861449345357930772271513508516161082464001539028338866839601387142275903623122710931360951371455670196295096797651155557958918220813109936897292038273943129908123243152237702412051990304317988158193459408921697440621503694724379079966819980055743759673819739774407490554948097088356932253301583466102376401723745136068033811872191361439566314741958742286220865244262719951084797700671813824522096823489816178053148725786591513015872490652382296136025776406193781435450292468256719968771620053876412652254953990372694013173469733067604161542098325036051913671842739362376445137066050672417435237469374230049801034001734252087145898864430383700056187857139235389608641194383311316365417300180635803672787794301720420076415556051937047429059526433405646237617564846344554287566163168987844098000108975148264447578248621119237768993082295934497776725191186622169318489547123046758033476275174298285969145575479239166798593243434348526443598854104376489552311446363387089941753280037036989728506983138577911284872468997510871026175777130185035900796302065334274949153894166895761613715076020078344800898768837325125748799420097333091196783566231203982055407920316689916730316089923602759611997337039346923703728201756201974398957615540574418852590072236981270013589163052240901128429519478371194717663530187025322470713902968851468567688914283260516524248325603612885109043940301943514047663762928420354884271382260817806970579290970010702004928206693594376656875357669055595769822844696593824213032225928941131760240794024380918196682658760855044659853347889425784967981564536627420862822692991193207849055580367654866036471961166376469339583347146207079531968728042741438022634799107449818103956488108105333388702633421882595952692298399266323129330261108030033793493929152212294159051143159685921816605255349278419818912037877344759719158093700052423047078283701685872733864732917768283588870843047263896939414433811889318669293298808652690332420048872801529711316286937224535203593429526678018983036266311083256888027129475685747779491692224288222278223199977603024571610620573025143469711015775967177120013995714675657105209939509237928410137515561825767595276467938767482775833695765748312606055641447442443745685485308563839439661931465551685910946374494597789774770149917202313133698048990722529823030322101208477910126126514130061226718920978870518070638212549872111543335060563272115660724534560121850265118114956345287191701623570935269860332603778290258525459388537678913360991720136494453803232851127893528104933086724787895529796416023676841740900849986297316342875520905795855334648611136960082160678706146892144616449573097347999342270863178658293715043824798269240273142990834164039134781291033039796035332104644231162215351847377430939886062324644687654187052273359498359187262304445774543613473238286271374184958252927802347112612367463025057592132373416631831808538742261463304454919235369525502263180777669871011247218922153219199683126618086844977307078780311837064530410431420021046349135386112549417653655570551657220128027847368357544234092092149238049698858948570692493410179474034743655634142848306490393643149425599171997958939989367901369626689699611704005540390434243611615570807941829885491212575124022416321830280058729159246830098770592279266999923087388585852409701288141303795680798581903412245406748789560943137856960567625792672763821956159054409833879169299585152148003540895884273821085136289647641103304943077542974599477605008610800219758201655252360364457512608153642469228140674393649129065946035549084505740884913417365377656728185363106119133842206224872720664419795509003070415886966397883483287531570459491230113647660763897703528638778041216003763790673112037630939755138448719585197573340100753010116280285337496911882606583333874105590687678139975425251314855903437764318160166734511704171206480096683699058929305964938800553868628613721630341988012884651015282318605272974118977972937476464530576028418351531954206689760481989130231721393163715698083693237371812891881323928151657060942546450671056185409952146282832817412739563851003708720673849794124448059416817144953426781970047954487490928380160461756545651329551198823867515405726313811921245554855750254827895329849467914289417825591640055397389744645027291189804573432477896345198090273350838402667307653793691445736558783294575860419501231132679477080510124263034666829554411808213582156004223233578652679450521165418961040397122003755723727697119787063063640987670177806779731280281503584201359150208235063036402992712923449833779141884880793301241673441611018755846771991907219610004817745161866057027434229063217358286705897514025361324731779047354356668548621440105172580566515964884699723702872278263039853889705695540791377824137178848221520388085162206708952941051616437730455628378621662380571493084731093798335422916638868473993420854020436491224167268243355512019895650463353180107995098652254626171488517124883597068141220356079846174149140073122686243587926235158310508090559312438407251755720198959779167269652332707759661105017341628934576880343543464124600443323037269356895023834614246099981505378997896312253935216999165489026353258262643141329361684253745419226301416951413251591610238355480257065314946299460339352770291471648335669955221455573047741031840432025224252246731382842768386477309235911219743714508326196715100850899886574282563384823553723855385352312132032018150260473750503058676455691275970671534109335545375681554275846165152302902230830217390761804312116515751307555895181164074103287789671854961942516897937127974591829344591202812701933785697686291888183662005828717360243638836459201253496612849392675732369660121308509594836249537048420841594544404343577842337443674706827902236562787980212819135347183428026314500253208422092162634394316293858241123693952838599318795731952008418062456041856723977146753242694751023943608412724965736323591152876422135233262901322144621756078673892232286246933706951659619517646128129574509815116242220170739774569517601938526793962724556635593033889772669514204579816000086249350054768850901606872726741865903875658099749447008984704933769996275710485643433106814555474086669934045275560233861513790234560147377672620074734329213032146855754084179090906845801648464776600100569245501196936473303089203872264547957323116162965260525289785921617315590391300971743584763445912085223825164023729804292657623529262236226136320595069449530801377107749797925290623712008621020256498553460533456523500194943616629030645788827942889797752922892899654809202772135807183526995794050591720565413934371031503639156531260683845849400430344411700703727941422811218239871561619805819563751026618778930863074931209067011878374125352051383028197228412558136287990248034582753906315334692541793961343412438922078008674481065718707110958999368227022629619923543849030599310505583422133411537012523632694423605191139957954214285967085002796117838204018104845644727105405143029492598083858396470611056215004661570321541022651690637272755764301954819010087060782854827079826513588519738362763069859063997217000204138574818207196060800131705206315381859479632392821976189380321721169868464329396569374561080862374914013005511193267639786352220235484545846711764382802357520773876934095857113363886297441048510104628172370189391471067358637145839851257718322692584947427064385643651981887413354300921120370171078582073053049002544056872685232450511525213936262797337332022237590163844946663794746053612368277823658545957333591634790462676745414391107442878540528217513136222539501078284185499040780802329765033620992523485328880852436932670976744590310164753753574489076193457677050450538179470095629159342410158451910841448870688936364392963868372281988182257563567440476259917022608597473129832857856140698184173848212788677361646250523310078688049846753754084694505827801988455313938136633056452827274012564692139013082627397940055492036550663994278510068296380083112524197671794655493554768427026409955035339483464131805716249784369422830178538566011845387661044959408655609736840356913594271626681208424774859068622912529301530671468715005794397848159116985258998648293057982728441896464886338808521792319740917770780741764276039553708987728195845782495205797965310329441129992251266402205265695150109992378244716366849184556513651870031914047534760323963494537548586092455881877333670767193178654243906867270370708172292228117644858088520856186482957726859602153650612333325145891548350076448492635052056532595285075216519565702971396722494904097258174743214802075490073501369898025502371944677903208352497137295963449981542162828985403477630136168526273768773403802899923628243226415601356245377661279182634331842197107504714347163889424520446825421572665548415031250220791768664906556555317795644515332207842977540212135414359306256781993022866204928788856401862498186509990594650224111290160127964144613101185650169461753228882625657880187484433745926282518774853977840219083054942629497386594354637942848026430968402050966794968696528473936341535621481802334621304754907632576197292923425777867468931910803317947928549353679796198940868261503600720509624337417416458452135322584072479568163031343957945259007790197242362740865985522756937306734882907880214341456239316972720630115049095628538079161275001177458588103888929556752851669124798456602678441329111778111039608479684061988403726718335384025126059153988979374566560445319535737959620833725636807443307146508754103350025109703747400502045827198974289780510312739062253589483619167571276807897908898250342832525122771044227378770860484121472781632334883233702873279338932511962721811140986421458939557372458784254167399840067124232143280238147858448460102843298925240161094624427251843949695090802746177418213131424571559797294418957821717720060820516347473017772900998800535691825386257928946080016936161516455650571001510999131356393376646594893128350673356976156523752940598367439763213926801624090450812777427006642289717600589264342945202431390806913748054820732431333215371452723657236863181351598865748649759932261843654716637918668125387857323331958527797736553433376574244581922177962539401813018483571396041170623257260516903688424726999012180194261242755762813003093976529470358759602823205852531637043635241545955144496837203818676198184110747327163094050437473828111239651403152355992131671329840542499306654583440555402886911324940308985274741745776317656606672959070782295669394587433845119196096136424367506616436318181088033248120976057355186458433352784965554857175497910538036064030958660428706599018358301748445751503932601691213852244512905462934127925412127555918966460634926150784874920158254190144383693074785447284075456873338271497793599141380626931391843673382035398261611188962839575461654017719009523987558723694967408886033885781436812004415429571741357187148463400528539329935335313745126676430410704924338873051943234329226178051868498528540185230226668895644549979156229051598520358644513515186087818350060627402841841738511469807327036622120520231417382498013249143117279150680110263285653786378117252434604378697476584120935573960504567633030926506478296627006178474143298981830193347132679092635157948659197914246355229892203028364149888011682633701421686083527341933111388937301806984216502785169278851999683811559457826172372206663968490453088175512711205936217110747720791699679586043798577339021606859200107322154508954491424733657406986785494105123440660128927073427774615626406579853203259204875725561679130215818713806238909612498627682599534264010157540378166488423345613749924566812771553253431427927160126103665709058085901108715461819008330287144035379782775577808805958108696740314902067871394227301016794979208244687800274870775376629754222542858730073499452231895188126290159131317221632976516493509025494689588394364223888155113404468399663273216664666958134504464773470797409008337718127279112001509459061355445832869639378516082466677031523779441618306355180943064714039397715706339951915442540325668312197397842396216733893328211922953474582561750332062529496221463489416254376659550802551687758281720324801424711491376780242593806947187675854486122179367333967457983344751579773073721823205167252307596177271297844517107148983238348881875363813532209262316665250196365306925261864303341861225219742598987887962683718356740481676000427859772964597614426380128065843924527991354769493698367557880313793134811015407124901558961215652724276969834325116619681008825767880727249846730240584774618042905967286768254211768975072529639603973145332419571509908569649013517821322934412538448565850975439273444581263649761964353270808553319202514169218275039589235959000548886952414263220720564272745572825630988482545828177327470533944925393045469594571121316852757037050036913371219153842797507441338392558101393334203316092493409463980569559998736442064224145171277173544448192805360398439779346618084677623108783796844547287030971398530401823619031817017550834828527148620655161778797174434044242277458666865203525776762602594749292588230835132044709209282728094531779025397009045642451997772959420198967183236261752939182761490878400200461205949421901217686945546485069406957054992413370732921737506244071080340446090424341264074514571443299733431698801319696922827739734139947820277332321668976613068402422573499956201980655868348987554255699155723235683474638761643489891330361787771121230643569354707921615302199060451020255526221564074759405602804439334692863390815414421211649440545779459167178855721475268984918494694967023101939251782791394073923234275437416338755648231144053015625655260017390630713510378775582235423976011970204391610110594317061919676608620904286584346448002668546495353120454617440348043621391708306103432564375305255643938819527479003732439386481834847413023247335827618059863968303956665051276739341626307593121705181882045208031295657038735034877383663124481363772520536137049241475809436343302457121919806671361205803254856966894782736287907443837669256130624091150574143532308289755400838585062183065501857629779356893623436960284841170730407797441587278344878847847424425470521807845845105876140475365464492872905093673407281500317958692638907166353136768288795424924881404832670041286539967852365804367338756218230920579063162418282320488582722824212940371497465521428049059493132095980766534259410915210575934259175857114031499354907005482138118701229998712133364596865519263540373505503819498379930564705888932584891935312257650787296269770372084247511233360491926492934305119672325145627956780004338486279900760302234158113634204329339719840722052259942680126581513943765773962156276595823382416055917191897303757515583273278375902999232608381383998069164173591491853216736394653421570776293632852323888935042130181751735639986771462390617011209584507096549419436052304521193370319159928264500175614377215179245068564779305035798691169271608426963681067340069161875662827367779301725252801437528223682578880569389555906542528603558132481537122715002175653942358940957741195056557305627333450480579575996612876611372549650646251730397103375090934254161584382757860688275319109530352062394970732771940081863197100330531091631285679681154441476574000040159268971227968341917153737828748630909577009201568969092599858411597612125755731045816640439050850080393398163137977229201860113450741679580687679717443624273305721639064388430721195532238484036068258046050406369484852645660872490278633975472222788923921160675090118507441200146202415563831272756823766666890508152336693355504882942164280940289925809134381365463034322955822441115637301930313912592293699263777146192123505191054809441098833251463446769590869390744032443644053664018206652521851338457821506342345856009595584171355136993853139342912141155437943692361608202264469415016248585324895542691787336930126267539025988107885669883484905378995992384905682703518733942356752353919156859124735340551847680932219713445278927924497273376044773273257143855561760555804117714610737195192838781052772111829823404832572320064400593288708671765398802007598111764491190355084050168666922561785843466773270337258566370072495827943752439270374007768050323589062730690282725763472663600946233535951958414981557760087828599915725927304660402999804407979346025180474862970580312907340787470380680708158076984446713350262673398963415400114079332190221814453212795185009197712873553385225374155818496825895304752855963226310317124368135985137890719345793887986949744618733286911203080819004598743141978521809485818373082987718151445003011641492527577530174871799749681707370080977626115492612036167653224853190068056210562269458257503629520696735459799885618566685093796865641924420671445935854048651055307569309227767733648891527189088301057859952288774059841618044347376595733389516753657541187297376056022560950914950046620568232039866847589139265670677641339046493010840255057228030240057129797368300988677876003611528943502540860365668289267241899260920096411080830706363930438910646783666846681935292725464560610511570063032393658397520362511257984506330031431531054712194846591742700027508809984681969503766731443974825307750066595933281981649506578777620529980824306786509685210070765341852802515766861386018195096889060337059358985193604725131530145473116337614296120908428074048743526933670700390727816050045213040521879740381007500809769194305800822892100550211738315091944374959928947190883781743245028630714998981791961712855811990030224826753636040861479472786739901334635658041318776433598309202872178936059738583428348467679102880819031012841233497112587963236334408424312678307175698489606145590840961959987834518517286517977868915168187762413185268993153378567902671072509104599561155406919682200788884677280185084379746980331692146377358203609477036839548592371075667097175961942547089732023834655875474209541311458403625001322951023238310270558355507798295682055088699400693619663538103983608459490138601571964459040534756992175386284658842178772113369239456885922184943197919037431201949253474985031966087108293556163512277204219017482280552364021996981036477080647875041052345805678847197825728537452566117723584816506384062670517477495774451705600244391644017810800392690149551001582138891927234963446808351305433877385778625469105296419464348553067499109684827766863916427198155816680082283689179531331000620364170729484005633531421532474426655792153556154881830446522091001083545818739612515544571791511447946187688685112137369611387186819569607509328125351937798272244783221815174780428858109638080985292935177200308561439632246535519046300488472256180782087111837769454371103203546957610881672039660825691285109261695574819263572014467954744828673586445128772190151447976702456211469930535165228398027479417424120632568344677577718938007611419727488699870959940549787162166762132057049582017049203975866415242235584017995045919460028966779916917489486129161184898734298939449334752927822577970538374625698192613966292937414007408241679070257428767830492334010951970292477961724528129202877743817146483567557942831177601935195710108491245289158786879893986561591739033234598428640533432969260199802919941363509004855859411952680931443664827153819526922394636458215602597476837834228113945058032641591253669224395307116356175114293954679735360060549600655048005810749460032069743806947511635042882356330614011044731308883780510878420363917185355387962442236054737144202169284282656085726424431634955055718286312467355922551127602775182007806197426855088104094912249888939457507359138191502212479142977019370495364817838189440938482910562410691276513063357123260373826274318297622976124826675784519400951962032325501806835254460015201436303263378705021913851864217925205138250454450441540352035721677621835879326109475104706904100075347144387543759425820174457066485777239356205151914987544697626628087238457608965847235707751738290523439913068931130966323784789434060503672481205088586525530324920300234947854249182715616539528627111996514823806494623819712431822645666715625789639490114085549546945211652009055686038497271601665195579524462059467045667785337290172581799393577704129742372107462000953754295756182636681135192615088369991970573543090250451412827027363451583597043804338393462732661422759680065111814803097817239612458900551388826209054771595663672795714679938785435090004628608837689670460503876982070626860243627459688172399791767544583875463978004770303057258857772933205740496629937475303860609288866664811876488726511263332718915007304588236979801285471499399305120361537891942465532443297031545659748187664214899253723155610271848464018032007784300270811151781788027076643090786335107265403713717313334061801758642573591109744172705347274526303379637533905406640360806389647283733614421377722203601803287591893165995036786738512590311678530362591764450906694960660528578687642953110628579174144748169382147016232700959502809897987918618888789091503649759232110401304113441223283290743896864770410749072004114607630052641913451238999629788644676145887292688911205620405963870609225326654663207000918642879519728430229818851608943260644639530301651879669802799444980807977301057817461479954364365735485067995668883792874920095056863555228838041867297335197780681065202748441568582074562136076079112984100794116725908269303169851616723524406828924360865693743315441672296549544480387606859187505097969123928309272747464195813841587195786064385336709858335113272857543179515600559254778837328740184575120810710145422140230530828895017401441935870316989275548074175768042001817274436234232368857170721161911870084362077304279002012564806353429733998876664349534309135997393640297453188081108601021631807770642249557165557983210397006276241937804937625071307612683741676696309273444948926842877350586798286475761863858521412424358895988180536626603624806479416606229483628932798170453333051701407563214300918070246363320202366586598791763786299852824084611821155189717655996003167845951617486408693980629157630546603914176844912922360103048385620989983923597895761344010470224819081178201437986942753176679519732097531977723489950178603578024337732575734272812339027519364384069113949568631907205154095186666063345935658130599949466314966059301743671607005015530228873404418285946125476737861290022962484584366651715914819802070305795726679863792670413486250106387268867193032582581465423814663075596653279479189062017676932876588472583837066373118265229354103560932194848477263110715091218425101040387502366847071903255737229554511775169173019113081287706570114546616949674779725648028837530438721779631373486197624105771386727555326917075541395169081573973016218480934837717081179644226277623062318415513756781291599012719061813224390071190147058483762054266277895149447617824821125458742065792604760414929026028974864433616264880221224824370690619876307759352604825041464392095736595435793135654353292284483192056717764204547859062543639223360419817980878401027864149557452481625028290830953548429508876829481776044748314530521582829851413761080302785305021047872024444500107745635080392491447319231823529109999932683985330610044216914329976084522420233137751530495506738389420580212266916987061720894984751628961599588096901062269857453146615972366648354643281244783452804408999915531325078149456599684222001090005648695754882621159180156658098979329164629694872380408988416693447287995578268307884486027611915062076849903341629068303346963150568113804440487386328200683421329588601307103511311272194952149874365885322086795722776340539004011295602137678017736873968411109935285550992560281189093391730483707640090183313768167520257951082623673092196046058970257557381415886787177281249722037721488532388075147752017452336871331836730317137597797777105159771997270757987663395357649768981226297127061719756316097945383744118026784915971464748180388178914596477994637821309496562580332550843938756114917073424601478963960689582484785751196571868024908233712165156808893997770472519027504240990359952220970870031212899024494264218516492543268038818357713042485240125930589930463391236307768360852672630876076397209759950722536806294175877057996118004642831321931287670138385180361087999129435864273827261467835041795008955539919643532043837548288182427889281393451416610843480205307907497784509060628523893067038463001721390747048781710211135589706412867980741161496793105736747985642894163883129776775159644855717910989352364153752439988188224321978948574249110346362241759799235226006199281363884831168923772343935128180098269847732024822490244662912537231680387567849218943311503599181031140727691478940683065905144343097889715607556733244763457477071369267923091935850523124632936682598738989922522566431094950470611930854116263705813050600594287830384226793795622518991746940612580849155122509743228192928431079388659543936378262444579569897827906246243294012338290667527145915966831553635804092282033382906942515294226630197364253851932841838561930171355780468831567712891758717758219350403707893873473814862676022580371246229186557908747569696325834879634288533885534535560266112968017573507232910007057337069624833141619273516778123153300633837850130032368354980917686843116890063456871424299957188363184979457008245841595253657587284243315459815159779148994097584819206180190460859393733403932156426306564694943662987719035860300777508934581718949012641312630754821096023665303452609857708102468423751860036588505947208890842726406701450621827129322543124519431140000108975984547157164258222020612608661914339363049077605442093187150969293902500469234462334245219095937184006451047347026142066489391854747196106428554439967182088706742782445999793911218311093353858994546961206362922813723588738993188348261149152583422426630715527901562647757476750445494658407551683318604370394466302406009612900778219222859030418130633840377459280302584032462363685330124051258215129731803587678149538789789180625430761693335041692140090585294339309549681309398363565505248076084717452767140496724224180324887005782265538045373431111607885851319302597390456497708323262414942133750382168629461036029831756394091782898655102927671165608152760714194099850619706372522386653408782780307171270736153772758399714131770721957257421973445937317298326022503509681938571338092912244543292844718943660654645968255233671300508949500959157691933886693738484494329453045120266356342417376068964477528405425704407682088004240637800727813597548535413504649932531849800323145920382760444292378227211712232594432161750163266502907473325654769043448956692432979844382202756656086815437655635841978861144041049981397160746642507997718263829190677665643663802944437919445043466255695765708681275831563060267376869129018607256146708056896547525999144604898829846357094033004923361886198731777910651504091980379439549834843407813505123618851967619154965831905197739450121691375648650335414898845967352823002797202988752776558833999314079604433854541306970645520313177148955420457841909361324461686149676366886536009057141255723732073951403453029774352054132111126538675263654083943017616527692581624953329039865135192049565980859893744980551427687296743249449341895229126129316820603849801266031611417762319435287354586046543586427218745093141227991873315866544086932362136126448517552745618166935073781303259789713236696379223137232794103320138042011508362047272705168507350791951709580963658778418941188902529048256962169265719214102391334240161763192644346452482574016541473933818207752469373593916843068138514836476817079287039698109272523062971789363741864176574619025426438246248320258457596979577844341521998589399906114025938554189634481668171161528244935342900715094373233203936010816411192565554139189499276629364890000370382865852347128521943842940453071482264018816614322628395495722893276623466778870552397181083454720352862338279708664141563234775625004925317499060843674329621058768584462284859490873590311938340424496040398083267268745815868495263846219767163591801436131056234765881535899442214809863328679575112454634698904566486190020263837274308325753129313630493588515900759694846206044223490411035061865848063853284168373971457866243228305281193597199866936084024441615455538869883620667660191021095609761574088265864297163346506384937622022155269783356035130973397795312785198068799069841476187238363278819818925241777331502224901171305242869055110745263584216682881532415897593229102185300951886923623774961321026115711426768309312829720431396965430000602295547211179897106919258166677787500387241063109331689596351684195872843010141733257153702731814087540464631830914496869534046959013556805106466659204418405665237319458198077938722869793856954291161940341045536607566069982948053501280901391195663963478453267749368554130988640145982127183207081539746785794354167045562092065796808625776848660266262695948840672134448311808141301037655297934438369770063466671901714155936174066202117887446094971702154198296719244036119578477166787176568413268371112565975992003137621429176676200851343948526746772471688957232164325969498743782122459846552247317346241080940164816579040466414132338149213161475923729605979395298948438545250232910558329273863094250221968873817742405159549208500318246612295638311636575634492848735046538167164384425526903733441047035174688544264747518173302945294015788831967752300300902146686388808329963386806171811519842266845195914704915209690717898333316254609531412401002420672529795984981746437759468474904844844957172006358309113490174760828820976207158860463228079112757763509642742816297250312212490304832146108098671109794874736736295662177134803099089082516858501039193601819807171082212281284589150553239601483425964747628226684884903755450923034582934485673525279861725783653815000697024837438557964016486163403859371352615726692263516179662132801209177766200298469601621357959466219156092875586591901048719756480437920395992191420885930172061570326389068747719159633092078448293240612279668295025132344443349796066331714727414988750243809009423908389425833052863775190172231347579724177717890981174067555330529524506070882177882272991753433559417470047111545144529579817775467958653434109855425962688265078259407493705362843651495388057370560899339090254901290419359792222594722457065087870783763636075982052080811433675648435269622223245519126850039784035661560961018807614229668451722592858437896169778973451728865042394476357377403284088698610599318502285131278687002747986994187863516288261048293289321893079541086021137052643752663317164710386962135579260282965171082237341704233637906886177044182083574209050178786666052316845274033199238371895999360690817023707568049236959462047797288198063138122726246826377300338603421157159430238480926910462750137197463674558961258519959606349502086508394774856591349736797770224423830022378155496624117345217350661992477725751035228299761444269710317576314597335259523102233164878466259500861427266153044654717738086360291192488054536793076359167510321557690275157985281005036039207119319065071208182666678225519190333950648598772656833532425059672777308131367981260568886294294049237712726240900990602870826689425930214034834212983991488848717408065286042824660357129406815823003965982853568841028019265652645641298861069318089308858243058207830942584564395654405013677717572908468025503523737624478453929408567108275598624100233094550414694597356750935275887815983861260223671648410201341650037500739424976158979678791934594040845270582232944046627321400526855741484833526745111826687713557516195678157679308353586972476267928546227106653570185112907990334802173562836156978799657992648582445929374312038705423223123857680597227300663595460810032040192674772390023871643764485972423865708467445962983427939154608814247905289979672885324875470355047559232786493040373313522321865312846049467712292144004746177890911407082588876408998845155254291721893752622381057966470479025124129530750862098888292095840443222640649944464091406916432567866882492356059108548469008505274352819055585498958087591735102752640922642790849055202950255513313677740379261826770742974961164499468872400536347864620514723132855371093618448669271010616866371644557473974384232345138854981336937692336172821059539576886936777929234413634609939268265551624544944317520328361019758704485133110146387976177895301314490299521833342778023470435422205493295109381207592528646571728501254427238421026932144626841476180903565356398628634295654641577485843690763365552033393126749172544961154975459769853337986156713671772217355840908755730926538331478489338857820894381865917244690832137638555480140482332871959343824721792980120874216568909021763610141083455458776174014108757174931785304788824411437869916890969203398542550839301689941960071059190225045503116029227510757747280332606777949090446972206702398292701163412108661822834581715689706029508899850803612871448385285436564948057284302918999974445933691542340362446286312144443926176668612349646406610955641611177785921766995024218993545099450166799109690075740575208906803137516402740605915390107648933211722370883128085290447573121560059172738600940936684535556386487097800480786712320082547931047906025536217072517079531930233260691769015895657042965399750028639653349411304206779274645394065926856021004543524520132617660732593303423231549092641440265250344705011362686965246837499087898585025649134852559534365542881518445880173805537841441119160750437394056446038336251387674059683783947255531890049669870455688729327212581423730261589330927618063170208686805368106630536694638702181059044231967006556386626508587866575902792850679731696235209383426944951803724362165548282018912324969625502436150328107759014674257184999825893335575980881767740419093951396683314865073196047073064327562367190654907481603465765769119202544640030241665369170867726627106725788699756095174436798778736743028393202962630996745203528649681293773937962971722318845135100576958744380273923261722061452559997692993001248469378767383305268091526284296677874073986494199149484225166479348990816490745058265445127757489602070191818403749770580751258375538921153010053635905215497493389263699844382218064601661789730654603951869117203934213081548453086735623512295571528652353696296520834797961381558272984653654232975353043434290224516244799675367977599903234202897269631045544222665904792107017447374263061029869139454026769403774377880391198870795323690276044881254308836509434228462188898569995053502185693860124444295296789574683021635241857366529194276731613581632285988447971842387219758092431277546177656568680098166186800592278077864670285417555442937030667744674090607675593161597719122070701639094434026514082435644887769494858836953619633449627013056526541273126359415905430369496552315526937840177765297553573162229735626104161455122486889538384899689963554278759372859599038348831918593146659616075225396736894360054935331265578086169791929857526154320247062539240449594295379231042545891144289770359241331290256412535830266912605685757916896522886715813381421474757413020366098166157290324065547432419405578177561893300249296606471799185337271618258241692954409627177987960862805177204841963225379836212800370105821548305562534781145207904941212292605919606965618040925817114032245428018151595224763673039527014854508259440030456723534809702638273079660776994611455697757168073366649520183957577319953996504437862565896542944606423923311624341907907850591463113781297933363835616174309537406225317598370554957095920919625753280925667133331575112760948566157171502918347644894097025830245540774731859602108028746880073390890372497164284733089770886212224530560800137529993690514242492485053663404254923953703339295693379313279776105950729928385740754759805537226423711655996443065275949970582552096991529903024789444570505579208520828224964479673126836806729175047636034704148170132925653488573380945044061756885797100892555610521551247221008076275294959245628446470680435962716969152921494931781770174500620174157147747828406369347701721799882928954348721115591658962894413977180825519610932741047159059283389587558544415422623931897357911921203423643793314429086146653926021454408125930031323938240274750649961143340648231480052436598592209100500712380041464958514504576986684040976607391146061799792242591235142612274344100695742660293363349231047753632618054195794080066755374476670480896162748035098030251100256782629649738197403974045475728471698333201067906597739618060499430905116489536508444047145729937628545874650833524375933014391023079565330632044697368955850823052119313190944376203898857139514017308930676994722595952674896839828751896837109979241327633755469049305389893809105516685523601161358162464959533650799575956051611091788504104908709502691411677277453646605968725418180120292297800907153297709950242099950530506892330834846658521364210183447343994073853378637951407362650334285297800251781584353452304016522080888510174651987029620788278185881507499220827527033003361801479217736547019941588179903459998716291596589327399296026909630932286559247166770055095541904840803212772175397042089778316205697286890651861890293254956322408338187817507905535045437473890877384640652696771117789689328211736833799126632808835509437705455374160396002409633315731856181721144429042434178104366581452615850314765848036394486536220235705518036325852165027914365835078962434170858109354284528948678403286436048907043634403146200271225530888324299062408179235813037272036331023602259619050761381589662649070679245079819152872966355514320603890095603566018264669251080756805672849408392867588766457258562088814478279327575753347842640799400245660919252236790014073069839129814316447919935927928561006513396669599774370875499761033676884676354105044124971976274267579572444393652586442715300971974923624454631391722823875388147759993551721335770759671365385361207394658644375550786832798269371537796149328090166000931048953426370849147785876577030661416364609111697544325263896328095566634958784336245012173918269484277337466547773122404420723339655294245160401764748651890417095494075946553865070733232975807419241805596995295719745730859772261022221890480005213662780020242540036345703141994587369314632283257951395134985404650791590207152497212972559434439137806359396997638385448413120963372385926686888477334208445242171294122998424928527263001847919609582689039878574827213593864143719739158810695681688128781587402132807491147393067318996939696743730062607693275990340006904216802479148211156130861960021566957266615653989395979216928476870631129012181744830497515923847955590151505142502033781854372046036000260469329388800926992595297957556879981094727720868303564843407349688133992317744452301496450319362195242944885498961257669293249729598329307200662432919130756907403995988092813744733471428903814937489242873867112059436401221817687344080085672370815961532477733864417044232510395053448690886202844479734636100228381641912026793522352645315348159366374756414193251333624752694762216356642961702680853300583610683928459703912928428316806829420195463578783444137382047849209558211827618317507395683055751435182598040714307368200319244753773316807363061670444818469237170178727299852609966259839500881702306370102489649756289137530724485300652061172262237136585163539163498205390928877874660006476664598238078323299957199952887755777805044021328809390852663731628225152078705018533980243816430968825429705213015643307173362468026023358383879359440672035527977244689233253076586388250517087081132725544080485485592784646024895926071478366611499144186316390764609417731161244634637697257456252857877951226073604983941880413176991090823874918483650371453115503106320792446866356557370032845105732295995584311746083954680899779971258399410846904535543021746381314454857308250985549820311515662320271621759950255528112359385345498428917518854063430311082447945408077213551452267741236391011695846829279591008193319036640082020256219265444830703309016783301285356164241991102426427215725605048251366147468617637641597283353337877687455637874516817742830117597443816129927773011165615949157562522670099975068010018554440249505571489845935152982267074252856309395876180625747689417373932163817544799269136777677115040917127565249088966660735456705384666359807590905550916128384932058705926450812304216511937479721695299693781262038730322459228889528023916627376743684232589365393231797628817345112222430207394376016091908653670389380860826760145866283678333145295809520953195322518507477380070597606197770802933433501100867904526095668571920657466845090833564313362084133339343514198490008183217333414776037219522497377633836661554292826115874070232389696652339334392685451869148290172178545829311186703515913923485010351769133820399648424879647302107264398655221756905011977868467063206576445840547902058267794561766942636786736466614231347640352535254102144609006646956041932540248732791749535768829435268691683470089925674810463609097206033929112731513525929515166537276615922433590694425164935850148615066706472162252171770720228772947872268443153566868177475347352187526455237705085199270365753262148999904739028800626930959107985613793209969537477557968143718182319854896526005449977643874402854716195542493337282194500417400821526746408248267408625701124429186647945261055795047014999983733008982053300883661057091661835771769977980846366700444082656811535928133985776380402502578952103487619190386883421374782613498525868020895505340674269147665374216241399474281589199620065117005553124213555461965462426492930452373688980456083003368755869373174080124049888309434985771298150906184169894059137496233842704095715534335867075184817405006237701531238526795144662865877483783996182163209615043984146831184449368447005618299879642511397007991109867828190259846027646700565543953167405700513337538160321756831673614655401498591399955171617838600722661940729630062093685306383478946010071025949150808988570914186908605265491306280637458406963431695256074424135354644274376565090923194746819680219385541803454963481991408919712078705045685039968661420065060805834256835591035006245885903612860934574198228592465944363319585987398197589681328159779139583201876721924477947409134589766920656701859477889172343814804052093810802548072191448277631204910239057012411341730047305520268736229194227113802795549465588151999984942632585383356574615758776704021267378695589744454619165837229211222612104156172048533530535185723260240923427370090595581669457493226087369545042267060317661237870376282866780178995350516037746096183799573821432462919594384925054078277321298926342704601667436049035767522257557074422298672894092065885459588756838936900485063011569297760777797230144272164461155454703575109874766827310737540366492389277106501649013860932417830557520803543714073405682355890948791227023854266213216896402887773922516801073915849651124395662776025576101256132186635601395548816124120558254967372295956746636669369760829039339467925276151456599770789401300658787560044207221848499927352727515121662081122195628311761330612262375618634226258954996396934846884016349913789593464311199145759841423272291892602786002141098737025101910295517591295297815369870727932736976071695560216066446260062492370034631082207879441605819236806318290617379837652198315122299217020536594182607183175255292361297580282753187428061326212163841892992651297114500878379306191625940351885630190134856670385550106303577316945882896157728137923835014080362248554787206976808653006014650000371348281872044249055930265518964218830619349951470136716455032780542000040639844110715744204809113607165267846267578665745689770291278552291001475666337059771399546437162041478951203906202240154235127995161838513945461466563256172419896621534987944114771180351727885227428964512533246487427256655002436713531259373182707770930611288914046280537871654057442481763088425414034475916365093074559214041181047751120316649008781834886587784084817114697026399515210499242322615619429286979940931588914172075009959324042928510636352846056204326339556594478632580485686733097494855791029367741197007228258280642978031838861299194118626496957533221516384168286583944324570749206585182487452469636124090184555125162111081774931377675702796601971586901543821516105846169122506162034133678129359145006716020895637414504718436120287378464204682084890546426083093105735340046132733270044282970947509661080938592823679275164390456097018333812086909189734401509567953826705475993129443738045398933323112088177558638719987270693478158269549626063028069554652840898446891302441904857812001984531323055664644321554553723815884065173898402589819375770175592528324297243143869986455926996957474233430787490952760798465476537690603720062052449794633282927037686978897066427053649008878841327753695835732155100713887989443932516596742011465598337164344815626104365172749895880732062723153787090664685605103289302823866017368173799119617896478430372849207270408308157325768486041172930104946685448876103824780554277216740913482537628395667276970430330775346347355797176918686624526103261397697411809585852819149814690915276132497448788431245978910822369539333217049578652002265097956737479388256327631881441692495440300188648505756386502761117782878555093350355005524224050931912764225416775480282065100289703636814417828502560308085062016728745093428308304763828457017246041744027010185643277520112477093779422017535500391269301051918707073526460810731690537529959694571830797295607984575656809612215289253248552774001239014560747179096945591588994774517228507585902720606414917783489675032941851384883383089691938341381981957616919223330799995764636047250908951246846098332748323381458269886500832088411669585325972860710247975260435307536350759079408822358032664068713823093250313819768918513725181105148600158767499968272474684662090758600878922771478793304690974612404842187859304881578683025037258726540339604440178023496291070959694547164217740428536473460486987377424245756788829390616140161710117680865985113665445798531660849920343789031227609242882019292199391703427397987539325648991204839475531863782984043352367833673377024721267191034204071924518557917771740500522241549966485186889971595492547815350865562695620029871735141078532521890661915218116135514654661240471907266313896286447627058070936695679100262032668966274120595563710063092008878051084082142617983219939658955182586986061141513269722413803824655412194568528761851192538781198514154580079970148328222141864059141393541153958685116526883232457167045113145949055555673271162723441481774091892508025048093485115177760961043415620560336851622066766871685371788203735602404639790595780726498867067474615885596658561703513194960497697006115553216305478139141104525020818427210779068077352557388533834152841154647811656623042711993971670486705078483395098291354074675561956329347381843043468386244978354961552023896274862876807401701200949846091838458409035034701218857242972925033383473917754713630190151108694474297578813648339230050803275445408298557628277787159262539832152742435555394339750856487760615273052702638622761228924278594541972678425882175297996939778008546465544934529708634652744005513304264009229585876916004908237909166308033092075849976552993437067435148164309017008800774220066832325566785714725190334264729656178574888636900065130362848996478191620954517670800125500847415079703700809547258915790203820240681907779793226616446452577727883587788219643127703961523077092525988217568587671251754218086895382412190983201953389103968167621066890530686310094294297830539954412855756404277868381022107169924925024505693935031110506988084007529375710903796580403545073865369678304789702512529327776523356846543992726911065095760478193016045345980985468822478085792915389236421538974466230082252157573550327287560336194587171075831009347965543382216078974874995497966595388825334960323971062896348747978663532741123380491421581269519659808682122576845204265880300782982253338086332186385150881762187512946404147463142043322015826915692460490788879293304062012404505198583209458345214567552376022122209331562942412841929262449766807696211916216910140927878068803372185284875049678767120443909074697148987484585549935845169730444472049231917656507544019937034231782161336093697075685416022521562943898292130102841882000235165210033675084038619339975599919703738456643250886156546578007268540641287202433007655556700495520461840702596268352358816069328256680938492626214678121556509572209382542516579876273547259921021957721842550568498636457484170880708929587656214735644776774663371167866778339879702189028819821445469076429568199573898837139243886869232311329726140670471799495842283993359673942374826815455301648808336319072993722033610575068298103420662041422904601544793288674713915374247441666777165305991895849659288941599148553530201145433688271924916339399371447276710092750864984956570935622148939634878238082045856583160078490515237286370461319873452533468510300207318872870748094046534587048134400500828792049949903740694280226323637431390338112534007002435734978924894702819844113950208464535192584546096959114947717068958090529097340099253354477411365474520988469142816347470600995289131535337996301206004747628534958814885756005804053322058379154615288358664793583119642912854886261157988257195607031799525972400459124169487740777395736605859780110944321393834110289785402736960309926858954992241348282771297286292443786883694899266882825101387907865322087529889707187776296716814330931939856476310663474298124103533137202825761411476227816025315300478647422576464089886479240593509743773929267171990502165972143906711951405757395617452112797816408892856171594454763088702331569928023116641635466379345631200276846311465823052262106770303674957605304521959604819011547952525781025905907538008097328930400584305896366012810385427839768263671728827474416241796878532849330834653168965935991903561638853347131814525028286710854369971938631123689396881343458552832860119440303019231005816841685889498569405625281509179038602116259465366100263684065002429159306821670165461277690168837757558035654185483885549597353913449946439233940572816164648064741133211217009489595313066199480024014570962563906372718054361507973304101715879897812761213672212586422221102843698251516036692213478650848412730513787347722365740768363358193637700819870875627108795583520752615461752760076977635871538236780937588595685672994115643734368299904235540675539375560948741680313086534234477963471596227492539180265873580370552087951628661767158499520118669492042304722799815025938916431576246017674708797494683307969817896676881566756819931538603857056153855212091949416678963885143767890396219852224351414289350742658653071965576454170389617067466223272703711293403779782775152192665874246883778681608515078367344145759461035170109478004710354804591644287946499755605790458857924744473681229961965651763754431273754880678848240875573552967243211828679189756345533262888484275092714005067544211820469892492759689603553982227149781866998757339149845343963171141386675503187360181614829663655860976478176605133151080675330040534934462748552538909551581436912808894893438098048940963472603032560305295948935237297507615739600325784171582060570167029302309709050750421326602939968242297163846858833876152503287532647789422429655680329555411508728577153649623211597120997257300178712811318851642340881707577822983760308330982017200777362429416353629294085345312817624209623522278160957685848558973818056477714384911400516829666567203999961645805857678305776106470570874479506238413210811496843512980053508868916820982155857961146876416367213001470108497008188365013567790441096395380817173475116414183787985507715535417552114911484033461442675871607429208541162815099775059691274746278877482485151578134037337735686404250501715440969145772992646527967994106806202283628381783546557138403203749953475843053849973526312485482350526596655670928731131579389321643681199663294107764407861548644864572831537711840390469491943241313296485105943230599073054026999405058446757775145060080673618880501039760400664820762379094226590302894912166938160708681890759186708697369858104113580847813047918928541068920908037126970367126064156610050709339561226816078258292332253288283054888422225077395266564140957451394542885215607128774670889493280709370224118914662458959055736006623312633088560482321890222791814970480803944729581844791067699861061353473823960351797786457582242247138652098930406707261100818689253268750044180968126683255111633272246842555804815191985934651896569173258700742503980780971706340848800052006963036482983843447199052681908228871583697719902556163208650270203161741803105850421740571247162233774437146461839029466355709781357232607378915883259602564226954925199052185732539959321141479857846365204852204613950838757226603320621127252810942247505345764190773043377267927469193960467580700159177520671470939409893793016569736493362851969123072841866848403376848966455662747239562429811036217873171485931295190669284933576806955616096434031946247332408451082008535775786088626322686814318459878693107738132871804409699267807884443394856598970878901535700066954575414905694735631934614654452556444967057686441820085958304063630624614963409944446078352420834945694456331414208600153995303637096335187719857997610171672253326605514893858410160872506263545066235657568541368368762145830421928381745320941752876733688756947974889173497628200797017654395189089860342656026295180538049425769435537285477108159900859404158800798462438110335381769299956557096553617562433491362055008290590316964105290616260093721655080283477380562660239912148578650177235562109848480191896433964074466845728039674100862319252829389293598222466297876829125297804269720127600031426509175654738435094675884128529470525990012505229057785298465095592195961251553208489948342725029341881971414972087591487837280227864467833813780990056890944485843204656208990697475849164391616645389501997802107801411873636563024841875888542865921885635481414680034524524519951155982017230026099553686586990434600110580406836397534391176807267492514144658046602878547249403182187492009070380961451988972937296496844577617317046722905983446407062811602700125205720265750835049953215839815928232121668371789534966445090638693245993826174270052626551078882291760095994267896766597618533340985697414162584299703927842801118139315973710042138730348610747105924985653682235933675503468159672708673646658192640110662266831419418967162053940167778698134792172371105436144714297320565625963302086056203190011189645344714488792374136315489975637003136586299045239309391924151628360643237135679624692368338819916695916533902600038253988003850856600744483587430556115875174285580132940952171002558429663175323261835072798313382552486719839750724238020116607808753038512450960486854787491358266651166281593901107700591832132789674318544996799885964109692034747014614038763767431424149999601831346293642240565972959828852605956767632685568729115160289505914235904337069368690111056070458598842828770978792018981404658944748398909631753176970655612384577871843503923920110837745478841202157598931160787778869485726901439044590268812882177305982588217909987934145450627425971128380587996639406921694004243303855616605555832398645570967662875342936911557594943240678689497087392638757211867507198031981417683835315324637439944786018679324561365949240235544918554340883783863914515343689674321158621367029036476625600708968376023215416681665364170719009086666750946113906621060377676669619556912768263750103645361228943000238178700045372774563134821752418534728995305734657308135283753249259993535543902252418061116052062664454008330484928904974981737405881191173423281030768692120388318155437885235872030028194555707524802919902009588495259458538862712610339810716317318092824455705353625939012850017257474960488995187115635756037744988470318405305991481090371812706112918635936157258305139953266859624440945337111272758428255077712777510104398354338656558712420102665052311217253165676441653532581124602334156611434626899078472022228635088317027942460712175467004696779857115032472600861440613501655566095822129426999080848107523178344244040626490524440829511315759518265376538005693891542535935862967499593372507445318290863357609892229027829558119072898650678536086256769564151004250776257186438473191735987103119694679137769142530759708347932697179229105054103844652530647913470154313881519578770486157238791350746494388615654350516311784846289245589732920002366064847860845464916268149779519622925491119077252530539906451350936138447006374155570725505488491619241623074838571126943612621405968230728069677532430950182700758138548671593156692565961248410753748700597183288872651637090203237240850294572586560102536425065785873145628509028852563794553023509912353122483121203307016274302095824530938380757893380324487921724931677003383662624296708324717352296055220500126267430270683876812681807915198352183069718203206516192176618201643752569247470786981147749006226146315650944152673180806800525552853402721899003523458706090931961222318786758907380961696586445302255213137007778669660531117202149126602017669606301749028584684112036395070517463017148178180354497918769756596161786042838207307987198464810290149837187514325643750061262932302410101034732486186511809581382207135775711455004142567956689911611801216373778060098107571363453658102725612280428754452200566157573177837166229512689858425515268128102103604845897049340618451339721915594211645608761042340298474002252366419984489500948613230546369711741587834069744116352991705441062634587273916271131907027424852696094405187723725571600302559454636321434235996850079782769710277658059889406222293371277587720542753230231357383358477225151714544117453174312162155242956707834648353008281437978108296431812996100008181848301089740702849682836838481356762844075362677470456536787641939806503392677638224718431120483492147595090903957393586387806946464787443772847464599510731823354268299386728660477756663745648843913281560292062671561288779055515796764501758137092085183472102674407624119849172102384683519889681166289274853149113948233508787357839661294519462058025624415395165115612849319346591488337479837617963808930258664120844084196156253179873353173321887598890375583178719665513983894053222984934421112076040308414738845723745035070630052359302241229872503079543146410356299263701728767846450484065496445900567032757844113984674308125890515423204904507599302079022014528205790882395183083075020293780251322133887270813715335491274805644602111035486948656145680258709998601967492386412293269840573028329103981109354493258465319607504134458234146377631414307932773723539555151259745041016392411475217387177071384222956624107132832083608176466600923309184648489291016407031190580570053151468160929093970138224724996893275249785138556291357062741837362160925443838492042141166184724277954185672682531748933694141138996496085199700068562541526975333226160051509982809667106015946273172952317687473072797750660535758988935460078792608495770348126854302953512512932530255285258024230444004304726553981100968302681839586278716254637344781516533306724141421936344924328010245933613852941968486636190343277483281418073777927934223542599971826449965918404564433973700739697514429965046936715647420670928999994271796023466037774925714111620563190491468752297662082229863120678028905531984626379646876868363099197456839738263691593775590341990236177852883501113953658489496784676828135155160825757202410450769950775788303564749460345612843844082905790855508675310596975080007078686667067713830251316125325432783057869144224800330795609437607622757417201990815762417105594934310007154170063118415912487165501662370298161387790855523078996641665621318113298675084483699452934716111255000423975198704600754276019419341164445244324266246564324081063616979139364071282241756572464459963684944837329374897574908498459588424779823412061740414795091979805052848217935075241091367218842976036233749660040269930002536469979871435731718388541531990176878778226740487228501566266110323993489202032522468611554831183041924463781352306493833687982096412351263026169984480752024801042514685041260282630677150209482516019488488081693220143971443550233467251068858477014799889557704000789907968065533679022217487487098259051736792463747152317835423028278674885209405362990572240576692310620117876873244130299068558611987857854137222983434173776571525260593775275789012896926604842720011671879187355756173172871627343699360592731492038238443494878861410542383235437070722075591473377723628255559012584331593143886163167814917656961922220882268078197899562267666331248263828667052418349115340571964026396122861214029683617810126464549325523397993318303985175877777205083088622898850853026887071846120958992100884746305835789858986321908338694664946526274791362241704459349510912820523151244473600282507156853193320056478121075875103476949981489122584012392790398333980169675449063955714766508708056986876763855326713300310785602892337912939613022074662551381846169266974136997146215155576839764307935937016359154618386331033938408813068877166378497101840904378196475169818524204573658911560044940771835068729830885165849781436559522430870248028218927603559081604569179926126966332078357533268943557779451614209543212209787452378245868449883723064559742681438312610820089721265444425267355654619104779293680531532033209095801497166486262936159980377725909065019078044751509054620757002911523932668525035767081003388333174988797153878100118597608263802773120017779179637110776358615314884010430111266802585476628000012605369107107498746382154300883939647241196383606573258730449421829144166136029972730414035697010248047452600916411002685291539848476312493875500086330793604170198992969808496490186588925639612531923749995497413330169048823947106909294831935888687994923577080762690827482619995767763579529640261398729230394761522226601649540948361624367635727508861462176101435893876277491341720461263152239562061576941391990351483308488926400784782994417559107988626943397368848537973696338201106365842606666929181451562283500317494379653103493822733022316538390796894481354536444229789256023981379663783608128297250956219501198984523922145578825328415010847161048863394419350263075010121795542181387997744147832646468479905250381613660264007166608999854652346814089922745264435085648392144226016874313128591460031841357939223333250470708399587322993902829445035148451780013859302580841199734338141363752814978111946969124545402995163235250349821182900066485245519566265546046931455020852184039667560041577542434359916886044597843022814255347671253239740247445964605268292889099812195267184185387839412016341058737411778413540550226491595530960926524860018076906941826436345250236799855349154613283755522561400318411637664035934649216395867025183597655497036435136068584371511431011844573348081884397695247899077335509462417377212609262500209269149532758049129091490884106437399464659952617508411754988557669126998461881132249789677216085398910179886875250588656003298135783840218436314365474479288672322030714014844187907751990913251019555159944768953763592209373994368857537333795405074088940378477433691809005723155974361532999692996912092692336742689851022750157194150763242034979485465503620633499650162789830566512244587675678784822492834720214801136527682535872208442243596522449009240203596693279758587671245601631027559989093772002638763970820516903665463509385663608294387098394655213487753924558408078076844698592867390011849084439376641957437387156800552041437862938404187466167546150516520352159112798755846695217171111159900009440366054911536307317852852900463793249594309523615114643464359769253515679597751151660274595696124733032284730861391656685679849312401271166275412646182813961809493435594746523412760624176446888267614053362371563690827462832031131493506373429062319333710052814655656477370739680409816425038640157580795608215558121021224004824625711590071435351526552362351587184188065795946202281138385819213711176217069528121330244711399967289007463575750114345314276850089744672839380423165355967663395173553827090473159492563700316344369049589972946486067765153653610185422810422514583828693725335586558292325425588647211373974999613397217548750105380405651300195480457827775366325837570432797111600549850402063428801877421607406907412173249666929115668681089379283904332661048353676817660126221578638526119683386313858462646433871744934226773512692625654841706673569123929253483762326791368637163317511765763181749739158611094201344073053684193407660748650098751891808633066919792510263325985842615907540997141724552536232381694493397788699576156356947921137075968692401012906924716376645119351093521278595652142907946232460860383097018499938952768657553878136233459381430048958117802356689907878284898731633225214339706057466012124084949823445221428744203148684858699157756546613611469334640906097379469469271155212984778609462780568877821904693657431028814717821442399548600167122143667376503845673709855011868928571657491181105478452119043405882863990340524175390546301422595155981242438832944104668829500816314307320699837591872660287820211175902525567430223888804113982214103562984186270714819087814332934408384557435474578519364051206407034080016219045140184805138893976832714740510972628416093554743531416024982571046370202966284907505269159603183884222081573412653532066161876236298466703410668209652714784556957706448819502707336405171322765787290678563752257446356759083998711471643405425080102488260103612628010634741746997719663791079076174297312909971952737229472359642075811411432778800246205846308398957737712764766256755373818276628712478480932466085918818118949295809526153827213865563689318719567612196783025241593268679227660563619841547222105886631062642678504035883651654367653586172976754956066383035457706653060451002161396897583899181906402706716648390048949186101498431161734777473328641685985175442837647728773448760139686517243202553827103790346775009578373431744151283770811845619811530622358846558848596410776590871670359054966799333724176837524717010063725823497851194370087212997534354388312944498385295760127242854611272098109286427755386566182900819782353036629298490615589827473956157452350063581333268216102149952468693447490209984673895250077550255092218018385057516311488736332894489813695369901461618528751131873110698044580639472049380114708880679204065635776165703865042485158537438034924833609446974836057293647147326748224884567937764756581092408065611220683854861822637160911388627785696407344457543223206364752439095385655062417599707270680427829734111025480573730187283578299486923555713510638874725517067367653419345392512442895488079542711282039468468519175293526761219855192312514878126578793947268080321275869172567555762645390679199244257674272442139640445370475334994019840554312992565658493697239603912272321669577671102229562196817437321045910490045937711530122960214143464168669615743639722541048405568260174656584730880849948756311933579360408563967433704797869925424858467668366189091070755226448780973551187200982590509465509084578620475238372665248255603525538815258502637928522202977542594954895124877851608032226209770623753859882483967890456572876028274992684779939171113006576503820050556138374851300596775469873095483032456644805231061400138900528210710812090619404598152850132396824967369063705918790563298502851033166201248163750140465208196459189111101664023135021021394196546420209831775997731179469561104911699750673630480818776590172807017112315196386896019248015966499453988770462545846857482214116655449081226022890581112724082381370843889876769866245975991942977658693175194403648204698444716997405489085495528976484919391121160929114801497968878574205440131657084086013506038789061863255225241556799519927644279492324795517437750160542705924065583259021374090930819567067949229626065683713051439283348134203210135863861643733141636540841658696379066048074744374374764808309950878549914221445069468523887276142491591364618634323643506448446096243351581732021230801146927239791555766210565234823748967426653489029721376871920707750776467100992609362871282733106763234938744932592291631153418148387228866348524015983039225227361991579684560978326213850090078970172807228711739963855105834113705819040064565438693891491163605819468966115297886593637032281486057095866515280141200433267156017026133176152465458729197628095274947137323845738455167276803419013943362375849240346369272931165128040314867384362268665179842083716417550122452989767414028442758547729740324277245092487447853205075062964623848848647186546838076221477828209316973494602861618648096755533317400223784876100847105434907562484770150617055521293415613962773987605794116825682492465634636633293572389304074739824133161483949429236294526620519135860949128753287372340623325773135979556896177639503246217207600401668380645775932441151212146264436894760620703089256421985094941215653640126484532857349949963767706551104710155922675821863994375761779256699748607672230673982686816910302303606338850764709211681656970434934394716783330413122498517023099895655992200766544365846913943497361897828250497898889879188067189916392177011609312620755025838432878424215257642648859103921533995321246702185379661100235431278091357609765591071407603158803790575213255225571267462631182666838696271016555996670719792294246989635193054241948427778558767012028619485612380311052910217298988973762099367660064954903586234246269864541892176577755997203954532617400503884089910151326609397367190258258472623769793129927595467442202425471019583498231149980013399043817248721411910654788870678704545074326658033421892327638767527883719065340061357084972503318237475303058335363857292573365553775143605492836206142597202189152977972521411168954467014121649705874448404964611850197964855710907180806319428217188696770489955586939438144636359341419232506836247164558929212338175596543602138910025865161431960969995386984017142114883962767596507639684856278336999154609918565440703404986709072179711607380185931405546148294445224067254230992745040965902062759110899421830639534096540599884449907818944064036226454321753501180188962106184439575756168314816087946973616950501348817598934034943374049776808424489499371210608758768629563697682610650183338909825419797511182906885922819903640758997037405750537007398912542783634142344552973805472878016990747168146101399559278212301728830374797503855342362542471275922494412502920597879117077613370545283148790894646480348289803734623495437039977297931415137582352995538317741724824817989704134067094121885290962369516585443027519537165074208156721886442803810621484385059369010705718989987124745036326531128024990368176176314205604405433512180227231307420477124976777032527028931124164465498561758520597326400689818560383802268632066661790909989951909987921264398691245515483060777984900935301482023173414021208196327390339734763309083672645920519713990925305439142670041597574686643933325214142803455058713997330432876994588661183265030561362674072387485201749155969362651664114836501737846798150551583997727582684943090933755001345064345342712994472332604238786563449841434751848367225120205218990628412427677566625334239777178594699193589604447827390587421123068736378891379569280369326490896760026422723467042416509282063540147622033169078745407950645985762524250684370555968444323726721193690582162233772344764308541022739979906982213219011230974024729548300185307996915876115090845975520670752417680977824002102209166710498953020735286123281194480144416007528558759622056000337852606727118118844935332197658385914435052559352151488530834718913160931289575300663798209505065585223324926266793945159709210489161247914526350522996822048959813037543072233393954442139197944880901872742014226776736228004539894885472687225156641117441950684955284546643460931106693393448254167625149174331211039177807550640002776011412394359508639461184206996628747548851820344804290046638932102080957886028540642750242229850473437606074100354379538314862822047232103777141888491293893469654128496462563345574159491706538986289762211036722185470973741446630005794257064291855890375401694895726943523923718633236005992788705400551024614279788792781745367855374845633945499097023564565625990734576567343310943674273690503404419279354570944408669859598554690088078632057998135899449658799721947993104625282643166114586916309594955716637443533811594821690226124129826214343935289617468479060421263481832909585775596628875534252608692664536250734828311219514939348049531763088973301738068413344496743074557661796761422923462692618289188946504765286987719934176896593813093526942019162447387472062907370245321313019852758705572934227983498087724464441650979952164914363096861749745732757535315036423459310102911909642253897826956956656914822597303074079283433565522924593095116308974607625956673500758147077508913322419180285459329764082594892755491400788404887579435141806352386210797240973960014018123434085082121404493241880133290427882431437742048786847768762809402532967428081246953841556619438905374816858873969395378676589294454778579223644929127100485430194070028869971402257469450671813340518269113374570437074661993243613968532861520008766965717078093134371228518874576750044279005837913754423647787271446521555481493467354928686852795654125184303359337887240225591928936374715466215980597663560186093022761517668667307874174303469992299575688881835837912260936432119539143510554137573085106106592109646903084367960048708220165561102919835916296317115328788951935983841741846219967329988244133863083106390123612439259109916081416768677829931974274760714224490848421861837648463375102273297771233761195080464038143374811672548762259248869779764354167004872181473058276497865836164455141470206954842571458828228341517165473087275519139399569597815958208390458262912672567467117498433345238703538043174309094634245105568301713974792273186488218042936255147234143289263727587354075099764057175976716776788786304019955474637389927154081267258218722200565796307488076876332025936507399149735072717940438390704173099035880762751416441547480346049829808248460905461902948966851948938211559446831504061421805289493207678868585118194433261835485965835083304022654570236737207669636693037700342571769039923068995416533712952828847649703044152919320767193079897969284752491091842736342578194050567288432943325188385988215071784684351267980190569880225553567450155048247718388214047266420287210051173980656210503656343189781438961741646706201944332293195529691151754564399882508595205161945657147031570616840766236067496213978910792016922014754068042826239271484280935906866671309636617080618708970556620340099732238860644696092489744469867566828404815735354753159571375122392852946570902569112676477069703861177942184567885133354618448178664194571832920952989211534263791424536755305358625565045445290263474236729047175615974751674667346993241298515618267319675386494352554895406279145606502455940662105076840188758268062562775279761953969699003524626344200505502436456472606605380346244289226766186484251449165741977834169269880013083823544620234581708086280301577113005543823176469623671986217318855746673253941293281691969137385964149859872765158993400708502907493334340959045892165649822774697652508682590447769725400237906622704345606045193282623459366222286096300944260790675146084895232064482422199951181923325224469490576424824879597445267315271588259119330974384370133256376345229049600695256636947581253960312654340285888212412826655856344593373795646786695787910742681990806206108031566814269103265295065511931323185470087961996244978414741563634993561865802424229771628432427373483580847930222287860257681493654972834683771866088804078197222564290983368646137681633752786651696653501889328151040963767736869850009068241559421989999337137834555782498022232542981792802000882946028012965711570748611016117758204270399983289344461325856331812313040162312003104820856048297528089052732423410042244278905359842775542938689979883781773345995789912987012033493655080187714338666924510267722076447862088009488787920742733302920136054703400842811801732889605094282753842144916252719844921810029044384767728584280891248209911248430011129823926747825487394442108268365079398097557651236479309232955096518322389103406899896000424317282895063504049358465569319420441945361274080117034267325797452329864254235918759246429222822198123769932853600399819372162244791045571447572500076507993964178861740596042871973428621009920911138033513517026108404117947544377192187949488288445722160540065670446135874936169073366436310877551882173418373657144692432161319966271641158694681939056773316221077073750259579274500870323802356987787470452280548230189906258329279943910074978961282870740581146129751993249628582819314315926632752472712303195932020366544202176547133229506230343337790577735676189178555463142299700212219742556220679265590908746651973773499728641371299662945623199675831688966997420782476519031479606402062796846103679295046141849967449601824399032259206918382695763531948441332999179692064992621063024000769403882347704368285357535892381612740151542196654434213517916018001450441525807265067951123589103169449165179303426370509501460257463270404132077817549195007998666114705340152560721120891032696147108253824349691528971831939807700572185157918431766241933981113670921727962940475225925546499803082736676926116927992338054536039887703354065225230893443893447592585003649540990821997726139458970696457733402376041194208986137127753824943506834130872138483147061686066756945141719324401367461283168372481712833629121833704341079716566336037451758074049153634653390347125776646609538964933687762639707110688727670337984027621070915904825407058198321891714976259373890205795160098368272472661706696538763849182706497555394209394776253732263715049947034408144511950299686359068115192600481726473590398773335896835791601923134888930415279369024743383458260286552799402054450706437777416617334845200138640552113488667248172507585670297058871527993775491561166752227355850603330627454663806697475389435175417589177948417710355102084649356024450700118527451630251818035683739487329542944720476958105265129557096742917555696292133532461089404532207903501433604255229249059983766519080444817086486952232263089418140508665168373818441881359611503140552910466362423080252504447356468126890702537204183192478284571304661780794816744014894085820363625392778770290538943403103257891934685773589337806953752050788856522227817196586101484186911952256380351944357664210033605835596967185638667727648706608247888124683495075858505409292581944702352227157742355830049306247586242560192558183155787722019118825068931000942134318961454310256720614380447019784596626644720216941526745436157849008576494387140955638184803112844484294402678423375392973716505863087500855218310016075110208125188819312481606314363812510396587407920558412145012324745624974308134662882879473049191626628127945013623206304342666824276643095907292278367535555799985863562887822825843959784198169210862893634633666185990351795410965431214705165573968538997976565408919962314534776326938964206230596620500896199168526675303173010213225744275438081277854040294955770782449619231675585031926105554181142047397339047228823002356710113214342056965799137826945934283428138291338594653062623525485487761043500757147275384136096399176531778869811366895961254709812723372627428445219483545761336753135579680209795522130914698188299357946701476860483016750881726602339060038569100145581961273755615845090533947798885029201909698093908125844835779497784776054429909318342932958625863965989474674537698131976858849322817086581452930975109671783155317601007040116813574317373489773014430425561427556201698789609463598228135476108902213550895919551508453051062255027670282836576884118701335568865436794446283158632331932463542663626217602910910709503706004572723702961874052233616635751553136698993326732661979336614209144339743118079257924000724189951222556869004091089568279330492284440011448415047669741735772873246524377219150310609021062060303188872184032030196596615385583708612488292495566427866772144104814423464350897505371560625822459838287790935199944642440972285597378580013337056122897522462598210148823990825130172002347392272895664990311818257863717754835196757045342493244430767658975425869475932338726635868301786976321291962890297248271260335413801854157590397218631101034282619102950591155456887533116671011212344717375126875746729290613786520859074320468990113726187788942473542138404072374198870311055194872274262546005531366198245636324668067380682080213375039242167781669589767605373292161982350358585918546712061904606845660433405561890025601062061539684310798414832253878068406523527153009364570934203294594715610546830719485583317230583438123928064216209835470122289356062982316757606619653491023763990712593263664636901701406108657467578152621382415194369321243085787157365269028872789714529218351350808555210213953144705160290316156016342450636806659672536873524271854249862310607447991087917185503474809081684219389765289500421457885000940410227028451148266765618618533504169958232655575596729076231391191255768610863813743453023856176814043745816816459871618650600521390531169991551237580711811625384794960638105731684903224900138084818104607437073007721904507004637704583264561869784853823813572776055293617821217305358477860658175927999382860393436018259467946442338210670982723152342189606830549913488511481425151943910600738128828171013340492916089192160562735562524791698131601382669576776878506594669866545842496381164871118234018964396835247355159438434273815168649572798167240105926115898447078475790172339614867879312872977941660693319757767109393669259828328463906829868384643432160277345955995978678175303081948067833666245508924466865643374855932675468683247897435314381929277772081830493855314949050303872682320290306207042041315915468438302036566565400394953288156359327312655177634883101652721130594340257489133508150186572659995970523309381368043385686210251967790512087298938014035718461931791034251819445625858182581519984163639653733742584840174904039297378836528250494858511280077045834456474970529713952858144772883866721073735132728589942992410472495934356391934158835776848416052706238457804121318923092556233055401851577825739146701778365045002225060730013590075341717461628728917215883007075770886201566801942857194268287397237719615908012029425227615270174440834941730367565069839419684528467100441240062314531590651336543140191103642676463706403860562706000187817781883366390990519158056394583873726921599065900812561785261332263836775801631002922204687700412142698859093109791546325883684120208506410324917480094747066036803200233541860347760245075817946159702902801730253289691524924106286165553932130967053298325845401449295802564978143035296683527798316978117325576284308936580890531256243811024062958073782596577710422824036940097570769069158501737010734722986624725789853137109994733893051757891760012520554039920116855720917883147061611513066743055592958831593266831393371148366930748754587491546119442386055050758738657893649625151821522939248688163065015766564118904740846912485962365436040543083424658726753451196566320395510503413097269052283581187508237977779143804953255852472205916012525653282715482540318107961805513585756506462026189124318992962966208990696104024003968905594247544217011174980806354662371243849401208903500566080685826101177457976849953438297077099437853145018385523419013136866998395776605939752860613860815496323469296690838169887732005306350424302561303267006353535976870638360468283739140719762597494413683094086026135443733673008875083857716961674192961745692359113058213552065925131679951461625156071523258509486769128831133806423122034533607674189437313570136334329486354649305009918756800784294866328250339109336746529009444956921233175524829609677859289172601119352167311392634635289438490465442512834659008430011977427071494510270310524157133447571208304175402603594553108548049126818688327511957951754579961011690257737421528016603774645741627438173347645014095184261694155688576524258403245254999953348568807810061427019459331563881063286044056094203920474381425835570243494914562323568393486208680780717822041329499853590236652381751150872118464053791124539036585604754126280990890675032664002376460785592631234216014280225372125373892473998863745986695633359493253642838131255097663464559310680157582955544994791508390878463754290387461224548392203457034424767254079468728109343675023994382920664191699489435018664592306286966706624805244452735456276382793818246088498938809518675009637567819564174888201687597193653572329872460895796051860014614457934303684991025671059989801199324763839130875639046108161899264953831806129374045924123769087336993241436573788630948831909455253695179125490164619641167228713596112675437579236081600998098982956366688307501192423271821069281318749264258139389301804847212175765095223263617397106393595954906932062776546621649360727866277243925181157011839022664431877527496429067384342103274341894822742207498024140798695029589307997338706597184998259636381946944429679135871100549119403573753659512612125615217834292694573626588199738634339394377786636956366905265718053481734701570410443519926850146008784581489226199845985359869199846864379656390721945090938342585067486115623504922761824446918926041419154002772871815604887907042461602809216319631571981070830958969494574825114719780138326330110512372076345260004295430094093788673135224232850743063529096271207066673206064360004144575046133220885972221242794918703419256015754413979154302965919292099365957305864860175808192559611181073493105750587796669307608071240838666542464387285610351358774433549216865042855092777534583357899451456844505346147123498066622926431303493983133062603387550294761091137863554054593536366060430026445619136464687127413405253278361327079554823685464331500102264302702573921081567924264118533252379975259276861874499013325026770067648608298656927642589606933030947622501739387616669279402610795133864790512136590423936847627622688989459616576256550949768761350246808350400957441322377205684398965009634719002217586542991211335760361396678132592514202133289454653732379206606127582980414314679769400677711293776317553088784444091020739421038566908334519482051699709694983410191441724572841516818290076556526432509757643211063048565713661793141454454906839827763385947430913423925982806945427413495588668967211585161178402163969249903142160955672037591825794435043569531843361451014888717513673169825883696708997901201415896018154658630967382711486372188820122816965374354065013884177414293503027747179843535814342808229991978803186465942448018070797619716107345074344817530236550626107848261180017384614544292889195840796410123312476955150738599357197015905788950272747096333858586375773209286774018783617296266421247698127939754685542467667498497035407016025300612709272954980569787447136306717123715640801124409725897959428359407893776604942528214521097145359375592737010074747677109803229099534809061584358060540093265477051758125810723281551834849926546567816404987901739977586959924147667989557913022029409135693555191644531149838941191697513438190408491006128154795904840932302882577188221939955418414549046374537008129512872596923223443943210985528731153966470493985833975124380656061061193937954417748782684410295563083863910509495945652587744786133169548913494286904999115453752715736837992047423533370379906819848441549045680128392554498257173003953996387064832371183337803586843254761544969756850776194756598328792663696877515848322700679930740705569205297993880499953013240862489509047158548210847529637289085060935929279598515306194382654630815501243318817818545404401596083072209168976572083318025665927612640014239855203375887110006569980939096098944526654046892868228522813735210122817995919629840938077898991453058884543442010491066238939507466726369875629208000973871305548598099578632673554908752920218207074030875161705581928729714403122301502559305958552334426559588961243883074367780566074788087706265730765912728429411690818575229860409974826420660900048341679375369863387971085356671924488494148131204034831867784421214706531222496985552971456640813421811730203028607672527796513928857242652913726023947106854870196105435900987658147054764390676880553310929747966938742814355017850157051727126350974931146893244696067436244523370044744888834065033021824333479507741207117633617545390105190699018796929582896388505519233647745585211215604996369350431193564720486392226280862812298358057062319909083566316863571533625802195053075959657982388011594220588725396316376500716621130076551618384036708076624304988607796115832288801311077300330476277397471303605890847944307342567745450125125744501122122770269559369460802152030169655689218019484793334350900934733388160538475322176387737453290404883673579264549388611421525359330557682498499169291649678663907586679892573267372095655367097522324071196955466873330689462327572922845749999759155317517876916387095724009662675497696824386576881643051603907929810538221891363051009261875210641023817172941728755334190176975964569276676371218273806696201464244540061843194103948792519458983976167933488702591977333233184114083053354655494218897808209005957451897819331042782235866505708017378311308180104010845382984866260712817915932051310888582300976612988963989426255822134762084970485123762512215773378573447792085449648508171526554281910100150395490017192290978918920368250105162372982246944794115410556201765563271600653925764526385068040004288582769367428898767000247606321194610350351686184356109640439308218815568213701218382144825044108236907017601853073550169453702246217679375933622900039791400922242498197465982498960323596629851410976270760280624419346604043421444525866442539412653365407315405082250314551566492265750529755487438123951497209801392692487807489675668615347016935418824573526093545234786445355902200576413758102244292855268156926754392751511197582699529812231905804223425534820513708326000168474521598347320314479204078322062493439109863205348658206010361770248486367259899378309349987841608290724852330126706815186079407628579941654658041335313981111635192156286073404112104016955717629499239173486488001939967259795075896406789239994830537947862314809314316255106378806551909849437371372179649376067188480181839422585018930491666143370032725855554276360761944009422649456542138968912848077482556249374138121652958349117879563982347287403096046403113821058906427062836385315651214747220237200286162035315137786766459334619267791931927841496106268865533393328817476513577546951313267010512262844347095484593328946245093477246075973905793734782560698555893960376282170972641399268043503993826550047082450130773935625962316349501712398816783420532915962525492808397990195386972907805211291567484681918536547842366624714415864711058312369731229193608237656303161876416367504021574945588347566440063491324538707212428270571584118803999496328943340037899710109516345434614048769244379101137929198965970037227487140334623642773086546697714617125503141704668222572011309026084350162215570519223329333563950183336900695368826259638201247921620260505626540730318576102894607480542226302459657019878874663718447198729414191620161206906699031086482926259960056189519518623523207376419401536800082777582926699159441263202245317260039341711689452363842305040267111174175926522625351092351681804389183495071856011375261943618134680050472462278793762835080253672695985211106734939145331024443824431461953029504533406794918251120894672884156209592496075591997703978404322482296219160178531835972248189337504689015012872626529422601854604223241339211433009829730259619723528118944437832849425751835207239915223161337578686382577838069041018216849174477609355867828673851770419241786674396275380617287586641989090267163800361559441630903786357475084573898998586618096528151865769479878198981036132039496992694897102619860531845621282069237252201631505112563418578924238410496378133352983096242488102071894018792825375279508230418638641019453455354563634973223485032919149380848622501770676668986466257760491352655513174189636829210547436013645185197490462120800309118364866973518738311307743521132959819438759471669705410662036633519899209598116159793435658532345745177551610883878473995047085246180882307249610168989232611289683227177568306476705913242027504105360351969440539185068159752201132267183921394572072810676896199655724538707437005536994288932265584517246890034415434929974220446706584512233649018501243263950138064581404341891409637238456765181485738058187136540529807042031976099806993171280259742404356646009031035208915255148063918287588486317054002243633046366088479143003851307771293170309699295484320327910552208470861268914380148287577728846225241246818924149874014324168455350889621315605205672791935582615544635882153433843800852199561134983188976020649153360774047119383368525691351684352438409204322549574377508968682002081733250751625670914739375868728026031109323313173522536623897449829279998536219503425601636183799318693849169662788924450208527199130147060268079187827784696981301988778348672200958903291407805634907098134324160830030251105104837723505571974145381496912393719356542468540251485173713334790663209451949103758493553499611236221816743148268405476095130157490176049018209180955206499294747763355150045850827763107922653739136958819303530713446423856585659533057301477792600913106602635315765940591415299124562963651513666203631166811571439345808630036378099639263426517494953431730845234450057538127003796912491772120677176778052265300525677418233075426344244429398677434914348860959348506172117896701857896456984254348585934610335781334014818349975843470424068637643785979932782969722662898353003179281797663842402645072549424332067806614097263864056099359174947263701385831308727144429292051903819833773903955424076329064023008146600900757249647522216048472294025476427645622839730531316096072174691144514938150240605763446507817009159887575654460516957128684225381855325235508229379232960694527832144887254175521415844806427221167333379851131609125552086880991719896744468883380697120831175438320819040080924308116995059533440034504848618331708685999113731680478896087906509330988239155149021872288393615537655713525085733989400347746793484665241077390948605721092301595181137179163889611673022096968542912844990839512805547368320344958737872420435329567170562400908756971256072651892352105401676505453798492928738838812219271113612401499968297911305780138664359937221524004765476414109555691156768444740217978980078624502696238725771960877990704761525926541569451666218226358592615036496385277102881993003510862526547104437673694017306770592053159986315872784976954136114358008758154265357453257379547809483279551563416169566685480855771173202265854613190801753023098995614040074299255715536067695306066933960906307661378804078426874543331429612211482629167233423529188148620282092942238638011239113742587847000495087992314194964443863498259807688744356899435537408274034837252344745196076499803974105323157933915188604977198403205859277015846493153854857696899145835428182641212241977107578123769607292854248389135783263344604999968849499861782573496056983804987106122846637865647874689339258279921060705847859281442870473725983934487543289065584097522953663581250983936202334531635997137202377847720414286407049401037495992392788405175521984541400788870189613354625056067650139539381914517223527906470650366553774504923199057118434329973603385184781028647116483629297094263023380774495869182545231271495020718674272462550705323557922926365330029453517444338487961283609144526621096764241904408930452277328035425157466279827369100161691954179410259035201019179800072329574710395390255894973883174582283257626656251027682203180302421004262589245344449715108971100280837732333382204119941575645930511883297072010403188077258063786288909283003447047873117152269216820981147788694871224111590542183557610328460643250785106522944102406662757489317362143626768106889113145785177860118182501369126809901746889783769593694939144326337660478207872158450591224713737678533772536435862911596578333744191469144714540015570636884323054713717863362122107042766891959607511384265589254629004762635074183204220739742127450757522375549622640794616548462648135426225479823098535913160393846833446976896720531439450428471826262682973461874240205934926917387827191152341045569776059196991022068933824863314833337480160228229433682590970806816373858357993175616007743842658616839146082151502892063989058318270975799031853853536842612353401045719776181232361220429243985080475590422112436379105091019933344442299021118017839493220837598908584377881207579033218253763347970075500888277951039546812614225527840577021726299136903178481567203241097826156969796638562660892387362361584627725917639302935266803334705844575320998163099321874222799450709104249498365756289168019945707246821877749067037541972415639129062391612695101455565142560649469662297713860235645942486428630686740746860820948031098907652467006118775108164814432429233217297869585550686168118919041690130046192574761862007904688357209082906784912087897550322682253585437233717384177472595562422571785387525865617548556806829282579729293764369344932166272051500851440184575426101242782908506976250010581170972016340833762628196311020266495514864750752779047157927291057787442464739088148675733544249687681472180177417601460020747587651470284591845889359067585250897325326086697691180371311199306052448500919033786392820934702710555655408959453859825780252374153685726748732238328638491078496344794033468544298831056359760926838967132326834951476631801072942013581692504414896102159559742850578039942505799192507597069025753778542099658760113131226861267718253722964615906290262632376128321312989120552738993236332564817715570159716897619989976322144918407955328301898405003295019688626355380305293392217038657345907658627005742342941335465610571185337436317922020412233999716123378149569636999924838776172887906061922218665001697332131171850017742957363781416351555822034282349395451639650657373724746590627154925122713540662704702836458200707212283837828432903087672480527510933620360581647298369041515738005523978705502974370079859651282363642031480552578049770522764610236047607096873759374889786353219683184678792409211198132180351491353500320319552843340158436790151471533298111553205231327228688231555371571805364435408970713081876209121659928768664806066483391213601364273412126931288929861381709647279499397608522642381471580667494144262093774357387190700124214751726174838877687280225844521267735736091722570601213452162497458628651499827855020441861024199624214840254082879495304916140599144045966126735957461400566641862555090009797713368090949046914224686322696789123248877317894825769160589766860045173490479789519879145061265385284785585321823416133684133044149851137670843798094797291096258677673793449948199788960562803937025012592176164612883824587159276819631219116638279725549118521998213379067632881951352551825275183415885731039287547578606425141352921652396286202432973567200337522480443806236126021272457962612237047363447796444570620556066009765739532187590273279019731798835670512457360369409553828992583726514389369553945182838193152879029276049847676327276983300485539753326898821905733076784027092260698551870225057462665207645250155302107500469322488049614130007340266017127799866778580927482027429469659663372924318218924964815610162619433906600334155115145526359415531711391952022214211041866331401198261829658365012288200669837261874345435690926530059044949309083517362491125695528918944798609829625008780173153479435121622787310515701615723922475559998883123808344458819924477006365776248998433552361578668670877848578611635284735967264420265734277900513641515639334812528587042065735633085799759957146303410860917319533919067767921591673263211625764550265661002224287563301026895709452382547377517543943566100764814207927457372756777890104082395249516232764144389058157046256982725414496032588072715031134515636282263825905900486618506948385831919103026857635333809596862049988156748867908131350961951898751414365833009069392981847719979502443547291459564413225813063915213633128441153368622875849101101086157829348232324037326659962735235377445859210464000314548997970936147562706686208875005486347597012409837053150018197807191006104777804740799463143229591536786023716063245437519922813259339351994761897344841355452782612368496432718351652379693673217361956417096960561118642743412278240564508848454810162679626121903119667469020700294607352401963712256027077038236556323180574695103927957832935855375710621507099033397729827716208500746122605357692478959115693634176970005305972690360401878442249726578013006612050731898765353985619412039182813576072764577917192641826338851828019392163023159687477791193003621063294745274419675004544596565008109932831624080599915913851260549180870110134097999779790795431682955873343067154109534133813290148989822126227684812023535819578497278314244083077576937909122413636152893539128461858785253121163706268627001672648388319263335776297602879967814146648505329887355344536303364603674185150724342495372293954803443877664520910354452522537449153422532740949212082088262602214542519303490181509865118685406007953056539093587041542637870956928461761405194018558872791884768931295297129694790002114439382990034340841538692956262682394680367780501406229133763148815990490956425429388954119185550010347099458193747410079134021165904056469193787455755263259004608634755471818636391077605206709129694073079363500830937792280080239812358542243062855507904917012981641918200154725612760722916447075811057629236395111586932250512659818922610829567801042675142156544512271401542703963542705217617391092820436144239856547570897584537057671479028646831933518949084734865674007347697842902654332101982416604570221613378066067138603574403345093107833683524261388980411275541195184080251559598001271844554662137596836345001177649434028271530919822217698289957584555247479596938782634267391143124453428702691455888541901688771219826733915089443622765578508964796813273002988258904501979814576618007910126161986176266630746424862367728694146799787201102883267316251304324113458696783291740905337078681157423711533111466485419239484654093884234297863339997944560865661803436173260280276366941358045070222514164544194292227750483461415675006585177475728601071257225673267274637910866400136161691647542317000760103571148471347289017228095488084887839492580489335668960364628807032082023512479612842388354519617254640089403798670060251446230845574236262002739792484204170482621405315840125900410408530865748083971128954644996466171974787496603579220538855033619321611178898063735045917834095513439873266346671643694294509940286194746828771138794790965556763124182654898114271531257963066024445980859415020256145171073246410732091733485683038943741522389372292371715414409311990608057334590778733040434537574334225519004144051512371147277097306370891484193638995203208537995135366640672365700765330334634641580200134918060490753313048081709709711193138034918892959856244666217926900903955025634491633262924499895110026801782567014139524161289048986371903164949502414054994738728595449488546370356182502903369355168056947193203629009158200971480870807401061661100983631553085868809487539530327744056641517970098187387000861128310031243376684309478207334472254894710395971856660045345167481320837074335250957463264989982084448890643347103214625464324898862500285225619063727614349825466154466807501826578144349606344175085615513224134520496638340537492559648253828069405487422169022223250036247003540515715934198819251919993774042878473585730533127440659729910020923382872214830342251457624408196509951463017877463579473276706420464147109640358665630809181876007337080656847021135506918870121644884075160279319783399494428796022630151979892272374751179826608369873494733066560863637380565920335139740707637328843095796831829027930734517451758274589992793878209250258534923948429292983716606544147117707356786672784353223422734495835095507209413522321655721759070905148331275932330691198671629976722429568202477743820127800081580000163030444111271884711633407327029510962075714715817094492057840218876700387047140209405946776949259787315421072588000560573616934438834597109347852324462696678959748218869393627289679453744536079102587467218221593837698892018877426736312750717418395683045683951450751782006933398090405192761253455926895789340914693139950762523396317364006269306503375942954206806606728767955600294377263747725192757666023041111643826274356710295826874963631038261119534189555353098549132765303307479350202281359282528202876871594955531434832748113635143964295990764937165077457566224421481595445812648702426312028688622049662525468484431456963233337661495971503310319510852021583269569130963921596415588944190024730690577878532017639147709774408234313606822936325037176932784866262859054295207238519915336743239804738644478900617430485156581862412898289446599774966112294518712574818116047588099183323338607160387173736297506861619561831281872015417610106416189077903363943318684470826756919757149423159914155820231296693326564269596332579374290620279825797139143026450818684856669214896814937885379044431525252046196917518531574635997010413128516954555393930975604415089087590033878728479093090236879461195058410532607835972678420584868068689324728349034975166570583212699060214390033699893798768518666144098155247213780688392766197071524925066990746594660371944141042554275417113821391997536845514852087984849922362532267144232498536182363558767088890451081811050136825965334609142481360867736947257000842628266716444367064927038499564556487073938860634979847496997613937479701778597402296608573232335562574309254549357572851785839289993518034120981677617941784457387216292133087111806474075480198208470591220744386285034776492355810341052671781266064858861000208071797651794244141462575632361834441899098186136764982404081475475374791984904302569163888890900011465533175655749547235644861806378532482880461991578215299028437431901895229834824501142775540336757349936534834094466806062937836494205524986149221552124610141055408078718913038556848258630034259278509519920345233286318933145746149175625748716825459410336163053912055094669740835540919985620283118626956440354199355615527611273339099451578412538685377622085284770429576998483829430648138119502423141242543762555817492793482449419038456732141593116078924395768377979832852982914117221390694962923133924458202599497449269340944002204503852530754263524625938806701389542993758608850036253871990272221023969330548646583450594749316767427150649562529058920121556402158569916568205942767523541269052784277767988000753622211708174699503761913147273261031081219325295162081117262542982705035613961612410752393771786916312241709745670578014676952277650935115799479450705768546937857692588211509380092931975647956836926418297871498136400162646061461863371018982935789084976786967874823380978412543530641761296487294106815041150000998873270367443317165645264180557764887249684122629509650375820371368719078610199308294389602874890102696466416378543762370050077973654373176426332722015078812246855556084034277623262993907999221094010025347379073068271040566815194054456101882922650985052289515988129992474887919048331015995868155393312933401749386431267087239954867647385792540181863448925971475926518903199385534676983468830419619230951996229157321616262692778661998121334436071273006359828998866907432101753009638971012234694085954807677184011522862327798227793889707080926951989287019673690159101394044220900779956578220212251535109172354140374475228675785084512828082714309907590682531059642716179282944335516791952724200468249715228099560746079847445432820570626256818822135621747734653126670601977747635723558545179599085419272857338956115368525448776214503515254656086371596243896886253303332405849488565925482630824678469329395119285530396833276483855520040877067436616172778347678990642740168697715465804696883995304482069753995057837070152627914732847100377905417386568146677487935970518041261832737724060998748556417945571402116455685432155068342488539154136512811027314679326302280866576398352093452150734002604837715543197481156717003853271198944736385353732520107217282289187062236734859758101967622744832492548769207403042705630250770346084429780698588831668717129772111579471782939360297514224266857212897995763010461308455486343533565443876918219090439141544263395359915485135064623128467979782959824430965026592861813102135876618437029964228892230457826348804412959332633047648579147275291134371756242538897590353157898415790850470834799871871647501640654745077194783289009176963041742241999095244313217202162661829598738450149907058599198194606725682075031900747296854518270714714021976279542738041041049825304853062860363570829396726779241225422465650351422767469094914291203033852969876171796157456233479724324968341017072839351930804007145334207857590072029005023604080805236491598164258174798521912301687612712066062422215633619329290697373546066151117908028506362041632610864361470827845450264305588090292522799012000648212968796809179203065806909360947402006804457836809246516939503829789820794905569935109583209209452461513548679960517729168277172927856068980505507986184599215242180530555233114116134764275779806845663495887411685196764294755729235147332799790808777771451113274210680148738508364797337771491987835634069849829988743529587710049528230145887629859605290782918942789854330185287914132632800929751511191474282510469272840708239210097571652948352906473477101476248529826135368455551372011373528526207906796456531100611575532099819479722937264983258436500630147376003198937170474000078609820097103391088923941324323469008414424917536145779045063415154426000510473289412876852019059633813939649151519630845854821501738338591848165774155473053269027790341359746012488327959546510542923391045162502944905777289309115699531426366751919661467957373332344296251859413308393165509645319701452834624183205110927776117116513883644291770763495276646462553330090516762188692295746344620828222326076518718650741447408668884205358786160737379913137365775201982469703249409334205524860182373563955259468732008497585251609328974200065079079337685656709275355415724269521349189872788868211909774942339970583716277926556939715266471650085111153658345637864037067404267477767207332657435724468220485224382798482330189763221413519875754960824896635457799479190155850007278019207446342285613847486396375972045004967743254512057757259117478983141862434831555915669018720330348618513462935183883891382197492485796588873023588479455728786536895962297075191348871255492076675630791196680533590164469178710635774494650553462457061761844993961872471715112957070900540333989200684342837935879518415950273111282453165587269964089373084066634459966276722018290605127996516443807410692633772873993896466847901898940501883608136800857076492383249052394795331869295965263984186015395769276478887183340269925708254406420756450715266147087464660621590840520819161374448662290464447944192493852161223389922095876883550335465271510481161705589299421860095420425352720169269165244469508999025197363595359568893857799933858537264162588671792177959394561432355429073480419844020358763044228415404807864621221150621627967561150967349133869654810636378196051393083143241306520318166486844020271877730228584297189170917188176421991464105562513456735752362419786232174455159399630088720296680122848600087490153193829033415652783220808451840664308259508272115495051461222703215031104745004797097206264728034781900640366705993182695301531969209250046273882056105060557199388895240518795063741894449249759332623956575798921100761516226665326967506617184846770267365698082862069169899941135953394923131570227078131351332323720231049724845897265930658815955202388342973112795642765403055054697108393865498587638097688412143248950779328248609257865994689939676505626467421769035852262882507241919879616567561870854950653591084077391563076642430949205440439080259909667548994665002161765145526838784822538414614326564112344347789818765072030169243670186096594947062979840813515360765285493635311329267300565156553344773840234767246195123539711911012000649360794141005347168402365835132832870950463221933972255718752735710186036731653632308175753636000077652918347655542799600492999601781406391977969291912634503279149552868354295225450717657267069357528956771644622613411513730134095009940396999698582207683550661888013339627149231631416472276035091060461410888097089781587852948817838322392178333648792648936995077954292825257922788781833105959137200175150908827392424690920622888773404236358245987073301899408563773536520918049372969566139548187828176532860685214753300628868053327699075770407805713240136334320127804869192530078396216390333774453803336391124463146099883158388719703678970072985808226724233409797106658623122061498390335106615979018112957251612788547816358059900015394791856459278590083222285118433365385368720861905572186442607586267537438930238755463958777372668537655809147438941356860945836239500387447409372542781782728266010348014239093594736596608808312277085191090010760939274286438703585484489348852081521485525110544757514415207938784239213092268377885706364154055599696015878407004334000275239196169582605813395963397983219355536232922198363997254481542654533887567947444018037292473224440125330083790591690202566822423127295700712489416961552096225505485194273939641273591658979004806376946800687028593976064759720370290316011570561567582740097910835756912153365086125035367812887037155913711848566808272074872081408284209500971681915318140128546790264700238772582176336006284076500206426802124781512930362105125390261399981814566497917438057165687852040784723303603533920350397442749320452368945350508035741063417857014448677681743809197020763082473313603625904347065534830232605680119592081287664937615633764665341255589941854065510078338632064078219540493551846369743371832603806646041541201751048274772012985984433206029338818328968878397997044592221255271966522154796048102532721502135108603773777674635649398617615779904103560821682759675378136297640655656185191146368444928587328399355578901097494081003312639983815787547679701953916714942870039893920830508315243501472545000627514137699397510765901271674829979533047636041771130578913118172103826739869146039745084836498092194893057333146115106654276550242385825758091962415164673812231133894048721683285444069428757932733537938523905803175025980440613220984817100123113961521153312839693995914577739724843129161019480438612888200978504888387425778611030948890006973816561269106268638730671198116959535797127549987979987044710789292400542503317451648018229589986357542854670374548899940424378656083263780376407467953150908274578821655643219695095459868985886697847456898791908289404618608533802267865901179668228908831197417367098543068601963514158747236994611745493168654474210641727785050488572212100192374711423065377546318625974826150144980289744346931462835343980258086828292001086167702342349105723228500750421030369200541566063749300627623458859562728290336142946893647034292449275482122027050846989886400032850236669672039678125025732834429697607565217206035942923775438984312357213124004301657051071078785306604770290753715698551460478514888825586609395048774715864816115967348133488356118006691828988182491229021051249692274892568143475917197446177448624657567367348196099485916618388238149773755789184292703444736795558508744374964106769278878637313007101833620337556111554371942078532612597901364367637009901207244014074090982590405875666547926251509626038109117186494389951412373844595532005586481914031719251624940875305987114435751924962322079576766448976671355995750629111746114273388241720280003835819116619008205069351990878902198478286932959574843748800479099508112283848403850871308849269773662617176993614511074558125607974300673518580515918971346795329542021935569724680938780543462983004287301765761280534455874325565211568368588639456211569281762209690366388933625139622622409141457677484676002530718078357994227865308614237457503934009008128613284042647900750182308106428387382741000226565530045695761033801365343755629608508899847039380987782429182500144337367779396063322304819692516316192486449322272274428074265791160971410836144544621623190494080729497762967287522577392430785196942526987831110133026368430144931958046228351928525336271739850570722574454297500306794054101839705008784269836863431567160564730924872900701267552693859368818023244769385438003247557846453156921238957429242440778243872859970361762448437721414678287504623478527097908287678825101954288435332436267737335721764403055627770375183805765769633576514910482725546257267109991892502855139166954266870387778087847113956283859948593587743599367118272288335490427840925340588759996184904357961393626852030302489635028744873859950788151669795988329904869598716489485046455189014102465509214799610390843623059580367865186658372255424362756195059870599497704696055527180562682401909074077020357079122835948013403579242210101133648522571301672832115048437553971027345205251668647137507258405544818988509501321684798930897654251987777081397250470541455225002504967548254108438931383979163590201855142367916206556848622618241388645839347200002980619118657949826847944484434540587572020808877867646246795310264197187337640374222842661418722651728847587110734620805275859606334816866481191255714335702980787053412029491868831938015977672942090657805560328546895360383465753713950906631539471180053751561364829016963358759128500298244118388910477730814827406710550338106350367089413716434965175606209205105690832357233384008696846527231383413498842761039438765239109027791783772407623389218920675683314316685821060964610616559300315566309440303241705929294826339782625152886393034890451367131619881706894901504053453143178932185654673907376751564872709494226634083776273785016933129443495086316281023082476241474954555170411381772716555318779329470743677132229825449591122844386208271604382914832584224437347604121397794631574793702950708077962260340337326400828169072261527296718692571112063554397936546820560834749882183627739843685783339555467786715939799324255224384552186133421342992851888443246399344351541341957440657580628605987215004655493034449018323183916452667654659492638232154972869573800930095214692031894066750545690051863260996011600606424568938804180837163537024661064971768758754141395170416745933939922925929438144831767443453321134938796429973284336922380339724243063648647587814333884354092295408751335007513947416916208525780792764586661197934449180082658905438639934005940091553595010451053877015020209147948346170160477887485277871115264501819108018251458671680516763683345545321919997513265352885135132478324210334892975935050662597979290235416546522197948257975752335338501806513198797654968313635799356491764778852715661544838673487318392924501748739239458811333014403804867170146499493409780891778404452995383828428360679199755459022739831156832930023541988035253680909970219709301296438995483132328022401174146024499420938073260948914910910672094766049054700481025304450213153024260875284103874371505045558513378580027717959617325053296506997946602085876751371894660728666365523672934047804963222945294300141780754699875314911637714777405113883542841440957132035497666855036949943060782408783742187478352714491720001902405328424039393853803810303246773756587653499106708288118427990665430221194687926732405698996410543043680121754387672646872208126006958228922086126274354385327495860575877484900852620198906462415219077136106151846602345567762231196043257541315308616243591278119169942019749740730551752937092492082534980532668063432420627255650015366316859347582415898295570697060337953798992899617626905137533494146316990673428012155676281871716684018568918809921894901737338120723341818019261265783526775891254029703254278166615549121213456640776024071932158174552203703369389792712337368830817527545721960870895705769815246473290230628482826249658265038195935023423622537122836902933139728606674026248253910028436510443288536531804192657388333956842165465339633005358178211082165181339281262488380395039006029160265580742970725847757754198072203216267948381159893122226934000727211981663807093648684029412593883158061322265832299627032057612429085855389180915887678056575746644661924514366510091672175999618060433095757089936585126524504520832043636193764234951044290804288179056498259414401908115257957329752216210078296914674108510844627321332295078104628140837188549031683784927152091363237751177675141381231770513856659010609914051741317482028815104326183291657014426804542635866009070026048594704883744189647128073612072671397453069331506696750107192120639429413243978564262691486497267553762358739092841018593316399423474790960625846552723625891862727778456570565292631291416124829522633737545724039275511473838306932224878037970048713070977414145776051553019218102498074080931120926103084038870213140089212281359863893639067390771271287691882431376235895246360408787297878897100602685815701607673406429655755206496126861921757264132509633737664504957656918602023850379900707053498844762389040272751992524386950888717015708666212335897507642793673731288781513646593700256984017327260969584198896988293205632816174410027826170931047586022669805582802581216943262652828154635208282640648193132803445960512674045839514803382048457367709072603348888503821036990697687279015595691526739018960034035833472198284998067904995324004769685090594056858976677537190376857322446116158430638993270349982984297259576227752326312599332004035416422486657015143821007248164910352671275038386452653731190712373713313241279867057797913819515907877024178320945182536394181678682813498412288421438057312631293260743745395734648982501111581773009079658312681827267911532395449020027804261435579475053836169492615378594517848976662287223072890838335221163645703836449464466049878673970944345782590981595343623343957507248628738987373721193445640554524061400888667226389446880566451344313439268070586164063545186283986841882052423265297542441339237895739726570202278053389666474965369085778088604769344516209523423713861070835494788845606377268372845045291614420791256253159580169461115404273751367459620581801123217973328665268449418073498057181108287983817866746632828587647219237847440956121311596251155820353940093631882296491274223147298730105657617093477111840194153121334353699795369013085050621360043320088929199456019537921381118984663017726882527118024802503963548246734404719513707843460918545061004938810795246954975695054189531987306756388814819434571897478604555083776218257062584376254312775159107621652766728522738034243587620910349705984298960016234215096083304771421538472127275124006713807046132129796681298130367939053094313542563263864922271776614213317584048291286549733792674885104603910029416198074277115537069890278648926763536005166873578392660880605210773229355847665830784402633311680136387281101627339356854551237577634967906714945107971926435246865925627642983623163804449780101592477643175727977663609361092948281450384110635984587329841716230069202331040001491088773152791847800894094195470896250882111553060649691309074111831054740182887269833658761620806142576768283642516379587915206980328039170323883081273128575301886782165316067012798908860753274064760373986911247124787270335703871138480416107530172401838958726279192133893975678378296277934126633078562687827232265541366381351694078897967085640536011271670806736152272308673665308049907804097949142871323194062019818682790384497637248620200862998532743671385091991313310436316804361332460772137566432957075085005985506186191823459899237869557476760421239418599938931230831137206142429108041498097084121322441419056581992163496228129043243091085779434054741433531469929361249639306524240710202416230759621687211204657661965087086492545331962180726644163250516044253297783600171242901462207463435819868339151623363810371829927989709276927202570059693653926962110981503429997886040030371561181770177326011753582519277754550266779766920519045118498125191776018060969738354351698352204584134133355026025055143233973974501443157783774462073991413368425605140449921730405184848668598458370822326860577213777176250485242035491189646548746024455946723670035538528533133249033386076376561291586881956889273943323287611662718420071977969531130708589157610454890749042908378113301327879050862560721694525446860158969990676610306070294880569772204964033084490719096219321245184164141460178489583505173342794563113410090503164660521932261374589547409354559747035015217733276692519729041833863774927188253847502672784667850661757785366996142741714685098183745468197764121457749806581444069231728175087231122326310273089919589345462278822713127356658228185093927688216807013202260523228099949075306578158257091629716183617688019230224279797852563521763179353897693625444087827082712471720928031068530352966096058575821356275780819917512348050296541634287964229302362017769175297770276089313978684609423240702127038040807476482292470410754322218086540383741721244792786805198051448945076133703280083198372728217413112799919478766857906787423956981332047810877088599718801878005233340005621124112595538070701653717770940585145612891011275572699490572244518274952362139076751267963424909449883589565673563016308284163729599842239633490390032936122903422106170290980991783215047696459337414364729214589826872369578056999644844423197278110231889005969239184217241152692478479650443305398347933574348531225320188229246514058691686344871991169941665416406402410331628312347145924746856404069983613698933541429816645374252071371310896896128377855788532466257073807824436477641024714828052316936054518164756402708940115035016320793434296222800826486724089757064734296790144986021751671609888877164909362387843695752664672844866118214696457140071208916389584277185973604835208234508292127107691275506133128160918827500831721297836734052606962016392817749044601786396343903376570002166115852593725683708850215703368722625512163360641257057434108871546677305071682374164389418130621168079050364597048580272203520752593893325914669150935887100077684181444147041558788334882087043752364460250654936832319798325437126192273846654031771902882588956585674650931707775293745208980399600454892333413568568623196435075280947090215803745992575148546948286024978887082522698409984951112811535677161619548654294168353427535168824148442760158427250954568867897271168924932339346391184811821315376583645685699581166971341933653948340633859266361812825276461863326291451141548539630963883348317314453732625228853399700354763900098119816081795314663678585709246144923874896994864068992776633352903999975358896460674827897842282916604448728361679208560765303216256347009708247747532280361701721757348026263052149243416957991059116389266523877832301920350763908932369467932264647255390918904154878933047955586883017900710902399335328784858701225281969484310028479662096231677697951776782169741117967265266745387906514308284925402648143340438785178662687996284435939915438892181084353849964662964475040741882662193293411984250409615555944800799570559163380633545990693047197314098357258697593375165744882429607432197600818920642830115499266386596095342312335821665330534221130368603761067116206044435662447355974076872257960588954797925364365219075593476339446701854306226694837659647995447378159098501161044592278059132768777362618944048057604069000614359496641015850827377701451570454414769317766772392450366901804547063773577390359041466746244097038900286909589582301618576666640061543156247983461951010381345046446609041892072795432522970880101661767598941041149702412612512257331628198590440835551684141934668297153047923760780771005080646009351410479343490761779869753821933772002700194268065990743083977238379537604983891108762176918428752266282978260457297042355485461264747702267751585247365635460317779831470471968392362179911514008817434729441211227964402706993525048352635085527971157131948726768916645312664915597836321037110406557434801209449938397158283890974359111080227687912647694548664918247785768658470928471018903143147268209517130728444493565343568783460113826500541121807133676508434535279984463643072223977696052189175577841713616079584547962038934274534929585908132593715159127684606082572311828318149406388107391909682973298336627094892773613148108455354891509009469128538629950342251623467226304791411938965066535187430697858346491471523263174585333203767582603517823675815708423445371512142557870779852578632208675402416240771901408832804328585191477062440732826375766627243655487549036158699890571259734538336052042733844029213736086829479281995585528995516228883466787299323246329407355257947192226276935262028103909764156961301959364217416482620389514121065048263725130986536397074978959818033346716801890443878956040714993704974852762629774290135370190180196652482712165970920279514016607787825182286051957837597248923995568228047579121277828143978096057996762103194612318405212807066010649938567703089821172751848055681791242460389253960741522578272024993872852301726611962083930941801758054896293189267382258233122034903847059577381633079750417727473177578530007695046422805675369883940846555721395060848659713988081902448642226666284549600149254458855140279456802384392668115392971070722759101770314950297884384343360412394793843692059634065441310021825837702501702868036783217215635772245003003997362929213271238360638468469329932983218634656840485042734055705036590661475512114000648815435692886039328390808714055935731081009413094839430330741993804744276345767706275324804960633397984889254200267975439547241105297957566766404042478868187244334812698744225907897969239640666504647451039434386755370955530011332609977066724225929054825655295234774828479021366749428558538157061467840315818768156627274426441795018270753870091084773088638389316082837173788057695004321431111297774037540329818325879846258201481973723061180252687416053463534765614514725502954633143952595057261867707130828389736092285550365327619139433973261526897358384333533286510262350748210444933768489781488488192152893441789539961916343133748348222913503825186815751315141115677860171354336543062814704744416405660858794356961610732181059431361566589189281257933654077484077949690478549834930546775194024557986671325101481099922600088342490537337893604131981687578941744340037508000477718658375219278298746036553524997401699975332197674803691046387016712148614590577178479788401692912950265242494712774090126594159393991870114692261430557982232614110031790414252265298288543035769282756360356823368129503020379274347416646786408133490023022087203970846757892620500750439108689902262330958008300602088151093579368890139496267890891136386862539842179073569916326898124837199933589558735761077690565501056957693263942574446334010578453707128014803824775689344097692894950848516828668575298773191831699447108181551449082252662855912610903717191218889413729868425951623339396319610147488134683038153542409899179692762535361099538978271090680797862885084084877093561083234326722736663812978902966115579924068628117075854459630686755521949219496418249860554669973441481565048278573551291845978234979183098573116598549998836121006561010382306314080093280701436578226147873833958845945642163279055534804523801070156882163007169583531347369981013567016446156531205303049393124306008025893756082622351289138061438443017306828970937244310225127824870970787770807925888906325958426290769439016446550252434728228451336173366312357268420533675638030182421122575394764798440843828270873683297842704342069554367990816245035391240487684537328719162863521735746960749714444837947700221064755914298406470696594434785799210583479029821711826504484777406791284430030624923490635724295190065323822365834518480944320990446460664001244556595240652913382110824291826399570796063907090646087045439539626549835521230726270050610868379432466070013897373472866853965792134569447080075772800021351727074978848525985377991721595785904634212894916521929159128989400511559960246996287723123955729570420782395711584397945449420760807329995711155430809502247427411049814662704512626558134147078183241878615626764844609468459318165206435953955605983013858330019009714792619101318931030207184369982590042718076682868523978628716203227082970799965712258898442594675315472764954368120694271000524586850231915834282981283536497307052065026074806815190978651648017576128627155348729866335472053557734459162165237669253076171821257629411298865406370153507896897731907964112538977540636868919427386046200412309859195705746089999339276391307908705784352892073433692001082141734954183343480731097715798022764407378869905767170958368950258780212795470197296462190704754568282717830671366134328015263142855129441765966188307239896139066141091836652600031398082206772801523839002807241481209886188885573979014998889006828263642291521022266950307638531120439792654638997651500341991275599632739344595959194367859871966752368229779354938129874360698863003853856998061539153810086715127547615149181931099665821720999280138173595364904733261122685654056485424706859960374911726083861645449668553265799513329024645453469345097825164854576109852779256759770869805439106829686885184171133617845149629770290198204642312163583986671482361177280685738681360580269207469464406716087634001472029683375838136559819972242991223942567429437734136435674848795068552318770134204129612071512007560713000955045250289984990811848701354675563554294964306418603672780158093212377960831181715186610319065840335755016081034246857631673018935037447657023294300102940622194014374326177639041238550833788084190622622785730405471723678407295122790367534502174107365659239668451271568195849271088562777466257067196638745514700403364691221383447960128217512182278123597749251181583714427024211879276456264362838091476415532535887680836085908230518812869985772225837686808620465436167502285195706188954006459259597353485544462117539596759128667332249289116662398638977094443569213945604942315844136024588786976900662146282829672008949108147400341850125898218247673318790560412935848484812500365238523490251828625918268425092426475441551193660359241538242449597692754809249524629121450711713970610824435461779997425672816420625359471923150521487388908819583959308992974316421507218310825586454586778686475096660083447329871571017345941768872339365703405642107618959064779862138133309668650913443614525581254193285742650939780390458451599478391610726651558458200128138934952490672984985299569841717305740494210086729381872796382690246676094842601178477283144053802759941441359411262060583280499322564594428192231209611807007145913408378477009154896201059019137632492257932710272327449769134042708762341889553423093325489188596494574567900709652076503173679393263535584848542048623370455740218006551639106032651425878749401589039251844504362397238246187764566122735736119382739493337659313493059219244172609652712354272324026304741743861448867898742559647733951957774070988045098521094479300223564401693390543565821488889297587409382091447373681364728932037639207361034626673484267125681553292149963407284620321029480277290673151550652955718862424018608165239431185234648996860291279553753425622914426757732050010443623552949558612525051236434180723654042926189012084279990824251992685732683295361140042560184442254435328907474182269905118996426089981161008135582527668456095284948581704083387734469018392298579407401487658682731438938202003729660400347529454531484261283593020758565746689538081385067350542534140330934749028178717120985440308099671969140976923594500422776994931991628606090537057749431904873806459746472279742102429650741169635714892844832608076363804775692198245379568131283066541781736612205026203711308032919062870385249384703124898620390484158541546863451599367389495078626870344186818483297686945758853122997279131022419982467999628439779160100167622935279243698573503517684193509377085058679717343581369405273222574325615073721068079975975158529672915143641665265690051883715965217926151901559834061515989516156091353788810459354150974635898981750899728744478590720679360814896760440687906284081577530148593764953399258675005428948541722646004138250175677582181514423251205666335257840757082449132316790867873735050795243900411431388220537513792808414961552195671035188388124556403266327242181383994374150712535067143787937887789464390266064607096496320593616163967953491677817463545940885772116670679056317313989268163182444124074988210588091547779785967221362720160705650773229093772223466845290546639838960935305830062064572426374381075938976502894319671951726205501040241714156238434193069209549129631183301093367090139764863247318050605382569469112373491942139785857070568547271929669732556225456720855478052462677439809875220304086681781199250729168097862112742125980836426740371107290302704302334485695669722242788645462209651078325816263146685041137853264424264053070118305296951312925585570166320079119403657236980929957670398751829901455582838578148402622602904308069845131433720343451443544273049400408145357188511711240239077621143874745879398339544232801558480294041730050651626954376027936568742642019683695627954533002395643705402937237260278620167520579287224947669180837114149003056629363280030277566995618968226818379410705043067635065376890770690771399181024457204419623414453644090485824048989388093431982616944061511896747125076270087810268206478020089018754880061478498622678348158416511209713811883752759633323221508064132072258835630033734384554425007980488281419827582227746915283636546934051776743333017197244431805199734495049929673048310058167876724170388083020748649613920636455374131923266121017509774990487362719156372219980792184550148077206621871824647300194127943454204205617027843686030694004869673541358347576551191590769197306300932823174993911537912169655517703630740936978635846841844311045617261668104341826836908454851167588773996512610283094645444154516992692032478607059677260872043266722567971052158028315132898899559801929176072341609545760089575141704942348732093167963157649816158153493318991632559737439357263520775604206729008059999172969191937509540724776426020073965393912404136414581382444271230661301076766203149873180013195878879615577973659191548703394594769557707491991495683089422793726774861993317259909087894407586053936413032847608720108218756508950420442283624176984682204212604753122921809628320339843384492962676099511815803225463844196809993156903415861028244122950453037564614931157261018855462301254086005827570412339283474658783930840077370628735550157156362503531934263304410884693085414622012612853330131931411571249477947570769974563163588245092437885722928246572223174441212668195743608548574165600597280476187069471823390080313088712200539444226105561266849539036884528142503260295431249626932694070152465117213217013262877312756335788041865281354671843558052391709451450107208922103315981135984328131751978681052088257546426746704344194918569683766665533842540952281796409604647319340134006401598671147237351638312145415081965379571023323506431438637809086026350048695138077930268123784476491871285594865472977149790254611387631909707101726129125149143295707764164374440326214904367901757187780595816749684354621169285098780547602330411195919685213632085040577531493216701404559603153843832330344584617154670146441120416011737398024455035979188618380587732309623389038460557602284946144715612722729336711063460468931053998959996877410342565466132589295316110603545841553678209858279672938076463716991805927224851778135930471228629744350208151238905948807788462022360198977758725503649392568465853764372556883491886069270088016477406968132075167312508352526129817408990552998859433198144690407829577327740726773719504991208768189337265801224694827244470803278443751078702983364054309463050520722620417897219409441663470349069244084275654446798202260316516510737828792590465149443714209739344624998663419052873827281887981871167251993628053887925685393147774624063807520272383881699494165804685238672373316451270452263933694676694080448891837058784390492669744465322617182914664462969108288700189147816094285484535845983002948601478609005141427412999245343546550387566583090236127674417770005633747741051419609947858954242378178889996506491793535386163722320961827819477262167080091357666589251071793367269943369174099707742938239443521917007392818942925024394801545049998414273972338999143531608634655002182247175249957783171116376997269678857103294096730572098021059444450752648453874723779181769934210599481142219999119316880883812538268585341340184669196222835560593453860322623445845353411728050609413089364447613763725184548846954164478695385520348198204234117038234171660611818061965669683328937592893043911607523720065678018839393381663411026771085370363267413273472604869099966311082925405206590514638909631197942706023693102128359279462853965447719456740779826975815349529248962482977223300817300797253094138469069944434028356625371285954162956181465666858863149402036286915501537387056094282707316340953821803644379714894163839040089658433554151300686442832933530627357298476636195621747986466826914996226724858905157537088265053567262056931392187808999449379459784782492674658359404778366540767459194398219479204032212277974900697793837693050781902948756843623539604548679529828311770384103458324614146564008824554201853359802322143836143426924880906896368279990768378042121560764692356837786109371232268052363925450619986426739974244639309723761030379768742438646433699580595839094346186817217774922807569367243438791681241024678765770773980603650752344372306511622037561716946997020217947036418018866135022563407348147628833459840113114728966396330948659203782362192817038679921876006555310629222606489285040798165582800717776088901899963571362767675461805792373108323281608491687825612441214004458075478494683476277884809223302179812380514535480974099108146189953136959604591638615340154197757592441383589749658337208850464728718489808010439784320916805639215378599305179242623969112452576882072438949339114974199016365071333409593230813985626554114373457443337005560439832117363770707177682013033105079283569782394246817236249785234170484136864173331896309345851987938558552357024419683386981476710378685028944013712721864019243816611196374047534265630214331951003347796477069233732098050382905687305065177211682430471349920949124157544123139743660398334584436619807305072809311856745448494464423947034568724492542198673489381307216605305853223616684914898559255335362692122211313522139526893050529035891639623866360173649410005840022185013358042569606633119396348887584645547475887017892128566998365599078322015549916097850199744083063472885682718247128006841256713488076011585469881519248386398052437268215575307444363284804155546993571361825456964332094233621091327345212104924001315253615081210975849222497490285476052429266884810515819546700679270840404324071506560953421062215599060774346871235036494400061245409675405810001641025138769668817333865954785272331929543659062468894681216013075721669779732003099005869721353416190953800731840308023606163158807035930729799245962719333073416476590277187496554471746029364411752477550629102055983571215967153747889907555680428142146453375625731738998247014736539476762540517430953682166741254009454948972383136888493575136377295740988911096678162797259587634039445962338957737640521720889394011617167231982415605893112451414755073580053617453292628856400496503104682293764728756444568750130554480024353434775895753930720109260454868147977197807277188333496339519301963709985526416624387921269454056389629716266024548037668504028132340678510356336053925394099072057504301855710026803943541590297344458478719049230588756580692595293041419907156789199362406863860014551236681225525370215785186531011904899737388183507994174421550857481623393927556357139523034866948294015476376796378821379081090224819185070274458001639176884089830752878655697700251560629919143783120951959942420443430593113929710747103320344147815012853610719512603316853033272084694240864442040944923769163505416003692259618655297376972427089758252107859038778291521081661466854337574412783544960761003478113958142014030372358480061728866949694823846835763068423212342676054552558547995796872172296350327539667396766705486680623911162053060249682757446573188086782983005146058745621389166630245850673392378986332023231079828214420904203073546444183640235864668675859811252146134466157286865476850688259679740796766242586643074218797021218001412260152009312041798141610141346690809377543725466993047782887971691508022351082012262516893831468562899411752619622165996522723265013336458045991554658939947664406319428277234595357068053192189074569209562512631315065214023067068465907837537453368556864614299050200383620919773363821624713980128858373571650403805435180606380074972954951919437765167453731060798108212574721766294733427735171899947955852221736931753731734065845611852638091240540650844494688482961081806776006603423802703517616425702073727146759862147063465141298884916552509495914176551839397003571725469985272751245099191448341325334743170788112744963041269774774138051773866178857775313514385427417575448199106630805466155379084747258386960996185226344931226086692015902278151098272951767899139321235623321549784467777962507225437248568514224767691744151906832231022092566762202080052936101741490937384918267634355075516622445481900088959569051079669475954878273225259152411303913281215385735266762344599803400701754622952495044691941314233417567542233236631698181404031451291613933362578153799183211408850112797925859882747355121000729010506362867503908129520804041133498917100018837035140549191149210687158051617728246641648015614782210551923881938505771722076969292890113442840302364760137459851275365257738119314187634992510591492645834017080690496847131770821749738364507385890468392559631208586770320402800372002806407113111884848508834271074975066342328616399294239769145169111551395785059468484705385427696216125847552363834054625542805859063350056551197948995363801685921771943562567237867069374742913586478262230967518458103973529192151910528457746223463483893966675334882365460567244731404391305484855918668393306626705378348597342914770925475794583995129420415729606934244489532776769092244229231867888300187913327695792924802844136992483389689928785778124769918657665849027395702817371288415906333724243427561370780342899936064951527797031524356301219577254807584943163619075727802058360227257884946439103344667677306463234578018610358592411395035147319807134143789331736564282061819115531435926929133796399592458717386635807188807131870528272241024170799414433351694381153622969951764663481800952924387649686995119708604423346541712756432963617102966231529501007852618068241353787641207037464320278363221994756481625789309374552160608510736859391182863854860488814411897377843557513861844375833836072028699180341702271384975352066971979252110613392101243004095950156777841464353729203596830124819354470472672493607137221612395799443872538080591920340795720285069721232548903678847319032884017327845080473682670073201287483419775143938630146871043680496022117604851434037276669703064045482917023037724134788446076310263991560992328533693049478364860049648263599341144183676067870475296319212743785104961019126786111609053840128552025696171994390263191354337912306570842637500123544696772785167568856285330983679624146227574142479844704564703441619294985849123343400505655214315680324431264130639866019701432981230465319922361873675850615202567679772061507502887667226049230598561627442034957334037827608153464112008618812542484304204919236627134065960156000980438131222165077172596864185320795362480423257201876783970061107793310031207781189938221883511156069881201147895682193987408764995749673105490691695515172808031067299108519548164673496869970390260397711742445116222212568020329515752976153008313722541723517976689795551296552344626292071082107599294411026947238148026111760265685705644469714939446393348828993807155728871028527448057361587702047342713296998132973333199524739828458082872095473177107464594876915021313932508437932106342670375649814462341094872491910690414798281220110509931183176968784753402952700320610798261534268248324692983289835023149069666500143546407759740605756193733397151888599234670532143918721400443927730404575235533741950856427784921447078798614281442102195223403054003182551026025668994686655905392312347341559540246852621667621317214253214077775060960128736681759622007211174579524473181663324382860512724574365573255503427563105718261823299301103388383527053119463805075910469686720618444448929912346652145383993878755096858513040620720285077293611114747342023755132685773553817606840703612868063159881115539536351071205882211340817365599258758302531926179382987304852206416522585112350892949323919140316262247851992558383681411294208775909024088289723223087563201883683626647499501672460437585632777336267876930632211255782022010582314340861627557133988074077523009944315422552613787327244158732995754403193883252274082990537985530444421129454024750942063258381120720183251836303236667544309156866019821553108374579837314347938878752779574670093035882073814906475079771375261391401234230437135905547103747882307130636775595440393869693273670915761080807232574067451412999804756791123174679703200423257986557092351901076761421562020741721341726325566908205441550767641292142073649888747622833886082051547364187328659108133559233747338871724298070432890890751207594559454790818645444251285472928998771123274984788870288179319521777349130828036818263891708665472720388173132996492939624864260951106983205249157164841855689532475155500561671142388320480677202158246671191182627632125733146554069668749073484252290668704399271668536021487337820031952889955809641880364067968179630697077085470879947664535572973075669501423788667523788618196986962642852800798756395065837542522816848967011403703081216027913554554331324425017428901753309672429694943681047837739299344254407318704651638529422296243677924227680578719352450659705573061838593386188369380943330831154045379467971094526829924990119271449187798407451380045995501152382370879923521576255833805309675748101123231870541266200743919736650618139050128993423958356898850628204128653552338867063200635669355435328314694122741428271241384822527051863315222132280488034588339677798191408419877292376089859507318602005917568075097021854641817534906961527478390870814514258080713836163835208232126985546296781264826980132615840511866260967644538840143641578316388578040949042284314993599035574783895894338165396774871542513044974400979665077074166610423692771075669323999175351225114003777981327524901625531297568564051585727883057464198328653078416833590425975415814640008396311221692775487169214898256390424338210226850329595759302315620919704491250305091374900031712025377311465292298843011824999133770635825417034992209482892485332070379377096690570726056074458351000608218288746704688578330390333523439612937319228489307419955705897219839916819860964532233952104404702309885442872387501176562786315405104358090979900461196151290068635449145132472006873342190811032420892033343864621187691816977104048459915063894839063717741721043902969364750993982649034824614119025252769087480235496849369546267607454369505766792182418824488745744128890350634127185419647826135134364693004115305417758399453718073324695434631432748700784955299376157249942194042889190142068036658079991538324442954548003459163273546268431992194205204608103085914455348244215885856336944020547353778431170669449454000821776502758218617869125522570456649951859804368385109850732736726445996021501459291307354410726231264889705003783714056985098764822857779938032727278492320647318608254550222689061157721934480857611428002718234549570989661321642816256673631717918087507998517239771320773019508362943613407153423818433846896885722072434937808503236255362757017807466751019811616298239865368943575778978588056030830040576742094488173008456779231746267453453952618352238203863188699161654600604907971674665935203410462866168341412918023081669307779152408734848092118216475098831802440044023602624797610326175112264091630535521600605594220704368408203094281650758290955818211404786814816432708144226670108538641805253870357987814881828631108966705229855083252131416169758035134204826979826613415333295907783646782904252571320185700696210896812615670992235756334245145489543914317492941052654267422088374979677993317065332378119115835651511079342994552397999353622571082038642722112190627413504083676053875574966027797548142194986705614232444717257094543086163048341088645411590033218732689824023512129973461937240256936048729457189321160650736305575078259186956273279221123532438159345451873577921932540152657645855514409142210487709598347981801836627805309794703175242478028066588749903009921343695645675719928445287550992609144777049101163400655385795999486287612156928517988334739590784602316088153156603452967563040151718919192706353968412973690870432219698370589599245929865866474272046828156363673490729228475807160542432827020812039181898693361362626543338944281109074454530118169250793483729803327082635076542976836421769990472768705369970322879416203397357772731065306117408118479613159846746584654712605754601947782796267494923689519301771119360165778493098655124857987473787257973781454670344653710352725138379940022264610800484630666791436503191543702858898284511066305824037004896235039158100471035945856381553995399163899863538262007437237502492029863749184263941923596702518583908569383914717653318537829209322386645963988697358848310377423043502056340653871831713349318266507247560110089409128151680416942557206159024124595749780240393148037927807318554234538019877479556761701058998941187143688229902083222503806385310626945811019272772677673947723013489446185586215249392080171346047132638013639732867100202703293529600296802151278937109285931011631576314780724246409080752819793276025536043961563709123256751817230153087404015190835546098537082512472744348671942749288746746357117117885212410937725978052244098821953047244653538654196221291709205049492866293688017878130749142805142352409038127421604807432790174779663383309840701632929630123252737375074278332916330010264331779084813347954843083328365430517760387022823689062159306913324463604143758353446083359564181074332505526860812560558126882253656635446031339128951528221252783911812655314153320930701390383706138883053774437523209889013056717227134314175254502408233643899279990210013874025062444848355888137602329005611549664026246461138900344038297024965876159446844365339247950184008619911630214390844001155270781758399574583277508452909604026093955564164641581996816043849150623835901479402094903692916385076599972322410883085223135705450595905525211240671312592271573913826850027028832976117770885732844401280351346571565458606660499253201408606097772542806878624186347377882044705707570936887310209122751078257342069404351430328066925362646900977535254156118062726574676451319369126569095585067907481835973340876548824339328877386318016849128931051637375070088536491902603432194186320414096912253796856981015166216744478804791366049474934817110182103917835478635218611095767387801323840800397324514085733283982603501904592453545272261426286179809725954364919763589325050666738856344362853495025744876161365354541389874247673276084002590280209018025754748485580832980405206184745647358107056234667930453408812152441409871904067140681885753139248629381842432990334140447833675082256464147797317343915699583762710181851926532887677312947852273666312447963965197711166787920842260582987547519858390166378227032879936668768420755331596661700517908410375599743502038691694849311349402506979441710774785363012095704989347976989882768409500327660061369061743967026428750294938249141632677181545176697157257498575675949095066617878471463052448283760940118279946518606447187202727482442171424041023184455935789658052912125552864798868668952966550935631435813054544681437163490103877946841623086108218587549368189224632125277913095703429349781288178310732135339312048839421354087421735651682048524986023030476514041323059748900875524463307116680993008148069921960816515409725190124770851592179906641061292504851363558119457990602320838925797114874290787239417829921266582707637354660930779609703438887720688859750680593489442719508476722720032664041628284223801024774013097849002503899462100047106996942339704456221755434310541735598896481963796382073533031442830577460556953186788084995257759771487992582922638212255378361535218484020186669676686942263802502559414423757807782006373373957594485809108280186337053604137432234807129655300471179874755875533015251991978206472695334324761817265596519102392040431708068729474999323680649114790546671209827124368323201154542417648400775663636678014061994099409730322980694214501805889484124945984045082227142037546499829519082716745189379565431763076145793373586333235705114081539644023783554172254921177915983812607837884144548861065508480956395114687225535168654842933680556877619433292848873006266000053500069003800110638954932783931878135961283804773422143357034116637275447502437942098181870328740351600119688475382954472951175853064130610034084687290566192687111848072364712520313406600247722733039807501253043675212599544442315092607746579025919223767267957405212453503556748568055727886600827841002164263864232553507330029823555521297431072613549649171857892122183895882735581260715521904077023074230691814297594539462788256729462092912829729055011117237851316271844154574972491012618888347735637633849321770590192585098665663421607704380479667842447376484806863882717403789396932551098733124763873093103440481709881577055936752863445199903256723538008359869925595130902643745965712603588957934805124726098129802675049405705090741778114733462227457445908168453942239818851585262024322286431381653472722870608251663623266616857935287942624088043098400696106903622314837993224255877030796535540111610239767672240210954584021497438733173939994110720935226999753260332583794433426925459521260600043685528853783322615264075017094216745407382479174433509631698924906363826511613419878677514660939674014120970622402803961873712278794239326971826018827404397208951444056390871996587626992521185234767651748257245648248214214996448147368431514952954524997306149863181368133469864450359740220629577264010762276115681011004254428105687323373056265506374835765903249459160389009030182801876377422840269313344833831589196224515319601979117317884746045945567135877406873817547564506936657293783500485793662555313843748554895108326622068722942224304545561594062306956906676438918222983699944267394337215487883288648890042446903027992233197363043659503068844809992828101203502189578278184860807548451633362998639460650543740366026814862956373671358654029336405508482615392560639138320237939978774072111637281374721843033987230726865036375758327123775887774622448501585026051829905534475644952808009252864383268802931885989169386908607744136012692036937025593040810641097927704644437210226376746901872606605026095059514027173824165649643293051801062152877116030256259140799790999060232677825740424936234320490423066099476904802663552256761576141264245991063167835855692370034407825276032331385793097944405486331857622981070090849143745494434472429589897509913212157648565506022764367154928556574586831949354571306241445485407917043068186660840351386248669807901379818957785279979741960522412722985479278877569696922367588126404185887135655837925625317853319529626195190874663882977109006929037511230791805374383107021885469148240616483347985365916505371825059014680080010755993280629469058241438987946496388951914034252625048837408393814437163467373935328331875473841647921646409046032138439541081240377493985229520886557738645563959110831454303424464389101498811882756090107451982800415134491888754059290822201269264616874017372660980349986325855283276885721916286972041324707436759241672491135468491402120181575248449611473030630755105060796830249950149698576306455113890038038377959247671150370600897916793750917716072101731183142305130784491630302062124287463695060467957143988962843643559732463097202323943030020593911534637539631973172284108539169029855093462082362656094136275686055562265460245253490666948756931008965590992884001153310750275993788690831912849969672809376162242156680369290516111094177257270509374153184647060422297768997498431981466449968705499036431293569672776822889802127761946222877975831069386518705096577252270044396501785684151413801016370154452109198746723695176173719959306617523658121582274510415016138631978824239271326624367487555133634364402982326428228465376812522106620116743789919142342202599836863238395631896335012779607814332764184542300342044312725802021179305902988472522736226155525366873797264727820373085768793261929442694359690216789843798398600303530922620269965453695777487998193438972268598332865352884710864912730380738356530866080259584041621180907366104782705022621598942588026907428365700883035253419959054877216039665875510384376896033481158893925516517816138720413880636769750838608455889521138919630149920221425747778327185052831658789369939666493671954705739977416030548443326895186927299915640765741101742540658984138143552325688197552419817431673070351182567219366270189801214678744964898956313992520193180807191973240788989356969212187537614256876406477286184651295848364312466029899435280760256359769320382168259543763388102449035751740820033481684811686122388997725803834607277875333021934636319285609828015051940125676370737959645538858067076981681522998931051570293263840855306779698424390650206603439900151685660811754693651516090897850262649853323558752720862530622401026462574933709660834231660515519295035090974213586950687751130626021238776549483475301345112043337009588902907430582305908236753371693324796318108330571261339749795803341782074169141915142923229953228501071070313778675427495409335892846771951543503669033235235724292872349669472462764188618134451206037630678262326622783413746099889393595657905169236850293660562617307565858490757384991047746196882590303029066211206916047215396432345713017775420141235900080169493438464657010939848555371288106449731819254630356661661908873522193987048088575091826851957983827844001959769963293703117508962451486972236043281746661266039686923164732529042184180030142373393116542628818696381804029997562279401541432834798598553778485900728585152557244100285946761326943915009985816007593267252812590763372974090670395992401520660126090581915051182743293038411317344082679643522952718416237337088749658784447680934070210969090016000190365497241434084186012420136989932345541050054246881864431374648446376722383889075747264319961753835567421283101367076502929785201938527659202566117316573332368197518820974449358388761903176318986210994174927841232625791961383784065593859714266404380299663527301895178570878883550341691783599562600062920817433183441256482457178934195208129379520777902894714890600883970853117305423191071129492422503261262256224310109269832838344831810391360586104118246800958388767130646951130244483642437127373888444422675783162170558060255956243838447947221964929591252617939632262951280992857344566330534393022393502800935584819725782784229220836360714678230880346002199259446819408143052865433773511659619673351336155732846521748794583345557733877508113811308686600652214258926023890886704622594908633848528246223860106770707035974949235237651577784192712917776990181148425166094500800004091727062672197145934127365364514728641759486293656802781233082990925878748529929821617469350839009493275920529771710338996849143815942702256152583082856686137313502937698880001661868461856929086537277751746545570111307488124791413822715798709633911662899158388618341465558035732511383094690742842877468221727868139947736394411937649715743666626096089566230090859218081882525781872003811416479418474085431417728218902497552331875823387910709993221386760880538927764368764803680940704932850227372769957153611829747105458083125752631606992804557119914519388650362561570802315598919069380227884461498152187179587369638736288505121989376239385707697476774973856809257943982881608159446890038542414738638112891713452426986374562560158551830765693494589957763364116718802318719817106181974084589440970175908834652058696891804240310622710239321197801258936933170074526098794532465228617223098555725244619001542752381595021997400295971193784342681363733926570633301813070709952473111890892006784764793020540614223119215568665308292593768001334063383279995158598318583262512834147671702009322748805839437430174087684249450892639020356164060562935434616231221227942119053374324747055401498286521493917741253202335491544705757889706892978550074683524537727352095540047520671719713330744118586706490958482850610131328377893399937133944642126430700698693815390761669885307937490730431690161228633672724445499639808933811893282784728522104446672891936556964508416817753358861435130733389307544197257427280061680847829260462507641360610642592484990161893054753667151227241756639519739831194928553119696386137918418832401411949277947337468415450936428626043115254306060919392102732403838140512773217620314230547901751104884623167316077075299825756670517763752419575604914276847752740563294270374710587964214667900416174979091131465137508889214106628269743532149254303724065550368333276893923369156106688893667188440913947282234439862510536859737409243275302719285512376271061688446593973966235450819118789720511713720732523070096703127504527531314778374089212453144056600412096111925769491274985816481195507093579188292297959203313943016615887644295367820596134509257914372795698687866520156934214529637624441044809591966666254578199529669504426948123674762827975729515363882577296297322150787680466209083659016525192614978324895057997284440438660023070253903797710730182839428893267318434971018318009373032200326356511661635976713156096967821340836813093494709937133818646803836419804552419216278682692682328981669125039672116184975861390494409938511469612746814109860189182952796540475381876942958303588800702850506371095260687670299421049011800824957481787047413606888372291555316712728778641793015223464549637510348502985525016860670488831933560466463846263541747446914722478088643907423639549442405572707202608233844384048458650149849417101937095290522494252332520511347186619590233600892657794685679081384511621806867323417509119369324726222947806375437906740894315201059619017059811932434010705728653252311197058323604650693615444380226071837121392430142731715776030805787249044681315851634893084657422948984195327681219673190410669691617903263229382259091462983057874171756301959049564588932273370341357043243540182085725564253680426715210108035664416712155589581611476468879675181276219092077711951540799999399958041525549983100589759792873151787902339168442835112834994914280118511466295077955408698479084778637069209772226592239728044569107122562480994549618860886991912378021201097582916541460113964175848774934011732725771178377247273920747583869565491036780503496417180828227587821216967555958063000670210232485143920697534183958338920397720340140466011666340398443318170567897925522597096111793734673999107057900467848136537845138837755486990763078442484058750593205032548153051261489351975299100349833315353624508561282915100932908488031337244672907932271635170166037219116686795749692355536966192781811464909953186735663745425207335374243830726708525737375743413011928702752534142291960886423313573664074519316113410733993185847614164673451823524250015161351504062641296682271165489701203360920834155469844423694406567895024233787011932726424790241306853143365029959745449338197686107166171725303701220776367458939087000486501473773103850936835794251814725902083278396450513872351111573170873950088563887255258804338731277775950037840119638218282689637169455012232001483849251739768725086148135589345709183146357298315870854060528627150317420459166594179468337947299339981263415481054481085779954990238975399201013197619263731794934141410976927775611667734802710223289913273045776956157486525853755003937630540785018205136361175871610483350856442703491426156219074574075222439950363730319206599972807805666374218990224600728241680374695939944026078156715345616347771708284987051807495860397346081143747536114997241813894371430331961380077637571981029938226457265765784472761844871218259508493398799613404568073165325762061877738034639416202827295541543255293545932001679136270743089306075562837180408399539762167151600283263123276491565433530530306208167303768825702905111757693349850942797751391983690323293801081135266419120329793094125931869657779974885568986503763371350242298557043269377018853615235171209153159993286825382753180591533300584739598804368223919984301915480617010594454208861456893210278035343132350986791648956945767243443914280997315079396796747726158569408460597139035128060186569817036135288081497371423401091719698184867748328055589616476220298706502869987576409249827920050828515465134100983101701235587114327418263810774545109501836070137960828301661649192713653322752060600310842955103148661371198473469179442572979093777361205704751208063713525070155692687605674321305151078916359951428798796558434196700467112029678451016737170347505843823055461219190736717677204437685776758438444458283165103690450864406848534505086888887600331727968448581995815751097673162232662474945041391153038143226351510049884885801827769761573570047436119309437133922946390991883127442157087196337231468976065656975174912018657973623118488693314518616392178179652362536090833786461945601341022468746796378183220639655750765172057185349007518710591698454891773651919294079385993043388426410770569326464342166451850111333752227561333928113537734897728427575148448824007745666688370534789896244796105547267788157258715415469181519962143878853218943939981404292105320164727540502694203237406399107043072767688539425039796011143912995350513255918461763733826038185693543023433108038110403030843645825130826089922737092653735976075925391846653049534473463781498351183640531483687612381239220977728750274976071921686804364011316078275362268967415043302096830781528086445129837373633380052860949006474832666786960647163017065803262820567680366245482532002553939172476978489494713541250660922990322587921957855859129399374618256200342661770929622184959908176924239726063152677400623318621179641784923464771404546471463366233902814289814012892814440739137764665588719460423650470776752611040394144935367930274846588262173716877508171490733755722713953225437740647270826119784804311593260652079558801264755330589774955615263727092937259233656916164632514989950716699182550608300172079516689950948123024843543904818737737065322689694984731230274617563861274574716948419732665941416994893182734218144135953139662484070045083108262138220694705647264097716397461886776243353381770200785039087609179421404841949653730000538023826800353035871764780078176001058267860305192269711655914773258243838181326172409332044313243851314679821098151827660933731525674551143052473506756759739724447879469000827945003619733251825869707839148224374194735009804133863194537731605155409837365630577106735992499791753528818302909789701987378396212298687098263241658669796102141028222020925690073050506587764882774983624289447365592219200270659189326960464416933126136001714783170930661693323023368976496386575807701990239418104561503018962730109351417144707718874608367904337998070662103168014480468292509344516588988186467329328587983851178630444517847003252332313089931133926025363987107601846555809771024290367565379538895241012351832425365328684257808350984892456744416276301092108637107042556923179585689818348470809335320835875149061752690192346563702175680251852369015368826916708993323644073844587337504490647561843688794163969012400156974443755358663291998526140943880293187211532724419944463221716086500537398419625753445509586545190170943223755528292814205448242003627218112764205901848601747049251570422043573211363971995561755136043369791604113176260891110215285200058040012888434012243646485836030188882228743252258582085864803560653900379404526596298314624379144744704315836217207181810962365542056761791718796856318260458330907484283510121489203159240268350202747365382657323702827876324228463105053156545790666280769851452802272982912781316741951413326830311985993175442390017352859915808045860995720157810612239299111142360718926230614046875509993067086504051359725600996531001534541735636836888019900254526385793687790154423025872422306181953318197711519453073473654955439378872893623515075890917291150497908073854508214881419312054182003089839355676347604614267577295154522329914617150733563169347234667665748260732957950290293292947822410657439000064895223312884064248794419489818803758434391735097704212133603695228293024439291072548546317173769938578364164219742913832447230804895536394141514032257428151449841134415200344505771133392607612410446364273757258728597150420419373209560286819080028557632629187462851590482380062293013979479763795532037414221739885370530614218985553737309019972115837297318947840666642771171141333044227705554856344912716333829646966776496707088886969229034493251884111492584036261158009232925272270754396357280683445196821416507677289936739547870392066488795824951371876206180037584154046669428010441944688298994470836288304312270704140665216091293323196915510660711568598871892425649670641336418067154225728845691989184094555680757645915676591396918573517882162566451199530333412663153075698811506543841293660020325581430131681599979511771247046538423675435410082552441415214718560988306703339752657017210221440086716417635259695961126290181381585823908793544370832430505755430316978429464425758268953156931183406987583963344177569459489053839759183572681345635246923011651416847158926738515456975897270718722001829349539844773211715904816758342159077276934944199985797756168233251787307249860574210264044033618662575892205797594698174699851486511894811045311704139696107572629211235409711639877072722941106446370447766675717691609431211399318008308561123811161542406466912040952879683033673398772397791167853337677147364483972760655293945032149674464507734159571164533455618749279144992929652226022250434023514452885840959231675479902301965072332743349748729711228377718465450861222167773360988659486020285657235489131195833823175976129809491274105818999437018608947089441797995261149331694314829963708968805538904198019600957655135277945879570420108463707580583728258603159659076989174735622135874281001859813114551947225825162921712738932042120362800773916459926330824318197338644876162295700048070983715335072509629784524326553638538497251600845483960515672142814391286216867918189363884203680506579376238669717429848013114268101720205606882119176702202668628773126463011342734185821774399593745999372335927971537070068550222751973901574085248841026357987034525576110570802582032786356807631343746456040250594185063104570948836327585226931001705303531032670572964465230458529191162262605628916249466416483490907752513820125139214443057265874114498630176292035280206204535051640049703349847379383143393979885018118605850060211829671067511320333416293525931181027969987353675934128944959702138555175389211134762233543865974348117660012518231441801859414281604700540457559284605500405414224504149660320390491460731270036522467251674987083098836479694990897777886393924392490659489087733773793534066176583782362717210866836862265276175278749383968931203022313897748872882621470615828912788917757264463808811501541470842474116098777995422098518601534594166108107561574814210507931779171012866120378556798130324757788961096762479798042136309305848164350201781969350972755364165707600606927559586335814378891655088354685844618371628472618171550978958635072406455181936088528050175222041882818129922015911034956423778372372040828707487499554140279568455026296932368676738714840260365934469375771049499430846956952892054411713008424843467669005778709936144256461080029940659799692562453855868134446494329341086277333354431813101776759593408060707031664426892409368448398742496590052167549441222655000691677626803273623191211901536468249896208276921567493271158535538437720796634460983744186020605962834611552529796205372402400601686189449618912019883502068980255378205817456389498684728974607276899989042434509196163099879276928280627833954721541949451692906732768753042615372459551133328678701963932076670026599890504232233287818236118439789024302880531810093833160488740059753361908761010962735286354045382036422833232330375041327262292364061780508638644598357812029276620643946777270736940165149165926777693582330899073596747882477128160419950546801543844584692939193801169163949627367413876542418019860171621301619521338619826341874532833019945834266217105190486359411509814778046198491151732625954634654447919159665597908462803233147222647501778248743971259880866475072524098253903670297105874931680397289196837187637602230597338388347434750346544832974433308996079982042634906980103577933630803319003533272200821405044592072217275126666154818598998389401875341912394977863549779274654176693231189426714252949257349999219741550994284268971102561215324199948795112174604351862638120468798398511398746278196825380775786347807306302550066299404313445938088459516387478209221443204744157125652298572198126723888206807029193231354461932013237918074176910143377443756007769147294653366681213926572740025587615103529532565431616953197177104179380876098162032224181631282883707142482818520291349595676283260425885470521312156425993080666534517297593058674873277429031369766554311262132272191220802704974436703058946095094882492897866669775929700882572036612324704163184272987383398871727350735712533924158354106566157382208912128955649871908742655918828960348448180234530828628702439882988428732413025999013204597772504664240590584541465615694583887791710659841779740906759295612642911645875867249617287233610499748929485095325593634214697719259615454311119697312032231153289968272324846029547278953702248526974931951671222740525426957676165809361442274138129796226394674773604351321151518035020220997405944233461496481785829579926688870341358124468037717586129279845942976162591160727261754399687297580317911142002522914478488916870798415724357667162269328505231493142954128624175478749262116990051257384769794443568821258326161470204351053013116073503855052125634378842296477953339869310688441077559101596185202853485553696685536531533860114456258104386888220024969754067539577972181739184924019040491457142745753002998853282237387503111657679694194207101753909074505000943714614863000984468234562015918587272923027803971174274605835096187492418656294798300055277479011075596404013778488033453126681016208385843091542937829614948507614009229745588272031226360160061561109466018308655956000700439226049901745413111358597232460351781769543809912577630424225581301335950164455076966136625081521327645257181222667326477161663909210306142135581557441385429505865595475143968146608798542477496228340623874089167632087072130519516652012286665231401847561197398710733542852263373415656394725954330668184864281809758401427701433301651953506143219720441245158342006446815936496431490161174317951337974097592978781676674334854768376368159631288198197622903268007988774464232189617097240019991034492410850891387754287170549857229070705459826801815055237699452526189542741255005515276299956688706912997877861886330217312899206209666112744301871880600385026779608412565060180955892543255548534784650118525370899887908808299928690200887632346512342530344454835904031050562671758101871164869622606554014398655911709272775753492195897984700896547520327162648679254404141987558628069058096087655242458332222797667917725070171828281194524392148661017381168884405411763696712702258561029092033389223249718250135953793828343828622261547743142823361907697663682802481861042559474890328758556144714428141526601974925262223346200765428672435543611859407168850386021141910652634718863619859441062348225131992251405042007536800320266187350216516601035159214046872904397417800562362671962055995197862258312190329294160227501035664757152519862001440153393495966173284819869781294144049795204206685593469819437061398773738487772403334089976422486678682166440136718258946838210367417853114072652671295457374421103631813356358814552278465930938436418167248899146688743692850414106879111017491075102243113098106597886983324184566142267761007548779975109164712580381091282138197057138555384874963290840854830209497916717543257778372340513888904494793245269331202884019898069148935278588578291923486926246189501206582700758594110473820759716749053058586516539052565195909315359884369599175494260874091126431827468169752017805640695774354660759340514278669679045127217054094585866898050676618721755488709670346896710453550878591022802488925131817185453069315015425093041730031349856094931995166739523875194535452776444154067179551988807482456478586165577297330812679465568556664004606476832352558022450613016164890560954106290509854724030578880412311444551993365016875045160157802755737963384927414778394682754883280849696718236085232123527893884931354197275593571686409337452437634208422948102992793313061442175689394454636770524183234364620961610845968123926401452770129404768580654210520195322743265878855578087579194825396565866098709954218049743710728580795111713870028240405832271990290262105412617826706608894532131490589671816471391616665283286574202557392728441840536915435805059575115388948290670611402007017500320088319139573191017128382825474906059645124262996889491630003405287914860925868993131465266771193946927157899362659660192512309466499525136764070200714152934314557049297707429192583764357819654646069793499296118555283801737864601425480110231592085563333479263121132330907025388963504793091785001916292490216144475202205710383337604988877470159085793843859028853358145140483684174719637908172676715426698766221319314531211868838192623026057536754610503733498651139643290858620268023356451207669636130063057515294417721900689418322392024669062437553354918959954736050212024336868378119320255322276028736716692243826668561830177422394541020718477190825465536694811648606171765282389782013696005646925630596930404432392461564728288020908982421900077120379839183497676998783677292085394515255808457591165492223701871003174922310377665836670571432873813831371625044440408439304023904532620736123062422900651260604763468934950620651067831733959802063084957971302939753873362155798961001216712884576254925538892303301592056065506183676722329209136009254024196050180983058210881310741450436483667946273880058820733096764662378958809813134908968777117084564309490861745150575430163541233758699230111904716329002432366708710113052468613564349736919447587038615139109726244178390797975676097362916272133455040128245062323514706819852056268480949024692238377977566231734607714682882213838915961509177630873800344328833979962845405798774819762200260625115496028226710099584737709633594711267529085411240845264429616320582501221736892900548240308794207747254602119258053421197977012261674351783107526985511532321208268649868228024344743812938407630653781864769165970803691677746133836983002226611596213807774268810692949409990371683741255269405719572885699223159811423117744527595609273682282350564057127610054113503786331365613518511398006020918292201046772643598758324076195025102444775402674550332948060452928914440429675364765561421166163306371838062813991116031755066330630357962824236375009603559302654438593771048633568206766397789708286061411910906806292788002512612686427759246900103829454007276591401433792142788269060019492287267542851309642689315614870962415419998693063113450772842858434668995670045951805267683616550495882307027215537750318157599490470197573096213837980974345238714862644024823700865061236466029393954178064739171191625557201438529054409017937127611353400149768413897884617017067455913272439084189935049346275811471021940064004289982262761861960628346337045974749759933148894195586139066277460149938946712529330901968634018413948281651509225575666635935380332516946834508812952838681163408020647679337844854114870464136880960470141630409779685180362410896442918151737064500992541189699522681990750610464370653761096125668092194719437909242380871614572255910998780740723215416309136371398760708782826630395378867041385074617622126432717339527723158771660398794597544998337018789856060751563784086534622773740011172950387329267143610341401896194369543336824326483663807710277968808273813297636172217304918487852453516606956463430979216982484489771753203219266441429779346522283015845388987521028189714658538686101846959334935376071499089902338648364882024652553655153551886742128776827408176027742910548592626649613581902278953388526341744085487470614212713863332852082269309547613991727758779488763225514450834366414034633103635558893572456562758703769390451043117839126017372758855795477165125105012313426041860219077221158782538215443559462697311974420890336227123567824683890476181600637811896081523103244213950539986228271737521292298269480089121586621045287298692134484149252895257842873405764083803987614126514453778301744970033961439934122248982768617246411366604709362692372715851616919138220919992240410621090255232231296805820060751499566443588274322442438794236028109015952590973818638098037058836975978832518409103794613424317689092462345773378086280317734717064159946770257399773125215761261387640827623960891608397689422823792935174073001575785169227411563506684994978997829034888759958972047875091604498102316380318699371110228063905182979110163747814126108817726831911859635650832805662126056300462903353543722040866199294527583721317936099541459035674983511847828305417608761250835417215735636659927163409842570471161280211263823195065335481568855352431276564537091128444241202686101592838241653687237910203179682674176689315318853104878100143065134381682630997887783294604891878805701655299800896048922798781145422193775916055541134818949913930148373191951652415763087757320854142293987917184916294272714736690380570874015809070534648824913249313218446103794155348256277164684815801094249411567274823491034702100120275122438331485619237640925849944271681090210084931741660700938869871956432615251830691185369739297002686437335541315634256102210750480354391675389391278096233705669349764333214971826473767980528940881151784847844953383395439305300682365966858226085435944538931273277009068326370697215627237454887758796888240029665257240690547779261737309657527279159190585863621917186563518538130377245050947391086884270570146072329919315375842954012498011220608678654061773096870392664073460922538939041758510508382228321899071271874654898621790807205796569836126182223797025205470800300292908085400746618769765868175034673927098792322908205244806782166392909813540262332064730408760453904444895784585125684460874523623212581637525484338720149098527471244341117738626413546354710708408872998042585235392974249384344808944003809415109367839242226147664171713719836177688369332804503171496715092256278901757116017065711350724415944594987603877474250376718772537750730167618802611986660320698969907232303850714226174555721171306717372338607942620031074830350978269883706005799660749742158014886811706092499395308372577678995349758552827545242760380374093905775336835800164066178139067860154545695596719150232097694632731969886697576027104859469543250559836104496195925250962465150569408546038122757412411992945174866346119209085175990279651883012659904963156565606427156636954205677193563234829345416965037709087571299866715130147088570728903774365035234658864884211852358958781033394270121922820068237613704149956346515453265185837539917712075539738436465049969148839678421637936903900221401066743662192691963442169784350607244093754786170890040263060059898180060631918691205761700227782211047224551796429039271006366313257962604173156084136925312452831932420996804389168167750401353114348321548494061132988584077492292091905869593009975392189595795338995097874941981688387953500751207374568005145787164044413870222148666579363424993785001276171666829006412031925515065119750851246180532560699344207731614268320692099428022228554012491585773714132807495462225208156054318188194522101503643864398904438942473840552233393083887134651104106099169115430349044658547099472397095871483191130491010019774953353609966734829481779706061607114447665312137492826063721063341513062374935032046713676768878387670615898982758594734068114053923201720578544261096344016546700098460839298719261453194830551958594429787592202071002873338994951207694124454882324302445114436541834483421136189268676302161716747682475202199904114088885212139868448255152807185143538785482158417765846704650333732601966787754340810867738784562909772757492433445264149330587437109590136437127254615730954300458958001682201877769454748322704417561807630411604208174412467450973161408608280763356947722125523571087783963454517565866687688777216983141365700621686325700175183153848952509528794920539626072957471896825137027425891041201732966131676807868751325519235416147173538902279480830283670306120316579636329209349917436534861368016484928138524217173276277509483248439657651839347741907203691728549861644748081297880979228479952320690016106663215700709624389669218271662974523370025970412398217108109486644741592471834211489845095302932672863383236540406488532716179668329225653371150646354592702507387278907407436265647858486168169066034784591261877902978415989777393700497404981321708075082879954392586071750817499137606329700852140630213028675542325780906005785128794439200523511368432555315262639105597727416253537514477840601312395378582445647406970969987071653194752078338550840297998049125017253171421855723362684721109177238605506974204031161844978019919038687165387843327110433481387427179631854661554463155112349980386900805079585701040001644404782547141909041912325959321066281945627351613753127172014932318498722918282432760185057023999792030348755894780527815124451561605664517610041913168937071482669653151548785220427753556984610317039210213934077126311388595740405038150216350580661404001649054521573704725967839804359233740439420125707076791812004602307799041064077401461894343115873458414850369660985918151765006302934751195848001983746708187037659053658515721500818691658878614428641295205625083961917574960733148774107287818989644024814928233576510372343935284212171297458820391173476891344617376492678453815942487241253511413281467968527797690940185931110302708559275935013255095106566034297007856883515999302172497453584560995164162467281184311865704443184803651215832721211788778960032452880466461395016176119591925227730912030209991357879095974573658133883129198652326600208991998063676461032818383123639919684777246066865751022697026765378203509346136346208293350246667223176219605580970004689218899317440818514777423338206969468066412871466488530239647672944032862344898656377684219029442408013571415073551751743372552905886106559179779862986121100448174848393871770417846515504259018608623009530568285103160551753084018331718918860675433939736352832686503344994876829415744833242145019480365400733425392783077353021914865559847115089444069101163721962597229530532075833721991464728924664795523153831201414198500235553490518693619796507706835288831042516476238331184829704418042828829890186425599412645431645925514216681117102967823755197732905205538706730648561900770730552297495263980215536115053165953588865206939970237772306702606110170921957185194602615779744953686837806307343599871305038365794812754358236074426103317497894665422157963637398482989404462624330209435347538934033006050754638030810775888026168169215081262032208765397352103440058278584501837959787198226001154068912255747022980262466406943803396083613386647197402168280097681006863704736781891455723032918625233473383921528610847324524326123143323302470920726248122334097652316615257275637989149127143639756019081721266724462064333254431332883735729152000696372629710931197435837275008332722822306400443030133894930325449950830194377785299012680329056237770254464172201572768065069955370205587282357114431318320762113851727079634126616560558821007411822562698865044803273670291408193879417116183954845066247222160519037526681968781269699406268352225860307353438955111181793747868878042572244768795199476464782181489190049831884326412692150095365180556146122675536751970594326143044624169323128796320835744194439639490536736145494579925070125789399187940387182803115037271247211525277937776594732358829252340660471498811949881276011408878385046098204129884543584633961145597499089898177954131201093573050011669662965709800166927399053273579812018530505136727686884977450886374428366080238181484867764458670197984824461866703741296528644794278072399492094985460167244767980368483530120113738779156376259104251815016436719370687411981932432915909065401091494025324959250802307633214984884490063052293448929895337571248947070728250979180467776024873656943535422933171250450553690647031758961466565349735721843191440970880228193012700667612860043210826644470989744192035678169393641713913692986983031802626016579282190501016235874194643917912838599091341717588465414041095067151265705483322242407894906898989492632778992585443853754899162265229218048233029065772967683448851285565252909215534238561692692124950577243950047728098623025321949666570726504458544864543053465364530928983994779647467623714501240766750611115172189610618807591153641664839138567782773595484058193821440406070480924669387923668070404255620101165072966444937070671955190888321992393192512078422665441292385269815441125893113647058086510531126351937588266097399445316520383370978755985840861281362787686969175028967778856591036632804935639645012539658281294142264126330322242123165076107672328626906655006112911047660208279856797607174382475227131676540728889617553515326434861562569933208448022928534036111054014212829524063242004647821351115702384024238877962937739589823740843569291129760560677697529582294888558542574661150158334821717783913375991221832621699021782380297157797370368466675276437267134946926459179254205394637607208671055295418309390712972019583400159794442088375673470703755066190162606179283616250053381518950510838327191854200416479323728962399092262842882665235276835866205695931955018911732761326004915535968155579736080425307025434096531428162757571596365367122194167567121480828840954092514285416875463633839915320046017557355525114684590684038035050451705459374209236672178779228192134703361838456256099028822173894271296107423388577190173277560588709283455550216363129341220172351612878553584663969764758048248951853054340084871627073012812979490878420035215216418253345676706514493370728275676620453306395321902793977759198147166285266035464826507869880496803322381813040797077079033207438826669950923630907132204163378243918872982017581199707375214505439423368617583084495282738269382732766271653640797428056567351020841162473563900416182074085650118303677980940451543159972449404283523866578477922054245222278918192646025057757843040179831368088732434155141693773132349689608241260558516176308924822763507283856211449778361137414564280281895827959697622554847990034981531874186272756776355049722299428187189245121015795711647802478588470816135964266734784646414211857119114897603645207487591449307696478533460383975539094293087624062353918507390522887193726967940898815532391252693220698275057160881705995274704341653207463533282815416165362365169891573759718646599015355393636479282974734241910231335472671702498346099879265554410671516443180571357934129613725910622459531063110658245623052522605713899803614423106170736851580475846389804130984889279304207057869332029444390990460994071334972873414727767519096185974706958348148441580571366134672442491533248249132199031675186734427294391291396787440721216635004823979770002143826625739839187691423149702299431306824698075182973553990662852686446240704640703466419740197583871352257785269227777287121053632035598265027435463589627002878274518531125302700840029244139307956911291508417993124135124847274770253123237858469097726430756733382089606194724059002714590391349124897562321812093666181231552549970818735033600137405036438033271810152735056083896942837727887156263629367734165465040626952952926356707201986820500020139147181977705231831161102146609288016848769821448763549346780400759993941271023965700005883816246199127206528804835492082266608721428245853270702963980044556694717822199516054037959554675058486999750218752064179918721328062692512440078675443040858215298770213163637255970008267506166586386042098697930068614756264384070732491782144559610313870852856778145694295479644397178015333541638029864071664370795791329992932522632494355235104282049759086459837469523353299296484218724106067706350409223837312443375554329922765229145511409070282077043689985636081007549638467198306677240385296812204706951154371687682055291163893283264068075659630584596906071699364139197482642580226170939919968268928893999482593038767656259500667497009034825574581335929065375253449718536979505968905378254594316625055061267897190368887633252227357483578514733251198049003283471200180620399074273758253640989571408736157198163189619451868902707672846488651220074678677345628718251163656460705322051680661386757792679881239789607073834771790665255984527379117495777175185506087165699811431872029280976467857648387850726910765317482202180615548181556985568828390116405684735690166134831157106312984302097362751603548217492626291275763218522222335706577053369845227487251064881211845974250194128839071218575629936649749777001091156090213355888691520798887087894580292011613107890877815134476387734091618682416980478118750461898168055658971845153155556087452351222021965912764327929082293283293012319959078238023210736363379310788070103988069772555748019561977440139031548742765471072323788680184544831671586392900931939632088547392361325090484338374937287436967542751059533725042489267530155748211364349296365061241918343400807841227263198319690186210078074285637748965213272413761647087470079056268857995308030553367809524561839294991026830311689973435822025286166415550743039405318133621660103400960677890401163960884379328290712510154042154965446590655993671558755161724773909144420510783405344590971242928722653515993943311834647061152528247773377981418438599398320140567642617571039917053501857808434121290483181513211085143134151023619598818981995295433019852006188076415108588077140167465731583968036043036016851916668600231839384039244312835938745454383706077704424979111508154535291582505454778426044537532105178339086192617408151325516308965344585879099863058268725214633309582107403624487912016703137861212365984745627373643452718738267180574217923843998180692965413412596626922529489110540230199244637317379275292716665708170172545431861385317068584010932688387843552799015688362579551527920223535368792501255843814925566671544199476392398062476530916062286120941314584031970284441315462078869175951977046995567543676954270077755868213633343535344453558593096044008255300202680522018650632678404201283796896604658791844226549919360026216821441720762932579209464203639289182105060281168074570417230956087013650656543917858154691695738247472662338672773795168313674996825977478345887579834576650226132558807864011448256507929683381542256196363567807323787968295759779112581830685958420882379782119133309720833395403898220633923658307828918753400710102697958052348539998538495296446109458578455302463605669047470370617416688940666023202365346102569892668550704910505960810360717532297838378197370185973703354609009116283684789644503306876379480951782122542744290630707722884806921534176441726155616095016758601312332753424910053168609612878673128937654024746526385870046280478199482220455439075791863466551067484017597750034255361236419006274150280361462253291296873468446840288649223393063144500108624910531537459853839743662308867701055010175777138353345357707356811308583216500809648697853269089722553279071528652085118535534841137215339355518542996149257090316388567990317621508977406964556830484529181528653443802658974709896327816128863106825869866254245598803888835729083127246505133292981158463303581125264759219242656686548461927379218086948397665427621535803417288830760061867271310002299591783272879948149717038798359564586451754296539687661506972750393498263696380739038011772297608861623242355496502085167027154109540024383159644882772343168611137916779725715100539846741951713272173359276736148567222784522877468699877525329555303922357069077051405348567120858913966064513976887257262271830287007558296928277379800389903375487514782171405515215071952902735640420714816953456628047064242440903937861783185509635274072512416799213303987425145497464242499841406950721819916939008417163570535234148884030774805843656836159807279404490466667905695222561180092232269833012768721039784401580994985181867178495999649740882401027063677961317736041772210033037134871597446067472598192804021063431711431210929006263127847944230918467362066548618895298091883231532493892783391288971713527633818696349327656385925787019637841347655353874007763567556586072887264639878342313537738630049565051237399862108172161278993356866498828164985444378282027426931665644281535249825018676624807274439319603784945651348477832880658678135190254650395328284718638935889110935775027450228669475828024417257450095529296243219731942261640051832135348349966353748175146939459268881705876376316809123565041349587597305756043512459772214096108821150080828237878759229125632883254620543952227460940258322435384878027539820768282410352460336808237537883591822893484903142256556090246556348426803542842928576480784568239477669442963448897670565944525826771295944364323043117165491370288150547123378877799503948134776228990298448729065052568588514130534606018716668169854018776250359699437242226183590250318039026965850293677748853207797407745743570145270475083915363723624686893587706927214798895865166453056141760153818995691938509353477338673120423145031364103340817181602507824052281890319519209558828670399050763066453289204259600750984639351207386661149593826428961772801850321270295199756859229980762411713411786576500755342795283932087238046327922698766136153238854841767869105336700306802756296223868561600179429317580060985578527971879718990261951602657145211349512330803760198975943559266657646917149617273410327786220991506772256632148129665131753178391642793747049849706510398195441413931165788989911240235310645866503010758926650407702508086896368653076689455294536471049851657999569981465885862910276206537606216862901956980757357980903220540002557685106966535867823535419233859674507348784017601774569724955097877001565584201729170573178765551795502094414806641939362686015291618992100739246677913099403615397101341317211747180207742999435432274602988990643008378304124093387028678371695341799339931397332264415137476687937319105658648183807223701576072883769940266947269913285449497536631486639253193631983265220769466389265371084014037239966131083254002212833599543080012978406595605786026456541576445865843698845232398307496466967692032671139824365361111887221028712749009315117970009865643624530429277315875606361475347532257223893483970542729848860376512091980436372786789740569500260425642087026421938937858977430224724620026120861869084746327717890996063220491885486994466360803619810997074453145732304541719825941466181952396850908428097969667416563635887541412244743664123003811317046239970923672443558801213767347478780698626581740077687803610077954941155584220858184418186009512947626098004465038593942847160663370851782193173750283718809440626667764891238356788484419815859412181575350978579885028373842160278081461650164561061454140713655560642524667188840322278081397042656313412444857722739292269494257959280908984651947161854800689594238164993978195238672154796065399851056815269953720466408391731636807109566391713940419538108285164517920372743913991213848554710983490846135654754474424770561805013914816693525413365838310459827184526281900418938453219456493344006643157907188856065300606252195722261650802210517023785201779110312016369813238870597688134876602322154174976956697441799213176897401193581145757301105286679422195782850230959516791646055163909053386854725339126755031906939139905113585026054514409998047853895364365739280002298606362390169028106251150249624585457243449846484950171393257846449247472359301373911331167383320137563657038832992863346192068525759718855385758467255375968441387921467252645448410122824511019911496938503682518598929261226675928768575944186623149310959056877537575146996983264459397528094655244406922221582970040240057245327166667757561883161036877279036698198410697235110618212289237711772678124382940594592792239373448993998291718292553920038535349802574267191671900939562919015523597664679268437744045745428235808248130405191615116725514320853635968063513368290889534920615168124296973569112545748413720957940563466983024409156728781610572569943010425090252594570777998507318684764210216751483273551076776662224941496785717535340982445158425432020187857218728156351437216144074983421086900653145945445929887182928180731859046642585585478394274208522745482566390380158295887388275115035531290628851298822709805370808919556963505987640988495869647659105961965238550251703504031781695149508018567579746584784513706347859898894931213098076740457996815894669759507048284623755720239616353850538909262075168223520161407194715085257520407671882981574332082608136629784646764090498402367797471809261436937498489410832713350822657361320192121602294176247385299222982911307443890305386570674493537342462964625192835912247062348842389012823169635888901657433679494038543902653841077019409712615565469692868308336936029003479673412809570416039769968770517976739849652916772229439806755802564215279918184381591133412377680533246355830774053875830252422633115636178153095555263933779239955633783656294493945057201545539724725531001453225153425492488744575421856579400858325766606940435651666722527554430517310792177977067736197054248992603389687335187480883616163690652386573696227840898335834366277100174914335625954268139782553306342972456835582218459334664299853160766633863110510028673588442398000160388108749896140145503293255242954349441627742956966587890915508438193594295923794983891693664221425285661156224163718252584651754501687774320872386081230556509555852163246646068708987824675162766298325867150759149902164478400934969967802345186844283353746688456315854320883972896136170956335257186756069882705148210566079221688050059268287714441790804537206916932025599465535757437760147820284397610433954814935007202488995948708061861484112168619474915370376403998255538687910689916122531486479079290536588062164174992834342753571202318320608837886283522158955609966708550860625402191695747119085518307469857671248167798567238908056131702522293666210129794436406488657298462217203941062128660464499180204129781972654547240586955116093637000602785485439965944945941770232776545682418594170163187574924286173273210568388513703724111746314109550748764358799199059223004239261476317497431271374590261918650556463043829060130646106065790062367646687741212005938941333905597849771092071244812883724635790223062579818973452566636014756693879769243110278386122605308827805354854419227484265136363253505272568005343015582801057588914622300984005199432743903878807611451344101457056271627318088664279417470940938653701397956186702518816199107126804401153226763481867373432584691647661182141795357752717483163187151704235022353947558874733991033022894096796977790326438061728571259744989618164073912779231856168218886297405296020311045906569050759916755772699808495565405940268969170055826203370507286960683711190081853148864130915973604661487535165771022110334948281476224104832364515188493544313942294596364876232026884420398886223743118630281475167191097656874486851041611703216588869093489908613697334786194975401969468640679745794049792584851464664751057030540236908813760024883083953609961875083353902216305611190447294632014365572445075160338629452138396673720430731678318353495659447818530429345761023061550517037393966135059938150298965936374957461153839419155946963817569774092830642928265830286498435094531096677512326650714435536835694041634124628831844311345896062634249525685414797794891089814922640685121664110625429403568387631300805363627983915437188384242432244201512462109026981405239111156813379031437332657912873623511313524316970544013572489121119378315177401625451637658413291412335891390473728299265564589078806038356047287052224525117211840923637056247688186536026617887490857212450453075757048860323077244388771593306754574933886700340596158594120189300620912765353900982694868745471218755021286399901799822135540004539790202369825678556910277085605656046509639813123439163833090617911381111331076747886232645252111002521875076988399156552089547091137376236681390438611733815753744336525307637007022391900476872500259115285499057193765782905980097052803295680807982481625316108013395853968974686552407352958828903368422392700925620724109570563459736513721252371791557741972694393857736457907027152853317735458025553516810639410841815391433335512034622872203844533453288726538964959079504844737315351755897009504345819479780247981937031753033880534572678191668510784095044829635249398849666930187573416591282417782912969864171774665199641663248650758348819753024654362601233612314993845370234387963457394695919205657375238428368066209506411777422094704632688406089595634858551102854220697753525244357760189145410047136839827564758210927825102873880850475215297659041400526559232262867252094455243934662482515956640717736670825288232480831119970832355831167365068033881366944122895142208274131910003931771436078098950254303717514297177050028299203850682810032890839425773142311043503304363384356824592888078980412989865801845529113497278706774897135024156651658692544391704184296049871346514505036038326738013927010559941455793502169246801526558249441566358068803236773467082940600324814899075966247338002587392571807888162674560820424571391905952139504886818305875241616308672932728180052597011621739127956263827018225455126734576387980424638764791606968636400728328170059002243779264392333366906768162680064923738554028949728113874101762451873035106587891813511077341675550455738684774032173943478718596082244453900053370434231568933324780592163977642298061384285560410284642488910496265655724318531738012040928080728997574198943885719916601656516742518930967848612104071740319004650849662511384397522866475744014704996051619490472029857165332280939676931725678772816068029341882372172474428764412106753151948995669669262281509342464029270293546170800695179088530600176102933625753663247300364824574282196497061564728765115124365563810839953446362124053424186663544922130580859079927666671345343898980163141775032781989676950086754813342239023759909577959678816513538124472713574381958913152370287255075011819445703737511820685350903199298000649229676350132717746692438038009786530040244812760366235231209619513610975159993782801991175387053674352623666715634524374347778141543141661917557999115027713461858494468530809337231866996946268060242319443744857536727121408991200225812015612060110501422835161970652466394505659392642736452209568806725049505881786499400403535660825517296207855310872055976750549764981253535278353738072755442043273347879183725189051893166306254498874223163881104086313323503515150203007605473078692042090779285424836692858747041769620751845441747144000551406711912234731577737414427629353240733331042141876596113185021220472722757459337927006880455538843651198246046880605027337913527930349236218002994296615206422367798747274943594677487001158377783946801691001418793068646210657113064270388277462591523439103052936683856484147566457670259490478159987041230807907143879296795621969567276748104915934704962487858890213073763188450377291135295078597599813582603928231494385227248495456264428939926281110065603005972970838010485217047714343991672921382619989533035976096581022161378078614455939241493325404255164113482338576133095470582029198423621063845787461449846987859778399099568794902719054260564547376966471192033039274870128263067218118464879569678222814732021762440579782599291629736849492365918687430320350363938996999120610345115286354007168473602705779909764501009003825379662528101574117325526830644928441625437628907361361283954244983527310287793871393374165460923235204163863980081431326499755729203571654482410499917512927791377046539265312299681634706436442044851765628419041385414421637871823423400407997443352762537345127704587095337646932720350614067218619142330871207322406246275000497343271165744866557036421496820877982400819642517525912862010087399043696465648360915859574220731361491341120151432452738419578313176652860490816112213400593039101270871977231534320200826990828081207111892444270873140618126195724133058196268578151985000046915043257454532436148561545209587294885891662534146183376179210641612794912127501686692319618023065493658328109694977288511339959843208363726475613012403272413269778250670359974271078405906110722824778675998945485686710559723198546885747090693011846831738887849237591790188976312202792589829682709061286652138969768651375744830902144098749980905084807207172704326601504240308317154925080519299988895900962076464598094729949701770290628180865791137600924191042363047326946173591426294363454537530515900032394053722829223353042365450419628356644842015711694392206505886627238289627464121406427037463638310331829010124385797486828217940472283587657077839890104215765953533871164938869417267240209270646626506206448475105889911090971794508021527127121656659254335506595276851879149961484311493668649802684708789618030979259080483067987881482687910536874979194137788302571648584802304830856976016675955094702801682620573537507040475376458742603612780003701507929499443932459496737844639062311945598832654904117700660530267232623642806671700205926689851239676046971335970611220058666967129488517853297695309878939076736749500915112299808281506265610346851624415163452514396941928476804665440806984143620019789333259804319512765843736223469543727606847793108960070633662552458288699254254581703858908851776391999329465906800126825159259290435540010615660725108997247192742812381762896127248188641015076037470910320076161688943640510196336591764279244610355328819440253359432733915652538249952498076299524193183484787788573501760411020420191523017665068927031896838808180056447277823484344963423396701186339219128680499223444875840346676715041881212455336382166298273284802376470793293935512065521607463424062947794170315861279109058157633353970595354985385028379969848734804430328135091292077886342653481650751544273272854673521989925995680774239866555481085760177094016272207960889268846553051187054589304479803336608145476000982983275284457418336416992147221731732002578043803902720121329977662647787559853042905114628902000730326671580626167263697753054847013892608462291360639754723215520731493721307136900570061070731590421324355352469268697896054155199205059943783987823414807195414288192160208485752644308065933832495803256554018936831691976974722645550863780362585947202663286058913340852455838266690803565149559867644056917942867509119192304854439040806427348850593682284453606428414328907001934865127939559213067679751106005324030401160170281389115537523639556766020817029284557709612894782706331580386961232483657534108198931452881408291501404118837597843462924737522627257784030652421428301483445030161918756925589638181002665956538779425736284954852326110425204112091293175938872105212406423694708277798069407565274697745625872555911678987321953519977166537172285673504124989393191525330347289306367972689945612159533746155700381475097606195546807949175715256824890958316770147246596964688967744306590429524658282154614865238264906456190893015136102383910344317643793346048449009213448917636265506228711873892575327711235905394939276540279040965859559369857637096438246055276335725430032162449788968676851198280731563915493265159780443053431049602552333813596525897378623952483956319367308983147682336909635280644438419663654357232925415767693822372815058590687476390209983673820448576887294788018041212815311824463429898105984956053911757682041769451638629479622494643713264736437196799015490259269540564827372851307044477550422315309857165368123610464821597078191755686791349874514605015393465510666732598821030291232513352373693107624917912073140391975973211457913169906286855832162432107327413925444863650035210988524801538115387252353090044718127981997733136088612025216583510177486230943902477205284206866044836490693940743923510480535988833988501886934460500862811534931296567462122634933008841701395173283999947699770359866981381431518700270147389963917199385400622267709004589251793230325793025351996247156965916206612501546168706819641991958626663149059368099117360991604724548049814064874489107910372464423748870666925655797772232474451431452565583336553455378893590027662460911655628275027100077821181738720687688949235672255680250061305742886861191632511884236324350722918550543824618636866729393970794128460675116035797022960124830110004511867505918415998346954912140264013942186648419777640157228839415423721849077780584667577549678640976685567222636549358244069533655059338363925225539396375425710041558517094170372369369181656783297418447085829426183757345630874582558907029184610301779898340516905939776920648979451455151684794021817980744209041934704810730438352011777555180560187736102665537972548291692968427813142551028595679817133802633881660097614351313094348692930995298012500279942241501344585534055677163964833807492372060053437090562003407442013705562557652354984244479254094153694195302774062087740341890636915799627556965154871277991102027845113902470491626984786334896727997198920892419424800099899337426341475733371120856357061978615728837541724661768916383802563207565326939879383831200897571065862320860364789045812808528538448656187832133610388325704027661036949688306035142306238238856893818009666615367074076074555458701021896718239427213436853773197981160843698278927114487536940354045938296318903803106354837955574664813971383708999414900978028951789299283220630056943388618404640659001248200365000897958089056632449395672509798310633355093917395647679528786706757488282403409030671211835268753569237183042550899599053388544530610786273379289023110580810235328312323117665249897258504037787899076013413162312363314410266884144646030445335498142789721337650279909134436958029618857187557721754107780631247626855997457291016420077507702568600509397533381792876970420182979736462448556771609840818957834656305310605763068850780119810308266142861317165967163591449133299610106512998637524512843517801959144845288649590897089702339101079697021526950666787873336271315786222778039701149309358640785853838656551719894150777605870349274812216833164434135225797368180603837924771072240349575383796673883923482343716021855026876701806095326441869242870801748460456914934517593026516382030906735430226155314374454335210855455580873299681957061868305188365672495075760300930196737034851177320676915774819615433735161034985512888863177857324624605691984401513851439738186395679141439311212847669534167742626364475501966711248211442505643925771570425431800743939415194843385812545946763547447435155125349816148388510425573976100448703265571338047203471227732576433530817369364929875102312829934190873424026471113359827393398573106132787415622252314132363910211822767126984677763166974586705146085602595344864534467850947153529517505734989258718667384209343096853303161874611833829375014122352380150871152728094195054995213602266185279080041087508632442915449547276685528259106138182881315674836184768311467259641648840625611634316866308614452565500926806346901885189826479700631342717140956611779323132379974999808544021362171444350325252573893801658386620395432113579799295840804001145563087600485894252310517733620238344851852704953551121814962345414555945188764713007713311866784961534874272696171736651268197988655848756068797225125033618081609545557340427098729715422519812388528220910139598261784241607941667115608553004386136399545623151817679046876268580354302375272606500660183437051640550817422935408353022217847605527935428416650671889983814764950140311682291861540948765635687726824283491275636620527085424034785095656271844417918961710507385619936287310273294896377954511057661894883121486894581025941528470724283103886686078561036530508383762135698972750189179883325823848559953459062757967180851514439126625522977873192141405011961254354706616774103692659148126748969559543659108793991768561005437850812028897063575072598340040618502739988614914661547898539620688215145586611646748906015689658498863998919939060760445612502889620743164120057111598886598877690996223934750678863486904985633803629904367373086733943140082950098959987016888442903294109868734496430862235305691636308793655487302154182030907370607582737848275737457936545456893920891667936318219891005874311618241658531621736656250601007935010317718169489817729960516424907481484180128310065349362910880404488117928075063163306169740833543427660984312843411988620989056705340846101444473988802736391801717332412143978759159682504045341890859902571772707625250348368195345161470593809640406917474140382619588352494902569588067803967633957328638078459202352475219642284725057046418960294142262497362641144624338746082169308856257751548387560083758453205097744778939174972507272741224197412634925276018119424139124816128061831592065213362402069985601958771306523843998037615815719133836132099547584070671114020322148463088899779300863916359852677768866601551826700918224218026997659647705530752604832033555928237218564258536957386712082365670069548713709203627844354369758687127604572034221983556695366830721793052012834071725333357360956765497481671014586557277293652044349417913224468430636720348087463050055421651311863272870222250410312734383731140895620603334298876259237804619494809795266597300765336591861667241041392405140819121315942293805276546163598618215226436443901912929828239085355277975247209841899549795520072302384173462711825463014183638548918987857508135614074420887367254710368253081562164240799784894782137280433354184301943555956365615216588243653774906149298393760532135833000433087747924328472555523406323261294597200361631767946904325340752741700866202198835457481230416358424286607633106989097529134082445538321878194924897495450771358266317832096273239452031870157592643287283982309570813659004462585254853728363687451955452383351136464282909701360608039739481823779273011661014112029732048200933756924971289159491076915814885132653349995034348649762732353940099955559597656431103601081364432665389238372988555835557865475945295655945798108311265471933072143968497969020415574502135749867115930639602914985195059870881104734094402374590949388410059325306921607152510173258757302401097809876706059214387528359657785679786501697482157694398184440405710252267430454652537492600468720446592957974097411104729810669250760455092041993773110898463045423878438189297079909403676379905242152913245232378170958521140640418178944929693288702903992276525173442669758775006519115173054099898290806086040710012411788746916913332812709904190418276597419987933247547498921419921479747095871914230597544904504202169817505677101028472735692846556727624585442055287748286544818894217111655466746494888923972094999138390913030425745292177767424526796441865681615463651637039677469008826538075164163147399507531969759859100144064341856886067534621137119210516514609399456463323651530818097955574897979355520800502614818136157321791037538918737840219626833746536092249052887406331850142844666412554729020290663020333896986823302650554960711323745637190925642497867846738850631194727399395245714476816880444069660349146003883333864423066052697780602436060791635831369533034085953288568153354442498313865746536363031597579818437270026143980595153332787351236657790498710499813464372416970969328658698367864094792994314612360990609286214596900588984868377610121557627760485264130338607943270617847984762231319625814990294014780963754001243612310481764562653565337132999714382860777752754977498014905165597033264446757659260094650968621536702502898690872497546574623046619024585432961745741773763616573237746818659673712199161511066040533598663748856712779801576914619766182209935294059454158416185395167533485951934463533078554687918358790449095120568699559329934830175910989909546856269799774494152005940045988091014190800010409254759999099995987201816785885962636275351522625415669604376954108135118958375062430697880139011951768236664943889899935949328031104061099028293094861440410828569501979890589184732234572205235019926571075627326511263736065093952105301194392756588498780490963635606510791709090307916912619072912871154411527152362670574864113346803691735207778938941979986298742803885924621863075183430934083453692928952206404932354868584326235099672050847512746378008300908297935892626713548388582916523381909037570548946140372438022975378195405404769121467719625443231338946780161573115738530732903590674972333395928138016089906357356230154945931871037692919838645191098406138100329740563079341004732493691220725170004542975764175197328385665045554844389004690814111707025868696136421450682734691858390182796720318617721559723925253418092593174331728854486721383932689618365553619222262728895699846051029345812980948495237254831672294328732612037561422456489578838319207304505205409906493293656508199507385291288601375437647502401622726924620697272422925726512387281606569380237583342085661880391833683541237284937184101747051253377315252939492415363528241170452788090553090075703939985671853724762867424568760172447137628374839464076405879356592257922887577386829043008117884388683022749474591173988898062151753934370758457415656232034148049715669622990935877518004104452427048846186140887010418768143696035331751597940152111987399261566812990562857511436194730736647606924935439418267735142319026617933998347385342310134650276518779756209743072870086876382257939685774426267558095488310885138885219358751154689662992310341000743917014484034975755548519047106824065623130955408076606993882242827673037912298304103547863259705713473948749782581983266863831181980442019733784171910853121622991005969604007052214039855044599672788453944061667328129058663688147827413887281438650671288069357374186404873320088952758146777827657095489206151023662277245082974777038645438578110224388539687001316568481586137609792085692201613589365197116986576374810165732372774215723918985699637401310922847679087321037709247737222028934372268511604199498455982922681790340645082417380526776416199217017455204350487787745312537297306191441260094709335179570813193589846590994739859010113805574756685738411718498546201298674655888213615433177898805019399435411298990634279570196794037678671000827937665661604367722337309539315377194614767995189463188731979019974003829827532209006757419319012643518010711068621258598249842269368459384337153493076989820940097421908621049707133174420851024434474741141949947970071483125342450990565474126536720124791910173135930645849818815992204566128723436540466066737821102257654711036502189009705278932676411440526316021118760613722685521514217903507093208658336871580903636899400705840979107784415659138794146945570662539872682632745551437442838230356904334679263995783341785549295361560187080860591098893207652559341831003257697300736466300246871066615760947065935284265890557112370155143856641896168810818471464133155592140354310870611981089658283673809661075694374693043592501327327586625504330174044932255642330496692302943312669775046803273108804445052819288728864090439774158755430076184392365225864199686543732427483819395694930916000169886699891922224584118738249546514058774284536029390386404043501624745911970131722033694910354903101100389951442383109750972325685655016188449754325387996944092944608977106249369767133911747116764095393217815329016293678398547090433460183497939965198596119658799534053326303819211586040531249082777564101874229339738107556745787620965976311631726044401690793768629778957802704684752550278155657335835320706435702914642815955112762391891407546231234144237784204668658427850283255447855634740529559480803329672882211605197872788039443400483092735201728451237573129414121336622448064584955324316853524758750923148727269439967312848212370202778130969192328069007039021234133727726687060349341886357363893075864683216023737169379192980924232267579668010381782841382907893736151753284399677989653516154869024080333629145281653960132482248676824557671252083060145008761734389964939711414024036486848688289439957750138845400532843033194343037955382796812819703226534894747046864483204642541523018926059939943864184656960900621082552620894941522041887248273548789028868815435354510777298876011327851749240074542759543546212618129341513766024291466107822096558486605829481104675646775637671284794037228611697899707615741294157949636166967925672273608896261757045880875386858290607507879230937870049960517282256183807951684166785599896954579358170104240238581191600034829486863629606787767306759705464627866508387062439639398423371256552742859754698231976321446877705603516241815644585396234046868596684518842424815386700039202579788907842068552244330738826902610518607778175162613217295773379572053293430348516023597864140908146719834499875845409942443063906240013341576184020576654808302714830828816120196670297380921502361623065834218355450942147710364160121716917074605293925472778849377293311917159017928442884004761698094072404606685880142433527522639723972567238935273565929307561527053838322318123590822213810653208047900865600355663954500826590592377490780165219433634298930192861150395763313359342982290518901359926499347743153790038687828625219878340880091340843394821102597509147600716959727893378557888441467469331014001251097989312032577143892882667415292392584853300768137933246472015577016598145597634280222949815958747581249811560903717085209830721357679907946989983888105929503109257869796346679150485815687778173394011332828276060833315837795120232505944556090793660976740079288773961603818513374303438331108750097042433878904178526262271326971637402934418505340836756074545609073923861821792565818767838097558940686155596214520914762517988715681493192390328995669719856016043497052325009235485681825137643256462919916252008161676828266540418483313286255638945176208493035307303505035313061203332822840983506038517253762690030282665117401729946144290678488128566070988661973190782106491976778963941698672638583931043919182135905878529419984617483104991806616756424361844165190285562991062772808047890174209086257783062785090311628506116931222607002515337861974453566134113610023506688774719008829919900537083896710638728071151991795884953461627753147365273211302678741587573913798497292499481031920768748986430926194726047964385020519572004427840439069322287968632410476303150910301425787089714343726454051447921728414640291346588732275588409412515209856270972331571157964644267220879036844180550817162713108231860094630856653843448483700585036864350320825825220844588626567267437285048982890067317594096873228625759093851166932106690143875864286025405847806639133658808279523869471795698381402472422978917274370314791692764234293157189015958335840315521322382155543293178107267998245223006000586567086486920845678762569619473487057296404634169365614959592700092927358048255097530027796918027681872629497122946658084362780494348308954427180924320812408717194725094051742993533133755036366582511506136633164461259172159101520569729934667863945282844950630775509966594264843566443355838559990321106002497857727565343647408475716268554907746386991018716652629378867268358737747573547660533322624062246986709056544400591816439975958234645217759105320395377211041510247464228009520395273695565752598079102927526176680028068756094851914267810722907606087536372641023703783790510393950355146629509992526094839995208707897098325457425171304795281874444427753812913266143216617672532945950872691440866532074744613287115842127681710922107742309649102201945974696939542022704784080196757853007864509255044150473476162885907570269838677730832947243894065900989562406588751713400842824494659477907837614021564546706874269195944746890824874981921623653945181888143480036982482194751229631995926346499347830755785679733991794389921599830059224954362205511480083729509894994238920482514234446718547075777082146577982961877300599045925637885893383682253981876746253793758154293891727046014895084935216047235360113429599415359457444854288566703943064103662275426998610452896260831039468920005095151741696944891335587786103436401960541841601906323361733175117856652371840306147354534104909988376160317429853881513929629934419635939937689315262191295100835716403408734492300068653053892702942862623809053576743993962542651478908402369469270099668875645883905955419257723926459859034103780400022885320162921405378716437594111498161257590589760468840638675038052992736939662965536957858421492071663506076227007496813840334788947456003948069569995585062342925459401193623265917303178330062273010998193377265400563936078031292308135770823897750551907662800164703930649296155843767984816336725962252202751716689219681204139776652979234576084704315512728192188093653812613056845400842105792763076930745213808153930626140327995632481874488235287147439438428594485193063194365554337555875324554264449238027330565374872216266922777792419058347284188677618890345982675378194299327313064013639063482850767506617479583566726525256810103118719091083876922021350451845125628008949811266284561112290961134083653894491613612239225165518238328070093819696237818279623499412382797209389314568448059109613905845533792167188057094750950561748977501245551880061646621643330148202551956573123238272637912371747975375857711639488661471857629409313282014582250978642965714098457725867223916182435314084500035283372857100264423059108635062504386372046560866430703503886258674512274487919234373115231437969004476231667712763303225718471365944776930827033502532738509891729049891926650742808245782457619416705314295207496272376800924311179198145207966625300755783559964739653710595544188787664042687705011633921489508700909065877718060620042417175715139211561770614585754362570052038242533623758018712779339611055274449346705721877363678208090321323919708291140177121675467001005779561735487996635588144640796095335291349562097624038192332934122201558490542748499068314763892536584344643658327604712607150294640683437548167037764616833419071092124926232135067258853809727054391901601908983380156223404665524585953671668152280253680600647352124002748237183183775323838790006131271594145034568105872182441996264924471580204436323354412185327156838583730806425468028626730422520452314091741720848705763055951715758948611481576507431717570945141270675049028021225267473953454357202356564591507419782361624926119983345938077504302036853974041828413362693598244142337341345345075504032126902282450125837288056156225404615068747427879930195287196183045302009807620556394168496681276332957674896248727424278583141358480811290096060391700829361659466057927607627375253180153053022784478662468238240245113635952222642888029261075085035662696319826775182452676801843024661221448280772829736565273148153512274075992835304821605097435782014821031151713324016646402905136175998918509863522026377664182567217824966581584874183218519414269117900593282742570876546996928912552120335638856282538997569131664690507065691159982784843770301314541690002836014672037798180528619722895666836124850313728907315725875287051765490269474636739435241408347765379178500136011809467069771303602652724856956151350176059490920315261944994318083309923660107719218164204243135517816695185826460117284631011344321331506969785746195249502925986946018871265707281814083306512663689188161073393246616832360393188909630861015704962545525482657788986969431702994346391712546641715474404387447843600278577001671638807351698652596532382165874336929347157701805293242943741487147437272608367928951718485321058599647084154320519278795027312005517374385706488108540330343963183897498206332723040387466537703751894020282556697903667179330296834813578042799700442603575633403821895566126405659186071886728730663516427756430284696413770684200684587460655463416006473536815826752827316292492039498114283986337795165339274828455285205237511323982526405699020184449396612323097627792394630352431377162516229851673984000453025747954441800788892851157977510763249836727328608446529564755917128297808619105839522801166189733658408695398556271178777246721306830539362496189214695338462491988697958461651840197389449399561621613056754556959212647211221690307214281762493166004365690258339749492404859097574269937753406804271249997833592068765446870092030124992778452580474199339693621279184781551103959777715933222476418965835337941109221737414399135953154435753290331971618445236657503286347430262638487686938111102558176511068181471433816712299188923580766064029753333755723921229175353635085023467839793782104162236882388299099959600875970409934758378599769713236771723197074568594843623334353424654678624826443454717647076449554879060077526221665134669943173584727602336991737673933940259668818387807063276701389691561574577314727168371246936456230060956450746327927926509354391237750461788143897302763952123901859603628635461095672670429419240721331091641863206371921246491214297419384102767337554542701824934102627570702588629986132843653107108471855588906780637087942991172689200695536192520109679434540738124448540544792884251796245039242057852144170107442093685370056575027932303878960827479625310096938367978331266056882475962908319410968512246523282307252606073434484771835102107513278233294488815631595112917048084252602295228850692145581885507453693024566964416820222385646069612493985302613772564440738985749713568087456398829413951037230644107875037678048064119916064977392669029403559740029569027255237598228266136428534651443869114237862504720239000087746737193651078577937050694580167548330009776307764333323027898120619775366213771749507249797692547713441473987504272109478000752367123587958358204784215669680332166158519417735038078350979376635309724369775790389321376818932663529325737228020793906419101062211238699187281203689856213163030991118021871578853774267557587588426685418262452127318835624301946862632627601881624640789969111285560333591741410724210664020357839340531951361558277955072822091685552220905749187191986743129051627195620114106563752732076140137007242824862834742039922637915893603418014340297183725783543156900058391193781196525699815769212750762801105298281743211933984531025644578667188299686411490062326081393729454197230839802371569513414497021200124186412766657150249096314532779897940857733497010448609085150460768433916555700392710001517481068372345026282285781884573318068666010273398712055935903426343284024756818669554829802673816327585613015645171646956352957147634152993728060504312972130885146202306395775280808557754032868872114025624454411628600529008212222712415562714374189296848898434521532860216852232709911452069779346724983136267423965734524911571646320238171873648483886468364767627227166584749197514956121727182431941726742551816692184225364657638219121063456471863233835466742199278167830381064199522413034059335815146802425337464768281369077688221101655678768034862082859284963543035441611030147239359318560644338542429481653724204491916138231354349354215070350923654182004303915847843600646712236773151003766178931411961827842859194087674721659024252247775107711334359431212431440544067210618570578286802141148869571360931892754712998577375297467672617640443506971585845210067463202521173445038578841768628866573267745605367768219483177445394610170778235819802780101321742287394198344443010678484137894287729960935093227926488545496102141925122218157429003683849692611098711632003486178469049363714948161759320979800606715922048535234128623427593714346651591334513295605781905607223196028431206331672065855577066383922283026851503676833278481555083650067825922487841590959646600275467092205134646347123284128755276025146833504324734402579830408063701231433688712072047372099135730830985202112111549264159521973305533603268734045270472159008747343675102116619690974427439569151680966797159328758757026999389687271845522828749045762096549180039397212384941411694284655914627925413137504272524159574334892455216497407461611488317356191446133118762845366665402054831729942258425647677353794183716461215079491864953325542871829683748142025646341213459971212228450874591356243875179971481770822304276957028637350279596280650655983403702606125767129502132840695796615836267521180670909869898036759641852306488716918567199895022163689129351832541747247585914243795595882909408118765946235531675302665781597813017470440283587431844025132516811580910529189189143354507851085349973797214878580248859809401422273118413745874961358259992557658896904267934926839185590327207071548953935886443639875189742575000829741463871239104613207068860367007660746902059817102077655455240319251411357500775689917517847639908305516722751532309711271918241715506132902514619712868081828642378001085795856394211856840745504842633056208814960355424549007054869125246653815483949065809275174157372618687452064693327080709165095790078723219414368737953485164634171526269927154600367972977572757004432258941334797301489936179442012884993555636581663479563313285858829176571621246035856542814501481907367312467141997382294030840866327624593152099120126202646453510381876210166431292217628623101299938537576683469553576074447829101146685993254525360758482714688525775567142576312815893286014948071005311611810340427713383195391127926763437181015294161096567650759388880790385302366367474562354072479831822823159329401443312900140688772614355084076830079850394314142903073145565535458067082094641719630945093518887974725068179912604645029040806492938707050978557546961867762134394189045455270828860971375589643369576289346012056069382878708122940022853121013161951528870710089322767840323885121769810652595676327730795986663177074699916512395813960440030528644189439189691003480904448374337261383632201407267717508262042532021433870062521541901765290178232031905265677936518728949473309697326661423345500299461306290337567745410689583799634355997840484171750627302404080480731132564660462465966472699593066110641118903002894942584502619496604903725097319286073591568774073484142998314550106461114751571494921009184935789908843297913999996228556432930156482866589746036633631411490773525857416176728481700347315891056542755788076932693537495136881683008755620626987914182266793023532979694250055413771596151057937066030790277437078947857799285180177964675506579183182676603818078183607342958562498411875195971908261986332580649614565751123609773511426381518102056830328102247113160821086993357752917698846198486015546334616928292152623412596504438355115904009876686220735043367546780252727669505949246780550263470351181085751104632743744317516676900597115411185951693030390498249567846296041723742394643425467710453590967686835452193205638378766373024222213890690099107034436390336711735705710057163218885051912884846099875949184450324070176128540621910814519704500622602239690300312710891462442139479317650795423042478453568774137672469447083212998607565577972166101561614257015150169613978041241602453276194576695832288386877541548928223420441431687109214491076435146549842959158266192276134225820523127052728046303119217559078087019899710136189224857269119033193216481628373876298301389152671159253881961409527711516640549677745766084266046818436029927724188409496503211119383074036314903061504597414119475958338065098236459599872318265280250410726852099828841652915623871886726008718440271436400469785699194172374031346547069941391746023678499721780274528133382262994440062602918366889278126990155317540199692898508926177662000861595600964213740107970894828285824517246738275285080040128477396593382377096458540783813920653585797322857647720128238147426084574383579932417126760042469689941804812603876362348551973931055302528501140643145748041255032075816337614369671905291288370238621538052655562859199765278767263361229039611624821852291543960008822878774098579983462368038159814130064831852097793957504019811974363995302156565281533944454162110368884729550693897074721985208502118811804172038207262691525480732529746542684203683733982829606367897100950336584488528275696823088214718770213746279721471728980767290448000843816260997743992435696483177464357322414496550320516587317680527091697437054456582360180406337863540222610899830607177155117635860504721180199471220007244454781580283469608481826701542429415136439695752615927049915663310367861907473709372162238707820403436373665344701113049586286061167376902284088586242892796780750796180681603560647362594467641136118554852701290929921581845779079578380245050796844544866563095286870421021946852973091993360604608782595490292046203932167278245975724075876218340360687220387989421982412686888161538031625600862505038891485782044628802662482301104420473604081933009523768461611597843171083367697587353852761063345457998612749741215788788667211610985535601118874651169026814862995289129120683837243388442293992434880074670684390348512871050795251435115538095023383979214602657087973821685453329551440624171678077136382976169404159455609660370472514142087986200296923232401161517787329460196377596206016760867128038044014323671455715412644450514792031315668361143459299850293518300763188994281964313054889401317693296753830708066570276369534755333302369475130526638348255039009698443175283048796029922884377828165599221086916692326764824702403946247817794394880298919215598557820959789314537086771147055286918279931929192169438609108522532578623247225830461769601751557241897794550527065392293445426528001457224861368834158146889680622057007201399733225294553893953973002342812405417113829011356923356208490194499344217631268115077030804639108221305616625938881179239309422878047229215776596171844291792448460476092258447889478525587627027220299668718477508979555899508366695166586729379413183543275504221899757763322783579507611835642186899886275519781430003101675802566725836515527848785912523110223810675748968214122100942942793797101873476278620789904928014014301568082944811488722886461218880612900041157048092256276483245559286758021942324330898479458065791868291661637963967684324323296574843487116393103640916672882003770637189502378778489540300318519364784210947964878390879684746070528587852042873912328673473472652985936663663996308735360102491886737871352292248172724739995941070189900854489796805274147515611396574876056260105898033677192469741591984992037985495016904505741090242652193550878436696669896659671783222325849612319917399883621436854078445173403749221705404068183869776973444289338448204806126557358923582034552217675188155266570911372943850672288386347935019911143789710772691005599567450417599298025175213650126453182211262055646842908329173518114882642184324561164612989996139671899840643911227726790157761243818963159018698924887352722151973608825900567041262059765392866889953711717594012304306414476203079086245581019268579379481857577446496682809272241251586922522401189807250342142783726385153541712528193045033685861598799452641846969828187089180550144817836999048666452692360938433198887020575072426596199583795612157607250485884269692782403618782458295389246682248764129969386297641926928696050338345743855621054045283403162120328757009717527752160358487318651468792591226523660532612708595146081011995091070835275695309558253738676489718055716886794296180925294930613868327419937865580814016858244006085424821183182899122829496111000591290818144308416904869206194368219330645215891266132749700952016804912976264907610156448665666915577796202943898525543010647688088731345923572107124529720848779266606014938121937915441029543298109782962559796521540921642249835785932556427269046941137323435232691645083820308286390045767742148905228311298742429341241446608200455665382986967669466495866362070035854246605837149806249688514105478193686670535372539332611665847677304153321806573458383403591645712401985632716231207293763985804769037571749433421994460549361786462312764699037213432419189588422802469047577416312263837162811358683069619877483566684255582023381740179070241278357255279361312262701173824579814610631142314487389030416078006130393514604915590434182767680871841608777822941630648066572377895202576675672385487618017704664284405925999179254137654697961397456365711959913133262373063002396832333768132006586652536828558082732464635772540582771793877448736519158883146418121860857847210335448181114671030582591254073033452303294209242162386084615147056460916325458961186242841852106852001050677153104508086039230623623886589884901253992585087394340423792184284620570201709725575772221007667930725626930979113492576288160706608553913408450342530417538897985832492795359140950583807051767681809480892250346461057519909744032055774180860719449990368859377932331749138366777019697576301915743411170662398192452888580425727271488823133731274001781013590699787673877550939434825102255206417912592246589079132902873976850904159707137942981561574838587490973924831446772734681192667524055522963042274974006573417035336131279749957374391268360261632725726319623638509514174421804732133284642494439019719289209523198831457461491084600984995763373989829345321094232599841662021086374431249575574223899768490775702298320047148436805623936338493744511073427428020684703649357508683648682260187503523707065208749653588164568145606178856865926558454051332016865610221991952580896743488731302720216926349207825594053226822897531285766580256790877715327590577771669447830238226790498144382044690796139423713930388033101246817019926699996540519977340468895693032455594732884133186013666159055497116813693842751418369737039655409668996882179349583849579363036127667074155284074078337646888035573303647757679097884359646856606194352818246060407284573877340384774945400158128545183229010068128666455608623898307192670662145355235293443329521048701757155915264839501548557955617154642059364909286031739142648158937580736564710783398951954096752542124525103725515650363193042376799822893781358510766904753801771564159793402143261323202726613731787976002445887771868887097958580789539216383916458190713538281402265092160228806519243101606322317306227924182867826378818845588968714233616950442143742371071483544631298736991610815530386468737348190455707560819300928981064158918306370363251212938882194930188659908069782134063324203528933530112738799140350642768018261547257124042375118838037757544952011070884582361528360426752518776163017453174381966665270185782157326526477071573544495219390960287270209735593875702661537576219681147196616601597365104978337344108238477994449315714799463669469936283296519266680888492796123442464422635071213945565263669000523666570751521748969541684936164147011187988593264760087898290209631000182682728867576534035536833948563189627957223153489331992278235891402002424062972002826365986735997014877889536739816923362335385872508425329050062897634690419786891818137832674549377749222198865666428387623593013599413900380858210310925132695118358174608386880086973304381700296507145149767303762391285143044966463784891498927713683863238325031096293920730738039385384468895558142768377009704041769365095495082501323220175231474014228270633011833900274941825873529443095283162027138100185510807063076829193703287994210814866846040680621180140483987840932460864904975556836779400597075309166713497062167352537316337028970157552569687935025796058194428590224481767560350423396425843726210084978370085917448889875013190528690678460162886924120295777254456500134840578919767431764087361745303384490434996525618548638789174398891928468198693785331420630551983532184230489902636110527273218755109114662249627302688286241051256172883750880394073823250285223065972439115534107062707500683324981693321074198068337036336916902518415312903281856668580041591016582451676394487831497543560553739370549207493984560041560153143708558388456352245766070243604688661270710318003905350410777967048601028179564626502346975945494375027771587911340560585002593723436014894630187214036199613959385382891641918753749467649137559454332122534966215732392402928525548174644287619929655451642001356712354833715127111066132643540083226929286991678896013487870347944603312648224522377573659421881464858210531811537979453212617247223159909111588084347425865368013240719321448084382568901038411989946987650257270402881372693541748991374848726694844347215641950662731129218589035464033711696183339535914005057277176047152956992129459529427411089115827395930758766392499405820979866183538495401480030950821485246694206425626585100958797900740301804869536241723529998030502009126332138958760655104895228050451438655532636891062627728307511778490922120012140626870832327150854700056170280049673448229729969588972898583937937395309546310962031530007743411405233033566456720096469485900777404181691305498380320803181466883568145825793281235280625152214412157345432739294119283988799744989148436325403452421633906972678594220793852221478782152765376420050399265799650889581812677625601398421033917285339403579996834380105376242337395330123538976286853139963446889397407722204583932677391084594043856637352510925458208321474629232668198806515285725588963105209865412182217141887848614569641054735351907372854137206948046569149795100374661415632766521740308120143840968291785942437979240281783459960912162759685148254141163786145746507529084518076143640698303978622568336978271074915875023809043990018392211095538714298506078026970349753850195161555744890053064149501878494886862465957511039558170774258399938732262175936480425996656842534707781209764106833855528591220867394162072252181277955226128891157419244598682708064840161575097844728984309781609311682992782229736751586941323867933690971192769889136013310631009150072921464537545175779380484244087250351840126832954648151791162833279293556843836933833385212771638650051878553650432162076416572682105937795637748010988829363491865623238403249924289316182645562407810861902674495657127540933824888823772023253241051801132830876928699816051213693939330609936320819121587721063058157643808569189424431556054761684051505398918212066115366070586629527633831602745122197012308852567529771468818956650798422923535332699976828473545046221141916202154975104026130567414198019114921895212403972658293585037601938749219755212739736443780794944968752189480440888406265902203458650954536966746386347005619218913572184636396078987127463864256981565009567593784215089543418662507473671818895964176769881339170670097171077300065002946323742104088852454209512514672802966113408490791954079701592099611438600332089248305616370049849047850883230961298753243668747259812105520394206145849873951830459261996260383576627117420045079620240930149928028458647895220666066856637973277148727075533756827519758197048843813660097484298219367576493754244783113366687216161978404450103489211876371134674749413156960089305806056443366181050908105800572168903884950315892367533658769043666433570631293142596630978788231994440280236905102346304249444664009236428570251839959445905668858841301594406947142553958040592345042636053188277252034065466309237315044397290469173090849689042785970944731698331437295952657345778867340566548205814261842998923106388680031549467119842395904837509796993674680072116993954234855550506637980942620252770209325715994225508479982385662461069404363350528508599627070377490893869891087591365337115969982569275337864978849701852348867933213475300345479379422518547888051715891110315126596197097333725489896923385463399232277764522962040097229991410899799480827404361994486965327559353761364275999713997536698509312334152436678317227386431578470209579623237385806150361794997272686567247894356129307161059662838935600313535634791360075892646045977598886635497344758651727067324350728821651974044729826565212274396568944110909833573384605876365535808952999721665670195084195586870426049585648849592247192820295412880606031438807045449309285184467634878835528965818228851995743240916252861869432884696394445833928779884864330313617307973231385970701173585808592844973398703616574015128008471538684676564039677002013893174575027671877442343827332155955821159260757802399045386451261983729374132200275612493999138452544172017778270491053626006000789239655809155982570724839944979914661293955346549481384545234260472135187776966424229662979544317566985701033919525034988242922988467314450835905116343255325997783359092572827849046016925671063969510954193329850133882400696312955848943735423883890267547880978848753182784077832016768256211133176290295771250095640899334240042380519761742054204790247346864003876198052894096935233315157849607209492927967074301659100216575318425718631085075562999336715301256565238948915914413702129354833451267086176085920580996445738787731099167336814953521329894662927344404054937593573908014472024926524290204469794722635671806860132970041109075396369673352165308597127537050998036350470010549636522146507559827777634377468779556044890798812232104802858813385470454387523890630178840238835810093264780319394537848805311012064647493243603078778211359260573138670165766704825718330847960864985549636082558503258211269241227525913981914541318507223168333960744622259413125130891323950196694674957051101459273466629651190733638684789067511112338639852564138297228591522262482046704901733509658464278932877875981463850345282052135774345085948884443090447527308982046980093615688132827139475549555571140556713623325203317132439243493082321767714305001667134935775387498309095970283956053754914716954680689904526979032470410806033763305874993490558328316912623523865896513372033602767052763342947950781705487431847324084677352827351000840920809358398753688508022987902823259010202927160290513063249093542436153473084880179192760348532973969895429146412401717948604088665594751335814988369797832853250481029032650878222889280193725199985435845387251876032031954187139331119591657559835158961757567233648312818310981511660462483460154455313926637845737427294550508889411521299503925357356357014321873543336628845630060813167348797298212197605582648696311955743438766113407993915674650627117991185674822767903882228954291122777251135960799965435244614246227700297160805189347912822807924808623913040934033270579210336830649515590358365335264566879411920302806631127420555030270148108423107915128292406057305543262846942405419314984789080948655059282746864057884153019311764596853894788696321841967036475761481556141798338207271867864426150815234928074640622725086307904408175082416794409892276218223350850662373968505642404251717851664014135999994134100535578137374915807348674863206263788609016715482477959423971539421654786935052398509408240257272862439003416564731479718443685937913809504594668554407959666144768823638254233274477159278825054527262709365950904580895484256530276619786900426883250202948027053967316544279831508940138230263779375438050783478781643553263650114018008241145821941098072147321419566183899184166947801713944087052266683830734313155081846407050238036129867120454730675833172693839437764561046878036993662043057820569695272629929379562740118055537962903653897061027521832340527542940345271881367238523082316533365230553154870983169057715498845922082319181423937979185424870979271766716650556219776772644918661161907420318701460589522713496402130765084576352825553685158644286885158075191108172547251332035468839551133533677865161969146159598285452377997352525139668961793330070708228082499019717963615625858417036818723604943974831620668298858330603106316100357295947698216015962686934745127759239185734091918108220537792984854661873734125328466265353208330082898802169756696656474229397421101267636890871789484632388863979188177569166746066037432263927247752446741545776511191960142159464129234939658424536533686530777489714617805342277487177421170762089698527000513828178791742440597276705386680104853147534271093668783085673010765929027323890529974228934180559823233810246120095767711816894400783778397939815527222502006772840618571799434379055316359537669436000383659321991384274505435177113861301349891926768864558919408379686383773510759921082574867946215371167988735601021916771830872707127749521458415568121688108578283269741884801220605423493977715501190856415913283231273149992390984014302991618788169065209585668872099611237167462322997133831876344308973193673415919043047450362730824960575433106731217506500163465339065059828620983895110673331679638376089687799553696706301028782214041663716209248565115646325219759295369206711115982957850145656975580254597981842589419835087599967008142552832218645851220850995126095094946076145721931937884138989403142082649502753909498685321886173943056998383805182105283991876189870926805807533880388554111996588627981600184974648705476315217159037149013817082493592561542317497200001532834937553257838235802731614168457058310867145818744348069325206408644340592355217322623958049763689799833407147882551196542151028360108584122082271714287905679184187927464115052957753967522460357291570892493123709911608666472773701295433932973392555839683014775692928572137782911754068563827533043024365761777872985885119977275154765106758984289571051622884277880616862729871459942680297274038139808878322335017854800060428624529981412992840016874135030615906428965296074109436273592607443700884963045798912626510316253658774316723590232958918685457999402986763110526807769098732925781220721566161523725728393669392839362461600460627300919409105495141202627838470687574056914172145914290616406946644291438484534834504690249086352393206098873635109622660802918244715933089958421266785516257895252376447741087685357066296157346205064336694798345661139853595835471763036506041894225834916154880260540792775159631568597479351705597342636585793987532320589164906634460508934719269755529473052497301517450385133263093915389432923837828765266907284536690894958034415327797101086241032193778934424706099799676711740080441418119611613909889151995489448051110171107173890790363299837451107906292806298470193925306736798455610733314715940511458313031040377796843574914378155537964319273241791761077425300774429265876414366049760122663190319984738308181722342861003247757294718812136354607278275206328256001494397222152127316724024868592215791874445568436027723569687028531887258129667639066597508552388475514943789399925536992651558939185285574922988331896064605773473943558126845777243313278307409985473257388935855345978586781759494563400573535580011423178026078254416599366700683746906360915801803682487133261705927736019500824008433934276434855920311883398284145954247160639674326165941212312443282019791051429914576813192194204244262601822865279920435014146510845832015156887178894008998371666159501934792507087031176492181160927361515437374067663202014097402964575311015809694573349128486406938846766755911522978908787616608390152958837270238359928808262066617537443399153477795073918030383615740961946254104302956592172099906810289531149029893135208231757452753169700742650963439369626698395496890081971613958041432244149899445852162965745848127739722905107198358502991113145222276098282490309920183080706100216839835317115328997613006282726482771521368558266341434052651716100516546867528002882894341984301765192561205343969703966786360953657185033979163826449848611530124834268622782814624005573837282833904100299334631140779562098735835455620400015350851488412657628720215256924489753683283458811048359885706773269798509235883826115815624667705782618226880353929167843637326484041413846168121808557991346409524688902973455983163065008868037044412206993347035160248494565122830575729865688756270205439580556790638884761325727623864251569205849220017661923223162022284553199281007474378420005772766442761291358394691441082955627278214207706968768539658865145781066282856689006775344773124177817900847386710339831658747117495465392435012687967886091593531141439477245981350851931649474684540964032327653754354188844320861604811979352457934750668232036983958135462205717827045264962497219860106497601634278121790055157362512716025981245171959953407167741360766069812163550797050683659555629379823104551369785952064978709323661626071053502104711960565861499610704580283318691308223583263199616055390181571030974006426709446622196328664863714698505454511889358849043838892060454662888260057048029270856103190285408108342788358541053447765583767447954209761183777689152935109816639224002636957370991418035156155517377742378455009907269812046442890350033444822030355743772993955850204880492508228340034791275547577779975834916596376101927075481329139690531781536421297161477683746782031389376499026355382688020129298726839270653507702410562288803984324761590728118696902719907314030440383945542940196660067784802766125013510575474750078274613842966366879231674484938026541427149012462516134989774198952834066619605267817563902179596773449439933191447180326512911815111122902021492330798053250293915970207067031142463541099461792160576496490833259454696962999038873427288853029576167056963722769844627027534661005612016154370978390123939221664320728735715128184787005135589959120527109005640565494981924802956773661514429458653476168771303497327955963508550984975926189696665790618251066189959660785652258971991713602227450660727451673860123530904505081323150094549335127576260750256567671026257845109302842741546247295709493213961775329108139459810289062385040316354532941050288294795614096886050671923378871681346962194183595957904221276183460436845207078328051841947797069836439693040428362004005462497313712185924536562688805817111823902751051388194141231630950975467416931425092188412115420875400394993582611382716296645496741881105756836355206067823358923458279298694832608500595029043186933070760246746163764037460551552076863452810265801695557863903461096172839936098573407527881553455912517473465405710757058984857829171165723843857366363530574078037297313693790451420452691248147588710137606605769698320719736474584502354468755761383549811266817337693244394044878067277519442188457542547235695499359385082169548723809846928626375119652856344229737452356959879968714344641586977031672021977319975276267740548554585320112258213971328044590450586371267455956008429682370610007504073130859337709598421031418055205704779525463926368818327014977672289682591215070677677086823052645299639573522423818186251395531281652913676316382560215141519239921542329419615839473788556125388423853124985808978119920118333958140795649292744911733380565690154923944849991277155867553128353274809708129854612236898552194654209823446822144351588785855053220517857110594828988503267721532817599762619487366808947611680307813869955324147177391417125527754574246179053086128085158985681933992369039107144270524748644177796986372117664123718500620964217027137197286600582445815239018421698284683629091419727078975614423180409768982528605424454851294285033723092377079454981744966204430120024120723303847981332178521845824832954262285240537832778828197691165829984616688650491409569653993691741219181264328642090070294804077146307994692518741199784663368025767430361567560117257890451173465086501491541036298528589646245011539932476037162655225150510592190655166708715541304461269420027525553371418799899543844574900296245479151033107573812006352806120138739095088874329577585343225077636257850863838262218449445710519204273127473919812972084162078661728282421703729793502828791461054679367678554606226955061542995396284844276801357020495602083713506791903768758483811162570448076553183102761294189853474965839640242740678798606759700962562488227967514401674373864825641128571316223440106405650409170076532341242349795302661763422273056612901274744595745117508281630060605683769299445803753270519479239434599604138532697347879891903967955949118604750795913456513580729090535672133808851575890271546415617398657350287095821786892519154600678675818721401691505651540493540311767700859930920746804255218665946934458073608283896542312477724910070858870072632317868423633201531481177330466814811537370588456367945922145443955836495627008436456902285967498080748773415526846568496761132255973092773417567806106119673631755954144520465639405476637739043675403678727552328671640815463828916999095201611979816718208258678016075337663228646057522995512450311608118011565952447430518236216110810378703162235865663210838631857295537219530712842700804830799301130457999495175624461140885467625830421989479023146891065779706991800271557289420713521637512602425992474562416811387513435597673083443108180907907349355050977039519651940766115018968672761618776819491538223671453668715259429475258127154176199846031669500437863869041364444815628987256494193205137402365449372073090003988130607294323475516220281178590994293235413076812394230576519965442027746918833445355897473599400532077551388953652115179259855234780007516923156341857520515806504166389613703741817764625652858067724960731386300146066977833538383540858118504168217769056947683010905202115658777496915444445470275753426375453078267184993088585783329397518792039726404075616692169263262674057581680594317809527651525380682599472832626919105344772253990168590579351556990685928773151384733520788688732950484215411007836101169095334119579265790195780374194957419275918620229788686747978632411881816902033344175539745291914016040441124621261797722473380361738300493798350369986534084140533998651827109808019884769514395382781054806967975280107088869342284014989417145299931502498819308441670787227977962237536800814059361591313866547102942069181125723460627535282698820996930961322028829506028182190538871535233998200311276428254204607848695382637903146479453706210054712117794150314767115355396391329678098644975635892016588129975221814506077706704004811685977468867644941216716632469334229376762919392278187185185497022440724351504000782999443222434495934795123512494845814104169900826110290731679895033104381040176114226958380426045575306771568041477774425480377310012502425742612053360201794602072884504582557187253020009553785638339150200854775636543119975434268767492933188882509506625680843096517265729688771287789982642558298587943685686477585355528623455088792901677269579853411501121704909108762003424795197546671288033414484559312495699350229195370238844601118644735926959064910285948375101989249242962098860119909556773592215034222716023631069486946485046381805606194288361026942115764173474896964297236654037735597825919235008722662637311521872833497115556939978498931888677979310287986128484269734101586780845494012583912833542616968174702906346101344345694539392178803496162795361324190637339635824005701658538246070620244842593685763384384877050932378587569913834113824936417868379970324700094463205145887469527124972840178166299537442607006805958474318881326116486498570306250194631980157637364057727935798228302609445682319777508256004887718981481238885011378043657858572164559754070406269654418917730298008248773036031965770834618666914459618053028326009157724851271585610202293982762703197303950430363421342037746018153480253181912067268900658737934961151650307090704568180214734718574155029475263026941678818587420674061442366880152450429761472576148209939769896560410218722273793823303289314597781310868818477698239898768702475110830422453875318218082139904469223710249321227109358789482551934808405272479896578017038606020212571711262960976419902952701245047373730337018612034368384683143948644966209567119255447113903323392369881437966919822414719097796625115135041902043222303712335015793481356573603546299006254777725465230850669674426865988976619475387341000959819078403070127396928761453601204736270040983919035407728040186832595612902411264780707664395651415091005503686430520096296554824917733117967969093480513647652327209980362221340177441016317249756048321453314775494754178464183562934303123798203163705705990458817090980374852844399760789461462191747521575235902104306490198563638079914212083019912277297479264453875168172812855723272022688437900145634775161162431048830562222137126997954797107600048017137086039879998029242689179843669892252949916959252840118221791334550341216009767844064424914444855130540199463791754477447317852009754892356641058328962703288858181493791940732729894121208126356610332248908296737032375391163394291827454618380063375510615542143102236688966878009682116527135347780360860141027708874534488586153506797851007196059823800330574514553246993166927000278955895162153076472590664457243764467054055988886134149052980668803571074774746862888238096093390323898240649897678146402942059783848176220943759294584455640352257605710622697024103426552359739611179836598312932011242370560266683417136172339525252481557838778103568256510954946856543264740737453178011016778524174895887396385014272101160066454190231645049861602811719998471927978689853997423155409918091923245704255054269132098063811203996084290347817350374396025101088480395011665018317879963131017917252775019812658407422909505023764990163132130608287175535930532393321558653597033267787933131713131038378884818347290916281914549069118474323662224103910360716825518027206035315451676326980393526440355886505049006577742703024949916720491434962636108113675624069048322159167996539794627308653445449060793942898123797305016089248325948257119222020279403285166359540085812115099769513928351204062723155759385775822425391558124958467259580354721300238460813769352676601855102839273386314085540330057912261234777000801032108586230127862518308142643094004173952833155080824757598471647183587491137810959661489448609276896417024210944318836236852843981742930314444744725126793319475029526524128587027639385549299882563523369950004736465597500607955890280476304084590565417700601517164171335529054083438741534825549490909795599028474813403064696594255116118757324346499436720019170457782447125582469173312713263598699893440598470835299122333524665525309350603278027675680628140930173385586201227226556572836767826537184411835586873643305445203424307590191813936800641174400669139882794424465792019814869538210700526939201413677531615697115475803094253311865227585151291019289381584236600816414235029854809323115610126940436301935131501642993050906855003744137644611110707409841863840142505548888034338735059196149919207710252876611618357879909603745733244659139460828216125196367737383011480347623568340892127388243826845201396178613913133752624782876654226634920332842769413275355888163999015910436435646916083904582326190246629459571373904732648810409145506390123901185377304642150457462753333783175390622850925862934172239575531366331362184344690292577613687689122912869061994637110916462713861957140579901847913862729997603112178412676143108242678649323930302822419035133144253495925719468089118059855747129266271119214974784182352677162881913617281195461589342736706225848463017664148529615797937087230609108578415720843073598115080137860941805912582916418650664830180436424189178957919252667601619601691193925371836971058499384784354415324788480627188337063040172721735530069198074417194950456439705842963861074047016633430802999860492546475234451636383012448632271616946310644899489427036896023167252279496832551682430250771764743624176583696334310015265548016200773010883554893590872908069972005652048418368968754727583718700283350079277506852915254869871013012553299852825874113164707858422869774688027812542337926291072288796855304235588771158149312158900137405604487306177230619804642265556270765161652185359481132195310179387142156138276689679322992488264243738828127869790250839831357021989282428544732929799827883394497341965681420244871568305197657479059983327570206252310075510321193726597900836255701937402661302623845991107614025824002612593419730054934590167617802903670135251001941387456024529812512817351164486443202267711179519051725545542330999310178693231953462620459127618981507474979642124811628256053621604096583762357713156300029388195978364178217425204203650406307434187230192699715610601497366731827998121095607396364978429339800704628151114149032115266521856887263470303872651135080118637574050246564090150572195185809909445003666685411219053419182168585435043367013612576580489696104118931857313123826870860782679996137922343930579328596419249855555608742360997547649031482916712739663886904416977322621750218621382814596703822436103003924317782722180553672930559469659713548521249267072623010733408212285920235593478681497995263808046164396024766117398145505822148603090346968207333639140732473291275582629767746075810651215290707265955348806084070318913502081908622686602091223552684228743654176875698760968057507882197796084475658156876930056088398230313498198490739230784029309097036082716216537590801420763689485695379863070952335836211195012372588115760076887459677084970409835802429035999899978889378831744838340883015916726018543031737548868160673346309565268221285364996952456320850412233483138821388866449972326104862857247778126784941765800308802478800095872867418992408244964852105414631749950682295935747761088846857101301116292349466885950244212177177765919063048285148864019321775706351684168149718746319576598959324538534028143244236213423991766659928464773311751678249165305409378575749722452715350552861673288167665246314531989967799749043583598783213345232723664838594206353788385779976753718919124004790640772629600976721807236119424549579814132337201077541065238223296155496268778481882474368543683506375984650731049400840512910445921995091917615674755487406240365602377828208620474127629598383699325450708157860039582940083565176259206171616488315824581151397274019864666403340276346062937113202372632733998907523633595006714037766212108977446548328813691986938094669832377584945506852322734521801612083038349922503676779184935458000064836440257061134841029696052136726888033144436490348753899794988543960472099693238598477008259812951872718750732990638307967700063233600753581407849869936714632425263155907490146515180459138333151502416642414032174714814920042725031206579639880953025926036149745042665071811425163010963078139001168782502509297477860860308180086974438705659829110653078603076350151098400260839260789045256747801023154696951820575537324752473113975491804493573380048174521469937728589627477787676306924617224872135081300574573584522634604966089055642106194446840842444171629775140452212755258911630510568341296020569219899810293339705624719225970804753713573788867910587837220292125861422308075802959646782168841882860570059128440827809592226887106955311009707178624566051027019200329159193506257327958940615808393585534935469210278857764275547944624369808779831341658086828626980921905291147378585903427097865878329380485522690830546840251885844145599807061768689913292002757941048017359533952639024494772428934989715524699338403329579000187608085694331547493342120552493274694808533371989309966817769683816639024651953019758017426314594064073301670496649221353380761523068199240247453497489547441605838714683247265380934294831566380064222306273280940804753996758406679313827764015979340445823283861032906058131748606301393253728537103373863428877350073180584427643544625413229818740144475642900202744870327999572792275957903787181612089906649329846888443812047341235664851336769300839831837223958609787961167163873883891825378187088064496200083596147350845802438820128564413948312578669946727859071953083393363239054815978290664897773467330600568543516961689820948624780857583353748951623867656961106727099070253402164272465900027052598258679344224059733231485865633012948221343412575201298227998235514467798515378930291755321720011969467251702335019564204926497639217894872122189936551771201053840953438130438074917146744740753002943564892496991361794281499619211996430533644906537022597175527405347751584494020692344484235194025650363324269576592194317288042881279385492066284862710628854769540572476561779073667700323745561725494256971442312620466960597215193353066052886034746890217198812627475382244894130969260966577471220463379993639022736727268657203678185559289965115180674343895497847057456499086172844929679747589483576700067007368373715407279231155505065325612092885024371251498213222690921702317094663813222862496472406627533352087068682430063386273647763728709669151031567971218040448511066064146942246965158380559270343748378262987716384778528810105037439935479124279456774272380872018960619216836986288086202587181600826228987334173730784639773636128346785305932950114762640580231690590804961870632245640458404485861246776816741315078931742600625348974983957695500467552201145183592515127290778446659736255669339455984226613603206976100578224847593770758788258190455179081230521409201283790077311173292687489749381234851868192057170208049654877875545215908665694615494898509204993579499927340798323384078966726984566682183348583170824340517484177715200709760175214217550240320527351864246342713278193223990866157854293906802151532651908063636641753009263766812619523662289223472470008339809616841278338583442829146590387736106427299756787583063113266258027534967509393999515750600932451639218594052182152387816128819074156292545715245024391355246560896595135822695922249381997056320728209196535830811713435793892374381674473472659265372162479076987997450926519520143092648235980911857262854276453148825670298175062856779439828462486546911386192427361146636031943020385496598799244048582033236202271197689238952823490823113520401157164523905328326266953729225277970237962370109770413376012132613268739659642218323839285508888014942427369915548635624664363436155677730761784769593235733743782518780418373523581978465798709001397334876684035699210659629553643953341724709784426945658211316296708121049072807601721230654589177220253236862728458337806755556099807340036083827342780241298148492633985797483083150321987794999810263893683475990938339550555603119644125743512754287219005487904391502125553265241358101959021310710813195838085341621455338872894850369985732208907343801137038261441140487033759256023397329784710095440668037076074894123568797296454859940930234968323974913761276410556095617390512186641055396520941807635740698115910022639258774121211199774185340387383703586867451059558446247678315391117513054545310002088582668897990395079566695726768111630643798489908793351343610297426936664713854929597732087428131566822483780073513003361028243182586482211704459415298060831808311712003780240604150056897741602031791107222415622949924285818604635215157607036384863366606702673958603702672585706771702291833914561267598473833166863112091807606844027948237063311977456887790301661379554707784760934651988944910004522715260690354040695804951553027917852355639348628408814619943847793889987564148460102000111547327992632479360205266627224353407086438002722996577116320778507478335448315481067884894690467090152893335913568003090016055379532942020648314799469409789775013743390306136167356599281256466224406828827456754282363644204971420269173515383631460094193303988968839443713069844865408639064614344948148710688646047960664822445914165635828953424441154715146385868275289852634113794918206134506110487828599957865591421799705252387967009183080846314901275166422402479449906606317423330598660963154357603770315321001882816138225400266699214694480788310903509806102985307484401617947396344703918888296901561284310497734910156729302746687318531437552187082502150055492887798095257731575578483129177982063085364623276139801240237993762971308492684444560686571181317524111285699215472412127869585452433440507250003702959241715362202975107284809242096976374134049517254681944873192389087205301602466297775837887771725458677715076483710385762953866249463129898426947186424410392007351850744309828481660711987240958575054739034705835861114224743253780643147948099317209832573890188495590885143614966326919163917065999489064048235066680140426246286876350320160628324698892432069907171329940063887657771117203011876038411266438119029409584137984233168270223814089790812279928965149358476036000862243351146838789672079956363890763631544839081962149361530957343836812601673843715600513276072167207144752064417288414169777801168831670619988957512356846215698533585720392475729839349332296983086210088524907326633553559306863293058436112423620490012958857371925129233793436246884172029075137989643813957487418737928463315846954062186560217325835962939951059070390139726363558282353566823712498112172914666357336862452873412195134451582551145689647147181515585835688759179294117624807632224245065783515814634190176256944833339993007779280730620789400686643011180470909208851365582790297020122119752898449476744151487473083201399107182952940173660075001532184224010357194364251299839545560057661414834717905380269391441999113062416544227966632344527850730730505273434396607719585397430628507484224636684098032250764779754994954439166857706829791667298670585951540618069499749553706441098883157374187468100491417576270491879250629014890349279578454017848590008829162597087923279875067626894922418259832372270916287053142536217471590217264147057256356425324670448032377548023703218201645824592571331133578534447214049161003266223224144155917711627179673374406659036926237989136356053154716374822953580674951954696534973315087660682426053977928209758951350194397786769116441726793624589586603015767400416625987450957688700629144020397542734339222550806353493618042226550763861997082393207995872569302532276700945319133839187382135065413404602294665178991332513394299186467482575197857358569066605391333365796435823324138003919373578544926265864717760373944998185669064673291237490967967046773671060485313873256274058207172705427276907356845716342893685274052837926150348186354157925267813950091666511924492429293774985018592895994385590179939938286795309192098301670184606214094485529553346780984630852830321950552922783313740165340054170636634231836902843160779476688916126424928884846173307191679792178559336931929125546128920282253206657421675477735222627392460409717656379474857705837392800842085522788043899245003047589310540784497020805832390072416329084275217117804054063628717325724341565327038044124019826347292831527609100837937001564366637399032076980611793066424350658802963769726131864194528351100133601014340131413738883716640198273748005660151714806711660841129883377392882184872074213589334234086088854399310478184394295077531442223110259190047133053691690135859373365407210170799680931625884970665231772726588753698346204608707649931451146498586414287365526755963778786253864992109896992251161710730261779341132517332476591148870241739805948934667903760316312953483206224481966691852337616906401877926994521753564569414953974286370253250326835971859664347639412787711012351251728380591809265347362939679460827805347690210545495536759414608089861457788863405919456055176422536702554504234185466276702830293341377627227329083190108864088751602280642360350131645952584112426981637636160214371072352581708291631512096313393715257683827852827029610650948787967982489281275836381376096325217072586709989693153362152777009104620215728500288352277689449829511664357477656841993389738133049294855805178244554761267398304236133538019204518065568829609114083849052058577683444845711307996116640752709651469521294698162472917863657463411838214835788676777529158317740155249870739986581296591499281438093976556588459281253593308611518647046910824120288660717540247876648367458312733187879086082334696330238315694070225320668743183461898985693543960963932044204948827287725665779613648882977128803475797055394960535955801211303713906710048129045759881016358094697701314142110150025828669393509119454619933608288318362092799322179022954991558299300342695862139426829115721744473300618797604082773888251673715714214754842747163495655858690962325977672531835473104519960301774766361712242701980011218115633243292463434993363656123814894633612280294849017413874394054139872851740366972710924003319931757374081163737743835871152092528636462821083291930347740958218839068337066373552260206775386805647045996624930409026431852369523630807081809048786833122448073636799032799463811258015996652674693935576192792639297551884459057943755238267832801823402745414550862048026167129277827369029314558111767809996865587776334292360820497393721174996908824082250236091577286771116190744997716033887194466862935699818230536209315903310932630351559696751141677094203547384676120411674430713206409589387547514623362108191148144490639597553380774875835189994479270756560706490484412566243538841571592349339227182307518012240794372240259216679975243594386529047218265515644394606073704814022169699184557648986121758296959345825444460665721771998289418994523716245502662303536508219297695071271193647007305185069349088765216552621911788302148522909209272531063067174570623358055093912926726013737419927298204664300733302863125337164736401869103982673316869226593670512472936314710049633381858601413691193795454927822676604927946500023640313108308913886706391941626726334972675507611995226191805838105602232892565344933738558931814900418453244575650752026026725269325146177407764319424751808106712191041096912331739317060457035143352570903481645695500491143337614810675876806119765804613803092411893979997241331048871740852656374224069141502748581210851201218801802195511316790787737573059747081758078240838343997066328851974456225305354998455048710834280242764107111657358976560403530625809414905430377396958150570788312192402178779594495013475303554858670957820975382739154081204670168686444801700108081822404694171521794377957406229838274355631990106849727105360414558036321413720203666245045194031997547673741330535595110941204794366872738157635910279438354800465011390381669190728647413598708084104461892029313586999953970857161064013757779930945696232862685982738705605552995967116201040725071561131841688296871661170803624407112918778761361539981752002324883784243206795882747123093525401944439190704864120516097999463636516587145420808812588193985068924345693973305460700846929883640452572831010363393043563203231923764975641080730117171466048856608690132212571361783881980316808436026906807091712287608586944107468272531823256193504950762479019071693151517932603768784467450582602628233530035920817308881651948626835305111909043423373639958780124292624130992698427683628031710929640719830918312644621629201777148861915388116624198079858104101925930072988422485227308491641708459617085703708910314155659266770583031128752849242547737050145604283492090637763990982309492061635701518684931441140018893626736869615075724260116713925626305314250274592357859642126655410395931811075157995091192299393688160009671943900611881355377192210783379733207517732509944363305612824657060678202924289377282093472294227520528396462580129765792652284692877453206301780795478136244781703415429535633767866284218920522245386527276750575050694534217677735294280948865145691863670744570872680662804148244198667901608188807377307848462727074471562061083080352087634273640122088196596707080856640695762504110963439721101412750567850305012496170320377800056306947309012388554444838793649916073331471381328198419188288514554459604746834678121769289406857705272565493535760294813718201303589227626538371186904458909921373846521973242354207777752446885274501490821906674765414016313915953165422326920535269161943072586295284458623039812285647550375003640891565124073722570708456163814756938286127905337716313102430138137920113946593502285770548914054994188545139942525115594433694829740595249840097570797525616916354716327411367588469055353179423135222864024122123974118746701469273751031027259813578578040824490475251822368692949897277109552720641633522532181626874845453858971765808431237648507625549875760395183228802651206627310681963405341227847437977767935384927748096958042162439654144825820886879615636011786808643219903404113345367038092707495824121698952544674889788151113366730953956176912789845750499803754806155585345074356027395433483252348530709969674165584836417470175296497400021911179947848813747153115104339016194999203521274209958927867919088103731222085147551597717838130611849209579406598658682309026506099287193076171900378637866654207850134624983299891905372902192407114552655536513018012572656203884621558982417260285497036509370470812869924145833591997576817265871728310292310504461515969643246276680652822218596292892092378437799038287313985853600883990767321346642988587123374213707350200292282895816191002780222368337943154947939571443690472432311597120183962694345085968119178266379869962720997653969853464645008456685576558363260286617123043134141142032660588681266242879396009190081059143755549772707807287145271296511030410326946326972688156162703535766638059906640782079114949099698780037273104749092253464436398914043123132902711665732966526408116743111881891216663364195587535744491850313715186492858052089295559136414862425720791171892343074590057034514032721032103093307666505127650926205944594041947509585994471654719880561981875884806956750365325378237968406833461379136886775765681316055192913625129127743212014753004808996864664471676828673481713720929774231657089875072198790097936320390141931799562817357201682843283670125734342622766634845796754233046953608096784407219378848042865007170098737455220693331019664799699171696921226346959211648006923616880098152760196021236742525795238694128757954167124192722324869979263994721450080271660356190480383825673899978396762591477260214440003314699329612174754610848818325592866886786227869714044649425110147317124963379684449167656298666200273479656436080322647103497480237449451882936343312164730977397937787114236228614033934456991376157075038298521919951766918450253635916443105711678028991940449565314054006152071054964212608199309210061420477635034330611989297976883722049325119947764460383217261431158089189829270612203039157129998256634003665308869323345539629248498842367561620655946923830337642567746462981433881459698747487506235101492103943130517322070677835266982519429589884211889455963318221726993519758342400493785889183477945815843962125938815208640535138532175026075479317388952072429133018918471287180126522653477028163243430839799804051381020056180062485315726905756422112320483070545749823157581007572227573283254785368918756641778498926732870198724843191105571735038090853906370516799448002062350288150933650200303377840198547503316495723641086167859254596101222144331981178793567674862013309995492772235155057710902612476914254663421279540823761084895491689913068186156400965961818352122947069875518443468554552490917723195635463864053349294563435425182296189475005495924032383226968790632323009827183153801537009979680810048172112457720732595425450158636304173769941713881790020145687692931616826741747847926452224156670892142717450601579441313631576359777657266647612982491460658287819457966803865543255420684577166195311772245890587688781893045070496998233816492038842412857197410899787450438007672386663672026184912299581198320828161077789443671880530743775958854604286472660071373002175849605469171847937151154132449728322985800184728257103492333421076379077304809582310566319896526587886103318559535004324456229040138870981946490290067493686213471560235096053964091329332324320683537402326751515966554850267697537629548923010054967972475642648920690199852866430708709531116816586488938193409915445545485252215996678841059038918486027065932635003986000599366948909687100170788230983454047370303042919278540390598627718129613178232116139675548589425067145157206470842879786033827676308027594766284887109543335214006336690264610272942453310876808869569947659360892088021206253041427936542170575876619394750398995627995103312925274271153064156011203525249999198949374870563260315793689671630799442491509737074196495782888045968468149621483372126213839090005437519638620045582947798667979390622737044675545894030524338854239852404927239497639351328165869229152577009452499494546311006556757523577483305075498450604782767845066270111973431723119183280285499481380972102549814033261076531461179380531169331296281160814237984036530506296502417946610610533614524694310093318579704364068427051049077684170877214480930892900651439241648242856236631193305524459039990058312558170193373999823488372049450535624766268947451409276763093681490016588836587076640135278766676261498919325201582893700257472092182291551961079644846517867424345575366580019667273732899476174693353372777340149496640065647943373174351561601174641485800269038067084590425383945328346545816554956386622343038168880786351484816089498645177025346495907777765346493931411719174233647574307850254056323101033780164885007114664114840409156007999420270570197796616433463665974356493767268206086238721857858855422863789021391888076817729864347082070721863099207556022862613859765606390828424350986853809362458741852968592600423164129630918437273325178981764816151539010305619382328331886633682491876784824506121209995483499218106919112222680722632251673151855648618638387473145136489359615623913539340726637202883091635483824138998510804735097446664982623877033802891203764075995435449823885983961756935991338159653253887404791505321741539150298020111547058938280902675660736768613068293508788391855980904066207583659214415719089626708186153630843857020237037489889758770918844613478898498649952255047614654104373634703726086479635397396308088414910093841610658416723118039011065029091255035384234508444256684243910536556651735471743731866765589922135068664362056618444298022090817406740831292899986624958305512302305205937539489966738643663561671243300641743743437016401012392097516886654249947608275813615968253092391496414975696416310754915856731080009002515984806834026417304766515730304160242093650104005031301662187296762352898279364756101885632278045073647744401311727653739899549110063182930117808614331434174136717560459788686227200997062570274258273907562198063681460407064387491440711093210856462263848434269597902669157761454673849135707784436523218162875401522234917708894839803911821400842207653910192243717263061276266003204382066016058982108785064485193833485801062793476420886318479332428737399883779699033438201319716442456622561969798891879366646196775382997758563380315618285322214225708013815382397039521779499675670022996633677528838671264505164194059719571638987226049206101117516920210868546201778913586638875649527986142461126075888889773614394460614497058720290385863792512500051907168792524868550998907612070587414958860351677197888745907672263656965511693966465968443044914087207357375204285855681841774532477264269245769491231910667882366273142827555048842478981187792567410147152015367247547464881128583814403849672060057793642016348253762201914597575297537306015044434780774829929449849445180760329184205119865111889837182747467259307959681071599164459352203444079028528124327475835795758508060948559372195175797993119298597226874875297502403034732312784159020948773412701822959867075060467649637544666772827480847378197189867282610114202066492997296595978836014818874543113742357685393372835241031776398416950516916593149590994823306886863509442154527812002487377108232930099336481639635894470742284587981745638690316920598718371122015704490116527164073237996998053610594754053915063728715734817298424219319497996728243997819116120566534313756263624884268478772717316473498364522897582855821923273545501799395359510032624703427631271921246494430118659092576955624157406767736059703912520308998656466049955573324084323616811789293328053726300262581113250620883964402469016489305808264403687870034757408236216196695815901720585428983859050920087279435406755721513717710771099933028655813267623360887331417168101263122369949358972862854806871831014264086135215451914602448235715643350590464155462713594703857307178334336009708416360748891968678034233057558150396531491628608021256738924900362561805928872776433348153592195777908096887945014990706477237528653823121516938619320043705326100318107760922872828921953003957119264176728217581565953492195891700544510035154454885812314007197921722902450744865967050521078738799685764368813184765598557963969972445478563124503220818037531436165484425599133148105287259111689402999483168685330235329221046467485353000691975274865415298080031314384328427017130014238031581466691560593414343787327701878105493689456816670583418486091319380493348254981389252306576494523174060698334487265624638968722292299925748431365931375944690257641442416307481282282381376563825048297129478269491088315803282770380675973362173506959998827468791295529187921108221549487022007639465650818801926945617587336807235855423036875922726457992307357056255148857063493270567222437368378814891635720269646381835863688690041594585912290235616214620223085637719122039972647717876922365411110797712336969479874509108100074029045135276933263066819160851736828426852908197740502228194073735687041848033251374734471594760735450057417992942147520759376434237151094966608089220238775590647236818963234784625749385792194898375445312229808047066821147825609185964811381166587154859910945185694240356159776510152220224807688501449989482738206287066727251381401591922483762159087146514096908483766881229579448928650576145309013790402091536893799584383733625596719201414096444003514750836898268625203531441291416971426103985243027115047988716477123638605338724378809192295557029606226111411632941656996771440126756289782220916341221898837481203637532300167363087444854991759389266190518863006748416624963335776795266808340995587234405751023708290374280591376620106529687768041528757436660980020719170145365625950027646236040865417365015713872776491199484802705047928696430495521349546462550467865733724015147726665364617802273007729047628173177557392460963737954248080798843654777935787951439310159895956885251353582924595933053684657614187657563764071000320737047302716616141016681728558537412563717054754056384289362082222164155276136990939294320270931482613717471749577397773436525226041812131226960860874398935961307196616544483378914334982094109032931494160241186686957207550735733400867829223460330641137958210425383134956068598405939993512508834414855860712506830398336836330089698873753709883552692677760381390549937860160668149435973976028092494981891651056015481035897932061953529443773098282843333001781640891364901535755991295305239833588708641846268787639066714732443162370939791589665025706595016024697556450990204852055712800471156318828216233307733039109209705525618466184404602263859339185463757179165828841754784798188708396567156098904280071009513265098460544217799305842599832916090381241308788775831534425144563470943152024262100537618756327648545742355730083518514002529539863291400579375288319830792334047632328967280961445447514699500664311701266703974266994481536294039288390102723501722093090876385040675852271054393148598580988446717568551670883667189731158312955748636424861987338419262597800378184110982259292047810329357463518961069847308534417181596755084248221987412174102940743207639863233149515847288530258183620078322800522663340557007763446415816389279535212217076780163587487572155285375107559053818294649897038118133045983733506951128706391058929686410557067353266072006179244254683766489085766901107608357687463995532486918932469001150345512994017064495602731677336830942610729126355947008461969026540208107398876420003511625855263462017758273227750242870523168686952311359480238520385753356144191695742905602893897805082355368875193258762722717825176512673609928389527495276279000220946682107088592489036612548262870937623797846424384571770183221407805184950470051946064620112153494601550169133016513958066317201183998917323588977289243096057122270711470922783884414547760916676082659922208105100981058074810969962599009663405447297049231274181762040996079655321187557359894415661369886925649056457219337018082330050870491803426826860435584255990717699228952061306946831289106614761477224657820713540639207902747835513185620350697750593675660305955835058632551909008346996614144105520741171329454945679670197828037160814490972495726781631287543926315108238426251557958825100543322162294073687663601932199166305012250507205130846448581679212254827309553019486920850804793408151996789780430031867172529248044983880082520242299371655985837655461074584987937826531189830306083441722561788770879938147125933886375283651114323404069182184684502945183135398926729556789840787088775369067552045629756821262455442440583524807576321409324284382130625583386318381539786128498030700437306962130594354712105031897735442910101866410500725460156627103536140371236935677368176699691834996563904379246789886435977065352969842388880953259987241304511313773026249473168089547361272124918993114523332956729588815988218827702910029832089507585299192255536813297505201638667538938691003071569462952149977415506848662716478257101748491520765352273319663501394883244986886038449308036634457615240087302064830758669435525091456087408345339125049869513594181999437931440604701133406913754425315033896215127035800937793199228719818869633355932250686241091948439501892532154786996005687487986172422224011116708312968419668748841507438101203564572159327585029047129730756840101790207703318766375046563083796922758664627016357167749503700376083311109629149866238371240249377669627452729130389911004037479571509755832483625188722044800367433009405222954682523749621572334759086944554160975705081358351551668135832922654510247389735033533691194989846782913094857861697675871186200512359651687112554397244885211203725162446405864770676029958207270184558577510822328441229945346239756743472162137512002323345158259539659964323576845379550237166534520358273065722135254192220636379961689859216275132572551031122878779520086375714134168643525434337540025748668759210946906926791995253408527524880848108058974730519118528029714558817283084336382544189638209278065243422196832693630915566357644919179571738933455313294404157888394484543795670007792668721115677217114936486825911518022999349997560850201110151322689091461954966210545613275610302642923527431281983129771761866135122914688532013282446435860156967096949077508366799833252901570979716053706717480346138547359142745203709687342172405417421214460287623129247365395844821278424245189021446221673546933586580075815923605437986421610619722735363905675550167251285194561187579654750652849704015890793430848986121313166050194586471024422686880365164614935046749704183549057774578594295246436078737167747991313642438028535932474949743985617677879251698106089706173026912764131069392972862452903070135129831149995907230640360750733392105660782810450230151559207938519757398641057432772805869641026870217738344611086695619888145891432243203426846109404482546594075231544204721283530365960839907640662502487952852993322532216881283311302173489206497862721215196593067357350235826169836598238939428129887095556843625077856470278264297080419481958462641749521625744431959044028804090229335525495961546252970420220942678796512096250481982760332426720343840256132235062804544127479610205199401519527881982523584487417530288956244903932320461544457640011037231765854905154516829338914276203000668936843053523079756710438434626224804562560107514275983403924979773519277179089164256357676593997437446198815341656923422958886002412869547824003408035538495091433473610756421966487484479385710948825236372901831024476197528898556315470204054422459129002173596333784497452003371185141784586841627429745779591617310444894580497530646040018475875634692048927076914717913273399546286694799647997561918823082520401016260639625208275934762132968452400269909245943041420137643823594472968831800810214195877524877566799161212475292183338335250658466372267081067835376611488632200420024756450542662912548325353340481708696151435316473693356367068334850343765466962439054560022788408135761137154619647421061926733937077511535705759064626765928018351332411841492345106354751098538077153101324453908053818062319544678721189564060763269001057407979611192202253537892010099962206056560943437352802751441216025894821996612297144536071804714715164394686886583914830376911171649036911636173222765341355952648810752433435147923976917834590396824330908165397135933500916040755875461200036056526840295462658786106273982773385937291438650927891508827142288522456542142008398230180777338546534469961251629062039045324690908405778689424939169595361577574922040960500985924379567839184959779062724480759401348372693502884856168914447807401344213210763563113279859563420341168495735890360999036413485777414574907402720202338864552096157102740648071802675455568971535245191783620802402307570532005927171553889526753965824042084493616602847554717557576422791780267864926140247959890612426651338989232495371967142094854696215379735673800874784535761394478586816394520539456930853941905939287563029814285913924466542722585153686342474523298564752826369374523316822631477253238475441729158211384364316994768920193689433345477013774332727245510555756494265940201651343287280150215813479564532022856811960597668697604871281471455664944603330430704021296556086899684145574700806800516591267392640983498640675819496425507453312863932923091031609489217253242862815905871933993417991181613644270911116298403380585493993624954924457479297697871946535446760069144720339126716687733912902878741408715764142032536995925175610575742917361904286113605016619856484757230129593582558048683590343156385666476406477687942648715021747814219104916537590401587815825995691887117755404494983528569585106197498381317432267539119962496865491270727886651434983960496207838496486455804525143456844181940106642814670708151851621692212064926492556847327888186558091699727695037470760729535826542518891848493030236187473191072925896211332980792889248330460928500600526229073261484681950024747709579807408953275965598394757469261395294934265736365167934852536960568226470425354844684922419944639626511755593325933798748998956597771254063027082155430461301356921114040144376272776881377983538081804782885399648389042690894843859433782967839135137750825151645463528760675823974915471000310316716125502442683888502619557753107314472264316705559716127902588683502438022415030326281928156238565253227960436103338810706145364364824163603076643848247130830438447957406059695298406167501463241484152074378061063532938941582600416125478246595513495775513686199039710802735198966464766041462723647935473311072109074094776604357710744439848422837229467597866008571625658376279678799881562075839036317670260664304975655906372591117925910037837345240171390957487130688212714372015657847380407144055540512547435924467723830094487992412750074743815514256113738972970060558728447506647156459316337115672877444293219433559220288663450444226440810468764258893571412984021966501531411472632394759596777667720465064429072549737442846818264858548683915315384851018191800962820897034309782912157914131375765927688368469627717985832294694369014873886032757750009036877342008975295480374155311205293680032241555378168677623257370831053998091916308551825672831063149226626849884289874738767547328038743653976050444181387679832769810323220099425996083602154335742669657400963087646808320579991700401125023554091447843200341133793730848713435968697310050532016876581113931796881025012260655580677085527942328894379244254348298013924332279151473975563402588570753980166842051092766495492777217303409205792099359733995534932776782389485963442031836814103463555928621869913752735458363759332347048887378442538676061866653394616649373703154923699026590206966897075826490221054136138774188866577452797503244840301667470111965657245297992787403533825103913564695153298889874325487734660097970313106062831549182154821402210305476745956819858147144453823160664862176890890623822206973202877538168994674251982099179253280784311413039870131782647474438891111168697470077252977733662771058042148558574361456471847234639192902521440667833778327662437855003525069817520383438760933430615028027038081410275113800861917652514234011249294872934687328954903172893420351495576066125282808974484846902558850138990621115750605314348771463467468566887235795358480803971446479995588831458642986435316591231336674252835765891210555467411986815997597847759202206085545334538303959896454131824724203698247429130753419644690851417539500551161741601862868752809462720845871577259873328839028068252276824310442584099337945730361956578978455391603522529313547498323885341160122322569016561222580300613669127510547953489412263353812295490931140157966639310589466212990255297762101348041781821655577981469080123328786178651946245270989868842375947083739515883102687338122194076053627088058459970029266890315100169021888186547965863109057885762470829894463324749197858496968336405353664644720099652664113841688198751256187884076294334794946057305751032089972835065352348394382610317256520946727220451634022975429719895002288445746009542584852561605996905963644625789866284538359674114556253958579368968748154331732588775894176283725095722663038826644470655089019408837993202988430195042436637347978405240803649313420275739278536438699999984743754041955410693072258069023368038819840754442984436171237665805375194046767657639383906941783603753172866144417944070631747309439373458253942899040256614703106324457218265513612181605885658838057331986475755533116488942180542420107391978188172238918186780705001074796966669595412419549920475585255317479608269207900323883835012156749846077922416657191851309942158119305652501094201761362452737226125612406791672280570096520865939619559087901848196848026256200649607579444412547457698611174825920625024633570012359388916337476321041091594964962803941352786465599069878771132685650253241666682099853227331944645678141559797775160805109295924618867490383109071543561898120367783250249807802499438239248875251762531871220959007178946044647279830346217944257093513548409307150527980151575710717776253880756866675745978844653049038689493242209228923168946454251697341146757002871708984556812349495054077977184084215995264804966199566435977832209645800737853250178430092296998061642480604885664120685495171294485336601792873620164053849738028627076665006922817508017704210176630154182742153771948640225329024680246103387019066939973310957001410861097570272315915944154945418945712167326252717015189726135608295411571190409498883838840720339608149180294920035536776458409108326328190557460511070160398067830563875719994531013669661196754482565640621661558916594444048067117638253190871482804413398028133535081124758078408023868134169672562209956628462084711383289962642321780338751580220443404182085582066795739765567131700434873889749913402133197349019617353934954555514552523735258484678213943577772059131269699549886803033703598321327617654022492660769088498394070559323167005616465336379071965002399715242172918962244970806547758771726255274119548597036303202048474233552318092294752589077759419739295668335164852118509846244684775392282894800153890126481355711478063026890749715577793119895753051253982584413739775738716962729021855285430554759434767019707515046957426903458301787745737124429023213669442880203181940500317206316760409648584002691209740735613480719960546568873647665335833996398031647724408836636867524512659516964291030868566916306107502546679147466733273342584599506993381699687654714362437255120770419827486680297043295875694996867149487440281918413880541330390698617102581824827405451848712383962332901788028876598326473476457180569294494446967484390680530731496299317223162188269448558974396424797866674068764101638052882648049404780345560340359211804700706630189525041516482404969629876426214009798935023082386196513277907791787855390318784719077335135309674577078895899862886967432507821108725075364967627696590889328642238336986446936410613010029841540518610615510430890820688429093504527486570174456505440199545033153537257881140017875849283710266442969859584166252008358179914165844435892908787696315311749815530399751251207455762651417044763499365953315288288169483672949842959090204615966854032783879000066198365871625913775620844328456064201394842410032020910739492510508109135814220839972192226876514004259854876363487587035735202546087981602875180490139063040075837963242881102448237535181759620681275212991694835744392384199337826705051454591844989032410705726261106744657118262900817544574321137219857352744962697908791478830400136692316962021529449104670961345546660237098737100990223282799857210264874317253891178549512380532642708208026694656475491169344887031584079142240844086438668301754498706543444495443675952235027207985746929885059295355563121993426908840311881791013386629493714860413819641040090293806385254995767537337225060081449540248615352859836978742425186443967643888736407846644749807332430601261093567179707311161528260583875932859132258233083560855995926373267622891407651442304487454006800927589307268260175346248898616954234922919695905779228197883995127990520763990326224068424896194294904113675194853540783930494063547067539045003851689991042168592111535926243405322178413152921800786675671714385126451758470392272200780439016924630546376716453994182781797533829866475172339406158572134141645949623446506863718117514722526297862911908623936315635150133409873890774633958545718732922835227229673909525159276320518198739602975166462788029839701123921149304895321284325889474832042337384675051532607064158382393226406247698448592426879703906514576109692507485016401346724181910980440718133729110142586637158613787727593304790870991556310754908432775077634526005576083640276569166381062183200868100697952536397994670307886514564167237651339460521786881059058626039305845565845013344073340780477055776692406203911505945764466435317196915110585429155641274563812509681604246984892253474045290551610806296402054347298037980230567496264270922252055147063119008533098747434290867508113480356913002088635172873120493907724324202745960765416793219978533790610988337520918538835997035047140338407597993581904698029128259616430035527432092299838429672893426586654491913419336277827356556471804251742141493115295201032187560717115414305252343422601429595700445782252763401712533680343451199314093755178180057414555500196085647601164682265791318534158222043439728252953533319571075032236950899576086741977114397294420249643699957989276748788812407864698838518030017961780479439694878653277361588126089837272084161413372424905607378343669045302437993147921465683197654936615209696893130428932034153759602847086188842594643305664969672879392401836227060890230238971729847148410248744016651261496773649912306762302472647029735905621459541621162669357969220348302995545785011536212629804278714977296269040764537293308895532930390676502931939641057788957899120276638876999455107093350861360172908539920635448136193689230816175358777999685710733422724066013400533719687857881731288021278759403158883455844214558527742466095423546215348219936209633048818153514691042513961469132198907566545980079131877442281370057311049421756367927036646044679405012727663216137508390371364321076324484052670041783391059908258883888865217092802097821131855682848081360350645973438204888872532108623758697974207572876933135964322064345402467000131972030291424939276313957515454982560667156968777977742850203594267282553495483131065627216662571787777640042195903197131671714293552416567568427914208994698145204498071247591427958493165944612417928554444432759305825351561755327616295203748080573648480846777510478472816689866339048118686352428536135120885572353912534093518504379130173106478563494323016926791354473316456557839169219516263216526889444867828846433290798799443818778763589274560816838082014190483422693057766860988644997688863889168122414910992473691258541623112957478796409487307052533374258235374397529255227392606744854977081060786910550519759385421670556180748861288996372551790488633788232314066902553237826651118826005134183750958268885813421518043104618831889209278755873082846580106300129389255343983540374664381946627990594158745380335786716113970032715544091694393841203709134705097269581580563676106505858135099186486444386204593341685384624496348381457458096389352717925944561761144528880048620621207493660426586353167757136204292925241320441225270650871623911099523495375079544321112515508073535251163732307223051782750505850076603838979647905775318597888221735282980380642452127994890899618711662330332446210879673154044847657758374490262666356584595814411380930435241445840985327060428565344673073680757541189903675617457753425361657197020511415444448663905195491138361403977300353655152020717940031087853640629514261826529362586187255349932117901829678116802221213022005682190115231291478952989268269607224770354762738166495738224558673577173838475932774879933986436135829740873533741267345012851819916586835465280384758488440774315906718540747587896710290136655374647910594827307501949369531510580565971086803140956202728120491216988919303763114173069968138865917063688804645005339922605176807314941167528277590648124181180067537275156573538997056255586458410364068631578077474437724438671072827592741128971818183557631677600786863892833711930263660076149488138651242387258600158283229015271931238380409704084330952240315297501838230113271850521931293643245275383695526535731716301474332961282724921443826361100577764867564015755243058143464512812300456728952123777084886136064078669834851412485313524486652523554330474556809392725502897929592451288330455058217983688877180646029989966359665796623234146305115083512391715068438319374273119682765471195723637005971087749120150405210812063378776267128346464088191308330412516370386215208227824998194887664507638553466555180699398342418431783487075122134675065768119989006338750771750850012530451587561473990951985308684068350111254475766916493174239747199302016696599934725563755643662103935913271800257433375008182685381935011334873239138925942370573839653536570599329466338801303247297188666087695427992037673946333358277894105914174274997169845354469561720634710418106340231893665103895233441549809008372319410292089979027126135204331547782758539077198756208442899355136803020872338467806102049234658678659532206940618075963611991697949330301575450834903699262892087938285526241655118551896048408999601743487120249669129531560259765562143294671967073017636072177275701774896449042627539315583337539990794420451519413304339211452093968555256279917807915921499803563354641575925740389395031429726299887790173086423090094088703604559668516506282061221397426363782480885262686123720569623974650226964509470268810348133786357696145525233436373536171057683637707849549843316995855604179294188416860792598135454027664840596597271136494702940546240555942392594701901959111825862971423758470168905860440949243506914974062304813148979805767589178016968464634567635219685931860086460605353253000569194572133344170507663145917240160046835059697119057867811936666032990876750574299669896210643835935169099744282131992109112066890151148064679533629415671201481564073815753718795282600751513860818083257676050986948759014014353104293931670422221356989231290226727699942206527056582433325784819535994304280368609918722147207641899717450426582338983441169298100677039094520139033147053358873075708783047507771363291862970623478615827362889650893623717716602978956277043911896128951609311230052665253528799210255337007469394078670550700401811999642574159156265709460186990926502432306744139364163685285470645443428177690211744400517764275044679325916936721166460266881322301955591673919172942745617165384771438621412161959370228544782862304688669208696430837338277453784887871302127188317509773411665275877956065825893113203637040447405495211203212904122464057449013473754983264284315157361966620342920653802455487335746040693712889387714890524024578463163405886943234729552706263738843252871804491095875733334303665945362225132847171170997445366941995765291965339141275227821076404603924698113845857784425990301200969574456865660367997244700987580998492715222925425665304979634059576659272785632179324743389100299373099928805129438781232262334003685715677106767345235375855797407921705311475495488118268803878965971148379702055442118657859249962378369901463158898324369903957525623208973165372845405148037679651923473500850687977315164656396211573500000358416311514533451827352902912249959899929028235091693686549435157146334329655769497824280483588196609012442609036005827366633322399516442331914573179132594063791862841844854610486576256185458752924639656212988033760706830645858024980031588790347364458671367049956380668098684185019422756502102712046620604140271971749550351328123915706409352393241025389961114834946388533242304186422448793708061083272304574949184378545508286504743887989267646314175576853474731445060201324523778087875068026818615292319025815745468334802722870555590681000485169331863940193990636029691591467356704452796635486546160269487904028067502105080487192608049112841541051466185065150964205252455685304340551477020834797689710256694132044749740128991582926705551300324189216832510395275398452297570473823099317645968592305497753583575392365723300623269457282048345738458255476290560190333991481249886515853735209851487197847277983480856574341749347967131852587122123404944445642128962584081226490268015189742074269844662549288124294977682871091028135839942999026162771682288213136636138931539545731292951546289478493697811644648085143873153204574923535155316196866954347748213032104456025644601955901998819123741141732993555447097011076085484578526863783155317794435374895888504320645664311522298676427054061701778672569323073982361620868852829442805755809718845020189551335118739776133996611498861733539269217903738718983887451302039997884695770900307453519038318796556876139420133230601554084135727799842732628777597281287583606400354628667577998029161516871418531023259308392799629732746038073197482963342050910140073221885645853692805532277252989972761800991601835556769906601750285917687075636966723276502030478119331158108310002199808009182011036071463805679337686263948622882728961072815291445092019996456726105697546568845410437966898069104353433800598285958798551252097100096828065827979844558096305110299193637153422888766010108319164300089115549215187222820738960171735646889417976068461540374723513787833124465339166754674409556163685250420173874408485882638202046945223545358291593688363654681144439158867969555633202662627988654487230857523756621016944151738855546997097014729081840747895594347821208203282351068556899657190039147170668553536223187211273365375696971365722864665700592287330194712667798293442890162210905044834523756751701667823589090679713934248873315872039132201736467107040866252269606794772387267930497193946482298538859214429299292659945309610891005404803444317413334638572994740571710285528429001932682615035645226671656151035426925587052788349085828592181366321243784320118037131195812541775560689748344439936718680530261850447410720332488568322287776048211576727375874119844863359505706512693467082577569513848180206249351636876140532801553502165804459912168186796636978385637195938423342374381578918145904641398607253877892783685616639107068446953536864590047785079920167549174835830804769767221018799061398149056113077904827350678533688504376553856459140647069294637843484364524621403113623875548908162237525358339638156813264694321119680273031489202000275482339500257065481592541276102688251138686788550777668552721558651053512322735186178433614729597723265207227001588653885369944316735184701391526963009422645445643799505153237782198171002347453244914295443102569662528516387651401313102460922477380479909333088786950267922511198949352522142054111532808689949229674792530749021269498878668951353558095360899170808389481289628822900113834626499970903840705190455236919741509600068131845538033693471524838544871447418794666522034305143910734859185264212121073909290754946635281403808393152319731879142295681428912531615970160070745111172506639226958904857793825215298813497574213499602560968988944022867243489512432911284531369517810567190637679096844168359058681368094535058458060677524761011971744537664330395272024869713039182881666022178499292315690380390773693622360351887153342607683422629769099897967558420872320181364334189185437959766154179256641582511939723713300938841076033205548793507779272890741309463393997443360462025759586943346218410050090800024634049507750066527343508231793975177245072718970482876094471866241204142692623446112029710243615996626698652535331729027690559368277051611999088531919726192375473622461682894119098248568992809277210387759716177165844186133566045622961957841318547923163404548368632545687106268450319410620691446710785443608791515808493246314787393816790955161670017549940474991385452432734239380344215696243450913377227085191043061799634941149713708960294207395881056869983293820092443295733026856730462738521053452029336975146454119549726620803905128554778264761974459730921609789824761386969136244341992249652232651036270041917152616582532468992535235948492059473868408579352999964378059306674206781244786193263158504665528784389918157561144022270522031276593901300172753942714279248694745753204089384104777234624029587117071020211431429217211505399370120653583607128898183434817191071930846933473195262861460584947764517088970858059994091371733850618760210677180284214159884311094974016930849702474680322179285462469783325215481930519645123716299184832671328425818653205023528126623164489596521147681743823378121369595648322107068443336033388845657443988292916796810036490527260862118754608004386173356880900323831703001514975685242519520271541488341108400381014696669534455865396698161132136226141892865747672079537693438800343002997732839598030613857721351803144136232139831366626182900312843640501983527667860982170075917752166702239730785054682890612777334979604470805612361098020651627892269390822526367862048694544212494486256611323312740620306301437477807994445056532638004213732842653225526487581533727523871709604335420943622087573599518209380587021243676343846292308485855672281157836701633609914065041570383817811481583040611939712338539628721853405292699221044248170066429169627759379547106092883866193106605151624175871253034556492389789205577477660380326456825014685244657606409087662857565030704047679473019689463618232531159039513947669306606477086034089660367737924261325933374281698833643582349456453578804625539810972333871009749408941188586715698173572757603226868037125828043751044073741996789224888033402860283552847852137719262777852560027582927838496684567405396542211966491333608513174574924080918038130135075295535287654556650456191163836992351969989218486926725771006860457474736488012578459267581283509004887283134847249877398436816666541744557136476912142604583882272092746935424929028169074590483897882259778619483517983042487801006894131965906700766092985116066320530684674412952004651777960344722142396506630381805135309207936366317643895148043334470293995994309070144473524908511268687790683776328695312793646574824577305709623368044356450723465196931703245663190584765479013619508737016301468299317481982846055748179884894081784382226587208796202905468495954506995006508943968489721908759614165078374184621286498091356832223186122078886367000713120004213126795506545336278563820214515818836250336855243123228648035727450915640969128250660237703176789054875700453612355291589885601335796084062676201126948693848428596972470727615182904461879568059239771784573680295761719919498352982150479688078324132772218316987418188904950776554888509074715949960912127104477375939655646791145834823611847814038479147998200816804173299992741831373145125415634412231065402500015653733161042684305468231515089053065332421014640448217793032473678433293431953512635524202640780208636930675464408467937391485784856510921211940302146903296310619353631355331641128574957840731292632766511677914364577657371020854122785251847127850519723763714483663185262644626228442351840426223037957069951964177503140933648995556528745957545559249509427090215323432498888351226842871546746681269298907803676954042769327592713637449493628324914492599090004519595301373310007812974817189253773898487881892719344999335123250254395671008467901077479425892707497309177682337132122505989026847303930359372890799693446769905126222954704452266424420212825399161919569693400917715514424783240190756404892330050666345223875347632219244780393948626804342658740122102984749802289767431692679673256759957864555456681063465104458186108631825394732823613041169221397800797603441784620827645232239655788719282286853539037543265926586542086311258945331862278469704369130217757678450166693176479883742901281727425563620878423522542590505158043563887758930346924313673768367645691702762513089265554376567659268082843395537447372522415606286470498655588054159140668927106139508291898379799237615206169487980497417580452176814176867240996342809259166906535387841469029271437510334450691672805573601829272192185706754043423186309363267532538244605216404808882902166699625876353462017298303490036501683037764537919760476040297803075865770235721240960250245639972555064854388684554543516265291514731976105611047520658257132210849228974690327931492341239179351326195893138171642486909917046699465855475691935307404960745852677530145582901678346497689632113317061016767451086342396999180688867423351487994501775138528731745970800066342697481056717890034273711419140270007867594261840776489301152719795395014803108059403849535307009722996824841847272489034901274479139315312244336557094071145096595349872413714078316347837549283770947842245245913275071042310183430839683299827304099352542554401738324807467180507260948927679997498727387641328955901755117373579777120406078277949965826497295900630190489856784598402637209706716616455030549699716759816575931409098848244061492163874793114681486353052222423518724678228789711845363248185734176380787288362809670218249921689332184240297608234868923118582885792712405578969548764729159740646331828224537085299024980990560362308926759329265291205360875874807405978849656141437906853368360984949416029079934009291572856258805133548877253028168246036236834468996086632270318943157173433269232810525318094099779320726349857173626842633076099329448436438239326817619733356208094632742170053637120635802699810099318527664244182428934334913391879132451912588955260134541843513489298049566115528799289472560109269478099711905274350021516441059861340917909539079235196505085147795427232948501507632367952466948195274177260753118641129909692425731875715509384482030980556421936226604369639512177421452237228449327395131047095015589717280749803836064997000015557660067402162631585859242537964336311933512341459548510097598245643447130252112030592993594550334077862499140572755533106640346376915739832707413329384167189696380026470301262486996279474610024048020441166929794979454947172531830593811233410362164984869134206403279249092737644186979854784219726688601957383688020629686242949342515509484164368858150889210269460062425237591599672969998266264035178412577630346676120986193269717997839908729902425624246272634972764602491751267189727949719780860088323385822348269632635861760608909952328553507124016633981771175645455678029920920861416894983622152911992933619862692583223423020373262971003907809036320861713305489801148790931804690426662941564960393278721872562812387283576676414001902251397033411884635666705193712085358646561753756781603617193198782418640639173880097730052892066595794472834873331964807028602393523942448200894888005867300855355565578337814414254744133586819157435647871672362463112575080919012633581585801088667115741293394558616718588875791736124029227434364561431290787730400190883376036391273099314350059183560659213185050950766378780695197034367151568276770601562065201372970486343215580636109595701682321989102268312568124920071762494233243178926720825531065255666928843868357050720393442907319335886957039894799023444655667709748485169253429796703853468119643085556522837036199994757462938839080613004849548974776728306035266891287731878666903501805267815741526965725553388877820800084766752451802812394604755249361121539121226531744599654437289813419805484473748276227868139013242119554946250501240259646705179020433141286258119125937895109406771221598810553943712230878841845904823158010156654568865925450667817308087488432464827398363945004511711302495253999269823419048069169373934404258557405916517003804333153430413429453034780825521071963406794168217127646547518459777131130297224454807182534744911146925457299768478690732159007312112751974383112066505416056496437686355294104958136307510314667389401849704317939607806833519555676538624364241486294473108477795039073542297393708077500983734152217131603574211841385811616639392319417898604787346039113096491125927092279021561470549754906320153797640247878185582449458382202958671522446767694396665132920634148277089548435003144036860755209174997230934112779904933198288949001397289580808060215138902302689054819872353455115141765408948608506058436879931091738046069888564346157921472146464515337680509821214513039813995700438562436591080891872715969534999016018107850526941100125936491437318280712632252181596688572158089306533065012465823997101387023424530045570159073408675640226454835153801946610829598279120897804508495085227682273446608837789017374974209939305484564418652718522593770132214998291919697828819439885171171214850808952309931995558599564543251960589588457442754763985697518256770110741872875696101278368150215539857065677090561445213244410378205107490895253014751909865387280311876018444000718199058551971868247905635242774691527028798203246215500314471312128814910815488177159550999479780328882132141403789438460721614844807341111467297014573464066728041546459227000550635532072146254178206198151773557536180756489382921347787921408966007857647617168539736275760635720204219981854306151539340329708443988312036764167344840882318303986878741357274757927264500906690364066864201025617735582881024573379271669776692552674146673662691722152054831577971496161097263154951312522128232872898809995308598169601332562487519766314298458396763116803592614391655009123246266922189577355960138065863299152339969876434156567203551779352791582528040244131352207979393642477343385385462438764877698476494944127816802098242506278591514306950650000909760224045387742114720187308710595010902018640150075418124781063058948692062587959124041299118409484176160078820712705914335230415414687080266496221581381139519169345893865851531392372028518037034570820020694321226158945276924283469548672677033469790083501695925475347162975951617059671224127403182070413881226031235414545458907105008710707441806028467047428859184372978228442849370821305240299463496610380719028973534246502563167669423581285995829009179466274340048874633937517004993547600986078039074137331665228379748925812042494551279257362621366510288465679265988555632535662752150924920790882433496405392744271838492735039571995007221017726258226714388430007075986783931047529507677882568105499545633260702276830722120068975899771468163070097015038662876333008622813624390526558720318947911004960594569249346748358921123332016739603730711081311431783189551820366099708228220251404356820017272141482194696123509698406441336731987331631482312161201973928107993960439932720614939956008299281221335892359364613199997555104992593677011107645197331036414163950482402464914185050921036197436254007443195843703159755514516049419789319419437587643978766434835327481387865442079021851074791698529234914340573287843827479671470792155712092093403244372826043703145257344787630268021166671361708884990604849646136640038112398721942845392517965423035768371228297311718878153495653557486298713971267206657193373208557457269045794097520593928978122597855767449056917620625099854059214871320609018452428476517490697737183823918039289067409726775202792401392288619916740011198578809433255633748277043854091758651927078352043750908319158474364725201743879979275353118938294958655911157432972266957933531352375209058782937768250825622396180573821240340947359857558685039478238826337801301485405972132723844110471270052696541952283942440907943127003968063683780961305618741435815833792156724550220711734598914493907666692647264461707303136116885851534352067438628642402110176567178368557105376888093784781157676163821668356522670746583995912239331136407306753531924060713313072139927216932163411336653600291151110759182933359245686038166434939823423524162743009010071670909125947325396326183961638785037096355522619916661820984098618815552402991037963326535411229893287477778184598222152647184299413619768516066673707283688135477032801970351234379781062490810502080361489407162414073098287552519549599939045441559177033746914729539063878199548689163698114099980688695924892795077924435541220384552422833289248456366140019066112859188855077451521533431686217308536408003471530813930360552771356824550640575920515577883245191195828183748377396528559386362837201638378651994864363656193995177804104021992299891226199826293734649418393984370651711945546714124833868460780662627483046460395050264820149849591460430523380698727285869063346847335820718803630486318402977405373876142477051621694637529757998691986679076689605233638056205825457766332822349030367516611420130612625754805283458318675371062934321676818120481547780173294276660147469463974390632147326848362896502299024535016450745906911245637380657322744944585613800283457743173263172260806160306759409808642280593130849099136023282397141023321038515271285096904202969534907750788345752910630316413960527344826042129139495793512699399582852064457537012117427456035594230716819650268377159403386163685151117512008473886214171360668280772799590020385601424527419430024859324148160205737045107853679532621482395635806470833308559986300731974920476172237669884172091291591119863427000652092991246765399687079330486224888681832521009853342268258456018522648279615193604393920016303318388806202098178182795522085024401395567247722593327339859716056326070471248075543253058897359997739137846179151169226670647887671061620041549132268650085277007948235990229256411519289462908113159408251566860421435349546334906749602267165951788738210682054104002555274837660922655623566973956123668415820705044362047054804612762544952065767226656303942432884038980671328373193206568714954180013025477899304894730283733858723146840203536981876647151865125915418258112966301931544604877622303635125624613436523459617489026115039485169951408403908743034261710934805332654834362608437864125470343029537514414419603779910822681978986555279324509813772083872925857080361273048797401152997343476306654139577253730859288564311156061797146879735410625752489126764768411883002082318984975029959164227568716972576382077751304307748159154485304743615180452912709223321890775831084842496968171830073191025793098855528413873891496219883478573233711784777482282825437441383995712489873755400881030353342144321213813422104803959650998702615084863949807942510406329522611707194926268886032848745576171778536425736508403671737204706879263818629411343703005225062715363595651244276878452365471698837770553624528481800838924167654286801505577358304323239595365543123403090562964991143100544545710912408574732038404055814876252659303846055680722113088900454026242919324679929070818548573907073745246156861376195309891087089654188992176983499923366092396725905370856805046640585717080547052080122835790489546524624799846265707021163618762241735609750238560212442871006200458970041562932045578948762801814463832351426208876866447486812084316258557376994218179462312226431444333303607483105921086644722712272875562233384223119005655110250479374757247530506102324416062504054324794604248516892255798545680817991991712750250176224035564775007615815701923117678728059942491389974922800876735350548844482374894231112300873787642654370108417692546308067261212563006428788023262065289776202484994948011132671945737505972114302703509648563595893079469884216274396749789919904742007457498639552010175099692796373340428365291725999445715536218355416712671781650642460086168231922214128281347070537939202948872974051320817380124495352116997248873874682908968726663113229790211560132863874654212228768073067929018180551609863949892497441588681439353641877740872700971702889208226284144022023066008739401913171070923490569026337188969582275276153549685157926423887289061295978831560420291689375654587900384586412836661137163481667171338718372521691351552380374993760712405792430850089604229575381068295329994690819511956523564362577975790077953339040985357895745988708724863563980754206291786562200087182924005288440667485549485529832456490697150282028403130711523271456690750012329487932387508489052462515994224884024877384720943725965406587102646065115541472046958379645816898672032281461485538191463539580241116419412203583019634731394324490388317825292187363862077624113988307159594374907840850112215933084360824914281669885755039835924831386745070963696698245087464177000135018063786732661848934065304236227127671317109900633250531277551044241527995535018574815994384925489211278058778416756836574981316272754471213690758969687075116335621736043191771996525421001352630362045237692714494615360515669816673171895804278667625167116153324305776828074827955741129951268215472226256086362743128543424331974877076984156326614734048280114353404657831332384239927765080463656161907033860476816462622360728602904995129156174926590320916931810976052238909585573961783052972028573001102787846565526173187977177691975331908560053293397509385619103101196451398063050391947199342365379895299863387359988793600352998533774950387117739766836095813754093867812081299855129845156552300458901469682687247642066338093884231175366810731687210731980250391947773650535341637850569158280505141522284569484465177693073347962188386997281502245159939708827008930774561275792138419109552065439769902559289534859582752478015267978558687360217913661596263927216211561827130516122575093740218516445908778082229066379450606927738906013434006571574080822504065696789472778079155412950089887728958566615102045263878974046066524245727133305651659538739930344542248625446300336294008899834647277541695134793467380348234272084162147125208135158104090935778599331382552190110564630382765771554377114591404993142737907672344215093253648918747504863316113143644479810384189625231855671385651001922292266858655643612116793370173330018415734755435773667651831124216831416073725301390750664581740114186909084027838896103835924850232514928789262657966651037170817613706889363551314755838551967256417905084778818166839962211872942741947818166630282436866064697239146661197432439892079043509024714057169995400763321240137739395570202737494816636973287668159284750542376156570638820049167630245805694505140627749905778526068972514233658697048882887677534725666208880509640619611623768017198535036406988068782450950451432431317065635722227172363816651642651018781316155603550336572627574919854114833641789784404026085781156253298357976870424008493323161446749006247679205989863949870193878884242212085751341181600386598469070227059385251434302588394734774260545969290298379228654786408863395984358926846088228790393624435050001952746959495060737741093158845119349657408783414524587358997238158094025743173416559661116040959749654426758992318560533839269510519489811956928332094699692479569875187802570030480718556049977469955914163624336891327510017857623988900045580119510682997957114294206987635546101306865739636396728472621925467760091738376864862751605464819838105710975799270828101358400688806264507624948577647084510613118023792969568038320927949740681749494001685908037964716684487234070008111759181408130382215341479116139162784471499487654158156989191864603484016631941265596343436684653788768839527910392929083766199583703752899902071833347662252949075650162823425480473999607439005391692559345611575053943691146141003815382317389878688154163205428795196396449996381021055754711586082357676843705399960643958688176587177244603962313832639653674451595234663731917433272881470572825543980771458845521622582209663469379064073173548186813266868761356008905886254204486762246640731403882651710827776698976555153874284606496581679822805640044734537405743624601653317552961839709208690266839816527530084634702494244663441175467232912346103900969199361971325529481157504559405544324661865825871088950855315150948709708956609275182903293781000440805439037717528623396536855849402929469767278909600484421673423641490833058787922035224088074350513428860197231664008334878203666614243262392334899399275480603612123049037538183558006299807311995601747641453103827241837598387669753442677927846153395007192478487481795042237267543162146816239064774310728951277446023917014457690426460034191653543705575862909876826971359928638763447616315256784590515773958017865731572210621720861605254697106084182339361196144170953876515247159524757863228656405825108994908716282227441517947383801757221450948347163046936218998694537932330348038200325446138328315470119001397841521867746518819057177705637746171680712373064138623284193086636400696071381050382543889895599429526434153418105325564224580604601134785691876873809823992004508775939005492895681508952481251242006657167612679803435028744161662896537577069245361554574929046920367844531603747884669152011144276153232089788705628759099218940872389991024532211306738940320258977297229761182866364240977552400658828861141789183648071843386821123746197287208442775805886575987044658233422315998025566839560372284309596233359265994532487059823523208800895578356462635655479281768522989619810082924817669476711613717962082245229648395149679837940439273571393633935659657601602674536232277314229719391861382239050252901640312368450927492138411911375040581910450383546365259505256845138540338812937316942400218197698486087886857652378477440866154951478278018607633136755838105994997898870249040369034376888156935013562459010154196859035927294282035211697961205340193161492976582381250503236423789552602060909230854725326267530140945139274754630827127839623944092303034703889404433903385974195741921675296075157474927930953123878149309188383179892184798452080991740754272836362222445416881486297084288019215273652182880138714711317018479521385649177700544527513554987676525503659105988611918907427135986813820110911455600575244256321624717129332744919049405000301157428655802152249610095207496901532375964153878360762598691178771315393815023606561698211176746296460622664213766816969067654103848919035060815304429198247996822760016119987773013715474515770274121890685919880909238789440675463729857210339765635366929646168887739287943163589946313989501468571694870509085609632439154951530753502724715627478514419949643320674410379365535483665934836202374601848121191796324721816944043311020284612642418473269687661746870943886757567466326013276639306159902547325566551389216141733347780358113983775829623679886162133097144310977642699240408258730338720079831422680553709009761822848830657297756375313925200139583791122892171183420421969393394102277193424326916962591799816887729141617528202058781633117783411072251036990364477832053331614184983237423018506312612977851151264028584454886981689595640283714161989439053123465999187132391936745557278936782008703908694785824392674882187294427176459391311183368208226499766986398737904304827427243452813473104508449773545685381606618301561051566952401122168286540643441541243356045225730156813699468709075502971799841479472397897721741235454770025771188256742012586787033192814614103943722460435447942054989621831059444758192109133549218718133275036132147577034893594279550102050037661326378182088558742825819935950082251032171494603818737405709032024390014227780645050246764511908833843885315811248527603679983183937691632707419364898527408565174639293037955988325828913212023462817575550923136740041910449450032893106681886540023231309578103628560578488291950680112933580652240694912342952715043272953294690075017156654395661043336700231508742230710432824743216282184719056140937273324888687201806289674226081846039116116955923837698243763960889762229960957434462753140020229218576308632857385032161734199691747727928395687284758577675926145146415561256611759110805779737011710572575773406521075434425659727774674540369850340713648106909113827689367303576587877045534434172908685362037876792233178673628351133459272268885137836095074675149421874860663156913440757229701572575850173522885749871038607444182548417733589536509327664472014210075484538777503240773328925278791072148623204028399113410434511799114896139828537663872733806021814961450493847649737951139960554698848864037854636474944548262937299849593928601873217461884444198262335490574582522271260115446996956214626041079422245574543742316919700357308831682686707628857188455275949903453784302934126337860887106869273529252041778796042751036823412754061580294146889848146186359178059848571181848740687973832259608323365212843766274379977165751642894842250952684814611995216827090280850124648415873916823596256210845167834667812399822211563800435630840038124896325402906682983639294888964774467607296535925102115673582616446802894332725851383985853941725298696584592607919035545483411938304934212772003854192198344055765805259311308019114578845939336774733762125716795048905393944081243682376399998325034209513931395272367841338100950678766802664425283730828652856195211172781540884068242719298566514030629848263358800112131886165000132605802845895022669473356449522531717479170130864995993741113046359234739737273414514266831848403873792144770146280285831212055832674092845871533900353151986971321695674080843615367784176312126547461531349445272318228294830924077077753608016977402962292078812554705004394298299828007597232905603132199835747040733250864736773221886436636592539880434532405625622029185798690499612251431762191487391522788307502245615619744242922256771756348260126285824981070098186062682022588510485815982066815429664181198081581542198263353656170442685739915210428082893243531170334186493306753151703848532446603942182868344390962140623786751119545888481307406401650559886095241695217967149251507933868100959387239897566785508436072285364728511964608748920270976863468579332233514487688655962289593424780943636289179490730040487243539294193974755479078021845886053727045750721353094304640352573097054754171543221481781012134856287371097248862418539775094818842496755217048869366322371248213602831901492389163897748549268325690137025877821400534034330909843603900822601451203430705406318161599585481730931690924376346881046899494052817505462765000214034766238541222596655098685808412230938872792105798113299975300434185386318855381284097959120563018674106401998904141187908152184105828068577764193414815970292760178712091157613763634593440880570991244838650755451954617992028033204000178850538032396879681243202874220586153111748573786131746477122150602877337377774716546404068748643336883333906355346820537781838717302343868269917072001145557567933536880314896886444279522799326893991407134215326432185154535951221776574349154960778259228849239855914027763692961653585950812916870414668532916910425698222489993650709266602051042814514939065646239732688499079861102553587334146388719011886518350616728719231566495942555105623936026574405694313156028194616269963920604726638238414771354540465114430048877030304929178917962219701347976183825290953940672061890513292023469218614972724432603969454278126764570774626623900923198894899660478337642951057042529970510343527988692735445469747553477155716470865661165411533790818481696632240952920285849980476850246850476362586990331142475184245989541379797993862230788684005149281381760177031405939366896398695645009111549394133755942918006070153552299382103407115047081581211472044952807652680573605978082596832011521570592695628656883169875710392384834349459901717644929018194041355860789144452588004092415755463775441731821727247461570635281840268771325720569554900944389205926756518245745067133028921463091832857229291072533911666868490336546678556681161118289797859181523495522895127433405153830631702947207498852839837768912720986767956985712206874626626997101986775167647150439009165814153639516736465005406226567527976570254365041237151849574606515095697433233406376285698378705218310174188157744072518548594460467639743540816981354656152235119014038880949944399820364886133451128066335241396539913728491950692031962302749022480518748180647399349089032836503026512633198080065037902761062726343666247043846914741996314259665572272258585552719491877775175004408804099211256949611578846316640158993261885969684321169765951908141079586905591225056274124628093151180339867790926110412069371669146197481154517428920247275554306334856147885407122384966610312185867355379027114122654967387833332587144009612358522509594507249146529894363010427654082103265534236252521857612017326957947949196772019979112038806156099392328148965189568513846822030478157772514923018184451311724833608149523689306958450714979065751114445832930754507972412049653185578462299282484218423801102362461525677073095793749442248252913936326925099274655808595242080174211641464328580607434061230265769613272099572687924925844038187308734870376468669236036701577750216010375206313007237126393023292711330436916307635636366680712534856830830947895615046389620003086370221152716107806730995241281775696250113198920454541279608717836427724256518853416273863648883375168177165254972965478428882486704919307441996731359066910323198447553904584740281538436222542506789244679763763164343869074514369827920608314014041420668300069405195478459199219749855618719780166568597952847043282650315337884460211022490869510573337815347042907133002205225255858174873525365580956319041384432157696138013804053794381671730568641369128909868075689042611954630049275262917833939963780945495617708124902943234338405429390615411707250463475307844145346503986806058187093924889902871124875067319202825590272199829850161764690911645482131095115805973621728071675962334042341953539188552456381132544647117533717537898369668798418433150821628739387978716356446705270361662743847290424787193338362255651585196619317800105950602394287471322692032253805130317833648475960856876395610351690225200315564671353115402931479649289365027362054264425659774055708476912315039936486431646322278331921799121547733463485280255299923797390470263385246278207822549942533710516426370986423923015713260930074525162542336656611033315656612558912107227965824039422393164276404825611285673705354746165379971981069332957970716354303850542267220551642192760179111216471655254457638656510727846717943266751534104472616707040448486968910355126390967873802430371014975243827609954248001580906839115377412516402307009996317493847920375424706260516027516564417302397561960365685844706847404801998963531642538802980992854824067378712881842527643930294084394582182970694620276043023983415933876334643294759513769020094183572348834804667529024179611956805014635190122194858667965191219101662341044555687225431216739109699478280639696719775437529801929016353443535307115000290128406376783367053000325882509057704734829813890552065953368421932289334750377333682444488533487836443831772634032043369612078608515557187140713353505216501281888020718766862180394659764313068864972430606953006983406043468779139361111069913075034584640239372252724548988693693022267037417344237094584605197335483902758109945558010630692628069844127117481835798522290083241193114182447517655487656508597910532265609093697885644115333539118460211860846244958902514699738130903972389150759312000699588316663164794576178344572189706342012347948882425968872800076038062644250540868928369701311637353264465636361888395124749665213956163773294836112098263348717980304314631197722358595310423660589999739164796254587270160869116422108155475681879637907144306547033739050348048170633787792654365896877631028968274396784057852998003881127661870272185763058115211730357125187440646497867990816407154862244725693875736397028564041117040340829441608050373575719069529382097862666687792430523227786943067312723873724720778784522671896730190206201348083985919378137283218250425206394991387133936633532918447157506093533154589988923300695143490707428829274491193031629810927698427875978276893308402980934464600541378758371505232318121701233121950522247907942809929983288961736851565300754407881526030385221197590112941813023011612840014010029809598844993265844952401408942493515541077233877583686318796995226227081902129998103346932914619996788860402431313522130039265128422021107019688572563188860134096704848230306052327542664382900810172514678362976557092696096960285270102896267423787263949965129536854346714318231833902800255703841253582555621012574909765435883010298321792498495276142904817867872473390122262943592961833671868244023423217976822597309817067008652513072310183405481648657782333244417652882381143461752865106965294113404933076533746764721861154745437501850266965159436218351802554714640527819793341792869195204098828410656345357950120079804885053134553528969204591690390286037226772700954683350085967349187188124471141242639291158528755425358637820826970556592615800721834616873569376681473980595891491270782016048106410028805705460246734924427367953819462854762402311399874453186973831282349749331641049677067486221102830528253533842959113266010902847140853684680925505802695584039936343818547762146459730036711721300239821703864599121468944031862300283209018298489163312261899529358867837667094165961462929450319016601748633365882261639975675706928560161667371147712177488649787976439734035070525822415026582441637726801943154988049519149996870287282060292502104564406848585882682595050319960908664845535700183161995916745780237224395494085729947716669040095020892404896772916230289337105219204060116616396333555417152519951521848862745321473341052457676377250043523005652475861383970590890659973623569635516260762282327287186736687308694512927399510575727950205657869837188195707185541694264250500223982880356669844937041897071790482267828158212551365441908277741974589914556451500257941623268770677447604406164296181910943607316368435646571912859786399844460215044312843640186806120063287351821627038981662746040649466146522544210073296214834993927427375170121183439525199367320654992396273638776507803429726732298373534191819307827736777725640785708710401457446560282553722564883184389410147457423622361938842357538210906942429399228877093260346972523713609429785045285280681520693859626619074080197137310316458833366510152610083185106492725314396483807090912846744219296326559689010591435902257257589174346929226855987803252882687041826990759892609164447378099586748343912183348472557850998810980485172898492088315309419878255381188345362195293712965445161854619699177482381772606584173297421664383234533371347673531715407924162426667820585581076926054742432335120874172702196313883116927988481574653237459295675482195649539699021318190266345422194276560682527378423984783150003620839256184932541582692291266188133196817639716799529297196007461223686721649558363899389456273121446847260259609346427184191289474611458599815915250207410618834265963642844357908112033940301738223554089575240704451755556660243597865892541344698745211223519890981566484043682211707594833986605095621189331132658735360238052490100451221025987013574430559069759329276729256597774485779569964386313872673677895636233393732062445122983174349085891848141652365950865620358158270935218738931358209210264998186538387286937079369087427463035253209181502873754534500874450436570186528106842191661924839881461154284705815958525955615155861940736921434219331715874881317930097726072232430856040156764288891298758038566256708255446937200019537680683735039612446806628419433799673532527644226692023568712024958486930891264053162570341034405838711657023521014391855928719799750283376004542819307281311269447196401530431474081935039015354260745436263068859149385930235474533057427980459016975181106922877090777923634329892177301823441283645510775958585015195161286644613352699435743302658331303627064944935233864191782027612904098149315658086977057887672348318326402745566690489573478482313603166926202295969840038480838260116037458773680358969689976096760565843023828903660332779539871452415128382582833804944594580617067848794664767834123165033406721923654230541295391406550936682824301312985967889865123529382871848720110589965008891409839409984820938960115026116493388971929846825369041731840802875196308232178955344457846815053776233190238642827863684443981217958874944396372452489005962412632842865131278750217368617870198061294976836861193762604118864482305565951623565508165599929694608362078966944937277191822215495569928989596609664366759253390957199123224424132927644007895074105821261804342629988979610073103019796402793170199490027803371535621621469418354778784898253270550799506245522227735596156961229290037317478581460507039781477467400824958623434000672544313755176540769780543373885776599116977567030207685013591630195994876057177364200162333180789453020258730041856474104175395215200026461212648369837433101308086667251988664064275262561785195059785940299997980749572090851221262528840544430407054254222224216166537212554232694279527506872513996949589256348142669342343175365014334949061994564691788114084551114595505965370799384176202706096965102516631356177204949548984953158559162686291494904120682686539627100436091465158337266033873073417989947346133366440341029946039250122807718892781242756518416193634875735950708935481247736327497041619280992067370755925613667568060395761800610556275782482392976774336846231570464000006759428847443981822422529005090396357794608031206169505819797883025073386785718197271374679596334932626350247947355619653538270363687947233339451698480986021404937211000877037590734565091522358110387263846247296549823870009364623623575905087920996838427330310263607776531411297447697712743327149737118854869138665823571818905629299053028475319780202557396024482796292374047548965741411170192354176099234982753072284823301824703174350567187065286688605299012418979910775651917372079781645280635695362920417726853266774010165241315675339980249299492479946091664178927580275560243898048073456769635690450314520428142438164626177419542278266063781798301174452714405208748371351815951455755261813817850757741864888641766943103860575043360941239359034517323827886647714814324651542977780745653269700610754760049752036642372728444344484107422984766039899111983118502427809027920456087676527386071803444143641681800813886399579563821012966318926058660819311170627583342326194787071818165879255187779254310428697360981356350561413368201550095272548788252740375344981131208521033829312944044140403980457990850456002322244583399577455948849446646295109780534551875930299713617849380353301053117765223098933167960131857024339868438481946172634650867309554152616032569130557605273025525748265097337763639572873359990256275736231852822586513103984373346714857557380764383609051758241578086298288757874888186180990799265758641486462837555731712941841237435051619746780641629227971273958200097107997445709006825410313051347915904764890775934179087678834533316371445300088143722253735373989528025273407239655168041273700768914370674847836338336332792900905079366925267374551531632468883768303882208357963317175586144802010982670107029629261725795220553135556895971911297960385283257943973931263417648646296745949216498790238427399849303293446689907903264296087885016321142170880752668186131457800053750339170962010176142887544227042002993119168483295727633222079284873759991206494499151620969087143996002673195308651625051386419442265316376991764419652150357295787256783036254517274848775524765811707222468829408021098566949071437283427659329184445635110462856397075150461207522736397879360158859391521187928210109141513129310311087129788419450094084128654594904013929359137696476230589018238423063316249718924529627797151169917323825714851791231577954638920670909906364934072834584130225854482369449052947256777022748541532578871519008225908699374864811184733305407870162231218074093339814748591705635986962412604933987447783404868014878032779248510341757417398922363363466060035435433199321094437721107004726962663652142831453361100334899146409763701505651254515779472355266101104235732170297913430847156619866169064372746829259853118809215626359214276709376556098177418294659441612080857385971154126913445905280631806192140186667030402702179493157179735243921241345954825799675130039182433298649517226987514014480962686933254156675720793768718852083683658807826979433930335395408627607185213459066997563847578513287105145033504659626201970614739942466586276007557339652380315392062873495280575185037320502008863401949297102183665938579971811074576159950518018638403897817318562407243969116993042536126991222819209547994275891393329899875373007862598845973827319288553334014097711352809453427040612094125912426437764652991781074309841949814335387923657915666065046867816551046623803105879850224951845257714097521751881093454109062815715903325468186962328708786360290769925312466483646568949781144575534806759985754874700332841919650589431553000573833804932964176381009377759144458147282579506553661147089976554214299834528670875970231044889984839164909132119004010274347373965759458025765919944045727373447259065281429639146161964206559703499150411819794002309939825513868298481155411247998426916199345418745960820507734008890749236915645016548864597187218198604232647803059733330466381767979786027938761843874122344553337237334531840042028679308646496665197726606340295412653423917848335008896665042102744631026067100595429024525945876747651139697089328354080177357492712753290387996182917864718507591065328647987410792638271565574478310143567970290277055748291820489137485343407347850702822332180154634523782195219117637118524131574404983375499518221731546735958364858023396119057081189132502457641143040895334950892372430330871280577583685637096487009971926714298977018703576468826532069952703054337993297101098594497693420801879931709792986774854578431404777519561803112491911387796918239696948625358732803132559516399290165375017030047863941147514744414377555961644695955016850346497157933975383561627143968752369333164227842572579774361485383256094154407663418308203935056158555561945014710938819707929004035858212399272079737474864597571078203755143464632538794552025626653146171489474133085421742705968609767474016517602601007703000041781960407464635362334423795697064085844566924950648530791147794082586593849690682093429918283054655564822325391017156992751013330906630164582476374525003938731060659142109183962390063180306185639801155892526532063135329779851330931210856741259495785223867230502763025688962141514862004980988424385046274626789469951134133804043057133917203670666447551229311774765571615499233203583734941065759803166781206445256615561080878122776864146107016110166572776776337059240641340923172074440408578198977015825785099822653510261673399671713293852316846112247360801721274615736051200068148329036417382189743689531317677309968620801395104471334623607378794920172888685034019496786277498829832180703314291101786478741712578966630149041930558425788446132272410695192573289626768727597480384887948220215094120695360054899394205714405995204218871262386658982943693976684309810889922479538973484829129119172291347950912651401209210066311876005372835521501463442348958921328583301834568543022720661799325788090716836134062084079389891899079928331653891453864397127907881421839640391847007991410818200767538484445359484379042337209586386027869266916516940599463253741075505317927911494661810502011602882725238318801980303963376806587690639641920010415667850281952558762796543074713586921781893214123196242492597842051760181903628040863640461626629560393106520216818536090917428158677257767764649819513042250128439922456974082252567049835039827156670136372174033896807309644903377608577883312144750688681152693355355848467977885494946099231361811339483453618848266140047498838249173102931395984300410804899374821967936751888767733809860025412958435345434934098853204118602243350818984259888558764944315479276234920558605650943472614406385460845608073542341609908274911874314632153084019842299757499594426221392657718569246666403523113654678141602177712631435115753246670271295039673126889854745265499690841887071300232529446966221680881748608658373377636994146577865089320393524751725027477908389039222632023275255683752206805479735852972038223704580506445865778731239149026106239884404300538911695690131695043676015812751593817840824541596114356882224332217977879432968574636454103382050356243787809229112870793004369108103789727688167300172762467038202694365912618081055689939572891920112686032675348466450396464166918316151255415324020075387624954020119112571170194277742690884176805186675107160196790029027715783916281411852423329319635966398526851634798482070858373655178164909970772634269348808231852737958901787799406974873626551986336169109181075483809059330434674030111434283794638803844202525842261247246722807402677392273911359837029185137847721613749134194886563936722458218529160169568863533071697424382184174222337826701484935750206672194469257202527905436453036627216192030840104976312573539331659060553050895543682397331688786091217292075166884007063197547242314003378690679424947540437328987152591187205430410164689405821042830274893286594470810051961922705378214078718171595784067044079103367263086722739484350072462923308002752097568236819048176606467146533191709151486006919680432088455011174651081778881145610852570445706648855056119514311831924603634443478230470171475689699329033749692472006233644058247090406527129464591919550287298703155381785858013713983286330512042958644254623493893014777068931850346657720454568519693459061193603550611320770935330830132587361074634649542289340964365626292667180459478770957758516885793366934710051050072034047214583529351286909996039578950005549814559062067529419030470545833030892828488903106793770085447826839157534540032597917798932661175762044765544128611050037425933034881209932869576919181243149790122934252553738931393653563800262269712563283795638602753536181655117006193490396360051494119722869399804700160285395110380617305249746183869074012009316727042003929462974386626684910115389100491447561341701093961325085134578139324536297628627815077365560292826414866524367256346255332162092009581468759654778597719075133367599257951452189710579869352397478401554605403689835528128496644111901507491390388284027488548969856802110764448286737174767708177500682090517900186882319333798721992656865130268604274235290530401804910216035735565907353261240195419970367462749592521921582740761274026436166830592166536406541900429746088056835799474771012554057023697285429522322820068669262049012241780090726247191531623478003937836873999060392963618641132044547141977419945064120643528205786802815742191592305368463592895750711975734302010143127963259061034406319783654876807311613525467882034113713377852822851813527950851548389012902232154778133463401499769444563468917029558584111031966884980545772081640203492895636228509210889240590893934252755911481917339589505158131561186674909246342629197393668026338492486914513370639881715535723597469350479769553246044250899702358515012290592154793550589390620799836181558380661465807016418430196587849224018918964245778090999198574916767514764045978091029331459854657389468269033231031605072725888520445753890202476775294717589966392658313727953689727405242390190607201720818774095874322841242505189668463334447599208997021086249744536548366020058018525438590901184222625990776633894485731812124413507421856333000012834812899325161924223824583763371584068606460117511047637705306418211940541363301340021403352950672581060234071049598830427904079562668232897386796328494245406059737789296008659202565006192384704968958140798133027649107122891577976999926015494702452705281399315233548038491159758286568531842789377554044285222145742587345516610470004823249443698302664249347468248848814875207009881460435381451962395765469646238425997410720830168262560817604727258591958467728923391827808727118241496400464406396849745012249234681003258651723220479920344403311034907668686624901122400437846223870198475752571661447731379696367607191518346996620182135382581007255820040268653947917700403765050603117185585934896001705157654461093306642828652702795418075298157299331043879045967793948339153904021002146798299434710793443511695708358377637330456764814086489027118934664153127777111962611549062244249217113306001264370003936593456310156293324548385210038987961261382506674327131004218996532739807893062161708665914090346719907704627476909814649852289713666320344588006170310977769817432351778474401334109482950391759556419285143823354409705718437970755550634817772928950245127192411519856279548065582692114226175246837579389190291076767327528011223978238372064018426357627298504632514675631165305285613195414462632226408219885782114167240373149001473621912702482477471802645372432227826750494349266622257826231425699122601046405170840093526913500574106880095208063269289482187169722139648153762171919296232971504335960848065876943254455837049180196575834715527403207725987916057237602366353051680469566956914059446695762156299156514377732116478959440536878747129570567132070683387923974129365682954531502381460288543803875412094107848190385798021215534360980927377577361272125590730658564702501186480066790646503247575936926237960757864375955296977091721149775182017671350958201219534543649406051612607267321922400541115863214864552532512480685330031144758320636769833436306268530148463672754269513178126924597058364221764810798938374891914255396481274927851509398968157009148692485863432944804823268004078251796629674888107352856033275639926773529713915314494631944816069528782168924882383691625209856461298780478078785399140711942810305110997354293061765074198351626460609317790769483022627462134823723771621324141180525828750158456790903154267482918647950195472839567306631242489380130755228525172892612190181241119169578374660746836883317665338393357586917618927377873872246153603218927159222370523182769600017921418489749066744468061265222181325592397273999032644560051667514425279647579931964260532342028144404064285337133880247013131568462709408995437265084273936244718337692519192798347754432760336150136181651895259956851527134468190231793136313236565463235591429413509300885173594918038646226349359116368727068819673405546568088122020517100152137857192556220727277234462848146228393067539043916546129992260485906149635156691904257194659750932745167491407229447678288094425200035867513806764760869234763838634558662623310256060609306728049211455089587814708011875421922823886529211105796814773914330205883598539855087626268318528113083988203862192718623968899814526879052445245513830947087355482774832564039307034742821343635347753687057777914873905370197560094907780889194267129271120353654200605879828447764224234021821528951871610833971933562451283082981672095727541343634154402769831564630934696665439812007558928259517324640088241081711624295487181445993241773027735378281530142354147079619187787339306345006332191949925035277228629065588520286634176881587948353048520168849927142238527267241105726725894551861830976798942115453339455938288180930414215515609652871085224162105654245917050594243156922448315461491339202570835014501993890894029601627141315665023172981315306247544060695165103862658115398022815839320731118927092563092807208310665558681535420902801880138843367768635303288586546063407377005993873650251103158016238502341272375146951763409569360215491631021642213642525626425341019328602285678014109899848081602597457704175492844687411621387910831369948234499174223002348015182991899361691880477938204642681341637750522747642327878104456492170223073948016053121516526021553864675764111214080895159302140789835825429790630418214004334070364946955423391411461668172535443841968145552407734036951892720886560346384191308733553847039467862660427291721571251082766565077403940238354904359270566273436247564049945141102967680713564760263038325781132735891763979821888031229675725517833516381417585246055716516105841192937769365699163572771457153437843913928742280670661879798613805739723546791655825412090077775788523117939239876727634231149701178890595993310961049561764514711781816737807312454376938899009244986796258386173075760042488086415696464345093734390146938749390699593508457002093552715897199264982916107253065853744637190908819063290860829971376298036712524910163515800811937538050148460853145469943594464285042241612937974948690720876833916746259505336662863261182702438810955399287786307997515902809231339698279867950243399637430046907691520208278778582909858544037494868496899230244124892466709934960821280924566051311088769877400165287865870979235266564390424263819755794218441782354970936222371348159189392844590945210140850201525355495047454146194438375288552696752431865483963343124147845897496353071619483227055644918021721172175314155396498739957958015873303387599068987947809081717774887247265698829093888219768545671256584521513150569111733969594313989678692510870900902325779683864133619737561316290011306875048092553760589223696846638038463632205830481480023462153705836502625320077568644154712686184534518576716066694023501222278690076714172665771436577744010426320698765665963754036895002358493154285892252599938955313322720122431805106859083153973133403261488789332997884038948477140974470947313276548176170642549655698939673665584501608561277531606257344301111617016769803851913066635562680489908354987130979816662997860535661896541837547669988930636947405259323052522063509164144765224987333650750248691411024057332822206413919640547246890130278777032583150556523444283699071604053215782047064639281895172222804522037363109538344963497843746628786965247384272202209999313635456817327171936492614658180989627439037857299298145406643469760067268081630660095375162120407662875454886287873282168827169626395053661288756905388177392862577378773901758827895561704421312587908228744517144621787388520010503403023247474752209877479642159828270340837890946297095749306094516112218333244314640611964779711320572319831798481841402634247083729635338582433721479752484809037896653224515519940820832981501328493221735578611299909771850830858406719184015022097385981944791456487344580610651084232491658084366152402527565638083954545600226321241982836660901599662103481452893248943346045280822347479199953214359407264465610232348844487241054808635768660367680232535298461756871197030511401047917949059112563663559124884566944544093904779810976463925725691281754795176446024967728925320581389284330789195926593187048367634076048526551758321562769152330456395224425326817921501888028547079240062868335277046924412427765993575916450860274757976576513611332964926504309037204976411663917769813321872011329277335274345539827261362317850006535633216088142515992074326112822943467356568963307459010459657527530190135048568010200998897665536674059234948596287715651315337509133152682533552496143556305355701059817677303328576755725854697657888376879632052413753437916374548694414303313266975837431471111811825750688368541672516370619918451770646655562184094814283548252580776908276476885436481737171531548359602442832803571542725093471928468920743184561104524656078447181377287895593508191722496404367600327210685974874458560198560224713254471469584164468041419916184969785207588739352334057022410722284595205743167791233539913722225208382485088168519305522378401783593315246862305180589003170008530174353583985136767253842325087668420934149173108970772092019881082851947249654894319724485879629263659747288153655706389314946170900969832972714869814983316686646600733269979604305927236741538827387391702669784523932869764753698823718674771295160164320765579763321298884378539090312763569619252820504293717467918010357683569025697342401847276273373807569059315805768719351541238013620525646214720364047502482089324406469672027443363008717705749736871072754753153055407677593524865897579914771687585129456654362801276182712553270633277736288632867084031437370571186339698186765754303335853778304809909889154960881725448719112507771915809722794854803454998042015512202341203882003782850050799285447450395464379466347273925033019434102096994818962996099276044117195446070775093279965560319648975534251222304900188373241537604117672113472314250978307580777460445435827455750801479319381614080786418307291972020298521722910052424424194458167262986655767152490334751418104424653324273056310355534139893217671386812537204486790064124281843221112566356838982579249231823103123841796247358995061556273531368991330675671622912805079937445414177673049215492538241090257522931346245136095761015578800356338529395256680382289112384654195021995635228181386214582019889253664879599651967959710535447608798671393209772401215541555809627492306235602630567726114442964280503081674037757027394524851087324848265416537822688726918169181395325753754225696384547940640879873225580268158312556820212023874587657405570080590646611840599921308104707640641769135486963603340344318727385394515208609454670300996667942339959732097063707991376746979917886043279965796500686289286852739913407920954295910905941290423080251392046691670128971271970366044427530400419410647350217262906388315731301734995440087861771205956102534357965248866258654036943520255305475534959760144613124306720997599269052541552605499903404634589884485294753914056159878825962670152528028287142406663385666772765802480727842153351641393198231953628131908013573190671188611732312620775343840641839075345090023349385104572909886286182234512708576749575942819324892604049630699214629922015387977524797275547825552991349258139636856334912090799809055156023447600065082350707900920186676070219618805501031061831855179730046679524186852564101407074474401387400088628951916790679730857107041470840105968490708368051170191868040374030980654410694237485441826541625455123017497519787920562869953726735279320160787140904974235287510028843230834640692328777646888554274433706955360001970622355748285763823518085682618240061556283279151993215805886996358089301785658424522889685659074440601610221088804404080881679690325042961515307894230136368213633919927655913874036287310012761958132064543619462772352259932541147472166614232684096298160767359791736660403813306959087175913171743204756172509614870190689274956177936109303079932285703297676336366212700871170186533773451660110849720034584601988347516742715003289882308115261174995488263551191687618779613079623190150434795864732795264709893693008291031586434705348533519276034516666273104995627994557536662913480080762380610721377911473136105728880636994051298721307537353614719686916040875875642808512057274263978196853055961003531170586864959281888849224959613281226466494831410837969171373461715468518749309053144568580006824075919225006313145854978348730106758069988605885128245065233333177654798505172027590466741426411304292989725370494524262757732516709556234455822336985429611714593140103318035298227404019966886882586758675983678942160641522496707276335461361299590394588069874130050060298640959170895987798848321814440822798662251330914215168898390742056475685465059483779935216221598829009566069372215542744750946605583287724336620387969049302547355987607687791030854377166417513048917896453420820572849184521974569147507517901342859743789192312796251457672039571483812499805199772099632017643466385319937689978065653118379621029947750881213038862649621447392206085444942908018594446192446005643923495937564210469815068007186287648364286746031789740307022400724123797642926500835724098462702898631806149203646189756422903925132877873691048450895156597278311659955657828232230598002133663340253552421069748023829054037072924507043853489887343902162813510154880993004086376161687887851570276286685599445766777008766619281626353005526621659370903703186034210054697202247130581972169409019937706470237073174203438019947832729317806158692619950976739899586582813863617642229704955440520009742710434073074405908435740381437198238748483385111546884666733525324552523083536720783750807631011726281964958061301684714778697834958096374754405164768273267581015333034846886343772354377845294837577019618329330503120271665234670822004049816276425660067677242841668907650349874041831002838950657230551096598492347536080783326429840568962424097011311474951782560969405339476244458269983731324321606010519320663037647826303158035701133673339640697693269585666093045954040009124255570917443450499066531363717529303520822125717029908523734530073279545607743641154881968301986549246756253833695683902580300704241021199933464770250437249856425071946518609084223168479743303519199980961143553879766476465114252003760117425198638815780354129106338571507641532899160366770662608279542352810558570046605448482090048146132246071830724564155805445548744918648997801259236076799240670434779761473238931054785038946275845072393627107572924849275940547436794012681613516019969253159239643788482673602089275480324291202725699190622436395728589586140608050539904386716951176665644465311240804415841349032869706369910290505466226801469178145000430749686540058289246607765666532860548079912229412060225225981858026887695795747133485531595939851648371204526600800710341111099832272564801404527218126660035237564063286736256901862698202482449084342695567773956731334003032139060079519648555549330171793241331664180794080975335917295011661074295280366850300884047540445650475221702204561196198223182952896874768266969180465651847366974176813327724551755614726090869358266621489201391143283163515654773209737206054024122244264438019627246228771442792291457628624811031831383683715678737440135499316589345503876195405368068582528589064387314573808195053451459799623458530639996946886931502474826541712839559480656229354212256635972027533979370003335818225613074179599156561889570945271392936515513017264139537148663573908459860259044228663486654852646326334719387841863158594081517355965561251803847140509030197793100279900621821923334077734917388217525279779753030929882876645743112321180363177348747609005712399629668955226258836009733492646100933005886449337514047136012323958942890122443570841677487831449645111834176388196145381887292832321173215229501357609515474420526285758060175457916266195219596451613146240072732200164427476929087007773200952280697738233970686236505424774396675434529048503432082081959184446726514684926511066811836176230070348961772424870071803514655265020384251004044826638522060451994622885466746889722373202435104844236755601094262875403875828559708001450859714777284282381692565742620256808812229838030521588366739890403451289168519728582420743745064748794745763929899095417172137536635879901671792914472132601757339208704647045858164785523017976273912536677601354893642006949910584740362911667010143850508689620347719622456434819933012045623792315317761792860703711467263143970636879988274917929164270664474712034108930226904953850821612449656556784274025727111346447926188394950063564098452397589701616334412953364637501436733949845936243499402745894370629272990193240272389451266654352212271668451015071924773804501432738673004605181931575248594772154755547525089674851496026019342111496011038133861530163368736486301745890175875996115496810328992009341094233467232491181741735539344746078664035390707870299506970719671874619291213822533564558617993370000906197368549126568042649523678606419503361219098298177820518148575039935766883168130884424613489375054388311369788536317921455485128837513136798064847527407437575735989694778682514454891961187100027411639394265980670509221818511591307074567397913013397062451984832264311788789731460397670341755533207966175580207791616040975090727544838990713660169875588360255616527423625767942344977873653342843154076178753655008960274562095244441458118843966506236074882979960646295024959610776272889214027884639037807309470154272204473498272733527834848457036971032784417071507047547248874565307800998707240287434703871303356754210758815490753656869521306799687789730293520404751520822408915484769970416224520903438789233059158126845655312839117516330311348290805916569650579203904113524608161631329764138374698236246606531952444476226031718387547577651081918271187497373594922545964690655940679306033418996494915439887903006257213034796513735259003923802559521743797516870341160930090102134458434732570068915389265968820984838850667734921867485028478269504871035642536825440258747352316271258660754008077765825511735359491151223480026958664873650767832107630418378652668692920040529039307420320935442940597949873083350210956805931192877841760673178123720451029933606765958982631314841584520831413608713459002107621785496098024186071455422369234888429192721313406682732712403096492103811846258518732374790335720260897622179776156166130235215047180274648752949914993383273024202290624911901721684027772942177880604565295575003168704429127349151185970452844179790858822198439504060220370357429460595433700914598404151200629025778253897247657936385453804971394897964836491301991656249779856901668669937259788344616538841397613284179116555282933413926026425689826827388544750963299542354809017627118496344933228223325783340980464919663298595402934333277396512629490771779144045785555306898582747377316463275055473663913865329454795254988883938269971997994184535170265836710670767246372774360580593844232362727749643810747072936479124980722840494650275269622928163875610118464029472411159122754169027775881678835300984837383781950940033910564353561575362274250177360422589754102676445692973651597663707608591449092756991611000771841561998488810085725409500249488072346658550068290101511431367167170329906093886643680701027109410142473505594609649774627097174106876700230200918649339109858982000645210433426202405029386000264208809081480152384112277260991346543388504945957049955721232265500384320113676667929500910574128798118384040469100747691598234998140132317762306882948378460339190763677073992205346340140920143978370412109468736079444923406151029845004026528049615700814993577105291160162077867530690815644650344551476066867596450075468446534496692620905683765733592562498601777387927814844073531065783179012409187022162738054370565513208619248450410201731985598317996394392039175809129613340260998183748125199832424832055398911798712548282132685647229278339904192854854218575695512387585549459356089764242477221345788055047899622466858763327041130580027054065503742867564578036893962195337676291323426750001541666118230416566622492436622590707519610920061259096037166283347222582050472960503794990496379972838318736550205604022102176412176102661947994324322780923372289251203923264072458696817829334359106502320170578130791520078260514479598678586879892177797447511636616057356682959359768460923252460714746099983251954217928568749545437722635133674540205108999970021952398605595154275954321219002397111878352824421624962967653675242759204387831058414771001240533299530862625113093847725930140736667158701809168026563349003529042503469176614519883298609313001481443480518988121241904376317406479121507211182862540580225192931393678765326718871789025953471140476803097313429813062452274396399354222245584335019058327599887043982149168283315267680029730333951418776620779128018295389264737530891232361748137532194640338729311829605122020794760577999634600605663777509589676820249734847676711742314879394955870754734986977247815721946788435635456888091519341943162047668681675767476625834616923719653021075642518993691240727423427180819263627506945641404061491894741304080824649989809123486177093983039777540838706987962339428516765629789842833416217375292979907379283764774778668198815699393192758631817094461361045436510606997799289386581985612157612179586501683694878134812521624521021714272695721043256641810236154655122249466055763624668513352539932386531994315077593578495714080191951943969111778393969025911044515212964975950865579611299507617838540887678992549781895718315557588194524022837896364970217698150702187690602992735109433771847050263421190380015173411404122941094590534808460105894223994131040832216285337424835003686196449773148067575735950015548473731688028944042063750592829188667846489019201652872841787879468753561386961312604536326961148024961760880223650152062073339119386817790452604327904371127035125617468506547967537469885608436993300976632721292725410473966194986901053380012630476319838718404883542257789182709715900448689973507468956228054739210345582018767173577422723186339813235087527909118570442308074078238309653698717125338449661094557690566691065641221103060703161397844771496660214121394785545440450381133072182346417039038414592144346772339875067082420569831495939060294132223002269261220240158352747727058740794180869397511809668667054853818354156837849272562935099165431649926009638494931405158658403783728420739595434282580238237952648508866187547460021504561919509621525749316339560599694821434796463141038599732431731381684920284144037515598500179927279531669838206587149089878793739331096026582809256095144684561042516549928170667285731135930407973758286180953098012153138336991556030558688212971358910397367306386537228226733399582147659767939270333758192233161993624228614587730007385438908061899922574892298355275456211027287499303209708582614285459943448528341173653803611074428677329240926691513935171540764446887769708851146913775445923819833512767202180856325040130967814896678789709364388907528512803661230738671353559099344157579837201864010252247460793550006039717717232907435615039033076296213602940527348767132105492892955091745710523790459086923522883680421732450186522438273507873760408962788343580729039469261778314114946692735129384624823882248901666261311501588079344329158833316975461181137198304459024558530227670772823231701412421838356803955375526876642851386199947472460482593847730290959861716371644411674108849972036480704743604337197368334308326673520237846625966973787195862361543884801474921309220212506556471835768460101589432695452794613687681230239433218493646442846027365942339758906751707844033062696571654690275987131817174239000529129514783979008744897197645469054505388727066539473273059350816846821516222621065423482879488763237402837161155963162245717218851154771352366740600123210759324532886353413809966982334225901208485499717841158299914988391653614906938272347033257557613199984100493068980364888118183806996684340764225295379583192724951420387567616725908443012910793803743622595987122375044158048661209009365796825796374858849490856637450424849262691291312865802983986812945478789718482422318162163348516015952212751284087045724406439353065423056648892914271253819704340338676369598947366298479594308059848196829755966787546494558118930203925144221131981637468457247897549182296780198708702842607083026548146321152982900361895525287099793272062341353066511319879930594919502721664007490962576360483656970886081523003265140643620143722220447412894681367906981008077533174984210660190145272382901271875320305343914143229207797631716881637854239192821207750350282862661177375024657670337900378160690770952507625971673965777819138895666278485656110898636703142140221808088510414080291927421230962641158062630399477538028514120868524554555619674120126445451146397684242028468413070540849255108567969686501659611495546323823544418799288499350111613153272893368191778491473767899305853910035074368362718726360932104101073151005001738386775398176751221438217856652362127886782923897977351185735474948425852223822574430024549348089804731780704487345627317729754454563356489930927907515803658788969427741332419052606833356681633164293778182089781498411635463141917640068586422428287749184770871798698616832454649526459500757035085644116844012901592638613580818493138021894727515037942577327096485479555266324780435868052188318908351974651209352287332858190489172970152984566495041359823152567898090489650879890224659827834215159832162889211699917965469927922390346295560403999183873396537054157697821519300633564641169287622214309224730915267365140085452701680810746619953101004507240399384663590476102303801464880019456581386642021631759193668127847985739244447401185139028630499483503144288400967181663253668922321841893466143517790183265276015207607760781077598594860052673480617941899872470106909203542603762554972012562165270628065776901431963331712780996341623163498925822073478706457447845099257517076938858565791727490480446601835952828126133417631942231956407528873736690354921409099855903708052304474206386870607952280482931048103039637926949065090126323989686829172586100792147668661340213653173459113999711640376029383389212104559918127742119908492203131746988878939350862507950341227351583237736298873233716357376792105256136502363446829596722161675569206854401440696158109072858016908808275321979730312127751902162297562855214724022138324453569233129708598809709984313978154214599961364275985380383273907981875334403217822695206767971892026960921480017138324398219320217708319761075612378292876991902800580415934362642679142568350700666947568540272793545557706921425778143867821970463571463283175730835271459518566036044860640689303904838068600769323121418316584523200234020462593916927024265812947782551048393803576901667583665787844716221769377021480236313926666799233678913520498357154127438037397637866115751238634274706748128322181337758551098591869071259881628619179225892690010328523669347443047425656690013975549972389438477083188833189665486837725793172533970484702561325291906644680172399325270016715957549782495537466747971011460931219792838750250659302731195215674802518578605582335970620147362082911431018196752640138589970886050586059934302367695825863912667361404745964070967486560902979768291120772331098349051187378673453564238639103475174329437052633170474584968497369723223837195118855859378142057989388166216948935669759411494238134427170202402606692296217199639395790970815499019469164587273833640283494414781736466631310169827343619339760690509868724403770251052439163021287979232023420225496514234372683855655089890467895116595714404211966285607895442850319175414236687167063452895309473370606075463614455063235938973229908997680377013301068286533478673403324628413771421350792893319680047200322553540545414634695287813009192159083158957920464471652491799293148380114912297131215607792347230635365409296159025985583896492034208195545373076603848002083542116934831790161361357605774298944803867147401099946959688844645553644999206920260706911377630519634367041328420500896634832610549014220446913148581149098996182361148531757899836892031432042478435695169820035898451959469019712343450304431350443573213383278475625048256098495207831993531463902676880466416019783412903471224220238383684891006066108018312559435016928778504005665091457628024380562517848814822192795868664348693326361459305251353207115252981839712870079637925724682647236918319794036356087177865061215808306894708363950537472610930158317749610880460970504113527016425642817884999353793866368986623571978322074120375629843353278228196899914343220841420783499563945738359739548924091826677671034787828218576430747437710536963583145574858317980062236976308947452839932260936030384249006571035905201921742119532074043784785351750484324459670586450848096831989013326862344230998872895608920024638965911733594014162849674372082093964803457138095752082561088056531767814920060755377989795146911382991415100194802672736120855037708394950256263704766902204665772269640270110513550680570954806340413728607655276977469929545078824414011193506379922957030719178335612656726791492850845811560048640634554334794310575766298518839080407732922106749817762857207835129976281468732030866016957225064494036957447530685222332962274714307447976102218771922910400144825271584708245218383410794031558524767379143414160381100765116612251730646592277230249170407148421153382898639003631964117724166436456977422949256442619223642719935174002642398541046560020258045793415912414029681226173430092007047754171486306370445525613284445397419712049678807805845122016459397030740737040038858696071357179797476533857620381604053852525290787525653161178065584731845607350637428254049366001871179179227862458390431821935159308985662428325823877423641718443231888943270918096860045970464573336341107265362990075734785879030962847266424184626079335434885322432233864721842231184787158412109447949973220243785430346713572151770499636067746780385110773499723848534390789011454964772689540360837907770872090271005990416215437608490495171215054548807230330360525860780734137457907822982263885621592266113471499453487239421162811500653413019426011938997756267829683325498576837644627379803391570176322406206997228776050640665193585825447412148833339198252974960275785713625348134883632019070175190184846575285304035757485687473602500999574701481159212076673259712661992497854465569956287575786042939925329578940067221138173251608073788610530743761885387608358439265455442063938748293983407431045384232414954770391835873034038671592967742731799397885106722253244764248251700551880314256416112304595070282099969917198271790174520430214671451065186471527510120708922659423473098370090887586892337685962315089832972456601440345266044810484488700670715294314483179715132706525622951624140370149261876386201021502828704541365676954214103797904356693541344752992143498445446125476803413109817803541607788083550496156825637706175474264298144259902929688189796447540438788651458562180617483226731451519821945243087548004232222086895654009153964596834620911932725773171483078365218004985207158229468454030245966564614432731781625213221697577483379826641531045211837575661925769132364044018988344770074653796615296989579710762130251217377434334310214755184302857793888060515915149636047413307078560098924056844122533871841486744593703186803959028256235843085144621804155417208337052030347099825456720379180187101941462967769752231209525898579874407355694637567118261241285259907016914313055854330842136763548699164044583290140319616007467340386170034477160265819331240383025046384187024844989933990343779985483419657588084062016443306090587863364797559107062789644946322428055756771917770424947898839285740227618825739335637958930917182709145804893553302506962267774322107984828048323697670852679062815352920312129173344968173455417094900282821467593201329107228686678193489764426785048200146379118146678883461865472592386350109906672216299466026949235603915683406017848388775511278681949149634139071970523421438507916332495797036055935478730331459487470717439511764642609438323825614541615494304215625123692256015213404652204259784252347958651230916057202041846592319577875383954969126031894451127611294845904907697726682398473993871281683070615829901201348290515946807465492297908755433365395298860420076563349938345337414556845113935207118904256474904368344417847837363054721322191272285956191380673945803318816335672383025872543224857631367072705973972455275783006603239567211607508341426933733271800458779411371740704410222771897853513524106628451315798876554273327408899556163975817224064348980663826738319111185064675972805839389800865534756446448248618503610980628117804780493523452678526736860963628394841540858323733725275303727915405427809419584671387002934898769644755424143787109453568575504068253139239668151322405272155961271603979352584156729888546147517284739174314010210898845314748718227188788707659653527344809104555829508557416902275025328474139074943369031342375388245081958810985590005098937786987017192554670560939404603780675456501430922858751050212668429702657144472941770116266430925163595675232394353281701429551170203062977545746232987399275829169362464549494708353732073598414562082557068944245406125744271470908476850838818582078571139936929707583117470965004180411316997078112446090127712073116177886026822003280424603810732624422120316705912881686701176822986988791393009950684891948182879206058234284903207636849353947658498261035441463362487818438214747371732892498348425737098352649620587334559188998008524240794152980163424733942275342530188834307904373240893717286862568540834936767940726949143708730930603602467853861031350713221281575926128923334760934117091511686458123170875957764418778829061263292089933592908079474680841508190162082752454196431436616127330600649886419087751323910541120644433750462009233568085206032119706257459493459300328480944253717148879980690311306490206919845724459342200516421202701944706525518025092069172077511975283446626598481099091644314192014496867581401114133290482071720604210188345487919310158857446325408791460421675387250110709346728611380541082711833342326287021954642228759939923030547560677519817893586399671139052499399127321545010130792532851758476375838242859066214125898504692395395361114667411110077725303493206982500389162162618637213064514886724763528441576814048630519324131511481815901966627178160894877986479841791409246362950551271826550036162536785128914849062410180273354744783518670489557590237623797638510108714046131289279665854631132656647823334035492540119507886181374095230915966358066821338249992546948343071527944943993129834294878237378957153946685236262449676712855883048314970801620017101898315040181256270065254588150359350925852203903721416622047211818602171344144916227113648178221273154107608368684661642745019414847323045853065659626622652089592655082923747606319460321304678411976187689762342206846526838310478035647347132017367330200513477192532549291116886011274633022087188335538637266320697379689989475546187956170625005814942008651000859962064586647872824186852483754738345206987109102206236007791033845080933844365255440600698576441919097690038816594781466853977651368332654065792230134009754715645656385119322732485594494043069360300679910291971030070270750650629079089798038135015189460657399585800226318643776660094718706366551416675927165316517720366290439246309214172887661791275628815829236168351254095921784250293755315243698148083527151083929307072915762830376749642875908037536941009447904045328687102710588569965967162716666229415179697124097492002833632568238638985762267968027242846865384304475981989676101343631684088980946798242545309616103030715831880238364807087787658197521610379188347967047635292041100998262031907201105432709354978038324349505150698301820110299242296772853664418325945112119319340237000652475568775604222106849338773633480140285513742769564528820802428560508543221253829479668885232145911636679553311081669476489561893365116475866698849639032345332389196999108509509862462632095762115074617456211944085310813483437216300836299823681132435595768673583589176794795499076418822614915396141226217232219235301837793202642601473405330270419428412755206956759859908686962414236114491737639355436500089753289219795077678297936645909174105256721142926108046135572897949922547268463388076392874096869034862962181467233302546849640320111375541730319388151885150065737643509282144012793154887771195213691116009540752340910503040694359909702888705746504344710188227971472152652807055048847676640608129211917868809989908365763088163782646312727340208171061295616983852075942775993105411034632296269653398489958570088906425387826675137142557427673205661176002738324275850729665702538087617355240718821159286002570749205207506761165535118139602055305568470767240211630787388256158701235466619009303437084878262026585894246864935878207889452604186929931835030424753611396464146806426980105530258891825471910827739398984162288465661960161787728571769932653076659724194628851838959873752131796643876149564274755216044578287041945058075633750746324209176464326586427685057736360806236610955272389579661185430102943971477708836449793850546664158298881718451342255103354951890676228646946823088852644428048560087156666229387873930494207692103034856956400940409318823150148180643860064988549311829206439770204617185892134912960425312422926753396430367617288258358785618797528521419957853254138641322049620053337440034556012293897754222510066178615120491121077498079563881023617294355708667698917585984994241243695884096358708022261378134176972145271902827081524158950352618195957555150805119672859308313475677557498408123972015700514753296292908808725275511191843128009774634904864426291687423802889349587741308556407658745400231958821990247916521083933036409218987535276946909809825317037542080981169889695306026414890752685236889370564589607977496723789136821198216159233278066963870805820706016652321964001198354830254539981184296233685373695084629345121554166400639091018902769128037656948529212759684856414602705263416544408726966924260995561702566501408560763058382670042787650825726841824866965600599913993999446630142755865368823456584441899183582453764919253876190683005673594835027029268612361000921767768558779919920744211401280864017975913424695345373678086710490060969602886834614179314975147251505344937361636710762882371682102007467743170729591942193912868384106951907483687856970723098358533601390722259814005361630077856510036719592635346052891867040979066784552481499759461114697757083734931558561056262095013103393848691500658395246108976645922713819381868155889669522676515607215951443991363359866813662763690632332601374808407827188343458545541636088217211881090050479305005339045750896050885990188015240822739151328261515078039446496609670840654033414350076222746797502621872447752871998667510610061466792109589360406376560293284011608872767443435304985946054426287014495465426409587059600230370726599418973910565265029050469408518500719863089412243728062211250960613074862156167794901967146742533321079530758479597371221176426899670217834907459449062685782323063880866929934715564124650129958162968133976246044733752635954719105033385658525873541270931795824504282081087937448493918115658369147379271296980189001463167327571085145623713801682473909452967654296231859074124636084081837838799732230781565376268438674573983226372841606554571481790972070125060533876905689001312616979196289579534500693426742870728744224887554945503322300579133786650424523658628433987012955665445820559178489208904014307629528481914734351235711572682212239577062844705164686606595502921333340578229988205389677736617903750395808940965415482946478986717922606243853916425397279902057752562869121994712701872922820031128972864336185076368156800943023427190065755483930913309052398714584658939864109061728013991611727406645265291973911227603527993984822448920426591080694614428099368550855812602409462457922698550546880862722695819138056180444296826176788717220672084256062719428103114274103297057304595900919706540570670458528321735492812489672020413602015953969273406673415611895257502142248504417491816210681345658577595969733641739665388867375178933641550844277692624937443058861899757480912995019463982377478179790710687458563599190807506327825281765671924612512097456874115448148710093504138867732203392981337969639837945156532571560900999739032984436346235538483200294585602336109234305051680920078686405394954930876574648804654383559310753596139451792001854893277529898796479529378115803796782844578680140366974768183433992686131750853610193342888268173919493009901793578512924373111054708931062514086821604333374684915589013044846601410862998811620189074424486692460324373922265388639030066881623430923102474644933050234192174376774082274962464911849692187412802525744043716472896269669877797552138155380725210391016576249896824078805712640578702586233886975959783137126808160396615018611323615521581735706901110395210864231538307522194583906252505727051771447382506958742732838883368216959471544659574915030714225286747947394025700999003243945558925528817827208700242538336324654668254481798830076735818598906893772323100456091910740693293023318654352306888804423237712954891969906643985678194554957150373681448776000807721837484631688307926207843190809517148733007557578754821243738916728968645495422813416389852244871391721841321482852605873178021266533195261877611109012345236025280637779326094245667645000786042321558717368150196337030570331177079398232581730000176348718469319921267036257102707389282111154366628485420562043470051004110282900718838094285828016380039527690466613946796743465392599161511141506869077970158512911033244280066803966651548189914290720358350638117971473920784865999398487299240170027216930466958034107007982814245887738717598830232867872364096639000268133373007228960276408798188707616614455174851929081119672420417864871770577774429242756363519917016037023693237485307154472613128851302600998398166158074139377650671610416273488872474168278970099353172362859020050229978633616751160482909408131619280405673409352533709446433985597029274364917356102975720144293106098071334310377487320358000264770862620351639847206040630827980963418273232498937121300796328666351799353664358817857989835345571911513181268143505011834973980888513703426515052131749296471841494318609310743976204951040727837991319341102199724016411035616540891818328739131048689871258130033360440852028992655679834966119415059930470053733207686894026578380638254872979182051242316685179142936261620623104212915328258929361869822410969909127104505722317107418859652776646540462422376502828599343157022844635769980184368387405848755981671007936713213547023434383935557282649639239812388407602503431584396085044163933769462115458975052295207211067191990267988297810007658996133873824572326858415254498245695793375835077756290440290291077498334084449753706247660926109786156865074515847099863198457373772840675902196134329984979743624214563577291434611839304052516745052822544617577118970361135771120810697899534373197051444241505506234818377271712752364780501188351672512289643220108737092253792337180724727503069755843733504984471818018935142050533335007050797696617678597683863607428908371185445001216929809507807617976500968136332557171762524796820652550136908564029961626801267034827798626365684839981076948728922271166883052523127368399369287692169508996893315147167065301099081505807775465236984197879109464421390008233695295827689695292988518144279444020489314576782228502275531191326477274681069363116749095790432423646693714395079420018992229303687822556664232857278275652342013701259482528404528535421143743492137629611756124500729485524297798457997286654004090401024907448166958309522050251967404697144228704070618416000332342778861752435441985202446442612681877879013359156946029863066446009159433915714584784501012692073160468851031805985906631447480816848969632978985162934324395922905291985375893864518107097211740920049448355940412212488180667628432905762526461857217170710958556467108236010567774061564149339991485623391087722606910601385860204521573514825388763792021425795602670693022217346245555398198234419386548981447960739410593451715560782674548672371715829148561335492663936287094074770232855501920739732181099698447545628209239433680877724765184573111805345963454525314638597091140633726035653178106702543577137962107242951064572065947304545300030659500552661231184699903691251345104412705789152316682511850244370079567650750967619638977495644275791656555921662017880025583657576412459733573955960122422152470000082716721208320140418637142482031331477696466370307399682983717957776984868858417777592861455767432550128610644543713783470578245132900569690111949987390797636272645501448513847985868794884446960531549630800178648618607422242683815362121315666474374910289548081426512701350631887309701959357295654611610665008435364066901015102026543225245106559895735578709921611917412816855581759891578623465770069181755696033706633547075798598037846140742595545981582422409138696665731104547787708832925658425459654510139545450159259070486961429640058334607078458492791666794815805852693924658122585729342937312634833080303410749847639476881405384145364378198237973764616276778315010529647922041526144627247455586518982792485571247409268926527838273275462576598627785805312301689901031588143209677091020485801759710354730876826093746826038455378537883239751819188479577750304328907827941669508293419787203053732692857643191775136185035365046395626478014335949174689749280442971040740902834410070691979341096516512801950367346163967450932372651632652338726914354158722519896396676638738254801219694672010103200474393069458956069019663515361898742956431265304511537025044942725335672843146014085545195462340881614571624611271592586503238282362466132565547458127516998426321319370161721020247361052026601819530087132883302418116253004564983567895464486090881930666583324128457022922271832088545789880619502704697312599052992537389827125557975929609046342283447704194823502509596300597547745952384314481321963756910869997805391733784562560316660727538753026675968762469726593391842487303127932170035655315964661349850326946907556633409309963929062520089798718160055374577096066945731198294260279170209484514537393577621678359143738555201156062286891786285514794925304114471002724172469485095310185213071215252225438296008606374912946335296517531319719324316925685183164574961057806554491385421163101800008862875969217662593824352866174071403223941705969646060601174633487645146509904057583460058664220683106291149448510286135620053156141760878587433128810249594467122616083270722654626852136677028644137184567667799246081694440536652736263776513474404956089666689409549958504417299903219743069667226730695047677724886717139833571820991808618487737627937469144002506696643801199917720910246581505739615668954300934592005401342598851755079757261185281146848577979944984417513371578059742317123593119653316607337484790807250946158904300286815697167287535732178714447116342638256321947686929143964440833255371754171112892227312770247705746547153604206475555010157452968467683608135413464792176445487189562978540101507342807034260747650680590641614334878980129912580141967952036092259159295397417671826468284947214582801678784816654452668015240257984523722870998259869718714841835723907460863762616660520903954899406039405229599877024223107098997113396715594011930613143632261323589202816241965298456347042439450819070776231762641418034928736763324714127345329836638374558341502596526195528307345815224588817668471286269450827575551116034794548117576446815750141371352634922653515883738945273556853434869137759722577449983429628268007956801691553101180076068595319087303008716954556193868759690891752609941567676978684028900103908997169890582342095007952949552445816539253046914324742847921771572231384767513434896861288812207884706869630814717320708825192907433355314967112907670897616955787983935047387359381367034775782114586545813140374733675614143448161447382904368388096757165088312056779127460158081751119612849952152543458597361203452165667054212441630950140624192139872156133636215365543094444428105229102950265785319830285279993148671964369704310752936370193257081108502427217076515287628918886460541094229087096151156706033246175422396952152371989797997122728163134198960801509166271446976544860673893974897563383172123057112968446396625015456508445358879739068124809705670741904968709008522621968174629802313966597225159193239154656631882125455667813460470131700821697395950487321980455440283119245149684191304930036874191010742098975500354580541885152440195011030492280514387742660230865482229044579065500555176267892342809271017970323212681443117097585467757684931986546360734046283914042270489517767655279026904348023196368419270632873595385882846720259127356390864035866811742565984155145332755640295996983020999474924064740310043867672855966008933587504119567813814143763946808600946516283874407758261536587595068901149528226097595915876017904303366294007722637089049420810186932903186782166394309454275160670056881981089250296854083215466115098713321737496565944288110786415061834437881829731813380279309129081837842712302701600357678181577089865758603073978416122347483926343703207385045240900862278401141707922889861732926407007183079943341988836070772440541494692836339874642838775064443303596826820058880285986014268465126496442456124058964180342419433593875338680214644919532937188962081421652982885964725431701192565659319462674306662309197636961221854823693337905632358253633728208337613829296245676816326673002506151409533244500242328496106600872306953841704585826823428384182071466767166936225274777556538090519678598048986555813794058441182843896524788448314273673030542607617445687870063559418838299661750090965467589097759523495270880085814489559427179638566318746160117324940406373923567968389650089690961738024279266818843220660764986030101553833586838079827709605243038098756147269395748435566996172026811935551973321634419709267297204404765761916452208786358513006786039820678040791825359166582696206536211370242367859152703403329362661818339689800134226675910065140576510479816979338804063580855034253880082934153264706414737655223529743485259548999003967642711994857073002037116589262232574323928038939923965632227071619574785016842741262302749939423061004020100838842356444743279567886762868666168765650823926620957306402701060314034009103505259082515661002141381421470519506050706110941080195706885062215119494371679904772927466010336955686207132764491875575266580789259432582279339055132888923191310067661535258335755641799320855542706737536044440228384656720924110689057511660318251780532306773181375975020175830349523190862954526218696707293763776143262165356763535658640817302535979582119795026255306805362207349297535862256126956997723949374344313171195715956525433375010216376319294880279266543760936548336117748988051418553917517330040924761710868747442361124046173126226481003453358143371648528150037018453368121805819803818821586608338813633015521734711384964473253887455411219346131331370281735229934796785180642835816809697867132117826826137195541581946442296958737422687339086974386254225604681577815534854350390681167050347385455062310166209603853520034572056292506190189765391335482918832956065745980889742649059850024439318751733928792561526494818894706682450834951971266238376253542815763995354891000915055797038032466681696187439744242012144442348180883671347991354602428183133545239789444887421696190967190874793490930946291581254824027342326166887492010138080681527711592187853187506253867216161764760916983289459171831789814627724739899691748715021091411460419538189579101409302793106076519869863379993547438197398208198688091115309867711710915391957847681085890605968438714910568433500182554425508655022164300010977919027679255958875205763054952577120611475460083084352810621129894686350367863446601823669045656063730319383070422254076776217210751170847706410615540241040952319070271403427797461946751165442228033443383649597437334695644348273267294973198651763536319475114844348532510304191837843945682797016354305110508936409355273313597995897371327011492400918001004871120581891657968505887604494287156689607574430797940907213593712199638833141043907225067742181930102372025471651644558456470511087229636726930960565327435403253848411584846139211132483103237473411001155495309722815319043658188615859625209452376318854142906543418945837558885523993405448665245187527775426860092407358454915120814869871843088531627674740282994812362641038268757968159420592410292312745402582959687035237924757345496572483335303849519963661276600426399184167500137151682149749936286081214495025154204719614569107782956991383330487123419941051981322763443326343905228127440899931765093513414620969580282344386226251949890767394919948056110413746239917485687544365467361993332338380317289556605120293963241582335977928260779197907728315081135125265716450706705030086789968035931282761074519878948777927668636317953971568430154169165082753179866853118614846130451661206866542475644724036236026020013897767662129420922916487977923105552186399249044234378351411202640541317670843610712684380061593968483769960979680617904997534709156000590477018532495799054151119000969170218650642273950767917453029154936760944327547861702533973225809101413016571577263261622478183660643903655251966548253884518996018948177779681197468023614920634416964173705940989519576837736017379551353600131226987108769471361572612197683460529815060147859488693046505337956507353820054943830579190879539976667880024421770362295278776442719023065201540135395630099907150178337994538861114636746825491864247276440706054336107251645746804719431918637390565077320062591494267968199300154893490803615691800103876876997318621252899248122991267735898769334388434202219810313566166663213133108420946073706547697921827232855566024927008705035450939191807143901126753211708049059423149628740051064373153075273870536076796339320279419952095732555310727793796994483192177958359170447529310677063755402956503439052463171150853976989935981025861297982569346008246117999386168744549365390162531110238897519126277843676249877612798590523163805118816384405478353492018712328421237025686195316140667857989847801398738580845202099211665134846732690024303979802214569680714278967839861573370770166252105110242801591027164621218051894487860494543256284495025990338985289365280379694677085347133704829327413769825560656936354587659319298303988094013697704405174312670103738895394265072658312215303750130608657099315171790645318210704729019008927382037918925142476324470511322723998746560510028626869599841511818906829519783976500100285373141725256282174974158418129000101809326352526987589789142689008201405443483923000643247291902739393067907275003180491263056984326825999573348057178841372646801385449896695662873243395422150327594312468826823972994746452873363387869380963866810106043240123536729432132883933468512219863832718333490903587230740418791096635992838021884425917049447336207540474393748985649617442402515956428926258729252801284995585446743269666086857753497619508108485442855786568917192413213210053549506205165845191078439741104555832677609906255709732861870625870399403884222606145203497291599459371846123658169777500582199402298959961090324510178126519526483317140368014832012092416265006432021952427497636299598106335901950707584672741275942761771018398692749934036493513567747013566143039069578967992109294737883987522714595443289641237621909665170595748922170606728928519094309458805396685820401887084257204569722439504139128814302206834150614463321257467639563388995577124074378848838009404282155582499677467630080453114357075999266700717771065584243722070820373545365170858233827460495426607733822123397118600142625563396529108528864609399643865264626981496741665749684742095413079100482653209649347364251386571275986676233496828807487568499307864257225532774510361890132812471757622918596390321146584229241560905801247674855898764395430512980645603874084595626497721639859855833116026732624495891621682869122636596333424767482315064889659537069979695153051140182505592870838806686024690936674477581144893839085577448327206856977107539045220489856852837416629270030785429804193088516853399913494779017034611754834293438833625362653477962304505256541175244937978548095341621071392869312012607836758043464981710161219081285652820376970713563391585875739981545442550223633228668931500457283312398689351528977281348259805483115800942067412616917478029324688047256910141666776507762283221831583905287367028605977807397833915667461816547557634820269125712628582148358082879829401165100382585985447280703722264186936620443610855878481702537746541777301429529370698045359769957389576818541593448658172273739168650683481819293825247619428474885707084041082654713868972278215971870085729335347841591124805402981222395091274949197120394713860378773249210561327943362863215408584799264772974470795204317741573049862084371053589734288538989207250679772937418911543932685936962186225535622513188267053383278470289388269195053870852531098907892348564493303084070474842326911706494194680516004461244919586941786686498973389154120039150080772018260023666240516342661678976684592640773139662501908578333282192127809645526361106818784935975141327976918592096921899853757831335238163142498768479363699558070339076807992469011893316859972825634834294205841791946319407498182688888464848689222334510986819183630659104624326865005065422365314238110385092165195204883913104004684563780443424643589642743662923666413053817479430025037272252926032142808551701963560315651854148838276773491443451582534925149476315264346498446298040215648146315061623423957416130585891019578299961157638416428420792811951548033411722270521404206975282107556304425305643580042487941407132073921507679679357717974906365874753485632147506088000461610575983626259212540360255944428721423916189039042293985148614745812862036401147791610293051422877685673106979983587986213518123293129426123295180672150717703967084265918935053170562342855866352812800045119713155876943376529969140364564284341664364808670353911090040829460685272746367650020152447943999420971874338691512094215428646483739593252502476966836815220333081885915322991904832157993043396780680029955600716610341564461099511566878574824891854499922581951381422782666916067820566898058533684072150826781881425372242329694628189470263644924968588679788616829660790976592061492269779307063771412911148241129673132398614371880438661587679884899296885209409284033085105219363961695495114011732589458305146836397323250286481386648420156494064736888465643514229223822484082831472903888166518258428526534302846243292052587855970083177118253023147121360235492532690086473674658030950482489157926151504867983506669288306319496690619804809619058823623028533743285805744366774789912382326347837897185740264949768525454869255348395625795190732647553348123942790175338944499784669484023312463590506293043150528789710411265004438865660039809003857415619491134935694339344977622038874678501253587955947888224827346949424014118165321904353255639939589779656118429583795237410534155562985928960650920430488604538557047358959382586671066635928245288494600963294374587644645557503286815368901403281609515164151324780751061079627738898168438686237764172474101994640352614962928215148437857630717286855439647886805771205004771883307331521830486228607911381899369076447366076617464568775778414890061889896919067934157088768895928085806531499741262284986986163994942806548975139115011682566651545387945978126860863464989945939523537901568278635847602091020995066062091842542370541518139086035497158630546306946701364051349580579871359667717364235551233326595034276835225787106556239724626418821761707935561070481409723822410979983177344618959509464187167753343428447533528022377172375476702361319759671905935884946065242282254647387732944505848985596848749942558372653447565324315777310555872188371995071232337352649035439537024022539254450068083791056625163590185578603192983428410684748419006908751333541115181529446389174196065138838821308922690273287373607015018511450604852987960358442781791373588968484830555192809403466660844403154524263956493324757981790749986411248579611279923649781399907251875047549670974814954246807029686285605643705017427635613768639486804025680343131637387713940918550789508609845601227752525326607993351559234422008630860762571200274960270651358380840130324795491913594928014407432565225204590007660760953853945745411702555416690505123902865015797308120962937053587503011483036129744880982761901659824759275553383003091098471544856755147679923683131988827743076978405300974543862795986510512641645367088438014025304058996722685685792036326575955446458826412588141822434548518237048979274706445240396987741060478725260915309061317398408972652722170519154805017821278760491356334123879084873414075944438928169151907734531127940387083929132595441765182490265120226866224947278448101985122907168312473035256390834425302165569760466781629228760000618886567143598773613522656174708193437038426222542894262033115589828141245359043453362506053505799163706422155455380813185037452647709372599475641648113844613882099831369566846718218208283911453720539930775393139875531589425936933390061121122165754571248322214151427933501070122626682907313094401564508324900608792524173196424788086114829332328973415123326591347931153623206434999248222277058743064586102383939191795336568968749261160357784477125905772459398029521800967364099938756463985795818140097063854505732960246871941466121466386870972071238347711711592326477405432161322325568338651065758398501520133031212530027380448480978986835115869464116663683059262475829424841070419167028473622706478370749552482946001269839658245255087592010540811475339903982834329332192393680652835379691728988555804222161540591346450728854692392634120353894611447563826000330546304690681666598626789009225881694120897653312701165992517696885797173090261016753665374837962200550701147849374171253929046307091031698110078562685712972802436893241557126069084849839274271704618476917272930274175053624893604164236926885298529348802500905275418846093071795987235867652293142182957442406812208022600053014992862824431450223637919133183594438139279997639834595562260034478397019130225650237188215977791908812877099362407431354434190771513239628711609243261213300836405066817996594600403523560571671073971442675464724901905851959301865958934486603700216728577607861411495997486148605511097101106208557452065693337275669129239978086144514505355093242940167452964147606187524725557610850584386487692236977698847308865116237587117519273899591235270589740785176348886114388771031569304896556690375131988175770008369202984960796596714927367672363360453956364032071372343314354437057236279812349230444916179554488949397867656208227510144722491397534499944723676807442964418595500423770939270517180976378735074946753755241775152357657410843010793017135541738774120676394676646154812410803319285722725759564537201602412913497550879454271357137367141580371099616416097443568902245554989334624324312783226832150624812869323452550713396081233575971840579139683048584846252353745070806550035298978212566971074331789907820839740983542540005647807063719801567036737976872707824867094384195529457108169479327439433059889258767629930629249695638209723022844521539870845081740646028016252065068248190234254950776815484176800297564165346557144647552962487288357698240816496707658783183343516236112465371104039855464072521548034594370267279684134934679156009433740119153507677089326943392381864328387472372423850416245811841277440488342062269228942382966070611009731113018982131609701803272178692317864443830920953844859222483914292760198932050442185665989167784820219526005402383800673832266047041697611283175534734751560037779822996482541814190776862257387740540525919420235797758476155206247992180184254039423853575881439559258538880452362414610798978091457958547081925956371438401070840605755802667713866772479996631060055328047685495496445939907633612252999348120987235605896805855129509517624314463167828518513153974094041828166637028704177490420323411431407539234379290619120863395373402759187219787474219370325720175697558926744444492284109856839876768731125766362532167090694582045896137039147954168798571171675549828881506351174569281238664916094639599361528653279592947331807004611717238534028747518977213252453762919347944624422539248931547452438005616891901450898577690392871597403409418885237228136267272559817552045480754422609268761948823570118299361928168411355156149018738911806913249115422564113731512254707483555645176441259179816640818719854598123387552144910136005256516260064768433109413063522158525342206482146185419639513623810103477323662541826574442597876502034089317430071924668740824499166671935622421366078697241438138022450564341498443181913199274620925177046886379443299923890104841324023998519149483827392826374551372282067068179181844617308401873007946888498647973979439666943090290552912651895089957352820484387242941980779930916219706178310207536989815801866609442450438680038810696834321844448030063994986184447795388409388826493394710537590595213782478153460103680286140618729741212618107016966811259771597131657004081522602540416944909407669764759134651640659118814373201778782458669623692489061881899148845992282704152501869943082754739646171023603027260596933465944090065964857594678786187746135108855462359721073753491613875105007501317960272239154029632445545369499100560809109130651943873333735798990526353522087172894468748887199233797829595283751848033854046024876208938295107847055818517522269432091719233166927682924749104306843297479010411412168858923883325633710603430901653264661723539461752143835639509999248831937524627192808737879131859233914060529910788962470906255654667694256515734653109800129684796180925324941863231539086346081231982309721332728272062342005740916602997044981845123544025447596044028566129236356021380809023774606592948066120958782392376505135651779051276424938244098165177595549095021635054640602627729113671358262044653048779059233798420413061937368858480559341246395015865425134796218756943143926409820028204208112004961415774542631846158665684067762576686747136069228187228472321663396544937771579436178558776066092680238849845824919492172959724092876852660320167310820651881012032635159542845969341595086431166289559651097265341663498080433302643693785847522120485495590770092489631713386264782172503345446853592152069718325368347740042612028246564925734236990851015112581643749749900571845509570292050839105013110636797446188709735430915288768976996448483884664299175580979678673083925370259971827736768698043978366477924500329821513316554791547853865068025478789178846585863927511605699349470072792299207428908408933249307998206211309509101132925237905560696526991873155709993668592882919130606542489030260842632670551312326783281605793423952193894981910409495731415666420041286444502714202683760836816289564333366983129168007965064416532817458570854000847745766561325321561754308130789535491096818976350493611855731661380503447176224040450091015350193811479820583883731049866005332605333299761040550174265944880379975259274413967267664244864506253646036117559983290751975551893868004394908062099847416949351338410615066610716144905234070247467617428404721555740512505526569660138201602820425339038441226848904937097418021363082636265225287779585059499085093538784725614104416596042479147340877508297819835121330634677680749288392733511149672029429890336626788362835936136382921036180025811157457815398926283198476742648681349806487752001484036061853117543600022335090900066247267808601424337101534038662906404805671596571109659199021537323812610598550612477806923952945571925252757873768142011103251506001813904864404077238372101432128222642680519549477217897353795219498641023637479360356478142901228025963347520588991242368941614053605217175332944763593734335072744450258612423005941490132418902734846122912650927716627215909637761085406928750924656823559019609557530661368095722509923404404563952676801229328821223589040448911318986515889553244150430537601839032362634514689082574374985020508132814401524943203541421886376671634012376868830529927895911335652886119855917605029689750898814944832560265346835517232877208166009563648963085738514465736065587385125058844203071364630572187008281770775287820422685101004683727340826275320130218057013202386670505359652164910513656144262483208037164084474427071769479113791384942599127972622018611247832073618342785520245094692911253209636459591247169339453931443143174069311165216697170216080049967627696286338845343950509251598731286754029534181242931124131488307440731000020077930161679115837595291867296421499403576650441396667690583671205496133569018310507167832869646403112106776297080052985605964364575837553119498308757214674359324149606891872896684325518290865636925258292684953864105734495831025966071166519515382076356218054098206170076563745953534421661320499547453015792056976273880706637071101213033367635030798145769191071025258322843212712918665839353493398596962935686356665703918484073078590631054856341238224324502263110526077333028342372568226234420638779619266859339292558449954714612313120102092883500070511381865562414174344196744559867445310527907462964422044834138476706720740341648124053180931574854959579071597509509419408988163524439611452931593769455756102860795181898497295592878409303435696385102638395786764183655238415029411063264548691102584183223338560263557691004348566908166255322948022151736844919203421452852924374849780786278964501832322817230729319503260598908010655576985611233528812161072853136517916579094060101628118773159390677023553971448550083301935151376820706222331204800560665772442947048249614537286235441256776309630595529523384285878588797623700338888033463665224100229847443228818857222656132953254739726199500004827794916803995633546322561047855383621302712499525251237160813104777868364135825581935008380316163016966358860782477198836319303608731316869575801078208543967231539939471817376521525469033233304383544260637857862737501981754608391010643377614895118985487884966470639032374018972759062147417081564168983820659600024070737864963459290382114352180753617101281682714988222551669168726022367326391402838212034573701262570704746576617271867195498122383276562213807171380793092456349710559710762402230043324290597743238033853662964532618268140132610302019238473727201565250621403328568659550985280931196430050743673722335033799584158743143071931584057630892438982724872940829025114636577367375918418754813634517471897696443752247504163820255919741437083360498572915642764324434635048745270054204487432226041593473748321862785407462625114196399936942552427845222144683167934419831625472398679884134287553723637915432754940603082258063151022394063217639313576778035685177030003959564730378479420015706072661824355392064803763697239469985627108265850720922431934681915040453917093890791212891442311527434717203727873418795656427474331767628284468772255452808751623890876469029082779913633066538093616204356647650886060560924068872479650513510908187530395841316407332609853253534859620142069228601943228803994485984066394110042630005228290717908452377421257811935487691671632450773359280911498835628172468068763309165210299739673596877251600261540518613451535485243910502602159746135620415665322678056352947776265686643291526595859085813345527628034399706756146059771518521828046720995383589747996249504316525321544642474736565207076638663317653398895239892156710761732320824810215112802379868113672443899603426166326558125271269992924142544437431614742775352583750553718969908216637156853801375126777320047721784337965323852701668509994295211703075195459273700266969394657770131313822010129329500755928560822773660964172266135866074695958477697053695540029829253861595591258281791382960517929585442906775671979692489228712658551240756668945931707203949895040702855950695048810436279659267205767558484289414138508073018281279117390338310096418563443209540330139332622764064897852001370861339440791433871873801124534589677644262169601702762585796209978570279528009562596755367669605824315933525385532255679725354438519147346688932689398626611206395472881618068266938450918448971090354254334152998938974740721100843835331245734057174543440607366621805255268208675022096443020644912787867273943573453939176477336901257129843409458980423293367237730348096095489123053262265743095225245034085408343845401234743435742240905535796155521533986684666162025338519297414656664419131432265049729056825841113043960420421841301085771504248454299867294738531486818303739342668270956562544934121804776934054149291428809296392410452141393243946123536295936884139502621593213083227386858006125042447858128734538981446434200989517649492023340289189335551549220783071745491403517351723460670716946491747472565323994151201198704450838906254214273148082558204126667084266563425070626486625803429461082690480688776940845525149827825906062760963336628922276383864036047128780766089976496100314969316692869527080381209424190701694315457528966932226672527745223621952163658085375531829775514443302462020622417993594538475264982594661432827092069571845224811759260648228084875314406774149685275712798510022676349630793261078942179992886422408232302817848362311347591261620824501694815756761079583945503117024619082726166536125585517405283404719424548814280615433465183241846230491543036265128009873640955102269432661578388255123300529611162479532083921141308202723902012524556390078466412847835802580697789692832588984148900143924589409527966729090617988746578960831679873145993729042602586383146086568631268838340080345725637175168486439800002568379551925225043684586759152828159525943388139499704522061152156966295563103125245584203689533108724230138022047800454531110127463196589565631063691336591755823565441765973675906507419344434810115108266121978981440858994460289255859333087749108503172364606240963151560929621772794871777093145535170361773763965241695733191470712578549511448224192389217520043866277753596543500195068353680359736881706397213538680407907710218617341066130904654008112167821792840272942588875148815372046285947469301944171553468102317610513895196258393251207643678073719624440129880517756637470352909496077072889207420826445747279337267303535267766770305264643402977656730433188066144748191695588590679887606751338427356081586479983062429459508878377886188286167415961158291159072088990945663259264761068217176239057058741105309864223916808197451321082435450021126622218530337529975302573158190307763710251713052531401232737146516275555149059355437309127537175574215643408954498466209556967230477617509970078512048866972349866038529324598885607254261709264339231726648724650341323994896766151325420047795725912765189881314208324467239576988868523505231409536240622202066150735089563619542007511278106500227698522649591708438146211852118845360316163764304781286261003458559927565418474897915715054149557662419897611499772919681277041872866223695074695872360771422713125857333948721347043351399595592996047464158742553421538447485276415522136052744005952976380369912932544136341777433158906775373600327597614920297234152754308717756466598713597263960616991289023828537181707499274365818951144329516026061407880298643569147151230096876294723900520857968799096362406342582889919891072176128793465524259343702025337251405576167224367837803926691028528570175517115599975081526385982967232749379207358983980964883361490279377176331463907233031711739128344136141870525175332281525294283159247687464774316245374544088806019027092700858895247792071384897885261945994054914725310349543897519791818107401431203676861540217475985038584144479629574156943723055622837527843754039184456329769331952944046581872933282290073236834424941642442584190752979874711981684435774826455676252014563895893011075982341937925125234378214816061884168003612127917094547172381941300508132438513592513497070227089254333074844478569371074020751654281280654128072939970127026355555959544938013987417169144452364468659081297194613447938230402519135955797885595802611465986833455428036087699988041851047296253957972728307246980232409877066128582712271685149614729497425265596889752237890186581741368269360975692257744392755985050039699307691723810126416690935009793295841159808871404652489318788189403500599462597984468871849226872508414459856107189479599439787222178474280210451237919592309578006811413243008753998251673144751470225594531669051255917532930047471339026524844390275012289682855881685813475480791637615224197549426991999705705086060381343798378466772349723836444801032352681498084158232765542311095536945185891787125300493823518263888806235028383160026846919097511268135712095822467446798774086066823648156007956266057569211577144701228812595807665726288303610571373208751181711453294900326511248398141519219547433957548087464693951819560531788939445141349127360425612266176126981353326132001242928901901535020903073540879869960995205913065764187892893090978267977741385934756575328051636083032729816499583812106211071192066099781052911392073271307127021866822737604078589346638884082922836634675870224381209244094087734314556082427658799243751533914717047348391761922267881592574405561440380338079498710858375954282782237007423119777838806607885976920534333497462369733453673829577628945636230863753146602185158104665000760838906376509539281473889926366397966951937860133983571503772357816561824230714597640163854569395228811513914442660679270292558716501537593146071125592606445820454348750725913662120210389284936648541925245476369405937980889450481992816869155330531097131791135973481090081299032347378126460381453931664619143906118112092071552046448791213639110018049939833942389971218355641840440840075571275661467428904993390899937805634182979169187288337265403792251048209541124689658351098228251883295089924610480568087559612246153407819305821751875645536143861238789015251012244480487859993698476256738998812376588292797718775123092587810571109113192242828608501931957272229603993161256456518599269803182476822258753596508759977310767500755610286946901674503209592241411728432364931340254487068818881117217487808679269558789830816944968276365809028485488045181923811768799151198621224263833337770113525755747102647803530761543061705650029408396749535692712204945922441629115935570224842395155454253564533042685944360129000258245298761438860980721122051980196792307790180593003458127049504145192044823016208466661044141360862675994252000798570147014475397016729291513569495331087939383337529617510240865176012483205880338061434952335888389254769491598908420741519268507234593555130579839323349104445180352884172052840283892033472733329971114912327512944185120808660558863064393049309591158158353566636631874592050606136557881681309855078677785415084766739359475833555841806140830645506037884976045892411427672431896264488023718191826235991877289232179961524303902707080656318531515253412745052957813933844367739349298115621294144550143065683629422351209868110525211486900821783365679276550768261860969536454071449641414517996585705300591566173307454479010332753238470457102801894452629305046300933569201311992306526129488237121138464988316328544910774489070315478685264706410796433783891325304944279530650394798607194596819686336021662279879106710044813914629339161122964301811846280840483218885080159291513394121727880872591994780731954141001014642847842399021456256962546833688261318691618302568406177450327936263300551872773609296140122552147470747302744156251731064799129012499534200795315839482823445753878707502892343181611058379076887830848887673334382532253404488402263738211234371738424017051935261514732837112629776775021410219425011154131061983929851395731245201764008878381404777708436313101442150328796632409908648082910335888522746717531977589992260332070329571737095205755656975823074514661430680610450203570093106054437119689174965100277901170382269602675104557908255313506855189209920752109191247310678695741982362933477013013219910288250163096057979074525279300292466558218776493898261103756270101411068722967402961226031539466121258353168736011180641490465481125325173122325580478914304291988939395027012987762832980217899422256345801828784491235823904918407761339180393707761334239245379535625312339502983177049307795078908858666156436595427892872596081626862166179872044599526299625148710223388656720512356104366793892951766085615228262330221551545792847458563820009189382342706274509646135323617052107977136208883489131740102783643060142789857621317581698421890890489971583454939256255654405189632974275390376028655534593861454771042060781311157334707485454168701687252215249482205186886311517691967000969604979219277795488374522172392513817356538509807547890543714621197064825094862194791455550951422381651442836273479138355651512824413101993319842400652522497893694549106322142857754823202508844319687960055760775893179449871377565884889334475576149669734752917419964106677233840033934727133419180162280944734817825203242636722639809608493459456703772973441561240555953671997254051779964688556863782637349123820846505326453079430602093881400422201994742033847320306660943122442519216281222584390379926686693040778281505006859957162710479638500877803959210901078306516427026390807106691114862563979405506363198414555461203448899392635760888250333154988560616251035131028932535386297253665498322898119886438518210349373430094289400675837195397659504316293006082009816883552100600698955453844521993120271875918049044424796633182227878206476750393724227726374287464124300173242010063908109563142190524023643304689120531869874505545519433962737380091029806683263769857817633521520183229608164741249568879556697883726349845395109991829549331984608212317950893551693832946879608218083509886440100534617475726159378312486076712308127503575868809925548691647214141762033370944614180943524019980508118541064443602346875342131672400240543927214637828460614420687844414250499838056326185707585883587273457186719404760704376541286551340938543598904979545753040576935150202605639514826282278074209145275900008567939062888285865907974828233316659785511913969561949827251250026127439490843988948347857544204483887039638847450667017109106505363892360553783706571149381368039927512745181629294418023160103276430674788538498181173760731388048171080864038965205545216317959670475939670181507925372880987492180526174267383184436277104574438575985547587269288820552345080245291783064267121255201727413414116771118684148734931780451271930914545584613371105249423154943903050805303771170409275040866279121825132889584560035125405179113608575574622517301922295801006985847724010573093171889715031606272941691880498772604660343768375918751198989121105592936860370429770945065775041720790499541171226153444182493827290293682833352279427015943082989791316848561162538424409438962495819596743807273839370976785213503946383592964520302148906478053732476156445787435868604370206203146856582402845962970247698837259546668192724079132721337635639602498608896505164530814725294659783846576177889326948933209459241989589826043965926854626391324755588692558863991175275998675203926002730308229172112100125648319584043063217054738708967856682310400389621551009135000208251510987526686713725230035911040902013846340476674674019450952436436181549183110076860196812696755644723030439211048903350294626644060396184603527819786964299092555167278094921993618970451803059452162300337322859972801547478493118817374883091268112872786054352147508496911863710145689171695173682241281836103944459781617007883432796051219800034937451780972010561027723865732001281751956817610133681045208102628585302890451181659817167504445271598328618122849249878440083086802794228092355533629725035781346912925986932256075854291730892904354194517464272968802289513899765579692318531400094953694752791404348186404186478741271817565734324872632448379262527838241367706581828518040432648398042868140678862781778503095542845978875488816300147886191039103043378445864728720432940959429017625496099137348502418744856315140472704334963718538128664932708546114534734619523460430136293385558208822295530463797099217962324573735423664202588362761660845118777487699619578352219300690997647553984436725392639070836961920274383281753300539864884487793308899980742773652911626436032977400485060239562055559941196307844339009914978831999396040800362911758252187592603786157897910448187106463299863613884641106540021179439034878551129615043720719326442780845653487717020715983029611531909704443287920192814842657811209933828585180848987337904326377011870697854833542900623967486333262087815553983173005068396149963662673784275759974907343536875433726638291933240000280416162832625849255793129958673245274390975792953969111316904628384273438130862627931890853260584305690822092282570293362967168387825086371227391595782161123236897296655009673251921095905622569659937650104697331133044933015059701803074979444125145132709237172083289112700618466524246504355256274958413089260589308082474518273375017224259513335329914271980581606874117154661410672286720859299561497178617070231054727166073873716516353414330126952902173753608322085644795009854096939038899748998688894869700521447746869272350739326954162109509334781962905188729218271087653407156864376354710389274350938914598334577424743901426858846478346117034899762839268160276537142467695260261911598641723012137755954606507485872456663093323688942850944571258833517276858577564650312302056313383937387825602873972490126004925336983141293447746721369741530938724604428878565908997842240118755391689332414773409640395043153202708246380736570707882483460091651690669406014805108178812185645457819261955295960201889815956651490123917761228264327427668472977545725503896252541567406124345650280862162771421473024332039314638357892609767033077515905631269734368012371632747098319006092966002459073985974651443886886931590633905304561350696099964367792923300658084855976970368250983168698053269661732914982238052270211815863058930294996239894462581935298909456769294306786473263249044494252220299801533518689384894207020991629205718266102813003788533253496180322283240504398939988809657176179481456697954713608103231191413707811880235324435638985287745254249626872560834977901645883939276757525545730572717830956017146657654355031867012275502660812358934623780954657086766126896477873616416955921366461486292913725437815413265845447340376597570052388087170479597373131486656442246293915811133958420014699767704804968635281026915157943910799866050656868728206729110774413415538978639591689616550140745265485502068259761236058724075712062133860051611723901981875677404868033488359094695329354414294221964752226109807862831161745152793749051817458252154892508492774631541829985124723394098569182412974724888048765906483171745558976721973008854934494837900274988885992822310836495302601422405880082900494210329093857171945314220964447859379189129246880883501532073129694708661714942259142936599035615844687858893295399803978399012104788085247121710914090606179955641332660753264846984813546582244224971986588480331990901754724786691023482894131376753209384493072365725069446119189496168462739843275532438915484853906986136237451175943833565230142457279376464426389485521729688042877596360160523414714236281255566255416480109422311755151245772152835214262417568987621209138916990914369584413008240088280041186997876989810538785892277547577834264230314439465816922772631083506001409039220911050644849493081812674826314605298122005217087340281737209139614396881702433755498810983568257368860683759393795872359676182397040471646867839825283765585337104477942746816858102692099070700891875022408492892751638917091477862358325340353074163527111813959495095137834961495165221984250813431016245704969783272780047263301075325700545084378959202049207346042290724927336244775421978920188671828577278104405132210744355701674440009072398159746277200272759178439353547899532926622434852313316264793661344530180598761472200831142478446674929427780837629424121705828036429745461522169427418635296677669054534603587284006622308349602311078303966453486177249488657954473320166008912378093368073754225239648286582121479470498427182138328848965656091592426397402393424907018964412250746461452272509496991626224487705637517262944825201933342772701397214989899381556685755044845156925858179218296859027349910210457141213611935486718499119300826583125726590846561187878408013670145541642085445169714071073673348881767865618428735911287247577345713044947317153097634271866766568106443922363734793851280464888375667421331872541661135222373493503552177147300594940349390870655023934187088627085315706405063019337097717977323594380337159569213191095088506499185464676902242362904601951951961259453086764448876563784628936330532812121632487800108721021098983482435568541794441048200072671020074552038406324994993131012053275403449756216446487223354737648263182457316991378449667077361817797851811938812054452259072624811673420534119798074637157162060734672656511613251031768820538922802400552005070668207717179645059036695573280359229003843312595549601042630606657109387244915767451455748005673362839408116154744271729191013039236642036090775716129434266999670271261432816806426603545123930537194709029053829859650556614422128323183173104138409737059990652118630626351860369116152118105065750855160878099040905812604281971183657686413966070680561600436124562954582638008512079185484523499834712605525107820343043983955202307272563864827687589219099010025659539544623777325524254419349444384553017420018797560190823708979729925110207640911447711588007113573103596655770008485659361897060518130103238017872391472527764857732614772333338873949819590010634291604020564083816490164034332939153690547202008349784501957720475103493017280604996144086077145119841500821813096726232529453286968024546804466469786914061773617400089199502723844053139717286134907607192858153235054375117567399695396063878778132581709946744192175865605012732991508444745397731071250648191954579102518214578951832338165193357223968245883728816229531155385437965430254510156101701760654286919872795860065560582154629482057831761968357084358345240336478213907484833986785191428392051257013683768205092182197405850477771960364122323269200284352344514153699647047367462167847887685151908198577999349663624315547502891084449203195262127657903330496135711385466567041837592309863707952927997379492463523164617013126139244174755930400462282157318173786430297414005034831610250909756463374756201451121355115524644734820631977507209324449810633950698764572509065787664794794393181598974635830219316554662274454560517100183413504836902966567347044821665328095081955992579775956588211149086808227098845025258208400504525056601914682873218283245449127976344752294401350124315278886425793121567567998802911135119019454020303563127750557317018226813898811301083228469826038473946349280906298706390412843409863408062026207621158130924770759131200623855737922137083762172340307759226931653449576968794826086160412698278676121400978838890961001082293088701771623995293466117774539313747464541346969449656236038106529087113715371751860267379714495471080467359349233634812185025767163117771878228725883041321926940479014030680233034850126074474564234032095473297581865785171167550719282079425107700053691978087085821061963888283168981606193065521364417502189800978179882653005747702730402042656955970831273714003322169023216012248719198328644850767622975714116332477632275177615197099176186119733887807478112784109665423099044171009857546055660939891430184998831639940447564552392134445123483273186092183869958296263856186862580197054374220246826449627192798272887983670982508186904673186657397041963659252806070181454338064641835130196331188437471876802013982603165261762274816864948313486468952747110286666474803408136987303771933124318050099929581627270842806086088278833463377429507239913780072464721149760030092995951715625550311714904321685919206841866459288668200109273806510468756307345355093727346960587264938649361242223493405610400838943594802991473154755598667499685507299251811765400817861233277535903710881298457936824334945678056202420215673668081241252124253638917923583841262053674811258921545883510186713586360280637815091600473876855350957843989352823855659674884621204330851771960610709829043175819183548732448884362484403487689976295024484038729592132165048277001519081856970127651785687951797340364224841122654987465139860585505947042434949189650938292167767106806700752439784211190225952445113454775593919736752902647816714491148635184588501851289001420274442677249223422375448087942961544752736450020094184764105383846096743938479533642063444985357671146444837618925589088685508757254270431295409482596480848696942258014964006616136580752481319791881195162463589424034493914059712295714431478348769847734596431742366426739392889087153843011373753248769576812618936088613206158966761474601497706492787843418533871491097663900020902326640228723025161657636514537208084672611825660297393521431687693385067875539062280958992458488358628153724981372673402077865020558943539873814636533473939534020979247538438392066147749826960599326850994997272614881958703872779376064954537893699482615133101100568252292460899634253483808299480964835416030950978090587613684849054200869264264027536513699047800560386874747600536467382893232704942469403800056980773338743736696411133092196211341414918264151309482339156439935265000200917559528843676914726251538983988220269308876288924983384113885637305975652335290705823234457012730067137473979389627010966812848854890864684257268707754071307126588884362353000821700529484424129891462061443736375577250912888563646417097619780364534525935964527298565785603799292692873176801686511164137901851096173197568688537171973290837589366190683050322346417232281201908542896233337626715323779555695109115365041094909358956473134673725092961260079286800726385033165148667887085438884350823479914665984218962036087285171125881536449004276969137846690897095793962592610022494240067073805669233140560485691395159800051046824564342362638130248719639176258774431903068903303906580800977213037423597883032573018032720172845401141417181805893493411437335165377789525339116921343220718480532256339527945628085073021489302901319327396286809236867625072159544880818789439489791182215464896560957404824565936625468249974214945885341009488545422338236723109177440905102695654675821064210388116236694056668472897366034969798323416542874307603466167194736292454342681516207993739176189000730174567280398710609604565768414168870726406076601765625414891768408368306713676450888969894302997203350077364454040771466233196966364307930504801665407109950625855834977273306454379462009193572985357276355784585975139490554338166049044457115791618695623508384989512444394916513937623481411808976167440671398183120174547522725361739955849812293269268407136487688433912446722871946699994461959158554205839997032607872083833216969742825093072220685501946986218299827123933996565219488536971739658813784798529319763864147430985294575414113421559297787965028888290426858964561323415447766564478290114203109688572333957981502633887625759755324683492194252262269327286754500888068858189934205369928354843785783376194466014172158345089933129529660018318158726004473052019820435857421344743668706453181719766882976121115538745384729182203017784784274163061722088984867369971434593681888043465400665112548673633860808397079441584868472188415225440220303747258136620569327586548963214469706912310396169306585464642900144101501302064905256300138947700246635468746584147435457618476916517094413040240384522315376787214060508398536052444746301252136114152323136158414202439880618231040227369645294319473793747428148984275479588372366256510495527001765760157059205055416722949667582785443796987383853058704351710708223405495861377848677420571797812823420357612332388762129890954325190093856574323498519907668494002021259685796416633813633698613047975247638661528938977403656465105295568507096138302946867698869703029562320238657443223961936490546430929969681127569716880046743889067108197250695455013755425452975448276333586438419900996873378858327054907593111693972920161253014565776414479606415212757052328046039452956661297339979005002728625381040394051078693680040566350118135210746630613340167022288661973492150054433046709819429597763938454130516707871181033981952819189474594163268625137072381047602922293312375312631446804078348934658794560431276844754191943516532090963423791470553293970362539172547005970401264879282178991306792765466169296502151194389659278411376611544556735242883736123454380766670202485716007829024062482546003998011121684489327824954006849108847442849629102181063185427497160297426648791923830214762197326247219407081181638284794592724622176464179892534256698961647281448644086142539118128591874940190321262768887041553294048513789567478495230507135477165484375009277165800698908788891552694845014658995591778096556767173792722403221449092094920553533428234826693417757033090421361147427491879629592129438722502264441529400897380395438746870952368498758490099704214892487075885480175729519204985217502684306303078476115932072390174095793328473589894325695790254520382984475822898329596918177150180406580307222157124367668732122873637093111906377271975321258668316355814056990300544731807295637797852302664707810248040140510036139106855827957076012231386587411345347302667877995472441369916559530906109483263687301425224408470610015439099784216119132158399794606499599335010121620602641184466866709934725723606147883198450648551932274279231370956959397883636733434807737736486596256883543666641059256129851563763266977193161717226736371041621710690418679189657896755235150857084959942100314618644602337370139937814246866710710053606382702577906195425203622152254568347117810884709928217589817130528880220216180098134447163078524036534044693874669172444140130668013456660457264818146015965434168496899386729002478543436343001786619803433059167781899854738019112437878309390086551672871163413752595228957872681743002454051796747417835450397151000382341156511343405581336525333852225012617676018297434030676697404944976825183666303455387253650094849694655636833067688274027321662857624649653936954725062335153003380726657019353626074683117872895536969453076454141623481305502164743712706206870334245207608945919511441360898118208255203668243144672085832713962653926545460632781420978779489426183737814639765431288058468184376910759736256948761388126912062226925118053498020659455966439052074079570531655317084233667291457698499200788215452691355588823074553368349096408381559717730927041981085233133330172386414606554013539645424237308257990659645281943550082442528336318515124851042153395791642609999806751873865762790010252926602604056721381589477712323516442921625833073857017360948147319449695327972094630525275639420303925922581220363355623085276339982549561541895642054833903912801686339539267639610348724285708020627563673659303761997124209299132394765798683585562338370115327718934899586679260128576207794438921861181388800152919793388431500650969753971592682373124346354544727929791823934411532930157240736065016629506932803635784465602425343389973931054773165465996459867187932905042748079939121422719895468280045802220142370810296358978944116822681975781219229495311983122204362437970750089333629326418332996341070565445265459106280628974244905326437482392350288432321300277202298545097134973426699895881622739828851946724011925522726174494506944075031240386676969927324085873938798982221346858850911144813726121336176708393884105782664419780920983491316615940934714718334620517828390055978919794250223394889099324072913997442050062685162543734387775511715186972501987588380169135766931708111467491744976290618275436509618602541332526235177114472971506963484371071736287566007454136293783544245070899864694875054463966358672997862124321499356160689103437713166314143550352440068034160254844186663361987781234789870639282515437388699854570954438175398287711382478002133258108684258237947291088802153762987806401549340302715891969316702233568009381069609978418476534694023316406074126937162509615587489575584882785105354292908114664986830356402743258138668695232195011415250248083405375570979692967050058678056459032459620051551278945162730034117480021276956755823062929133386281625379472514909227144185823366004978505939863838048873810853747081647499828175697558574073277208934425424426417996960351821185893036616233679119952206328705049370908580985164580673583243769178830307625184189130487851771164903351224690429972026946391000797422495413740199289541310816531730841351866856450409974519878339928937704986619810399946111909188406130029217435854821762480963685102683081770258631722425508414945725688202623532487843201587177805933156993448153257926608714181213161139035179328609622000072418193232748664560116103767713699423151050492645542268988896428129830847741053581828644734778929226456479653222037621064076434398928569018153373907468339661681024285878713729115579411556875655611254439207934143970709632878962944148153836606140449260636268903247754261302339725219984315654965246093531625651223538991424270080443427694601757469211058881905420396177057434786010976897778498283247749713845078522669937481253012505356301900748186313004375880796700379047693950334971473952993667458666391835988285675212575233364798212435769635385197772373918525660303820982572486938721469614126556899522500137041022051794005120415784062955039245803679355391204762691309840292895312078124860039504409075313969849929089740930877389253412202741134860950405274558001103836012294470749921797897144750583965521442679711384710829836701483748980878632118125801390778772626631706614480966774622615213674742064529815919115270182807873161301578737126333675493417689189622672174763968463565826506099572280236373747357059542195260155391044781080205941149669316268685133647286469903066338850016235136055147268353741937916702816074781531042111454151795668922952233751597010181873997794828731232724497660495429619931630769065868874989682847165714961948059692253503209534252452258561166935142410318744237258609622200602422593505798638809645400378591413342969792172651852921170843786148811441157032437567616792468004390743111956420836730685650111829056710500094519841787071990458231761026464883493131347860685496123159924219944759474351304919202603335650847527598163623620454870649117330150478835920312450151748902540551668961598509133116481994731394821730525928305929684704305457396842922186583228207073077092791162434430512687443638259082513850707590644371127394968801168539230648440798114038269737660978129847406221831469364991446075248043015478763440570230198855087976066701177777024343661735832060338443163438914415736088940902870036311080484771613408733216880134720117983936046517552555953851335138349115007830627568683330317639450402562335115982954507515281769981927495918296999766948910425741202663650281469012807696355606714428192325465527877162339062817018711370666593200020309619926069115680804534604905714584798258482971129177231114838202560548351086210881728195995837639605421237332435607884219491612157924075724214876450759803505056513811467362073260500129759009688222804351518544209875266504111330281189159998526752860697125189352644284332654131929339988477877100920417931209867129367076525439392587048608605428932736975145722888959308466964847713807090137467000721163436957860244252397857483354237988785482840802720464781049525192681867125210032158676421438438847641332038516482073007697188569868395936648848588956694246006882786225757017158438459056487236627432865830479192904789419897029752622100581141399181170074384019213618565004260695454609762143753629073761375040196372737002308271267388233088617511695841853422312301755718689184315444944057669997338297301529373644752156339026528530847632363243207076709788001489372313989583339000482956874154083773757726433226932815692602521383044392819166986029134196858248201007772031169089911274121911956221024132565013914081566529209694272399731968249466349232304507972970900426263557886300434566305911746519230572237369690157756141857380478830861435555493070726944827425150602544914892478532797126420337395204041524436382691995122420742221594513072160913397583160638991599240572655860439001045643990538148256068552559328579106943190925601434037407082499331513295105699580144290193585240314428737013053596107645701258859084299314254909184087708959899277323732243950635768627493302944251929075530305655149203616981894580813420859697076061334850049908395862969056496020681782971570710649222134744619258261994636799136798707315833307932867639116994584870606883003779487075909056954981643278717327971870780444673869632219446940201515290042925230610166629207405811660824115158438250414651616409112988069562181788350640698421619144663723533224445411457937956295739619892339273717771034731849966805006256537674875129491328447245244407314599424546094423621918811085420314509728213826104096835382106952719605186402604048259943569069895403359418084440898214359145641027822281796842728890634102026990931534448101557655302387420718743523941892639824971744307427622569555726137101810467489510135149919145649073933604887781404065970109008883044954100544619262245820431200507810642666655605988633491458867752141900862419433085793128314027672024209704347698611822077462457618317198834517550056438725703180195501294129289043780663313819007737981662226391896421684999268617237393768646944676160115985243909257483195052612287971069568049861330112304944505909849254174996443086992014498059536454677238422739085826787180029254314804540444570735406611550915998665039776747426224785891435915190972715608283385365437061442220973995040437649794580405561062644554055697823676866174359917779268692863265320824331967615735263259378831261812057775688795858441506042437007632677252217449141246822079957550323477162799287465657659640600853485506612008929969126159308407381437097741244681429747920560434325652172665881051312586036679219072134446054008376327771697552906642321192291988283278865244017586293961833191577404874671972557913160496519415394607398522315763219188035354925626989716088977767790774445451344041991022831047299637631928712531141685083893215004036914304635044493809493676598809136250243629806910022150944684885634590597143994028853280243527027681203141630781932417950402145103210180970463480261227080728061955781606042968520229875282228836914452731333631877013650562541503564702003716696358580466299083038316460686817407780816882621263303929538483385365709245748680010432805600122487318274413501723147109504917763081888588409294761308598307326930023059797009660779304833732087818077295561356258082625768234321924893968171093703975813170453518179800511239618579626222005475531450625858039152818471651470871705061175851590381785776316748772510128431048098464601533633832500778915581082416925267388693467180726608216935434947964924100349750633834389697548002689000869017799235077689534236182475842014607210916802096001801127290445119298891761726220921647369560956045184275742456517374456951122153188764556579822713470234700377944006830479754549111634372557433126934537230095026475470223411425169101700546876997710286111171325671875714842064600499255409020208848763880367247861108954503461125455417489181906985329798567527974349919650398141549795467426625947429811523884852655250830091647277835075410471931266226996639965391195692484883788778545878734657478460394780710843839850809744909314940932275062752561068391518077258815473449266857135170921544035487082124214943536506234583004711093069542911021775124343668902353840127461992854413299206089364991937102267897952443476813237770181082908462247174531833945087946457886865534227943461914746912605092441466804486254458146258130775404831852623259700171003637898350263987040199647355235905823062011246919164842775116902015611888102749893337087293878355573883110817160970709828815872934960328771690944767484415988107551759050219432368697502702735893657057385243521025404668002326518079569248184757878885052496003836874806183094353331758714603089315444667144680101323412266653057842638061720580446417159238183531203099065870513835958672230735272551569914891846797577464793774479638514260119254076277621278789486543599774592055717027358956707122781954355366526981202298950204135795950437122591761653544889613868688889113886455334174991876494534684828237176617198300655530681985318931152456507947745957844507177618106896634589458517298109546834124686839994135604019242226809459155574115320326796327911204735648683157395796953128736099768261827501741923890450373982688584117890228796039119474319256835117501390190582215717124684088561786859147434154278069480765586203097625587938683385533097069148475927158570945707388489969666142836779232792476568915911992900304935285474901797721474004240558777213442198873347532038677988015777534997955181987648937786058788827172777207442403249166563313763715099379392776455832614325582332008754139163625233882840486922229275985658465061717991411899358287295151259007194791875153745708288424309201798840243836829113960633600863340635074114723255688302362780170933360529442836297613985341397404387831670096997523229402948841073057395377139465248126205058625345201556747689758036458716861453474058300577545949778297431177766868633562677594253790754218609315413796454903891146600115836340633031143692712173778302005818927819419833271441660375480093070991605985977153345923275443942550597557117636830222267388165172224429548812834601374331557901638087913356105783442076790673684069830230134127709575348080716540084489423459602327171557622635717216279117186239476367989356461942632676461081929985817517040122359046164619976844692782497570198379381945335954690980063968746931730187211934798627787385439830865270635171162766873662332801922030058275478802886025956882541269108607952547682299213617568771710774330110822921104476016010653411991813312983103321484009347770406908721395204270370032969894755801376671637471813198957097206484678045247678223988218375571805792839964695753051340356756704014318738071637883483644797015079946747397438569164841359010975340234770571027484938023314693392051999862037434809487024141673238007870117321121544688809970320516420667971550359947520404801007736217394876611464465383917279176103905647067373629591716908698850404054259924946508325312377737782739721015628478250259960226014006291538168818282159986732361756723238404053648303420707612221448934835331894284116485494901760581857417572781560686246786661102267599860179498247286959391361494715259492344290117644843950278768734622219515855749000000632443108859151798701208988266509463872979978156087561798998238516244215826789442987219404682719176442128725348923561930511242046281704044626845751929518584776916117343979234970194725667978277331051496535551277934719073664292481403549729801556911598023346904005265609896982407341793018492849309356538973262728323081044902658614216665964571146888818597251381262277274229881885788687880259790105711807068219881129034693273077852170075058607494155437268894877435971004854299634470079692461973150223107070703400400564930908808142546546500928604543896528752077208125602302010200334251668253838102301783724854340347108993982573985367329319270833183709882513104357049512723115529351391447909885577958660421613868740672264048163173610960666114154055217621983939613412629681754971588071655087858057447065900658914710746176232214621169654367336061663600380276740141675074184138548383097298936287160465912733382876645965328792138928194933469923854298824966998309182909582835035715782380429234247584842423567794369554857431960034488439537277786894815805325184812970028085749008062025501306490850534773082791583335627733610030227943740863942995452963024240413417579069820835001325071676931384457694604631212273816354002186619835417313476364511384728717258539716105494348665319408603279954503867454866913269102847334833751043229741808180553059197532794405589760374706449515397516793537810060022701489693200757099089428932960070872787804638479098599302422301044013756388107822062711340191767940903152644928881465810531125569793484291090965906690705623352196870822545435763627338922350104990947158377671530563466278150422735338840834910778893879572122291037846090548770148885519590257516515705521816683771320112513429032480414751232544686440894349125189530786146148057725212446503633736481078861674827966512948330090188570349756969656364240856541376590319308265279880979406800838134469332016566531274764462846442566800650555759402510994000817354227158841628777166567451791087924955694331103513831552317579917523592817691004264234526990472159341319566602730216436465471958290874322845399506084123332433578146733393244730379970185612203727575788690893408891852048016098161303017557739569100165920631819618206449362357663795095403033921596549607832620657025466534773363296505196545466634277898114356884310122316375915503034575850613704602963584645381883350244860308167414860364904758502065470945441534606590632427778006790990123165843248928691743807453914664660399035688400234409290114694576159454005285072350169591493442252562948420127876133853450017737689493664327611794267956414971961000067253996733011913201110932724796856834592381753139926699796656866900840058538908978914608540036987228741937417464406569539973991863495571221125809182556902792178608927467909556104196840611330419313621848439518459713830075368826897105136446512884431189450221057511108691173903595690166806605509799207560507793260922075299180038390733269372606496158851817858546622786056200478012140622705835383299976546702890764915464765046126800524440240409718241929641816394575558794224479261391305341763287651703086162048259585798810272291142568707339260645405452018693738396811125999217329208565048319628844656604707445650128992026065363917805493010911406559102789408587454988172664608019472093646029225735607026085438192793336780643891443352305866847151160299272408703547103815721876527729789891384909379057990844809402204845420633108281812713203895714163722215301986330725320605604400251516072766177943682218605260229328096617587163687103749902285994178192853011329765361133481576683571778032895933599208604672154549327077878048479820516813726724067295355647684911142568732285844179044558346695480494913100644287018542889041168834371133772221661894496824174222255812427341812557567768440995226251598024267078926984979689443937314824380304919499506536848981961277261331952894177432360642807078259515084372248834686769542683652209162408567797416873396718536175771774530308879307081037312941566762661458091350742557685863735578297500083358996069422212564335097368134115048107850983801543587654593187372393833706471505840645278728350514322195887429280403290421948095706524256811344772362669549532501822319425252067219125769241288342193062422626510962562644865407548397477064186730576283961588819729880941394445915997629374959722640229866537880389385117908571598266053477930167387672013522149749914076683635105207089129349489905677537755129164666041617280732499583491393457536474685187402491862731306379286927776771304609436219857566027974719072847757367630373338068118148096403435977897394337038910930995451274639346887730808045290043765513745286260152850541492574953559784079669368888475386131091466811030076030372666363189079945492183981700865787579084420759072836489063403007025299983669363211787258741040602939848446902526532639391131104233036326518553527041370786441295521350819060194932061922078527748713479819048394424429410024354836561324024914037466964926980661758283710525327366771088833599334928762525335828424924701763457501676172181748964628156210181597823221521537551208307119583453620830456131950303703058418368190252202166629532532778646862255057097927308686758163601613345978483132769881000868098802015441826703865067975219964192967934513361426197690267462215339384899056156539386390213110672631856225594332901701590985647912372399392376204771647915350078366352155589346477754146274391679094051816711968375027564807493640639360190591151261966380243257956951167165246175876947737665121554364300142755291171280915523395956957033847851835815192019229073276101619376065517627843086409403382527116391185446346194761099399420386652720305920038593061924998346279642592270477665909638690393320628554836550898074983230786070212298247329978324212538921062735133903246239561918787570645876784874965260833073736844192879734353751756539735547092663908568690934378649465070806333166102979261265451203281502328940018511829828287838789410910921836769496258631113571897478719858742756089600144917678437795925594141761207667369400914587854847275367489039620967430013938815864716457886585045697884119857663520776512853060003847616921053101458147379846238714880642022844011680674618238255634210625138002422345522188643249037920463105037194529118123450118294963414548740375238244342913578319431402175758279378662107544119714195047879140859196783206488670686051682456679697341960286926189668351854961789919617483440665566757593089785531851798096727120946349148470143502582324752549468756692873491107349438828708405266550102311411179355398959749508992850970820017722928742349181700718474326021314766550411119497433535050744486051266810472934294077624091166647520529899955128391738191073280919991152676544889498689009274614617244720751987590523363444869970034509707884082576324408146693810929185414283816552954945572415129890949729329369133132798393491089388476427624476476041150611821664870028022553866071225526810111603313979107119131481084632700443257256954254598393877446571854382173852992774973377053042629122037623877016744202085225102945277428370466279897759448819998091426461471735258722792203538733928256201719089313348865722097257323168670001517206426620015446619454113656367487545751783351485799119261668581744943315918635394370294921990703045602052499406318821774933742894257740713111670981037866858485129459656369426147926087242905551159758327467205018291124811165794147500402737114994271189958359748344826459977414069956000934102607631245439224783031583934188388557105487328622013565925506261212025950453468728953451238281626656254528170931259225411180774763695590786412728636152065261483720099692646293100378324225796612083611465631433826696423524243528932726297866323153842261759446856580478852258454381576384391783155688733783452793643994484161510493805436806374984397849290575434759447944201361808290796560121504495917479468302624840672805372376073917198939207982825625160845628032682439342782309631657229935107680053093815631464439489766449972632889837263731162549707072794815037243917335660287739890446233403860618997493002465290126901959155297365972837359167582399450098892696885976199465447075485787724129151878880277615929401494997231795164028131104785315327520590862585842934161189661798902994317614315648105866793227826029333991559126612753324495464477876092786051176063181929577354049870087124121416757924120340391070545919990281472708393311686389556611376263303689849045878507240261289042937562703029054466057103526378113609236047277147690528774278619496804660384696145059552527072247314965925947315141444219200549490332790244806339885257475344816675502436327317262540940400693131627619658786691468455136942846014857416451733692710990565713738772252457325453502142903508434513287354786880884766344960248299807562604862519225891770594518602661937536968103809943351250038434443956311727222000443813294929453566719823892466053436379958493695364970903250744603529707069719749388664305064062506191962117855017545218068652229555351436874856500219199580897578140942366438062163581352832581177745984037500903009631268761942211600025585297866358648705565297503422945777068215181378344209473076167057024016854610320785847448777829957486777637888543390460984196691963229975495305051239358354106162350298349051452707108328128620898624319137246332689685212032607199772736059275493670336262140164094798126255980232888950244421530150843754904441954024000312319487320154548376285638916182216248598582263282429280809075020065763316658130441775157797752818786752455306513058705811093903206514222000268806669269611161179959597267933858830153104477508021321098691371698465874216662496410141086666952259623500317543898939656803439525169791287052330732040173253513647836592976534795896460622880840929669217863787212170233511470870619615315489854385509984148319394425786780710811351714209158578607175764262085091397360282804179111911357313892695646264164969997595308160150790771805671040685990613213637760721771044792480823965812657389883012948656418452166130562508500043209598481577879329998377830921447732134250556684823652533354106289782752720072713318158919387110329356333304376750681711092503890460193415481303236798155069883062000483638258279499577574022183349783566504341586638585729765505222058710525812971307631045698961427758303946537124600729362135711814936994111401321925794401296646226034159271742705249662319712887353134773246983287573871855249676787274553392138508068723510673206344959441223364594875043791808390644944625527503002619441054187536582465332598289462468307422259146146857536761803870214776502319536628491118727412589436619337032102659700564355019323138393213522420312491328244429424268163578310660894129316363600248324571534584018104279096745748132612885665058537817759217464747154828346624751538207590055503526941364262805498735301918234786411105670773815200686779380479677109703847710781868957193410549967741089312362450014713688587289698684588227348257558170029676138445872887428448115117202617890962821693410926693577876278770833565110628211845812391633367994736301136839830576085782820311054393432370679488600221421712508730830080525576088660058872506769505652320297289317863550183875550468870806358354334036003104323337504495231422353434263071613209815817992154927975221200518707056041535862935646726096708141939205647675393783327401444965986885801081380254366597405303901649906955712058582549178104174349248141756156635819936644840586578534296081152854351301269280584113229899505729476785182616816245473773314699126596379102859695781583282952372392144517244525526715736073780688964182993351056234998459748118131748838212028179651686111411402114255842222353810842451781372352450547655482336666775613610447123731253764854394032071132816115796031981139801936074754765178345737494913068791952782588310250604064525734955549864784025914549913621159636613461560716775531813825453770432223827637022820723743905234624156532923505196527008884612850386233381518624078894325202682212038914407005836563365691491272324191951256231099564351906846283594339254533096085545227042595069494911116792017753529738871980053283888346639781023783485713085036409591299279169597524330011444507030298143738330955623266310543686368753704610242239260449719556247434266672135503438805801882574891527316771795827847122276981509676195212099664367790939242850638446265267481056146045730770161250852887144177193526184845530237375216458393795376812837503900906990718447497587374936061987524408279562337561416711686221883675734988591961748997931065117566063196621362198117968361075731898152134138702313480109977582770439325710993035509869851875620069570642296564496309665781508691041763029646424935375144895195357426763235959026732804302551632763214455205687969266295450426880854158325017454148694162814920803208813709428853382676347311616606767263907406486275136405080237931770631202974174377354996484670209341632762684917095056242634320132498579656312248730569026272080808680027391586245935684486612972176564023748469065306950257189467785613827812225669673312443626402250386398683920071261376490880715286688384908606461357207539034594687704533968724044631676873695444570272948575854444628894622763589385066041598457970955287081164955574975866063206028370824588620542806005465272442575944535450667586340815092479071456932056072543673853073187948963757164076332318935324354941467788460944622783566247188537669773538151796304270248240190703263573425324355954992341958108788921878197269462603591651493584792922233794253174529174659494880150892888982631976697988430467789857567557136592749564195562638203432419051161336304125319113431738761694517416300610572030011254549078176112080910377935979406828645574379680251954833669249093389370567469370169195494617097031515017624004613745329991819728313286715040462462656154052758136936587268343246630304396043884535154477900621957888133347870145504151069055249313664667940094701510877619411534382087786242630327623336356480942920972263296067121802139480053269320343499049652058606066773379355337360057397389494777748444876302356461283688518600394278510295909965702930237547895895737331163864611118370358121091729011587523327801213050487082272509639750791443503237528706034730084879292765458482984828985996752782998082227398150357359451296147125958363318381023091758866150562660449082274992754959859946688382029307449164793324141417692638265562040550985201063560887773264186808137446282561574229097429993858138403970023119796468448171303781703036067217805428018328993942395460637954661702601621751940774715590514318620924311048485562588521539713931140406308049499241773763244251501012227640459916133389967290017884298132147318985931726244643163812870307888843449169495778028266944560992238322766976346452973642675158345540457165490200687988470299631182637140995291858345971097319952598654016650118953649058097085240127818709693315823710392571133408320450836220282907609925029665808903626499645110456489981278233438801609552430723442349921939385844421665072507928180565600870748361002294006102592459206630825794463300157878289646720420040450289721523158001352203513520532953837011970049934697697939286529487125103911672039068530571215351477918627305074698255821961017581740063343878557326102823337078929061046518591174595018463296940512905137607776486433078912640533646020359583098672462440197263459043988464960401690717345119961739655974990176908550483116785528296892120706673602037072359167228993685090209226618819019840706644707365617006639077635613595773331536200457707944289430224323677879008877103447264749985640154213839244373686890701314174404401091899722463260611876788768021762699344567970352744395694059369085239643584420932870535876894049820623743537856615487729469900086395189108793927456590127688510407068686219575139196151593638144230837889023323442516042951973583187078307831153588681779433591052242380723873344609388818393164283402198292186826997155595150348219089033394280306981074178883015339025945697096103718341520606987516648244186976359623332654372303737517157936066849878602123589570370987688981904779538612205738396241763471784760448901991853178661522863066632397517798930470794867804931212940526127081961129765731536124155180711238255545923208743040324558646364987754736771409129238425183903728755341094258189181773616685988810929864969299164759038358853783968921639601258185776774683270549012364944653500092798690681828124535133219154365291785129513407907951558958503295757136560511849325698361743159401664145574976157562581838939309637899496610899941865084587862888332849041379424754345976343961633755075572262173688471620305035269989238815460803123070340265149145514869989890430019340878655439994977052132501266023874538189034034425068307355730527255742291933121079847497711284452757430410094796955325876993010598592092254580850958272860544808117189480318577639252420329862191199663418056423546841663194474355861557119467386870379686784527246858821460575705790832589468111854751813526721441031832515795109485754902526968152823606321720837997913841956869217831204530849261190116343107185208432837150599565992590858974080153477554737146531512384705446504839349800180019749633775159930219363027495097236836813853672188512186256442924655273972672283076054358268951935122868303462745141389623987284793005674744680241037300314715419163970759980728424902676089375133049903944938235986565528109203981114118453297147400116065643308550450101626086922627367178882082217818711249934349939203806104440853770513662530547228084950168709341251421500742082860386638992093635664410620615362599061596326813963271442853727073538164323195571169934600044480657682737016271498759583300898077426353021672408012651772469375394691571855893345613158466557418931180418424020008828777112540902253010273704686990456170564280454281286472328405716011103503666164681900857008846642043674555696486122894135910238376652780159250006586921934810415029148885441680194712640860837611864028125450424976146466863349071922342895948096538436322353110207965732908458118132114886757403915792331121234840785227803359989423089330171860872999797101110156011526889642748892507336434070121024026071818109850943152339817659287605383876369106098367036966690653522303578450595748819769992561049776893534887030414664451200503765587567039992854059896026301236241592094382913455713527814999519199965639293988688772281555511531144874753323008749714525262831572897131131903319023094490790248186077475817671503161875647355599017887922252074550188162990480556215351076337231510730648598201069167714038585892284192367848420937196539856157191715037763504951074851048149750017558606773767369682072861837276864106027750647034384441287797656680416885772393954735044319780290189944726626012511765170060358757446568070049684702157722913651065290978101377169557046133043913133752297677889396998097791917250744189900498131325984041553104541099393650410161007904375575223121989248089837704760807502677552096704931139137192876015340145739338284814215700207393449861003363803384552640157057168678806904795916243118079947287506263615487280741192420987818909347780786881615413984592298232619665128873706433478399150405556766866167944679481475329625589052375424407090148975023288385778118816764173516266792906920286387614754846416553928788547678105928291059365500238314472610895135623231245103976529686123433464795677196498580244742642883924428391199176000368859254450757772444204521689479652423114809570654951418409115567930070974739369657197641113696483584710473104836640215424153019350438251918156867397116182763019474828671416988128429720325702251049302275285131953588877787764329095559750479995519038340719438811454648748918473180387460832967257152518211329214666503233828769071033865572094556555104125283465741587484121139708469178438755374267580478989601007590524592221005520954440461981371514289279084935621439582487065425115212679905910899328771792209991329082201467171632841431322220103052311689395276097795708405901409314084367615037628054211609379787126253321172007797379748240404903009253568613462864848169740871858895830245476560529509345601488707556561620670562227876924253406803984935699382355059204076528642249328600844120576403605894446387793509418834610911215544444210360236580533386899215771263313999511323899533592304860012831414384688632095541738155362547141882472764916371409135759204839016008133095265246783378138734884943545091955621590556940489046672192488235979447331881631920078700772712251369529182203201721351529468242399876003118786409713536753893282446262114155659800406739669594419622251793044290321971709055970167730508367389434085769661857617186638370920207039752003704422979561329626943007698614672055463275481376909733450076613955994905626118279098462915119478802757023694181321159890970486483616141664146771708907395218710745047053763629483994456530475627356627175610927279200952754700677530036876680248074681239387580226095645498522395506733833662727748315234331415442084262271929405504337939234267342432849700180781896524946983521082855515841571040161417340749346042695905780170785664168547720621881873101542953655930192277815114118132475255200777047508743850851143732101422049889758154855216062375958766573613132883203313484813267951212664667350346500918418584875197400846232418682221078011998125592268125718751118701472511444952429182077174149197937115235873301366583529648452405250402238201279677217047311128804066076999396068530254706232406603903172131692574298228282712320903174311498061238155980567188408571314517961022809584151286497650746027130426629902853440114173879380885085521529000588383838249896298890657058034371847080252694368075270618166099791793036621983840870639214220780777505278328589513866894619526158891113732644827404268656306838966207949490553668588394492669972447035277151258007514661463977675053596266413594608339274705395828102785709167470508743716818481516393865480330559870242864988616630896811497795751661952048886545791641028646533536893119028186226045774170398415812174789392735105281956115845434670981569419646909055215035453186079520032666639497936914272441337753497287874447844515419575140206813953512743943449789391934972129713573501472812146493112419739365210511792542179347399648955046694287860101992857000886571398308596571405575252624262036560633827131162902682618327181172316001295202281043473903653312872638613084903848293162214315220324643373406192503078083930372736888906281428851846426485456804183333256807144371127040699121458405378093934495223993297531436933026617650280323574068364664766630597800018391626327517811991990333110696860239152118871010516629470524593685574964339099853531534296793052917723207484872530967407336072809178639569781553375368758777728385576745269009377958695636626242565764218549469934958947489762578985880378758687281925835515443674181552618849036973792264338056441335398587925224230213171586522799279909477453369382459886677874370023902494999101636620813949498750020326093481748104068267234895508485386063707326898872454834104029753327702655236154160389617246670458644535358512701995250724942691316627590593780527065023073817204555008618211706752319495055772506641651648203357165694197980261381556554112898728695864661050230687023070589712760593131220719470932206048967251646296092657480349902425498739571139329783827961249932382374876661262309389756748065893487079564518276919584885061915600936906651209170268855111328107981634877461999856735767646904268608938410769105751540941754562143433097289691976909222111777047934418557356427555496817868724185482248822793370684992426404349600596163938891437102264514766601829091002214785881838997746869232830797990574738185071414863224712675902874555279705602932474816450262341181403421130570049285915232137471916397320839488242483133628623724578043929815913086195387786944502006382916979924960811347566723489874198752691154560197681402808550188565107367006804322001005622320048178752044825000581306894153845171022970635883405141704511663526616816051574288895990454517883831066550455853731607120932198676856339372831894299038741860611998096254403434442746367212151219346221373295368481439783727184557351510893906701892102451062592533586694553168050906868154472994651251748778887081237864767010411576936431890456263316700234349252643706248587163303914439377710486769800228434109707311568782983212722691275800621403890451063220083120830136326253208415478906127550956008966610602952460134089620881746378526973103555639724899027801472996839126719631234269450308305194917891478442604826241122170868346044799612615657567738808669677758050282285856526661559804037260708981598575506810560406821715254292566280926184373090584127672933089624878984048635185904669192308513094953154935453722994406433694219163089880236025492508785309212390501843286113818559562553640184288941799565584418983129769518962117041928574979187118865145333723718823666184012730354021186803393286160318483013473870202356369562318450797801797952655190105130757880440332136139446733275808520189266794107870961812662237488604796597729118209351391045087870672135395759976217885279300349642350048515412262953564008467751663960460358728306624684359551189711396622216506166471174430971509505359203401597972297931452697770576281494079272964792926091011162454374004726417858083689654830446908021068629444494473735646031321549771403078720143255469347481811139782715822854388029884490014938977689870633823076929649181465317967849027571376866483231582148890155452039354928802068802388456798516387352263988551782076212850963941903765265675002244841283658034953195769028167241578157045788295431162225765286031544479280715918468380018815336425478970776061386011414184466056491885729269575268169025023032198382430021059839961993359450357408681252143117342444427567193329404195924301360488390971605930968225551081118109487531715727652586421232585923183065719510243343565880149656940143419505637319926966671992231704658918041374433165290761812588814496509971983537684877141949551379518986420506037187921332635235776815207755817824330742630449741783495592945217331602619616229269745287146659566406170782222639469045030288737336159243443196649602343352310052534480253633426928380525442998588644746939993324020846414605747377955274608493384178500431738433753572838536080698864894811605943346844720289295031701161929568658693186167023556142200044468851910826538172090794781825710243003059973870752377924657843671751853633647393568270178088935430152530677559356979676119991576805917560984470782000009611784347754749923636410282842647772950622383270651957672979669034455632427779429876313586197377064017998500239259714794068511085583092969880928512469492811070649192209497886145136379314178996044760150872911583947302231196750864829349583971174363916614385711771790055274604889235591571198372246702294781954495766854727406613204983353832421224597639854010500507335171758425698929677445409958463505903865037349446956052941196990526233255028731225030212337917545469659731121048311487261936965839990029507121914665619280199031809570939736027757183717211342536350244202358686983372959921633005105220332069067783021296964626136793079653030469961271729826728687297733107186411591325682390850778830928068802477053791663780291248216445329337511303316468746520426205042758541525488681628533863278811119262175797750891182514012278211175852129279200197314730272089333239463024194668829121564527718880816682771288890065987344181725997934490869269812534798458499512255944194981872535741715959808403998505317499707155626793436799054103900725451551628419618206181784357896416554730181302762859330879639927107218939330801747630976619366082151296233932739591703272175231291844999273882589305567660587934875657053757719538170271255778018925365427837156221065414357177473194750730864512465999327847027876517905291845282621328104118406660649606435158001819037362452748439621915339625878185688828883170283784920597869375332939243100233451646612169993193953954713031792321684503431443149998528020812842250451812554244767061537507957568933002988953969551471117652454662342194169789809612674353706998818281300877072564277911051762592392342336361345653675904174264265759479821273175120520192887904975295302874400223904297825693317166121460097718525421562691927124312270400600464007179742611517697572478174621784611545665626356917569043166514708382494257165766661436990517319717590887732069479702934197593048432353722768984372590157617516542566750372531247963682035033893772181007688427734380331311649124212183518906979732786537761360244675062244089144030081939325905283726707925492425523377222298415738355092452147458611583058228000783310324371604356144437831004735991951484548359692459083095523362065561784233864561671636404022055046236214018979578979021340880823812278427026571436450380609098976940407416886307336757330260386908667916243721210145979247716979744967466982886522034157495470930433240731099675948793917324940956728768624873441203724539355094566855439487023322360819974924854580414973356193521699098352138997556563181504099320050825358565437918629899389762325320317891969437979958494999940115433428517760915809065741213971921101062901785556645004771907207131876603518029986133879228106892145683377163090225001936972452464922710405539328748725710105756350810387198126880628893955657056639769431452668414190575288021733194385676897381114424700871620048986695783153068376047341970774555171116939242832547593223697891167257550654327664272111030944589319528712372214376400944678356202052445706742689986360960198536966047557832281165200082021082197469768899858595555307107125082986424880308416955366203650349678059889553907807360805132172100710614585808888130221820773031047905216016880995218564411767933786257571459585187442477841135705335541906828337797141553970513547804982739874349997085905691751363076045795341829718244604488979692022370165728823907644182646907038828292241384538942287297580708469375263058761320629554213680184588395361215595972683968174414214178399491361577230146684152185262843379684227536268999651203250668621146659489011657654997075374436880980464619696403767758877386697842006366296909278801281424804742046749840756806943648378053432743486819122005281602506093073348121874515834192658060265574545496629612963521243293633993053921210089241093954947693167211739989662245141873559002906674498265285997290261937303929304828667645219411441127592502546501226728146139633539475793505174888603555513988898326312513376646745301934865201939155239278482042061726819243600685140548647558700838990159303004328938124116217423605742898209696453261822772564074430067209362374596436605813067599632415308715706415773462857865879407514025405547160350837151424931443984300905198458158718362533716981543297665228202850616474750289087815071077214286098610825606963804320005406437600157677446360852902441988664153242072513184486812446286076018468589107946361884788588294007980465909756241225269870617570751514873364751551100349494410813528486569614470499697558348057919055022702750883933936204401511416649997473199948553937961602118764361646748213951856403420357350903353997893519930095970739702797138694010812395833911303321249607429909723144721560493424317768336857160838420845735341349205608294797431596954955948287870442740052106110418958213976865027027960019374642715768455770355294250647036724069027340340400246631543199277876599996336424357588730637463098565357022175330199434147397922133702458356068405492458256694706928597185600183201676685622939704932912597629561209509626602146187726203926502506757891195050391350386317864454207721959665249264180576181861592943385070460363495494651469389980656504153619839001754325549364450362750250219297846650657868882678438989809050419208290719461532569483215035212836181094383584403733674143014759729430790158981442025464013739988179004032270776684339512848458392095110946223101718454234798738921644681663273178930426817666305379499968554415109006112770358922463467956092016977729880359131964600656198189689420819320008872753815366539665024065582868530353240870839189429811170030581307786346418691348843247595276236994318285240130705912581592301995264942092687313743096910879158707820689388343700046292219899020322814328785036496826449086844424579233898448319048397714837267694573089436893477361352266994235778736803773574557766277778010653352353460627020845091857604335123973286185364882271928765539150919153846228755523418723783945367927133946011450692389202506633330522150699159086844640917157909444281862290537825683129411232686543421746356033256981491516304100716829420083007418820503440937208450824851452021602194455573567576490847570345237812950948618564138956685762176149207275790614580051496601692718556688004348321332436295406871833869203515251799832164086834052785134995497206151614227536277179160930914777598288558665582634487851096615605358814772297225608839353747477114049293871407267278710012263485879590559065154831746826443450514157337920599531256134809624282926576710505721034499309862366442879177510608489811006804593906685930999015324163596948599976754086220758228663909871410879486337970101036233255467979701342651543768606587251480942237167482653913083497710546471120804025382417354382373900796856115216735015457176326018660901471398230984354511032089837189016604411673272041943992470877173072745633909400266929003776111647543993250841916286836071634275927759380514775233344101140759309764882265255891179073363622937978655752577879861081663825146001587373882224374709318373040835186324777029929459755282569342033903949833038967648098906588348123411089854037148112924873930158874221883351073693473215729309137504596657178023640935012119293471679685605516540413988319629676050310933544158662242559924214705718662924436884875484762321367134199202039542613305006348121487632529540159104948359776333148584083534642490100183778636211770493995645969406103155555629716246714290210800225224400037667600408258289431393390740732738032339116155545946877973636903930161354164286520512363163337492984670659516033241831618436060586449113292051210710581739812010554548737285534866006540084864931972104973437931422462958773309160022141095974813496683676162244451512099247683636781641817230671553213719635295511620575858306087744419136724455402138725785398795420042577589270092149197227234592887731790917573613041348729944903752380512501131099950306321556618147140124113180697021751935926514156898847620538690038315815383666620319016146915889607285714710179255923973177408238443712706817939460482562129841282731100788576644147645814394473367621769370119649929902907262935867431330339823484668010519567602869539612969613072302290981634895521474122215746289244419234134072719687803362877300824679573320089101134624423581336223756648451778543613827534622327811800302558604429248029354338229686401051307081447380446120321789931112547122990944832358144032099291277597431617506019486565405608367427622045011860727119012373847997875162687528159059557914886804661206465723722747550173553943327916261220799426561963045811973180196959827700926645522317211011361920003500555681735988945548923452537348589048361856257278124077825211537563210740506720999233848693381844144661968819636292664659422054870316953647714126693313742496512263937284772192241301812963660406600923414540070594889416210506136057035947162774715137397571023636817461574216415904123357833287476392880573207121969441658068925597320979669548053023229161743411685952139788519010138644190843199601338923594677465910328101852612367102546717545684354459343171942335064445489154081851362401561558266410552429111112516548278684484220428504619611442649406928968850186006754718661385507659885839215630652332605297374167302100156614109857461979940958507711082097398775501784809046718447934181187684083592765014539604000699464011001719196702774415961123415063176155958355054970751308833601796894719498492830949356958746429069556976833529893215106746154478174382034292483189268125928801681927215052503595658904646204271139039729638965746736187558810607149811305061167432162646218324216684273113346188336481596674383397581417657922798267641307454379931072908616061015615198581885597202463982112965486416397492516980380489194273118940827381236329882794240050789584084459104140459284642073813368201645390974107129272944550178306798982348630780477675408943804327874319619943559998235797724985071324239785512618635746044851777022854013912986279252148923430476240497819718309473913309897702096341810610504659367119325722931358684414938795835633021003064122027945866789641286051777525252197466937965497001485244518682466576764781638175766807379408287404312747590231789976201210487842885595033488239836233340522467550840208088560126107575885149559963924431690463289554739160905755976049314632015766779567710470015427186807148185668814264932463306875024644692113895821498249201062511371270452108515584036021903103600057779671903138270675984552060408097284056981565775618702685979525228034180636983311062526298828759387849513141366945388606129788937877228159507640624619209270490055170932925903226286894709117895620535062105062585453226040887943767435787553704191629162613138103886344768745226913529891373569551545095444390078889517426849359439762169036906426368055065866444100607440391145130821502716804157900964022767975449782026601345611469901267803761740736530747464361448478715880588976290358375536192830808442466707415094095936279698870470715476111300906409189220885239139979107538013621550950029819942043334706839362659856766856846660019276761195259643542352419016507163296801023429377175967751949974812535304947963025169040883230113254674952396812294347974208378105462658286533559952411555252335297285164682191271306561353962814435643146342474658901934852194276317077742647231470826485450858495635686239197191933671290450866660837749048614014858253123597278305449269018215965552062699547278271155963082422100477847421642609854164884579484292958973665990131033407848695077606848361535666969317783456644046116487614858431837003422867284806079488383547720888989050591926779542476762466157276163992698832392323618818028724294069944172128294229662821347155896079384589769808331941105021530383703487881867130492630487829593132915909620877860707440870353450438088059831215672587599696054849288424592319506533160767152335397707445793759299483200202224842023300856251612389617392309352807339407658990075097818881659726708882168493440688704437146116090391520099854575188973200464333260674652203690647968139857226369304710293505397956672772750552977665227956952122637636526345035040902620203323402805791174405284224897999720789603312485816146616652972526043690267536819340477815229553293967463663673606999338939650212808117890857895090372345684348228693628260244474838536212726098927082712535356191559273413241913255796429703001553467128186903636919912802174308675752651791884639766605596588063512228916141011305819258163864930668194578708962176947659930020098138496503921451484811117690228483528952793810507700381750539038508978758676333095267278927315652539160076569843139727664521223609140615219429112292839506556580721578761354756775766218210733311518418619513268354145997623679107747128364954800321698371462948805544866051025942836733325512016843566945569764308753232871625118737480776380349453008732797387017839033822336057256169428868900417368624907245152282884766899856496031265328066624070614926847131773996179922929121759031180752206560228212611729153543251175596076255552525708187403063111716114277437315980008563206000589145481616083422377811445363119017962635921287193572588363087979592385274365375565542088305617482270464098022654041669823945796375744125720728386735335759084404881921453044960460591043473182511190342831061293317178586657416691881933992734987578741927158238452645098167033604738912413275243753198455855222786942423810745835344796632897448797602449332479159098625835235090585385262735675055272827960915987853052658143704482890799609127860791324757735952708547498769053027412660210961377040182629749381299533994417036320677809279999424441229245906411020552299856212497065079454922800556691043158791685549310498371483303052705614718169037480272503375133172880275171363065622662156365084202626957362480026597939117339213706560839379359381102865483569072661481573897377495309030974313551488093496138624747910868052052852678049911921445761880095715138878278594582400256598890422970230589914945816505486300953622527294819831531163780466841983853708991017422615303404804430920408064068913394469853584245731299618930357453648140116673531909031649536440233458270069732581044621222203641770960699157715129799862187969553495906315231563243567442711127215585837130547232466194932905769718347441617846108129837510253741053354041647748843148267555744673445864724180064914362120543813230471556487026686344598330664300533645548278316388524742281912408628407177101313573817561956790250826019619732746057824781577849884742773550855610965858432554473276741319303300974821620032996848516296893502942512056158375800619866273346347204574155731527555247861337105877113012758225413386834845227253385537224392945395959460837348468143983146704913490427060062878988179940078121558123609958589705826311895346479676117667215753796475407287575610004360369460914124051005354171799564396320374513427016214349993310225112557282033170222383278547413511190390700578250346301078328043418052869161342687325301621416276421006462743568064087485201876705964644985734645697337665148869310231681001642812525297370559501225535741334858740724905614734822784143260597985330733323253740671297982139653589706809480569100438088854070300626548064673388974545581711568500113900780968080099068390663741458652865228115526615777909813359241947984499666056450781818529676890859367553039205152808857466607054610909371915127526422592829210137589564725619042056652578001366150895178189846088333914213094088513594388057889831852932023195846356221803411338306934124003606317057652085828517827676805296085781776581557583700900578395318032260379698421526020315760185481286913452948770007279272555026218210036226854572578446984985275458936390051528607668590537325305167554613258689297105137121042960997821552746265394223988249184514105345488379301362267004063689259031021774334997774674876165669673448364279217588857420079407003049726095328054419933739017755669094559931974595420339580899642138278951491072360981576199267107620811243940904065524535687950534459737604468475725717183963969303877644729927033113216729910575224326566363759257413250482723590943729738849135735472419882541531033104446701579549483096139780192596291906419620143612634606501242681153361165607379501651127613858022347095601600064108325028406232664343498133661895393196327025584316145623499316467362415487993752243121814483086862264542083445520057809812576768252432306462230457789195632519350233543123932111326578865727468737059804637087599774574703994072428728222139250648209496226583491660232012613799227580346209607002649655776272307326330452705388613795111928899461747903369929057781600844048628496593061076945044297589843263498867180310715135805578492825303877335791278589171108638877113155196780841270731682982609892790826263138181929579563616276017282840911810682381444181070880712131717447632296506341686440468646363568759624248680337953571070292721298538439865923259992193807107897499205645638415245974228253460297351820104827654014101803411232536566723333757334995341776126333096755637130683180853414527498383292540473778194515491378991451313329660097881627214060431333968635598592474627211940919477581675608288039232916837596957611998690196327443010808167251041614065885506734130981210383035588157482109993870139318866484349716062585249137362768301165118983925690644196492415982014431565532308019347013889437157157824252306905136743490087587171623508324701485595616164180614324283698947217123807025560652358780967324931415938961142064265553995850737865724226256914603871578414533355961564733672740708273729741119101702741176300686994774904549486751307673146415124516570337018829450524135259903521402784581371608681181379442407569026935002879807817718730011383909447477602437500902244611461258096797401097631263705771606254937490497430602684094849059405269135952273713450061077597904244082210330346446491987720874017365996217388168794708739651119851180143537063101564860033036222488895935432512615073854695589211678955989879131029515901814959745904464312133093102066004848393079211743026345795965343268481949079830166330125606708176440390238922612670831484908649087790224338640813786868103963583649844432693659105804399775922382788988450803621651430028952597850242188942718804031439979875586754141337939843371300790869064203471720269709634390864120682427614820251491864253076969176031126881950359065409977043578323439269767911678492406303851897125382446199215977509763202992559544248553863216485387208328037290485021985537972844589802262590819428986518201668736004422963219201849082402195410399302397161860809828932958455974366749402092973338612148175228165142412788808937971328024976724277304717853525444740250669654330173756171908853411742760525132616465516758245017781726696459803495637527716094765629671103525800553003444392922482589878870920233206744594776304966187295268052987816151715797878180364389913894522127048384794350615115389778325117552314210393516621328297474457267072320900811237242710182375763728113386974673853607218199356100775279186314089479587595297583789702069216401526872367323686226754691009691631918101316067028333475280165037301457298704358176004601379145447447082139845952019348241108144999063335968992767158685053574096089974250407014617823412210417738111626252349004359920715028060564209149624475115510210635761773545955530383220418472483866639317989323704172385402480576981871627668889507765529744872631059948257767539764681913849873386614118374828627383239074236254007848141704619281454343866537544428010651269916858752163221838536200209327388410182199678377455737299551107063692592620489304147427150977874439283323633493114381886639432788994441474006297992278784679031082499051731504507438307200247043622544426141843916857788209470829691573526231331741297817126342950161214916151367185350558668222989957657142646906292110211657657031166716479066971427619908902592366881773314185960389655650234464367720926538310078935428916898843991991166730804879761326386353868883331793285283307838310801271012513725888422482999356357260840429104408558442383601477893342952213624693015127321702219804546580124202049981598315838250382390832461311451289075336581507535568240502025617248777575174142582463918777545990689073034636057999313938195406249509384198968514295386165182874292605457244795886175923932527423010031076771853463379152398083673178021883150887120689777171323261824964016558901168167188974146186159590585250324220148492396533410023655633074815955455735734248272737827822979714909250702062835986417796442285345644795543263007778058345041888143071293009313693651879354077286711641587048390574884816589832151449281236085155039654755098797367951780878374710967147819509336917607189358057740147124481702887391492549705559218687600872679847143079617354224131846196305376092212706827310905546587390787798248063524017023870216515185903878525105768450137833300910803941050986754173717924891677025850789457811361706409364265497688057139589328386762049255014895765441007726884466515549245329230946034180105155719770642309486369333933829097985640480574888138226671122696672102609463340620210590269146222349795381592850233751688391204994565489220480401528333358695499304921714562289114708777099901893143366446740910995276229759263589676449937772614568002466405623493245223113108529192832931027331512442387699964731415761063797783032921972049351211321319774268871040338564861598331108482063214844388143604054105938139701821621801712737054337992573661303154594203745467896094369612753752288823486106016533158737146279869134617056415958389554637615037241799439054312647595789265039497019539755125586599770602330458976727000779712624974924205731721573163844567620348803902015405173704970344610325076548850672293278510127554398465167092512427779157984071121792764152216408481466363207682334023047144227574344499590138837475123570721736729854779406399495154911061518555845667585824129139574613921256947736643515765613519798978042341333603349234386460526617211522902632377725997218219080704901058185565730146152404838483128137845636292276014128882480056471926154642206404564156142666055362964368622892970652852442006457496103340312582237548854166925833024828861147545308260669638687895932487228696367062063828490572059115586235303798374118353713365142845034163512315179709739290343784920058852491950673651089971696910892486065079560918725761711016067374741450581429112628082527503727024856516346943826454630430301272803663589853448513397618750011562981175533182238309675105170898986915694300030451312879201302985192825429049864300822312526540886594257978759172046337822336200272875328314242710117359276624803325364307364502590732141820281592855904501371464064540321097974757316216863565686002043358056852776124780960093213008435199535132488197080262713404249400409735637971991845016765992404898225706935308866707888737938001095327000997948452333925803860144482457545639249718956714358886158663113742552871252366376085805863046059827201162782942499194641946258519520887423085934443740339597883659846565700665243954524337364466851082444019781553200249001364602512317888989279418665086177650222571838774113775869309639848761697181574980892877378981216452330501382049489652744508038585692459394630682236805265799459820298237332106963515741750268470372191537729407902497627919982686124779069292161044373486695210291213992767464874231351863982746281512200813853639576552938774226845497773111278481668403453704997406727334714354712548766639997561520050363746306404935430741877933837956975728594287357842287424693555539603947944726254654414875698820615553888714447662193613655491327501690390622866827408523651449952969100227116353321376954526544536782676566616042208668444292927339608593511285779669872157986341722733835818476665184189409214464654495163935517815560813446891017807599896562286449163340511073492404260900190085279463500978165293541033276285888389402539696773878861315134856039199826170592617237911182315261170751696347462947751106185724706268449338324936257082507736730022821535243617761312842078637183978969018662805618209856296096416574430410808049393656715169704798717575824314344303380105429741879100482598461030283115210887733037978309126891673215995600384328583744342748668630545734312646645453088938229826367348918760293332197536093919711669954736764877002611255221398707434769511027193461533227413243883549350710616767548960471010920787892596744195866526184501639275156720887994710192970532456571099338834191587981326023461660384614744081877774453415442317064342458544871288183831879980326958051905427143838065406678178595856427294453649794064212221365209791232935202486477758611842197640991054261736952309574594510175176096330148414881376429149369593175209994100804564164243721873453876769534172259902848973725249499960932675510911286521066824302026164738239670636393955700557454375785798463534039664567891049221803208395819543991807762041792170843985857541209502806804176040540245790067931545555255615161077778357084036070075126340573268740324350928754871599844891615672784096176880046493875416325675489764668761471455140974208360944008567069641900790282075083740908214756767061762145628756022716368259900556489735518817670139786025708741645419954296183139586604942460451763715839606168220653187184290517062835148795772937847725060370805495349007813411601660722652574714295901412886798982803236688513141006461810314892745715171688890025406568512106456278818550829217980706533780649641965839713055382476767182067492222672503684921170649023787370574894708195778958094948894532873204024850150961335086873227740459038330143640016119225697724679888823525318466524176795295272334180119457046535247191592445014840131971056982484505870605599425798153465220066933689920026918022857637243562878428284660556732803209106552460239414127888705899539465263940024919620390489939493620800336179291383782598415209408721804384491513458371599807850338682627189425160161919452896689370052038523034096741530975689733873751143101790388258837731432814833478140473761890769648091252065636202458285465569020049735673550383846788377529803744919703591937739328626752305299049052250570710515144830197266941255427294673931917032698470023880543561572648748017677677876207033827979159204579918841458242483461887342164331813482244105870975147382193962615073718948996453346625598621956629002406554217279537450474521614755137524601531123404523075526190975532258548070198076203087269243471959575553504308647851588634077816914592227054131984954893880320738125873965436481105908591377913375580880438159832575279285691753432746406499371734583506481683688071536542757904565427188863061825847941964415982086027384417394181308129692943298938835862522093597164349783591666936131269907248368040269026732094877994626929146200885959240456706500185106317031724473970376362681423490628052157492023954813323285715937381242481843720886866444379362228902060422548006060743776030734637761833317930414091618109663868257272531938141581031314580257849485738715591632530430200284441032213882003262018232554330028848072151179263645727612998902091230649606502049633698323946453289195395053257246432420709487232751990488215164632108718529615368484972769788583739413960739742376739193826317742137774744276212323729828430591275288364709765134441354930265059382464576082037993517012036144263310474697188564592607406833728085995738080310706576144218344645438911290742684139834789125163498653356659916818124817867782426372938677950053719981657055637236822738688865771136338229387388892543208427421958034816699389336310926405235149796008900557592184385027287632291164033953408909803651781222879905122187224394482054470175683686093675959316121202015845541641409415262158343816192279223352411998576471876966146911658193787171734961813098454620411172525458297812665341050948736505875382880831737267277064859828340268515248839343714486111463750337635350833588449182210697212258493520346163536073707685541363936393634552243198748499986007753307828231563148096021035700308957213290638934131953979101090186975984445367002453557261765838214413588756489573208429646571890532905433649697723870645281978826543144500669439669542513956298045681774581864389932334554303715296121581467112774581296040661549419258916902514714146978460340847003957970163818008956104117861369793951015298557915960419707640189726175973132308473982987893427037027607018147374142101937303251988866857453303226723599091781530514369884090929615392127656799734182187381344903096938015357275504941394059996855782561624552632548903072686928323048572746994318143648865705491260573612047192870207823687087185318415301110444212447087497593331114001623383903242667041784201994851342445778770854092942039063128223858210347576654721355667275804402226312167828006936515544591371555513976924298259935409415158903020395562602196444622743211804635189255704056413205827122651291612557341292443668250497397442771323449019024052611734096263116403619389353139069883623949534506301598069991536531751919528860797219350049402666971919462397678310174957149784268843001361170194189948002295962827185413599474521563819937707196472674581122497802308184875830826004504908947669579516121966698655216109857491425904371244938136807135545185334503300564811755592158789301330526483135419808602592036036897105639162506886287930410261545821858310491743739369164598441988885423932542628758884932165157862189632837439724995223967862258160502617532852856229342580606352540072387266421652943549127747736091148725708998001469705623435054103595001625427643090498024765874257680265107963723324449582337125903858594943409168698252643310646246335394721139541958449865079710804397434909105801690394592950344069307139905800108141733818998752142028435498466057907199700223052599561805759836257513374212504707136502997997992501422270101085481460466846795151741359799466835527619026697258718758359671559005529329808127902691508526263240591616816298054271246026899725854971822050737961537607281871259207745762207712851766466362750243165291933703733090266377575436870181321690783053671219334156291434088612566820094841021789186582710506446016041080700552354575578438535888917308203069728422706088252874926294244127816421994511174538061361846155591534401558650182378859259559113290066688440451845789332616257813625174936505384334444686922835263050046478172834807319436614864765958152876398590748928096706334193769873162499491677702082826456248415771913823759092878727727352557492836826519630201110888117648039031136770650828857477211575105540780325232282238337475723316726458916989340979856406242194323194552912045626048113845959555567310049856563333407041292385831897412585281107056245865527159824948837622199641566934388098093846437343520463170692103891755518057609398300674103409024296669142478934124664117572291491923567953431147744996403729473722085582808875178310962795816641226316438697138674797303579472583466081620129198264156376628208574560804117704291987502422097203910955762089463341187919322953629384742005927774960894405958555419778599138584983976568032309847924921885351299029745629190396780911333700115280581407839407539041659235045954825850258708109804486991596270551591391393000614138262369862136086789942620191407334300681639070092977044852890873018507287347506892719265486367266128057190857397772828496829096333799755775933310746947490872880495304486074877849731015219903585175819578090494823609196227911541244115792043383347740956099237226560151576380802523049847304673832308521863348256321081006529818319768481703548949861818100922234333848306848595994130059228578927515593071515320565091636523147455897865014323521988955596442255010205996982349537676029948574956562407902669467820858215322716203605313342485665522134949257139800083478631620934981056275815442643548744370156886163503110226914937990320305821342648762142316056563776671839878329014960144063702972126917312535273223673319633849739192199069998208193326167074996617654529955775741738423919385991068360505874213479138356988550061910812253583739053177988510327573695242202893818242539555216800941270240574980332612936533387396128378882593802684882452752900488001462189628087905354222918057226585154813051348351522306131888117666254025513582946414489268095655576584548457822592473877769283833090823891714546100295455550128892727004979917277309330935927361669480183107989629534502670801912034879517257550370718022597738671445485647381547320980935129272654942270988005112497766856940242682245112690901115899262056527634416762647468612415107723080191902861592691342469925723462335853888348830177468253417222728584015600340006144217975602359055285338600378717398870207504389419514418437070118038920789712445660945259470461386790414946465550283183913481283138327667554161376623704960436591964304179160685277793657064203403298154756097149886003847372133233876223808927157501569162018817571458862936224903680983235157526256030740784757324498317721846053862351348676645574867271449754691395888884883812488468130058488395936361269377777349140394020211444054681073478684294263862329620052651464142930737727871592293143432198178729803312890265618597599598729389145135244917776698947205485501845499941438765182302580202231897622020319508993487339594369098082389585597054477733734107026318356309194592265522001114037837849199868088742772649927924918400119896929906192337551151556536899178338701112166690572944694150819558411420806556699480054258898322451399361471533589558313677552143175128975684605869348458474002165402533756156048294574322415674746640933409252687711772512817389664021843052966134677418291553841980742627493542802742402497113750962917856433683903096007963558528511412743397293001139937352155767929926974052729741891115438029055390083615697500697313804494326143314717838740641582360906309341643344010459979439209329478927949082249289807354260266713739249695805269759420098106805696093880402509199993114317256666974854162084401046665363916316731759181839843860914570305848069020714467360108912679560604535476306710916994548097551640598623782295204607186874445112377799691442259705478609512142687900092031676322745517675989164922781180424109262682080406934987282468247882900889310373416803478543783979206479115253176125552385628509973763037976066837402270310500701539292000598105195336564133606081068254227596405956753255169482903889965852758418950369258349872882539581885237913185086952283097882066935194858411537209859300659430380744847985857632458477323497283364539539005904331032195968871706680768850346286511384591274944578896728376965816789626948191860496757834724561432893186469158501434822726322136191384744978096555203092304220352802443410804221175087903010559781285438437947009319280805579561414686762915305586648728821735168029970225920256758493066950979345201725526961538119751202196403941934318251135239814619721945234753982436593105712321060719523637488197617830108090662509024001165566224279009038903579524919955370897165028200642890238531241983269535044448540330096298636221811352150274648112017250888567595773882452813510953618700852355788646883109196579801757438910470750676558163368162735832460016028210470328278904934953821914308451806239660727854648405138530524138221726101666024902441162629078805985995163665716785750265422067249996722340482667920282528745766658853616228135621940688712194558007456521468003155295146763363671109915455957259291601528443672894644470669831525841126510402020682262368628391574198907737633218344545710318943196540755513839715930778734957718399235108415500602873083943561434716053421386620247811549608161816048332476467797650359907497496445808393457324290231492619731383191492000338513564447720939466926013549077448831290903844386211630500359346891445213108083418574217386654362447399509458910920771749973091335300352766806761762429473599848648923506687347184604561352431842971237174202218516070679120881946635754522751334286201888974529744561193425299044315495184589075843996201336834419238244834999510132815226708551349389198874266439081623801303866844933368872280138845944898256658809819111607853408987670491408774654342006244764566308329409855422482932369499623953385768467082724965161415553941718405256300859271690357810851205379294926726848941350008115560903385120405893236238090532433232912635832894631052352148862204184684122792775249053897576055707689579184634180585007305313943701271133978946430439079408961088133132413211497552855994372840542417189024579128761613162163781606686134116563005029514467328280847908998005107400594203770286852155656394222298237727520876909119010919348437503972838548095091443668737096663003859539930524721741814085419703390301978837954683771504167638288221641717709146728217752545877562744920112019187968726084745827233949304205966895456975073203867408754489640614478612963724784541655121110239619869679969554808822103734372618678790844750843270130574559145875392885458653414328815835824854265214841293261573499532665371544344288367700922160368338176336534849437665001753719759257682934692628162930666198142453040615129739043094524817861607230231660326520612702335720656649758459767960791129890224906046180161911102684679882853063159283459594559688442699410252371427507721866584943208053572737111880148459228067913973855327566442835208603469921336976264370114879854146264470781394499881783755867027671400634386387970762933347344038811550348951053598554333525000733292630102969771414268516304292533811081824042887760198037102079631983729702047919768636051797405936012289172681557422524082141525250850366482756732426923201939165583628600176269391852545049799675762603711452408607349501204916377279861856948686280571875946588690790748446106216743159085527815006892273869699203166428425929931864002347322166072803126084646731976275361952915897439262495500262855104272904753243500311391221409344191455853187205768959509998877364107242259728196263205300942925877012954009965360043447364554218880086438089874185908315422905950978225488824026416625381014164834759961173453117855883373046334980195235994780171198646386704687805528105121619245353998342504556992500224742383894403428541449550496888166048820225302264679253428674578262428534017741172646262652170284616853713226663174006819265717125132159733633246931484856925459499678958398502498739450257829963252318701644349894705704546824583396980869155365043535256883722366164993994240384964557125755921891803904810141696358697921598289284554526793082563973171784384699239327711104234669615238737470913761003072852911814263765469738092919059866544939769232816947688128816595181604345757062358165341953419325566967553519983055977201675530234303658959475025909035136031987680108275689044683843134898990379965342142752953966056223377029972935237827994866116031372213850333678892708284988075911115093848140910799594884445846030214394388684718969596592849128180504479957229412933988837497992199543610062682034876984574048432743910363280781824022882174580025717641420258626710576758932512106145625511511332946708662768173592538518285608957105077444011234784096563621380084293903819072589922892494736574139176075684717910307194356621928692809593147026368153916325090140610822576278507230059902860561186563978328002741972368660743687881560244494761421438705842432282877263340655504326566983202971802967272211013757503860710739827767656453080214977168665820233166661145683194328468662030658878839989962006057958563187620661240442552101787432583378217580766735118944668806487829972307315556096039922461258740448914616028310072701184294505898920958140389994165784698059830601862330675468160268600206516649654687044294802218358984299357851428561518140227252266397794228662657236573259456405155241721862382469410183119456856990749496144515487743059090353911721668964864001537364965396899589197757370855257027961006210597153975250415671316910758567233378749014818464888704935168615694124831956961049447698805707456178333521844098328514246592492496449371047573270319870177535676055850470996724462688181399248673304637187911109423093877778859949143016878806819860659658076026285438935316665397208655552094008315668424314536351829248767287533289276438310608761306314405419407241481537830442246074742669266913144977103888856251859393300066416729339556066854686651562393542103262375895240824475541418249957800695181981014499629252251159313467597822802070589507553043886362695353142974492596257245465027104097091022572747848840065421500174726671459733979961715111945354833199038326060354254326577980792175631509367399529881660752073882920116248715742707398852598065912329127440814491855888688808760547135293767391750750242859155960555837485908746237533585363531634165248247222925706927746728985511344682803860270529875633507890585663335019769878789221532739002881593728063648653550453365044647165057736624765151548622963760220468579485585957365456821705152178876829011847967579681587464398834784386618507866599098547330588077276835173245482647893101583872758854300940294242196799878891322971184580022093869643094134115835543919388977930151669199438457763289098757241071158826374961639129257075636245640303941673495748432389371962307910954038833936313113669454917481161335332325733700751118730743179927441059236373835493464249158210111297921927418859403211492320466605820668801066527642149740799434123869717621617949313243858698295513884614215489502465258762355484383254071008016628012283257677080589116537684656902638327961032238126074800411795571966575861998917430832668791364392523903636524695922922461385627644629328214539494143898538766049314436320843508536833315482191500242686357392199775466175034639236058039574225826713442028050058240674726182143054577652273421621978954855210505159457372241107677835474041537706759229558015284517936816556682174722387128215259792253574485468627511533321195481471759326886954838274636472408959506949365353619830384012572489605825965619930849243082720990228585068101970951856302612737593413918119939366068546061351600332638954262152277219290218744163232070978252762173643907992252734038218909425365523066800772529447191533111990089611866221413792120891162195803107740886727271113182712837830549596613842596007905003337011896063280030183676663257757303461544643193874754398673788906725079727020859091898189951495306592782115834574511163917010360119583520100174550265829179375471138989412714224779697929938495672076171010003906853643500239322393829726751267954938636021631874941727227809320821583149282329580572911813530266127684259154844273082518649135803990293310610512484854268767165302729013140536751637592369742356965401646539863875696415553950460963872287370738163949468004009107089050666250546903532479884425972199662313091098593723015308040754484595500224985318794975562678986921194893959691295374492612550416807682989927336704156346552625659572223274480076975862862293812270064580967293935113264819090434045293721691418299692831955955808093671318560489762017643341323073990632037509020061052684158114001234572690283233478332508440571888994159237381827993012998667494586562632380484131668101344163287382411012660270805140560592211602796184308314355228445045746662504977709301521000747678631740485029133309485607039573840147209885628962315480917490639980195321445855363085518491098986489037265895365909253692727199280103505546913987549496714515837934173590267717514918426483277489295520552970092384801804927452379292943532688235945052630425221482334324900127689204858889621634922250113553647666155044088092660608660637948647083733782797450193125284395092541800131938546577074167110779987385825366693190136872109347384170559502033416894544277144388207082719667475242939778074727043061618114276072948343276915874655013300287960629639353588221500218427203670609785748661071261372532265986903566007771484737976343618465487548008252955345893159977821193411661137474366670676080690563293914182935276808213196717343698850785247475038902500035819774787602769063540099641455991237425049519620964211255686814416289336193845951134606588486140798003310925055815361249805960057753547081978173282421297896373580249522258962467849226997823849062062156981793254329057853789272728748226196521163007145833645703874137815459288446838859192448595545266441020188519974730309184347687385557228297188296761556318600321876868913053038680733877579781898956405865265513383097290518088744974020327894336756781270833164237679478289552533614911737476843585827115014904259918673242868643867556865433019807319363212301574271255857153905869517486814013262288419964814603768093464429424874673258325716186564825323966867410744865786454399211870480720728516036679343278090318193330371629950048198881556047679235833146256532407774507269128304784360372238063331319522709893655403886018330629803823925520830023682941090138595190797493515040944253179151473488142653210669320289968019360479250419480295890987179839487514032593477597103044694381990152048131791964422873381801748933576105652967255451466429562011608369622788709877771832980820562869538454848030230565494889723246817132378346255130515673023077486023560365575503487568679822728243736134587696753534950504568922551764180614292775736146073332703250029520596103542480577692257095732280747035761190320044775821220574438977999662050222117960403886046469873472868814220556064967364236081573608030762007258986656283442926984638762180411842083542100112779273860500597796151358067321585403452497504667596929901849227205692994564731542809913439682505562304956200896727438477877571326708145066265034604700944222013774459280670125903673480243442243569888443678826822630309799769660535605890135211992298092849491925227559528297457774702173818601556298955992141610025862219431707334831223998847241333435050817343419813932756201343615082226194842766840223789583320786229345435965534896731060789121527100453351313968976753809423306111515272118852046380955658037327501589987921669942498874270373837768328280136249950544949171903341792293211872071967571156525809991996485220708858840592793998939819259746680907183847245005893361531971758593128208840664024817321378680021192544357150798856077816173043838708412302189112294189899343339241992205611952974474764098788660451527700762908112059941829046144829719639340464365616921600068116840528736401077912600825335604957358256345110313875253598511873113344244054230005373682419672884837327739190446768079145280633514165243610528464168839890235296222274345152571898285009233086154655322993716690936586536067473726584914590522553021215704587470963865492742020342997702083749660290069632883726843774261730389956688210760316189055523486987561755531732287556919965709882091190614902337942347873006923873683351156555188794787120220602546585338743745976617287332194743277837035416072706078980407975473214330939118593824519510659828890213005281139670015075720398507112316841587801719668384574715698244269833609306568522725044662958999855899641478772866476898875602813357572041166423939523101497359672896701390743064734353552409579877704589878426483183790367690281992269243542693694248971302400653460432731662554777539245185344320220323495372838439035278526798338102228644341490449952252766715579165462881189943290153801830908804415950692546393923124362072787188770740028867287152094775008104981196646951472126744524707515224553075010352515936571610835590647578115526265506877734116961768263315957652317876543542664327439604419422108622658556160366461087587872549867204348474829837433623972356506588556048750866174992049416895447928825108595246354416750190142753362010106864019353233454219693659065574789321537495499115972635371647371737541919011010519597241688572828388015620010553345960352278806802319006996534063855172693837218266737709980572510460833144572282599478414372916102895685672174991439434973429235124158769610026200357362709950623796952772564860699718479788617078682870053582060568827238816584500595820089241981048593376911429309709733393882679886728723427032950061155249933920376141842523391151848601669514290484272526025110936244296447139122077851568715870163205575470480619914678929461747638432145707340943524770248514884877278396168515915446026093831370048679743171961118955852842507225755343488433902316185122109552999941852213708338714480989324850397827020763730092750286906406843582218186072369635906421033657468518588436315524893121478118285982344976237117745850481547222579150601411328153635893562893421893482073348983013394501814913335236419730350166519581851349182316975969365115026603669228647103164942613586063324524258666857760347237463135603475305806331699083043934664579828351781031092071519313405693710862733870587695626538267057195093732819440217201806462698314876398791083101108658362674816282333761534308598200336975606189960252961530974208011757926736601031922569371058827611834265564822444656510052845140111673459794622980475991819873258605765393635913326879478984129514203503926056073776619611676653457764585635760394788249307193481665160908667524773632907788146343224968926371299401864929396231953798662888037459334601043181685125999761420100544125334383816411504377219635129405809262448668973355330896386038090425494860256761825048685824405428695419300346395451678844832641944207088538955855261872275790908218132693489232961868221510662523697230028103325193782020819696781046194833937389764085549094341810511400164763006129966731170387018956153043095504957796388883699150504243866239746003709123266082583628549443473131254334991660436418190121197805593896858114769798777295105464780206602997298420195893965583685674020899443770887503682892841434715721926817697980079266975154379356688635517283647405972361623348019514669866314671869165157700696479544263249238868800678164842963594779740259382796616525017768552838249002060625161131064186627420459188290394328663256838964641402879256985625480281838431410000163094346297543176173675997813288251746926340795926329446629857144276717910354808767352773786348097114133669897085766856666750797087144992488687388470676220833063671428030233985864008532951603816567561557173998112687063212697277056999483492032907031492217296253554935488035577512125450893208308230669481748629550649563453801735512107432507407027990393237649318410471881917692225636492191238762989000154678140864241620422362622764488122994092896563930079527045764170784325215617715912121134961572744864876648873868107877929757828540811618395307180693399285833995679993874169119394301383296315008394337468825096936495512921085252667717914916151323395799077778994856790383410373501745066692161609801043503255069150315215491823522643736553401264328594988574230081312210877356090295816728967046256097515279031772101615148422759544205450350593622465264544775492761835232770217348997653566593284744716824892661318726106766736691968575257935460765447524636396370491797743773299113683416855062847448796186445229088985891429858001582619494315545659676055202787705193473782855080526830245038732128986016245722947890969857359894497717726362134633534635577779086410048541129166951583756279111608732900896084411699620560094238789860298512788798368217211396718799302154815660622947330017352586967153004953939956789402973084502108327336353213254975774575083569386485587925524783066385947968594716819322926672141470671702732768981958484893389196042397186001468548428900706720651177991617682126259021651323974004312846748474185607021334190373795817207693734290471788134899446849534550396389448200864033157010524543020369254552525743046952338456610184256977238731319206049284053422347590280018052654835364187331914261781682537968608172964344909726343829219265574213640811582810775311959174917446962146802099266943184778657122238642026232230587273782855623042971643105718179228212948644769274394690354725650359356113323164174734095229554338696947673373559490209816244708034016919107634342615315547817284635087852967813783128554908287000787244769181605687234204176468970178069959567303441792415771313780417373647835911243106556298805407046849733181205069494859154384491209677167113299054261368215691759649289817813329683084909770335147820803568496389420959138792773024214670221430863791338446046249141048186839108742980134435129740937136151994496469172224356955389262196103453941134765448238459867002503855577012673098788207144949519227851483135764784594702363750923573460448074244159771865326391032756437327297906034144720487245998779803894118219027191449339388444950111051761936280746156655909221513684208917409337635801767416033401993215172370386921207904912056963441677763720735290799790215862603666974288540241146967490272557813843509565034970091608145689464366722969157184125668202838214933010085250547134990810502992533273425620756038415863072991841678083784967713236025310150427722644256469775810004064511200380589136651274690007577521515539914337160131102558650025373638709389112486180416134289396190381440788886666425494776578589808567791197898298678174216803125971080404801842200954448702575865528341118956761986444273400758519268196660069200487076293118156744709936311749731361813681172920977268787870804887218079763251521901708742824644203313338068303570625943586397358364390476839704602998425541139836458236440499548189724484412260651952463710068132411208499149273880805613319196624033330557466343956048631247437196318767394634151070979483637931844592961194357534365774615065128602237246317522572194230082562444943890774505709627007795393828097508220023837019563604993626815909985329386295978638353467950478815410437625166709549734921139356042584307514637752403006352642301818058224198744460977140931508741347537255515016324978056680914595035487866751043105941007174940460811547495987213419555732224036122597917963800995367091488653122384368034501738235281477653151882890012149556911186382835301523455156185915726253208943902880883006754089070688196689198936986985739017244946089713846726671378128316253088989441852236868729436184483927522287624391333281450403950078627321940843006424587868230082266627881922180953989291208132793502722489295138862281055318708577000794834407872752895495669296495050583892035675369063551168934247808244474743681328592496180906261127206023623407506471441774514575285509341988725681265886916786224794169821971927277522857770514241856302609959011633850065675563846213769039459215873047865082130229011413829734813356027243761218461868984898462605790179602801591149230586214446024477743921483463971043789704454676599642338457251264628811827238676660186589324378364133161139617124787035409144623177672022744559834945199213985170226244888297509715448412520023706020254053388109902351810433532413570652152246288198241000837494820564773388588703830164865736603533648335218423249405050147175775473310675177502514616216366615060243302725079519467686989305256762906521324350305247699933285900311427768572296121374780280163593553898529018124408854577311679030181027074344804425096447292895373819058708629559246446562999434253778345168901138150502380147841673555272769852484479305347773740852692983445259600179012975724508507090275039920539947425342259518002658675904426643292447582769324018648085206252667653256391060652688547492393517097960521379315366378390445584596516669584571308147014929002539459999828145182930575569437360222239511661601583072252459708686006467726025089078978836717768926774660451083085524929096155033668867734264252218784063184453795928341110287513636441106311026664381797964565717873951302711895109193598368988315964053842349462972499000484390665728007864965480890193773801248980340473815303581294889182504400867001998413061275167794652035501567433365978060907214829271263149867021093346080544224171540536500758605636255681080076138607177345441219537945246048974569443996209388718181055927761550863617997213312132750385144170993945613097105618999158080235885906370322847853687254500492485134904707232363285943360459747661615661924662478505555445213990034323798827417479347602111930669389257378516186196048420870443397040884478505039449417916767033213057909623083736007089058191737823390219468233122917867862783693858696663546128797194319529610111571081143639371371903330673720647829078010838165171121060824961435357957524793327008619558845604627988055268620179511441278403635948567211894086006225435130599856924886835398050968104151461267831955096002099714011454968131367592535045591137296583538752807334340864507834381594458699694645284130062688738735081555039555645702222113536865342768550862719585017972933283392277866571242361880728436893125622531051560646260540771975076392713009626346777337456522806703266611145878081344968134608300057954731442046676236580389487612647185638448424366909804531673257863706540233435738804523257127502445127415457534376060838930631716618131238596928791100120505915155349494633253796818577306269440839651729304289813427748246365969413912729375816900283734335000878754275531937012532933223856649899704140386263568062417960714264927641091519884833042865660287256576844589183101826750555164809026806801049247459714413433832165528190420836520753114686813606637409526960083503750395613144589747269621501566858557598253215804029515988228596359842685809060253044604085174093162932062489410256841430341325038991224729958631869972401037767341282325636361748731313453240029322057211489769163438121899397381817208409648544765850711429014815135324740002983495118508823183779423462253126397924193738042010062414774401768540260549975460276448929289796365107737861780375440255015066553700930721004952063632175487875706533130429091386024805961754602717807677894311484265085260385725138886235226027143136741683933231875306852671113126804922186853269380148838423072070721146237699886782333582215738243120576559713664903369163681965079829493999416047342147971416487376265709909670234395398549936040782405058435288683113504551096724714766672359213728412022454939072103499828419118923591369752439404157300158826019973876048936296908958572570098188720316337657667807147332596391865558563790653724841323956829325671511648836450230003218104109565587021947300995444944743883173849182696392358299454491993523605768788097666661076682775422429331731313066766321636624299046405035211705814191733498721813712476877994726049781173039535486834678053203908267000205739570528749051210611727848762003041574328576261065674321097649938648694672516467976528573171190881932181770788834764373137597431055636203480342598506985558536610731247037875031854587527352194800197951312450284213515456362625491567189679836102015872892956215373356499685070796416288150375555737259125841880818619503436230156978074873432342993858951563714014936162255343749311004748918359343144475626625865832848523667838382377781705652077616445205206900743079293914186539772845926165355979840363838190769403176419792167543835902225843048444094698970521595853897259983831024795957648221050072174615194872158690798513486464901098283151876942390025167479970362051541366618491948284840916241187621447215640707104682270081606745237719630978000077187430898679422644383514403841063439475636316292510973497713216918669731111163332810180320899363219354830983828615099784037011847241958239979246739242483182560047014110591462771581898518521895393859959748601318051112203523890235074751701181417778554854943857619796382122952623246525009293369611310448135420578141179891481125092204841925394401186413503219452044079800421539615468841112006707401757559000856825619185693559968827377406099132926466468824830671129043599320085984853310518832122302556842241585942352970240959627336654320250665247691921382887275880699027768388363619748477858117099263923149293728458059165855621527522613995157794657002330182173790495171817689304670188269212319031232580177757956677285768133995816509734386181785814381002273347877455967122066604560786638752184011638074731918301277773300993849038653087523785841567475859228242380304567029580015047053422612521556117530247471073495690635397144695694546145153069892541933038353097214680005812210795857245791677244363044904457888739468511588302077400160480587369559021693611860411909416703823364023104617021609333795082386810692479345145755422851256073205058442014831229336699172315998315797764343786945273739816928524387506723266384744916924097252252675503233238501765353739066609550280681320328215794542520396869937674039287555820356108919522029433245268063455404969795645441942368737191671046037686144096838852403448593720761331015245631888573979188696288596047680918814356596177298670523733858996749350352588497533421042771995663159070633650203398248089081291619825565522491752095593154690026272576783471502771240327346224744464519592237903056135129739751761514721639684879998599108294170073411465114211603423789223314494278265516921037449715146331485970421117754973153889878112591779103040170589469816840518442664568528397123419745549431524541684514541186298737965723987349864865958283195201879524031553774711370408547068561700197068199565456148956209983661172364313268114566843208635269790454430531594334588559228417501569501653455864745811986408782481430821611392062504478753509111798953603156502763282950424595159756325781026937925869514512380229009399178348520810090913114706225404909450795535268854851878036512083211668870836437373377921891896127304657671830788891924965801056693489170377907377126202458534085321819291009258663587369018736575648008761575573062591939005322122068381395221012806627161240311720120258894371091534991092429312483953393146989927076407364573153359618018997252641305720478796620301831483713753010453200901284514914461013958245633714893862230033341463009608004527479688931796534856063620710421742872447497522552130082735292286037187826910656549486263347574780570109741746834316082458868266715592129719438219631619376876033158156950622801386214146280044275168137629060786470210982114245682569555705006489286420846436093782361206274481572101054323042145766772049221839285677320345273137889656264945287769733144894378413784120673968172125487039668113991693270852178664323464596186098135618862961774520370732338105564504256079787776293034925521300233805224619744671627991028955928279822983688411000309303307636470227727610293862762089105677746101596260588244942466911027092108239665530816069277751248511776877416762848248812444708300023567408872895067363743690926870818104895789481832468026724359864106030445458159762911435547800316751396477285049375715427717446349052799392206663814216928828175778263612902385847566948087142692909647722800563397761458232906519815370936950979012933049752535664484834688482149741213668864819252327418423834555175536304850227165807301360939385611880648485930705704690367131460859497743202897465701438824625298716214340931252638642716408594119758892456046224584034774490140596763958947883090312480896155323166533374006442590501715820558202519431288698955053509416910529401942071959555027757952089009823721497915067165334530678529937278078454353429889509958250248978417125458215111467332778099905476242442984841183255625515801160102319729009673838433963803443533431563846048028439573142011650047454675203025810487365730923676797738541550285035915221295208980436082180534864633583742672467776662309329610365395263144347025198721326418817596023342673836086347822319196239478659402229569318420182626792316993719114027453460943715410627032114381523035042000634234349413750734037781902526869393678425925249371751420604052498108267337655952493119734952448946159562619541893089102828413769646799819330302366323804549479933610077102504147694942138708211640587146661039522017172191875924627323234807907132780543377854729720543707665581450224679189875757219253003502004952719223404957426948175222271066996592845896008175596715814027718947635754093640178787057546195861520385610503563449369297107573507920584966636320595740779213014904377613330822256451920079811523395253021682589035710316415178366218500746640479449618006875163343912771943918632516500512041772882149365574085939373038423064862750266194701420524950473059283206971207652414289166568708363873628043396208205893107392312441962844713028461944480253696581112918720096968699020244251322858001485168816371762377909219619796968147080619733447015417842660764151276678138224125756206960995091407400908884122152651672752725276600265560773045253371364446415732976791527826033236590450045817280161470656471729615502553313827601970564120649267815524495662927336960039004641808729573316704881086548770545443407220446609793322166951365571953328663304347527578867762724690873532455882243187615739896191918114446984863185264144514320100315583995383138561784388558357012382976709641669636936312178049165408412395405395447621614836068813264874742216344134071136747916874210467092315749574612480625360616382961673695573119319386796345670087574466692051046672523727889253867483338162777332533760185497858539092812087584914547853025084722683698888956457677412120698385327893688159043457443906384892869173889361703091938461944555623835073922562931983648476614602842262569864266181345550714799958389137336849721555930125253856886605763342387416514055181852896298060586045977257278309297290367772586670128256787310966661605048116516057715946070167817959136479327024272751933052187258237050337101911185317719045474770482932839885411683348657260720083597264512830619204898278377448250922426919049802956849657242650745425680995237233853129039406886526414138087841252521110069824145889062603457538345002173822687085098271976935769783056714057104686502028675071503452187378445344810164100897531611990351048451565782998945846776498837508472766651375087552105763365156212246911880291449800384594192491655461292925687521599734527884504300405834935986355355423591180737404162363223375293315507014957540897451911956161553466469392445699214112213935442638776141435262905108220920554389093443771702508455967585792104533918504620571119629326933520516539991652784485133449584531406168650334317504275781153056018801820621546580548644390599888875463589655443524703310144998079673169444215819468758611785398338908618172234345013074428988836767025679393156380772227257012837916955478443726397112609020053699122252290495018458057636812137290823147529219318143478500321268576723656314019305571426945790459656481163480279747581774858467883828746810953358236667704222571794287019088349655073034055373408492827129400944025219363365164286753630988209053070506042675028876189719733072405463141527763099299661195200062822238005710713768028112544439652996060706620361623482047350816260943967567459045332289339183430714783693326711518869708643770251787573704415997740482051271822020122027654201661238233390221252621598156498426800840744378860690715762709749223183702929327160295438167948587289484937703110291085246020180079727222384950477090926188895739747307735797419416751116288734674569565745313416314013409717294661913352164859132077569910003134469689333255174586909389456753605150276485798624705872756670816950064677896116237531644424806953882144719913647714874443104375478836405212495036142291089196720762005418294137873087277566002758964737846073921675647392258765747870326565756882148317167830368693815333032239943792160999283829424129764683981955204098955614384228860657890148049114903704919761474099001755979824981675195811051506025282524830791824394193384019720155035153708810164481834379104163004957262794396256262639491991331977333195880525784969193235319089781679445594185899483890275831145191753011733801002087654331685422745955057897605107091007920418374870482174141971216048773133795981500180255695169743194002181649523994804300943911247884956505129566159547637224633697293146860606428620480274746301312840805431558412955128532269751159306478819887765485523826425432569747848545100147783995390038195475648614085053286192284880694963992038518808516076391311588985179301335447925981426233973028112605133808686109592742819461907566015390072739736032185155770576456530658911730549868236812935807129277577797705286972972553860559766545527269673529796655406562701160459723836596051040784066756021363958920901154774185193584022830507189881629353228515403268270677379914536150339537283812239621512725907744622087489048838245107243461324022375125046404603947761801941081290647895692455751699253267735132173059885514897981382180175164598922362328429511136534234741300163807254824749668937509132665969450872583625086908440908091049005641529167943735905867401230917269529747185043824813096426983927003596293992796125568610374691408201725347801662920978672449951720229312328525329135977891726509154386702200267315665329196525934270128183818576774389986433928785105608072191623403421777766338535959769132898620356487699249344156354874426540405202220386318768158649138623689394563604519683624011120478275836990377600558104093677953945051316163352164154555019516040577182828085266996244156440476263990834430845039157432417312429858211448857959228595818696832576388309569269190495178095740156581812377852380391614954688807904480735006207031200124232279764282176397068495708903867544067604087222164166396297621263557369967203271875511872838805594124554080936173709030987896398597153896272998852971138594649588941971877399053708262325523254449307937632917591907982945582575684150641848365095472662132042229943107859296287212655140787954931400253949221209769726648354184247423117068155548800625900676055066091310159243239602421864214095440675258186665197040393380975194961789612613627560806353723265022198946069556742820523046111669686239696867699566826706480852070178290004476793450352194368069126134949250548275320083187182863369130238294449852745999301473539117385474582968044568043056729743991652569809479592505680851202446583014240306435078747630267328898909544306690229023489060285749093703305358778333906227268906206655388694311127823246891055887948289400341525674847199958116650685296018747105619199471158162109980479793644257582122041679530412707401757060052695962334039815834020430452987330684546285261636797968563462962538803624505771143281883598955432422922396126725163185183739741031435482481125010583775209920429044438101930820735040151094434019444831519180446313303213621114562190799245405720895479306019625081551248021576959441723935072544719963610750748743485983093576769734144306275407234962623086947247388299861181442263514660085536645557812692658619538823945287197575594744222872236684566995972994946451707531101883755312874806033802862106650825866500613877842086053933215696943877308538833101688603626348853786308438010698605553919506360838119473475806918875127146854768924777049435482805877726491071691308394341733443971044783824578681234343130371404415477473409665835794485818558731289257592789946741221110428562106417327272397487090595540240458006413642064866517645386837815039664951173404694469807252075773715304829721627760584510126369018475627048619175169381371484668164132056975796111958563245303887112486638863986069295693792487783853689255227986615741561519471592153127711418508019609073384862224251839270456790918413587985839217486268413271807383532121779847126558741602010399273389244975234457303621452085253538982726460212613193594679830132824191699213062021983674342090010686934311453466873590793696978250285667810215668614296177787562834952363989376848554090430268153209622444234899189475294406733696956366985034194628383546282785956418731065101889901146831491408507156037343330099776622250262961311708948652799389674070685436508342615019562513018622328177468293683989008929568135889063750114657090321500645733776890586064147452233198110297317741962702046836964245879071417821798552873493155630732882734884237996489600485644759029468993501544393417530419493788692503071544655353890474247601522335564131344812138177575620798531233289762669696633215973598558051004357673869923290713398716586633281893648662488578433246921899701483395136833385665609929802758660580986852662504953412745663952043675299075137960131821613225180607349202608872542713845968436235731201014436576913417044775082568103386248355995090085148652966670830027000014070303797978476724192906245335047302198678875990001762910247410298904464895086577109940351446861005904774317437061174724557357355436899189116220391930331449235716345507618075418918408367334786433265482591717000830775163337909762375135538938180761212994926079040518569786951007590942591278007360700339645295148411396902255264568093010922705390478728748737811457061543793469711726695832411609561579487749174499427078200933666538087230763506624077763991858271002031645718273229597992238624936801915493542493387972428328077511158735520740163803793496124079370889090810140984932406169948563714708688612214636311914713168885179865029115438061229171719834576622128066681608999010429014816485993469901929631800515977098749584862868021383077602197126759038165460731534116072800891638549219044738660217926301152070301338737357202769842377558371499999530756074010266430975525713138583932141730898609472141842153444993936404025222334678449403419645619682249820804331273472609052985643723302362432603920617422688373995450120533829386970803077600773290364026416051944023826556521965644993361820124077954404615046288074462029968002601454033661109972735683950598388385757368500009430465329949319351221923557829892326748882651258092382707676861750967955928414993904565332273295837411628898890960546239086001992564446203393114896551772952762347173306437508175067859518283708811269540462350110460054502557094454061400872261335246195231212272286313902221979441500272168580464896689668046045148154053348831007462452074436492018444362660851175291804330998031336646242236368308323643867115865258037196070163602156795202763355821221695179416381708074728868339709551339344803349409857559957262067904211137773187636152388335673575243725074345456563029249265675821696189511646437481559480556961967263624826767730598015559296784073787137759731028165926980008706216641675617485451014150445286610520099841627963086651767986692892219665227990070461957421174075424767742975803196059732927423079527856620512268168372333389811233374010839434372127997069394531292839450667584709590374139692050905658410584989246448511616674126246126760363597656843476767734129908342358509363947810511240555438010531943592283820211028217456403645809266896639354251715738209973856007757463778630531650099098364166366543429199963884879460046340889023306081507369552650615360633399920137718578955292433120770176410784195550000669472128701289015162749912148469876829963157549506527648270317519066072017943961397709284523995991462503367803830185955616842562168407236177444836756944591648984929082316934412853638248617613614709384326794958664288877989572683384192461387171614489807630460892536306869095768575862908865876602386136429075660955471244204459378356291090723060701036296234674672578215849148305197983899591852406010084888386402047971339972360705657545709728231247112583507500373172255249583830450870498979440715302580349354637420001063777783442249976819473376635652164912376921454432952216295408476426594434308058491082802781468757005136489757930399075398617379116987684912230530514565035010651892172682671643394934316085221433712172190607262008996659005337292803751663422148608401587999251945842095963252587052894851915799930725514469363836687188226214809072545533643016919756111180452026403699799196650785413717575111528679221246956906391788578782429454212197278264531607836772403899581625637007237007058212507042097879959703662123218739032776376611014778436817193117813956651317752480119999793406224231811279463552451319352578259640239358100967062762854203366824254021591030081879588701995327763896740573173030022159632136651458948398968709583726484986807259935827429984352538204312313330071953574428010554894550750833433367542210493013255235570448762485775828156740526764057436382765078907354778956009772200614922142023614527825036665242012033196138732790177502205941724619283424211119140591987315983984497883330421679441863355185805777642019342204536429503246723341044520931832814867640724748913023257183893854697094532325270118638837197336721891045002072488139692127298576783549389052323243752447983085739417946444504306841480438998743089892050930888620022996288353377667977017472592537748225258003118796722858573281226828591659243905195314031317360424415325703015306762511925622826266804252551801515830801054849776229723907858500600899020852769486501790507758600278001774831927938756172053304071866200665881977426662592181930650139042262965611834363986775918267517653505020748449838536828606969726978214242009063183104913837883339038685554329919154246232768367958528617114801424875594208829519888520470954721724063840768511217747978942601716272130065478177313463427575672887539985236571475240880172207526046947302477027866365329415650675843728281005221520069082851752683815500674908216764902973542432760429272266814141497463266824711178869691502815284255825909481398389189726247798472295655993580727452386428915144640788660096061857905379219348189745927928398846828152074180573498497453585357840706075764985373000671139227456572164121079423590091407871386823745205834995650888911883261899911163196509589413666126365880382364862413365368821893306143469487650627589395283443992441954853955896451801103258764359408411007731374566365473806699401110283890705832526286939879994008244576809374314172584299060311208991069115444638932192939348676369015145927258251652064781574351497499149902504748309031856923594790506570340042759277719610540234843383605869859890911663610326584219223988832549070721412830089286324862626864022050248337994433596439818831059355095700067841028781120425201067102928783640993013876748208441530257983991657271063786891838188464805007086789411919383503166002767216060790363577612219200901350470659606887918137227006856493927133709117975013351439017945601758370428803654970774998673467805221159002966186387100820202107609526564696371748629659636542710767245671515131884523503767775226436901764550102437257915530081565477230224903976778924101784785783873677931527315752551665366853601127937140380889833083746568056322945118508556945045136565535802229608460819807480798441188051183218859749904299546868668297613134647791390055015765412753237319276121050113162564660703480952359237571388614297976310693541764404154705272921707781101167821580897727850438390076294519734354156274660990581615342881716660675975883499696013281512420468644289621067889796708661703866042887862236894711347845339474133038613981588852675374720911691954943831994763486745076279312794280846264061568049006566695230037039832958078563805007284061556231258906127193707303072839767611039125540732315611816715601871230707130218658961096627036735110183596671633466695306832116106097655002177279771233815569430008169012577729646379016393943116921796082554045833343918340749405107676466582783748693480289788388584196497477489057358745224695510676451071502626879762870157919160887737955896606646696127695911942654389779636670519999115887990082626070303720176553621249865618769738452019595834199686077935944908109076745870314787758663890595884080326794657608606621825802580006353501515850844635621867841116855987354562180329337060835815059766082831877551365263804711422540788535424589787898439560475879411584447945580205292611627620095274194976692690035830730639205106304615048549019032480150593187719203107660188811970486559127924593370017134398898773621274758798880672996489981491299690606238636528919264166913087268450411769151729188458644100638777655231535971122786930887236891842149700122665095847071396219758973662828643917493355694871084304156340113451350312272487040624567427427684584121142239970626443494445802546734964798818276343330914669167298519936877177094305613050931390460082288088861960647870480030821399987314946781442821303859151443845998935172080602792490847258967846112556929683793428957977485564463538468518683871361667117506073430989338126514737324574478584658234530093110058924617170785516301558999513369394261215961115709448661181115969694851477587671484144947064657444547554922644791196818114425086750765854205011269568437760225498181230201031456112154125183822507437964173457453773800699505357270197453884669999996005989193681187213545905483217246407284419054407899801709349113672126627216589494530355085231999184214983688643055056277235294164776014423168880620609866912627227398586149103382301634754494596383078028839342932539076193192355010674259834839236812539629440174602458172986751481677910066585075811948320516002913105139294720827999218421048289580418727556961373209805612701507985887736130786935769349755887966817719384352841962252181209626040375028771488987219691881076419343257182303755895784105811397602286687330518418346818092392554235003895077900728883426117244915633220044601094443018416478374793329842884514397599171195139919353174927005175149436929352342214368911300878188250132171348109319275117948181758592897828016034748181684052913490654923353922284915688297506178029797403470609183073181005027531262228122944717852280417596644364138439433259176372443101412469531119433588614987369078131612049205756238255995294578213196390912162292722297316786338401692236022769332290179562558543454824215441882508480746227758069534117197830823849071360545457080033317206924127127211210261417466501492467554569105512449650959814721676499653408937223334399567277503478949303600770164259365644862886241132564123664145403398023203638996983619011145625983895057240242659380427492142374977599474556011945576987220241310710192563167184871029559526049714214185114483378216048471451858986269651562807353346067849573147861634174441393384692560423477481097302746981743254237362247422809736050575583701527662765542598821703777385026904222350585974584510918034557648015508430502272691436844653546315795645505309351617523111341822624107604469063748867983335052801746242330043999329283821999275307390202622167069227376431889855732640044940970869787510238047840939705463756558112420676549196769076021357748784468715325443387410670585322272359748730775225364423871715571494404194533903625363009644034916262283196332402127678880686886438365157386034531057971119624102838006770369142837092832684470818505398456623981198606988560882826640975080198293650293658141740560166130563616870419457971011452102501006943597565384976446410346269893402798623163241139593832770351848146284292225231053156974369415597682299799070807110514242950493730459354722039324919709708288408205079091262540676638802909409936300712947054161253353861075729342393280829054208149986613746050157797217437968146678791649432371992713014009733652602385526335899564143404175247184460348657749713775523140445048818364427820381762772926685856165311661617630206333378436747385018707860381154652151446550873246618659938432041065357256650647291488589705206423580991074651566162569772693374934242678441195323485464335042600575992400775459064905375920941008192802480471141711180143643824873876530646377183466216545420625451705462428612532508721149248997882298930703235622434223499534624810750532264225971171097819807046653869376875847932830356291289392722283923424124974607064033258983342631557380101172523651050776469922698601359191247027481062190111141366841426067876890538340384354379784310289805300998485660747327361871736792239734924576272539478494066287974240926716056563055215647974908327319325116611352702776052708371662153295742708511110252413412062030079221176881236720369960271948473793846512869787887994929306159244355116468480564485267244517322698710251411365398854896341989708259824535706665940839743665687614054739931559548581697653033092264093040702316115225135008166544193289037348543704284504037208493838347052911579061386403234171434589040576924170601026750681571135705809533858297270545326674157898007945660463676775378424148736765375482865501329152246341466218798563867179666346787828414807926084792267257049375710443861642600541639341349291638306446267538984648729711197451139615154565341898707726577782206334896911643771849330847437621826546373049658797368108061512273964065571799867723084844601184836503677734831656585659085933605241211893286407327654628107457622300676942930339692599275608566539996811922449563886505090418649385004961122907090860878093719878504413195469786618570722794201948419428888319421860466258283266672274729038755125027644347522063565512074076085350827481836850152676118251422906755861855839440489811848850751850135652797516063501838273974968438313096489231615676608487613722886542931668944088454311007078735388558804790974243502390834230059859575386730347098717666925618758176512814031909469823554154158002419278403616200173403079347065542772384352398259317966149188851283549982772391724631203448318317981119989192927502865528272790029549147779293639931673485346336590560765734386353198857505271036840187282269471462697788371826587663651932928156414682355700653733774342579614356684816586850173749159818565247278189172685645217042350073278245346266037352172826131664829743104683824959156713063059889307467436940126447970183303738985297155539018470161347317599630871250618221739984568895048823486987316848110226207613613338332177412274617017349612181940182831249289107673754872528012572743486178826825983862012244225018061628651474320637321233872316791146812448944341920936127640877118977308964632268040893950755301216644450823301590138677302753194530607338439534513456966275752127362242399119933663518758921367276572980153756711759820566623378406499215110080148871239260342888705412474205567753105460718006226843677423222035270548420298107695530275135789026098537143869903038023611166563436508333949259133801064668063681791856643477975447084615466994866066572294460610144466994446204311203288386715247438559815835170107616612950340268396370254903495060420442320975875934652845072237581214722981266042774059579718484444581459418354889817976203064300755334496803127500641069549851409209614012426421444714898052236822780955924958539808660765555205814593951730252955160504118911438042549180985694904096797601692885040960812541432515912465557554024844576222843627097816137531199268629822330009337690072387966725714591328940910652929985089815759433712243429997159978984355156042036604584675886377670003543336376821039138228120328740520813028390542376898217998229683629659680752657738681231294161695766785399333331511957655993891299843356768576008226767093709032557771435650852431315191515650840886633166904663120271915233544355589096934943313192911481780280717745993912785929260522900040277528976673201254050011221584540488191785195868405226868358542223315000433067128692659096593594655723711845785438724865661410942530099494830562444989728055288156201552980041208569657187520980707318232085457435763461585941253921693136618758473792902497678165160096992838908440025146641044895395268031281532239750808222537310437392522287433258336678046601284159296779707255483799180431034830300667451758546725363537277775705796977929845556012140151951509143009366475764910634653567913536667232725628487290556108895221162797282124849361336437087172277977294059104473792961319662696480247272519256963352493362383444490489365277394334318364404206637079441842336640177069505317515532574072298223468412790523465997211767803306440858718770443055074751237203243109965303322171206556520369961733175329479503634059002579822013549842385047436152814273672992517921477631566905349624507146276220834251826313251039426807048460522328312267470475683469701052932611805904085056687224419427979272380754971275009181451795741874518837260595665605438235067132801357520000265509841027624461158187286087372709445796814976755286031688365969512962039888487618612663922622230074699698905115220011754102527714427829979740553574608549261277432175814181705474525431819679208639650676752676136847159898432633021822970157088142771655791154753921981870546197448623453085589489454663909811756785658895311328948660839702270596916397085381762909107754652211509191166780701096861355961866050480054305258228658114321196787104030424259578365123226648513938109085909072185484652368095823346580586424710966184260413284975649577524054663528091411864125112088886454215574392210153309413392386454377384923542124661366041322209086061764865239607844218396492648341224881686889161965702586650750386019077747340042144851929360233508031701108260519922542003150597360867040091267492386658980460662069137374519076500915909831966103331095381440654928824058132361083173960429378232247696779610793534845596281568262363789838981452413639337189646647301893473535744830759271294499748633193964535982961808358718895422656718922382343496709575375726936142339512626182241372922921748052750315562977804802071074331975256273091809970033468446605158949889344208088621316313931589458882270406553130094268328825672763313245437988317506001578952882078932477725510636125811733710375574874902416923245346038633041348116786049606555358551261265903547746289882734387004228605565246452344302519041257384939708757030778364835771533318666623872781642709868962996642510832659771915286600494372436569445711572029167069470267126998292185314475502046889527634454730339647587172359517862563704326379752173295384110162863629509011527264512363725660773252536137469318601455226755441623490912390181210253144541657798480007299864512110317668423140450359122822851235050166257339883232205285585902985267929236507920879762874334407857521908546674868367727261409685648041278636036134792532385123155754814377913501110007938274222341528604104978865995206473306548787324034217615779565293347936394735369260647867942885390754368950261614133167773328682358185060611589400820250414230397095985579012425424170572078403435664296574729414562113922835584030500552752952405561750080522318852257758717775626628992796989551033022609321851172931625521988371198290368894376834931057554756613352585193246456326024236869095366420966548560027936828013213615390977030969801862601070980196183793022547438075065529039800792345744235671712707468511172970366288079070128746132270718103610926633259224479580782481969385256092978748310056412909939045083806503048432037070504226782924609060412572001472989826271690874192626685574632573007849531511880535844886886136180191540763212155882633349295307296666946039452489291208942690384088105712947703960010453441917173944401132368749908979551011662313048302824840064411643852568934812516007485754811819989878243933149694357598077056801487607923637614253790802146919002866914955180776291253865914831951674634086592306353734246467044971980466147619296897144939842949758296297325432703017620491784117380871223042767884898521193597239993573360771187249469752248897256501143826451403925274403654688003600972105626474594832566198277343921107793480781025883614657408971491079699516094831233408968036948729198769402305662876085292818435283699393255723801876349104004782689210055392127756533087222165376583842751808813356835917622208611668634825464215424110861839880735220872037496545197541478098159755269110602245239817788466177115947783377625065812163911000061270512822079144419757722189447912611546638134424682358853136252401151322855346869116186327285007757109436667203274121350887129678537298197540647318666603792726740878906963760653130683097059581821051642501006994428289005492876918637381223997299020923995320578062106945031980169186992210086666376447218843948369911488033022641516425157674335185842146038294489821617914566635673478246077477641746055686136022086727019256073473335838683206527533460557178360488452723491872685498275979194387235410423632082884726332647241727926789071350638255585662872980671770966674330660567561318578790746500141975850641283456648001717068776981886429157844186799668475074912338764777283881944058291258058643517402546212192406146297357213898365934353258345026975036084161360277858265283785808586090753973051151006209636237463434013753737654309750489979020521290662767762048008279397028992245356008792344347138226998019811883547143383295725828966988673209639815723861410415049368063167727168634385738847073372911121435756381754629099303867440231588349660289808433704429196210360986605947327258869571020520931000622916013781313343655088109609944384374864814639659857772765851371741276175711741135092602912026787919089219260341273104594021584464393532093474867063767880573583000808825230555737237423109770347731941126453103304350530850628270163262497938896486952901066484204497938141694854092697219927436873851329675068333770559944970743257414065398144149725617485802595033544828964408119980850573639154626756796178521498510552342852724432785648702442342790930673936708140908000897894131890937495267833914916697442575961839629747932442713241781534634320879718851949232922071782666664839813195199413304301825282208829726235972226842918318031856757249043841873639978803691786410433340587125240328320969411766149280224009115214639516733279168968682112424095839635877517904568605635834359363126308576210348447101667443947974888063315604796492974538612185655551885758078307794927975984290853202584904402545387869295325365694099557294186397452073266139633944141096290150194784675512929698821545057613902668641122779993852595060612720985091850146947070463778380611548756230668842428211062690442556434368462029038376292331248654477861584742122532270973510466345532284872300930291624615117791239251233389112910043312922779260480099078316919657563035354731796175104700332583817067247719437215209700541537465718405812597382507465139033305532361879157907364550219035407118724729890291970809918286279736013874102703004614206777782988490471028932038728615837236139316628112242536887397458710430192067614609494012891728397734306801831263707572578300712207880785597928089572463166406591271188404878298738212980170042879968926444676833496608104475951908192493254668558355576108184043065908093126285016452967418727594150025820183768765760052405167019852658958082302117100155941471127214787080568388321357094207307137166216223583284277195854049455044705190159326162192041561333547227501987130963590367907737068851566215315334408197546277654890054511818361179250495062701255559949310180554924496596220687185990921212786097341255138763832509424034932678777491643492447840640003040649005694367302931792637593267092014286364234753152676383869563740916659894590676098975594817059421875571318593114644764526712654827054814790787942975341225322340890434445531269576272817095608800613522446523762493875231436672085330090311362249471932600694371303197695491354947871145034359391206656579861303382765040492413617395345063623033533082605838531471584825337217130873549235924721814984051869052895359397165402516831469780265105882920286665652892540599414000679249791862800784202321130205097137046820471524474563924864529221756052820905078544251796828024892761020626117752426901890319235010483865582874772516410252290484420355740398394262438099053454640734905540883542329581440370644686165013765349975107270753228162420946943092958646957779293472209430454967946290642680039063437836363583010752126226999104850869036776179843937313627900495088040653305590052452211308630152842030915003450461020069193938814534074701186991273760090424077830316913400570800799003646698841171883290499560673143526871652138069336061764261503240948105964357074306227392063170853333419201839963558501038968162060826986170217202622339644538069225126952504347321492338965973805208475129699801305420772596787535680068490822684021497593948523046947505110198231321365154079643940550712071382324296397792842393698864492295596713150580509358379923011713696142427140900943614544573036474033891915138226845458788410231640993712101384339211115201434146027675497526653085917774583693413210033006892201614546442943740216657013517463283802435693455641413954762593946961178638674680345759405519153214145433464959026777879218478731670078775648036707619617517338449242686723666938682985163992567868594485095834436308329508558435377232675529944526807745415975826752240742364453448256321072938063800742438559868924364391603657884449503072490717469468014939131548365528039084055512120607202974918193191888207129623201370055589770192070092405341564278255864772904353201758284488421352019039347941358733366607764777599396785781021974277609361500287552435345607603916214126968498217273944704242779281110212613575629873975134357942955458250409087667824318202063510906652019125128946336259625982206903962125193427324112610750943635092668188142955532078271486104015147003039643915568035041881733913027001319713103502099022918870084786580526257550885377716554629447188706267988508746445833550553144032665111178132498428066207851844043348483833470085950431679567098405326206759480658603736288068726255063398930293889214167147130737137391810239235079629477329755939985985270640522522271914642756315143074207821281648909616935993508858351339594631490566662431525408520882450381654284169435935719272953512640834898655181826677498812741338132316585953263445619889692963026279077952844413260783474999125415456939563272669054353514257470060621237759916692091872411677565392558575206664142446680567758730301824527550330462839017802766324056690071041531851929308363624327425637212603087192592596185048378695314522594835055103392667675129679521599178467394642197242852811179394726395955348620395539150129897769602674174248244024238290263610187305065107558463608455815100682777274953190664631038551078357118490550688723328336322817529802068567296780258563261816332886281709366130080408107039138843373259078255732826516436018255117208584167305937360320944015617266163155578898011967746120877148459534925064098427619779742614594776276984365966969742314720908036354818138865712131578883992565880934990435452965594473864412469409695133494606135499282108076012972839749875117901501048013245242217935372041303802635650952582858659505454060253945549250266687566111263248492048053681631764750055842053284735919279894087272523927454291165639892109467979776311645762420541177698135468040243371374199855528354455513956384025073136201983261896534770053618502010612614619880502034635223829149861532280879955392713630233533278143793420003669779041599018928447809526387942479916423752555484942711671195346630016554830623166034071850013936825924921861770445905216707312582501162998302594715278852420140196417038349832410422473742157728632208272404296350232823589747088972818725545722157519205814567904564046435492380790200317762585695335318400410538021305002311439013123216579776356154426885227113311464989793881124712526571416777191604245815836451422404108039497511269891017219926139346961853693808359402989200357704629659137169695007384613065718163536681381661210533116259800921233731542086314985524752513397590381420154842302416347906576435426322280473449037075322081138979286588333074129825025157432761864373345714149982164911760944723386772195248723277130849418611837527314730465821973557426082597704648238384800765240704579063955490467258308781539618332122744223217119891128539172321210771860865076724802587896366245561954105817278351118173140385423931053881373202877370029824757778287693136507832825625544051126125408114521133350144141704492164255941278071308890366523458200401093173085988472685697868883248976866768675532944531241868746167834823617577354000938253243758742215254275374145160008395913260814785985650002926278108348545223384490526341434527272347939567191335816429188879793092116567381679030742153211849472266800105967497201186564527382943888053266951334320654902773209540922409932650284206081165490414242309626455995744788827071846940600417160002514219082051745781205720243271855995786503362384052000143825697880443100094313119484497543145003456459188461537754117080387728870930510966225337981412412166367379593074799090170532422126122421401561867833558320236633442638606618139970006503813049161955290977583920016267781082182154045574070431241964075821507849589249552083429342792719984954606731694611146422347104552493084432617081411653874996953816506107716021722709914868291263351437051961439666031479072686552168185283577737310141715943797883321286601863775844606928835879649346735454372738047601262088008391994054813971022163841978504760947466492883342895795179197414376641194248102047073427182440557897534075696509943924963617044327163969021548105122650829769186313398067991504753964544215252543915216527394928894674121971190342508983920124581978644082437998884837656566352220986462055167270880317130463326673095831616408057680638317926225253889900154655261559174044451837830506875511964666384850111179127617966005526119294196607717174862638957341399876230559557677610830597060032654499354181796740343163065756976365632341317089430761718400129959409356074151010782169881930290295999038291963947145799597328832073390464960958507823961207823106083749060633058895800472960065092120831205330293884833379436477742472741853004000423908204925090462812926833070067090315703204346907655938065403074634703277522782484407464209059416535289176642125543800513101009191962012994070161524330113513991363957309274357402120891671067525635223786027449095157728565035055504609860979781813820151093319854782702277200074713786229840903921442479715188367302666268091217961764506243714031404932553318510845244865080633366925986404324231749032822914067838079272241041095951693017470812814868840732404518169783130348274784025085072149814881592879785822310520469587826667246320371485249540461377268905564053644904787781869151059536708946093569692831599041493569720908354173037690423841054999215900164338488716142467575906189956320022272979925662854429559245435514283592898104906318760288794533072852521829692821920324439784395083933337271193407791377397815599916722908053664427382012060130475844795437811077416716684615356643651964882422420427852895693247481171708565828057496077055747275154796607231213815373738045425898135467729938390319960750957129777835548258008707733840891227939515864922611918757564881382629054271503748266674277601253241461286825831730029101844282375904260674724850910428457049865513143923001253452195917722977990814859191714208015170458155886835717317613568265681267901036601260108898901556165242319707428351559764632504356139771844286140085896697591632772799402346746496710498853488091846593082267077902116274147047652703336532929793150472301362435730453337978286521321344551115253805990061009627930237683196469989727340016373210437249758656718455782920085897984565901371355861389000530016292961172828432864717667558885295504680019224052826895068193539449433839015972926926342221411847499108752731259800525984723664337853467831478421869272708617719556253749322277098483695452163023471354519531154078147787805876559600165021128352792684172899245305783839692463389733338073454164632664243572379636949108306456721549726493613813092066761700368686373133682972130553714533922910524500812612619631244813776026097865254978669377028447313090741468706211673971923952481341686614820230503652929112698341647947672320857763359899878177475145919884025455702636018400718837961084840207073908322511764900284458245978394833622951947909039277251463754328357657865499608988398187204967482913685139871840665005117847540805046747036896518088873799091686504887300622118787167083573571410776445075534121124075818174326477991999582853843001728928329745651163315813577775774076540692050264144860212194441266453734568727815592062553013147580774691288367100873988246685761599569578234086760464765336365697142919889659143114407488282264701442569739843398549373183070391942852492152746066319902574356807870124985362782347209167008256093661668202890008297628096473024236595915936512925129577344905733505599384093267250921795973663465947286216418594128464250099588607528275362714993179929718677151850734688542544567324044352048947752720398065577856915650266046139326857370081091701667297415599637529832080008834983984306719423818343900847651475295057206128472660707304173534938010939819202212481546749639030514423721118311861075795909675193638917777556708758597168387856253348464343895310443174813461725098489329983906164319243898679643028543197495973367001035364365419161959145309922219468634655298552839583548164470476476212486882978700312844449081389709933056983648509246235785845311202110960573072809863870319931355500018372037908130890935493189925043521003286615232474941465038647659518972186909940002974569964648489046661895766492643342548575109780416474121762651475280195032549202192363334107831801394528348051193273153030598182886617200356297561353097513473980582657043418248150942525628990150812915301233046306029299129218279259657625034088152066765597538865651602822496238003810322406547624481966299376058231778318575173012903429341706682766521944497949139646456063362689239013868389024419410365871263186711900193194558213690687295864343109997445902548480037787016692384766185594236564653643822885372502888175966929239241370103024327098256003353812139506106254492625039123740747801063153039305336370421096966251897966014725754033857828693753698495916817559455905061211596677974730801641339674904610227271113308691245861201286068773839696805013899406082444255762624555865453140562712811799880568126762120431100357174405864702728157941022395512736285890478456901292450447232957933215617075631190582018567557242180411852718438295900837487785289078321032726013997739197745333860785667636413928208950629341328115011228830699902463495372526531269654921915244016705264197685124688441927517182984796541332917890420193470422285116399663698207236880354995115997929064736606966328292087299926355785686359392526116079682079482637910854943092942098972025055759991512381638827955203820839080319339451681410993950497521970530711905860690448585747186203724192146901294735733964036973277754247265936126514362260150694256011703275551443968954067064320834965285508144085246283900122199961213542712745073820258081608064274201258970803331011459140346276355875618822775725108460178179853283534358750894685661855053752248129078020287342220053068095814893405828663957565894597655347453228049303914906435236319566682535386201135352265384305429315581348975162842569650013314227780396467580634662118562364149459093209320104734740914080072055001441726758805139932526686838263839717851942650904755334661125938467055480004428099653054634776264262836564659683746832964153441608000383636758867899632533875489405836885983058926542653434438958523310893084231659157715195193127463310085664680189938022845586983227022885054950048215063610628395486491772146157158378273730194620635015447799950822753748272909513549395805170454536941056485512013354726513054198602662930405885050992227721198328783443556355893750805282305548505014591995033532175428050787192898268351136405350467891960986558328216515927144778905681524753436790152684170743552022059713779075812342917089458134038633981067470763578104951717178298678137945419850017294551458109756875216005695384535230356313686142376424471572427492854891308395984293242596474415855914215547148074445538471674471792008996409360531817220225188550643776662707386127354680171079865187669208665816583180655250759094057813690155844159087295419250333504251836129239771796069562869825779430864897733222939622932985388553595297356022172524032146531738315837547209944082021372233087118832448169417695563163467906891127373818698900035978554302698901127613029947160387377548893891897627883730459422458048650862936356042491166286347244185045716827945660416191849102390845456444602155383021527057462208862185657115622290426877396262153724823070449526206770922904427558959827795561466233653629309394460318858259001362640838909184843856483744818337902315557261413888921652555640043485459312308549552847415150387684946856541629049548524396214055932553725182000342116135460033980435303630577185022840515807036033600224880533660147300750918938591054369800915845389187882534571651359327558445405765527689667974315725264690622379631678072462228757766109121155168178642292204218496404915448105636241938010873490865868787440337153009552016803212835573694831956818977498100129437169827555842065723067283917112072071699554065863966619053306183083599205209997478072718155590597741869951402909518558327639252784521633982936991184957562352470752128083582467335087297213725716677057224257016672686770558511591420595702697752969934271896548196925682285963733327682414988950944669472333257496966960533513611692840510283363793831257209106263237578616843742300164587928963282860427796715729250094347955739360118099995854367980233086287150456457156680408473439926581511816808573821632324604313745924447653093268235741439978448662104089282246466613772716527662119330247694168740947834732411799083309888669154279600977455407506857362389809845714816827349521076510717119863182209851667992150907495492741120664993706240514445279462596084402512372170973963161753994913811374539349476405152356296254976314576334074459790449997630020365482343598513652623459295163060647564815110467076494342388814769150930870985418699034862424486279340709376455027887957935732758714072025447677096964361486594852968370509330412047190450787772209671613697949874521897748737279626125179476340039688771895338597602565125511733381247490229119412963202799310942846093657062235229385178625959586329295357101572773898529359219792759172177647931764332646686563442133593342999629732219309475867384718002712048136600766566147403333660590985897149031368134547527425792899307883197852266913944629482482864343327351119211948839914475877503580609158145569691369216996324492466285679596107381922554460620761363916249128065971885531655412593287218121728807304027122021753423558677649113240402373004402451243729278323103635306491054358508070610892216916141432054190740075572038871866673078017245587887228154870788105989267237253175845784848256208536148997939688691508422929469829459151099188749586397348349246941695034031810224487688025697706546037362419091106979814031732907257351717066969189699729325638512744660795927646623049410221615444417535976073603856030395551650276000108293256402941236431163768001932969136054913653465170186785353213468894226640325195586887197042241350950157316078181398871509842083461979282390547137724133461401395157470242479063851881009039889898000693541299436627243403004381615808240868079242875024178396127202691240346984120151352279702927092169344575214595321529233436043222848313486131486757264094482256842371199864850007205106343436678193993124496097442763926124846906895474718770036178211692453845777520831103028609563310795930642018476853650685796551069881665411862536654922215476000783084976126260440451707473929217125196219949165627149819605312297279541155808070149062382973612904133765568957545839813063425785950048692539124988885741415363808427835162198013471260454268269395341994585921396781508195057281862631306579697222646869338566730926885121256817027832762749013924039113509359646389030118358927916266889572841239250893851942423244410115747154063634367140629009085395782510093927950829222550692825132965477674611662106339226575243189299805233904455825804032843465761710587528048080786547652990211529591558813639749448539849104778265279269163444092173070563481762593751316817351672085964783385898269351829649185828732990096937341491025864496104900466658626656721649508127621547997861355058513069992221695342401437661709005600131355156105232881299902829781924373198053697847250490849365454235481862489024065721234125219097340647754503587140676065519766372612271459812438470739657868418183353117518746414702031861854347710829545795006195738062070460155597252385531129916489429275613104053332527813919537722854668646622312434435951883618401947272333435490685078403522495735260979747522368817987268435147751622400688668120322770280825376868733232758980974468815380597367596349977883017959173935751555739103696946703201398701710942437893688140840513475486075162926136574929843123609402930420268173876942552273804217448015050010232501519477632757696251512621999671932143368703664252411785549499530289514116309124097977735412981763475278293805164254488745606444968829615122875963462349961152676732477111165275373242434892539264698624018186800269383088536423816658627412897423786678462103980260927808780873556354463787743850575396077487949128634418384925860754516680385966018413399888402620179398053876009341725255603490345301348580262461071109137332595527661135045284372405714499895204534256525560903686926905915998745557318396655199013432216282870884086892299368289069373314440470995190315142724206197232889192458157141891335431612492818307074331822335465360484416015616135474563438395389566881329608473482582159890917688794768846365929099378698318834125296019484924168558526013925276913043445607476611565325773737770599247525708247422535108957918161192942546752647477426887407522363100994723643396308645069883559326350404764373303255912408934368619144798808807882877126209553509051699033767306492388012663205732151012210333418098601439919633028806826448306017230230617745481677433986729086272990688750122537934541362494564700132202843218860335408991590381943661807730394303920067003846828920646554055932418045860184118782190433276738628592970965608650032256316442471522445186715307558077324146600515695136799937703980055346804386469091549209535643545609231628886226031226156370170716234891623793462662441108381909270123053113793357504688780746193625317013192834653979990272290054210599338999443125873724896719165606544140398667981746224693437393297685495387175221499668131858019717558103876902779798397443767020889049019130084969936479826382671717298080065705786817393341561270139107397662592230080732851319229488270423088804772205870306500244075549177929614289614539032638253694655568432148856504960060572761149541555577360875437058520225732320372536823535347299974568656671025257299057875529215383506924806183558029621065516548704690185958537976485858873127109339215631901129216389427346077343049581172494667102051170219051397274600327126507342347427993390568215660204216733829500109330715541132420722643348504416274909425583527440314858493955496381891802009389874839124891540805520209798080380554579892835490627681437723249338168593493048307067055754930243519154417479395213205056379509708452506041493748024897618128033903372003814595063458729725450328479757969454290374419861606659267155812540695651615778486676179767289083856815233908338835093682402072340402629315124779285824279762747875198696256074903497303164765960456214936725256589564172461050588478880916503660885443497848336352877146528716852838354921512200113223741046929790012001900320790127363170499569840857486383351723143748364943554221983240985606277216404338444274682493925421506126095095107756830805896608516627630026723178161081665209639076933693674858865700507656334449404947948490132019922727574699283091880983107966844654377210613792617912403012650208180797749195481474050810176686820144155461477347166871319794268476101866297732666530969727380563544254839492085581028178117397963646304596113326082168987699516443381709894197989132341996550867416666408990540499815628638697295880280365212874341166073707093088124910173896144780817770834046951893835504277574255117872889257997766317929422833634851043673137388014492411795519648825560290601112929417740555666029445115022134900874105830619037339570555617794915127083407639638725366379313790552628023364576145240241401074110014225796632361225928112426727286444753620693579778225450275607433512677903735135803653646819411753294319362240800638731103278885202929562364770120661676644106918506897891562626072216428154657664432747079557702799551249996114569283125680304602046043185934979382797145852541037232216016476412800483871494682570058155902007317715088430793498529646397797323278554091854937605427637544288098757135206593142984633527951762296061788484943211497423917341253571819826243567357275861796323708510880612471471385168248417232858663339527522300775452295074903429069096115121617699707559352250985081930622993742364758034061155084923790530050585426039853808366483842707616220381835211984412098660938213803601095620212759656734937315112720712307443373516838426053229130320814624988355456409250704219718373805264365597075761847497154930149896165403519751499117097114510903045573970088700655311409904951668379489125798350929332221842377123980278016369274256869604030365111321872977186196234824511978503541507089967859926352555037800790798312496157449930790543219563016381785654150151893663940209554772473797343213062075592089392146091918134428300164637858424758248454586917592934245789840417405113446456487409226078136612377504585358402903927564435912547247867173546348340252997268177350612619017991292836809361698915474262851106640511272258918934447822896224111531562973701822620673620071981652822886212165465091443983785528745436438304530677109583295722219950395133053378028635705917348684090215201718409606976403972148288411787707265881069840400141026862500897381774981746503969521512338770050226029221975873481061499725191714145041475739468940284678582844283781621122015265129585436730013356364329208032915188073112586201730178991544183176635983274258572022304022879745213769913276255193223410655163292374970571438494123736634297461008646035222068983153930631009204826546452037048333215352574018818569622636627260657370012991763400593401460770239979598011509884084926252297883043701033347976526423126583014453976679711999439046382042350988446003451016132578203816337965584415265124017078302908372992363073623192927510069817478336056873539997035081985958990480275234991891960186845282924035235391230037582392979796690500058492720062037197481267157382043285819900300680195941944583602815741462458863368900570878739921760226051869265675798519740389544740096839791360727129827878364895548847994205055737185047710970680477957461515038667745341879173277417790377550445352864756561654499730553586270579605780951327723959902442811026073568659200070303429675406396789404034784464129525580442650723036805552406141664878141551855026019392831537429007235164766757613260515132463131408497458966953081994494508620606586751608654746690478995841156849930358639384681812111666796029796275992590411678824863344787320641930915957251095033444499219857901753194204522779219097624282398969485766558743023514196442753361621781002548701097573799966648503345051641787429633184265201627360053774659989766111954225965771982604318445595791132179761197254893650857084044009325750182402673845136340657706233057420071588354636058814272186656595272146893906372638354069954025892172668427729297864578103089646294470063374736569388653761236781630806954362663798245734463568652638193810283371044027519447405499339211044547372766955615932892787340342233426944648652399027738536600511679130834428193066039890340221564904897460059203952401111468488473898668460830202112547076587990662586878331355309366384528717556099831146755690468570053696012056231636779621060586483078562967543821511550200554633837712259885646062364783112908987826836365817377741867866504448422571146388051462247193294086345272639523953076562939989930048332780556938518903516115112161088692012345611243143494112684665990792795425233931435316442862544429263224162220964644411504384838390513229139584774493133299966942259100144978463534250141630908905806718937810517362700049892154655537753223225849184849559445974833586790370360618787789912994559561009816903350192180909197885277192047640656965928825728268157497252824355846199084814643391099913488974055077071865697563218868211706279959355906244799762670338248769738883758577786354271774230137540761374828762209482960132424514448282932680422289888694450789638579883473378463231552951100270370982814311646292710954445838579716974431281384773339985813741316612548752183875093168581488826331567775905280630439232800768349898232709098892926431902859388325070850638766316357849859158034451502971236583016870088713456815635568087866504707264678422105777962483421256444130819185591262669577124982570705162199874022275362924618766280629783210927423788540885881079925182658206865887281679207047451081172017000175114635389005262938411617550447433859914772531927511710169933242944516552742204534185647879170677325339987323209029800308498473426531139828174874859642775026024141444821317097463932020410816723954202413019765207096370015833898153860545615035067926375759784796774727162345143337851282814316911126071520514511788844363261112223991848852638225543379591594910814013319733508213091256132368629336250822234219048988726385430790964079877757299080373591862094302245483941345437805325998270580911956301284009084598371000000433901298685574099992582365960210647375700762928991418075493177724704509562682976539772503170224000008454439838247467573530562607908620979340717427093917677344619196008334721138957940159622767743294267236643455967683968015092751296217137185728402057131563434408691378926615652389749770342177623270229247396551984731615254448788980177039287733732709538143844203977202195844761674111650782732057086958733879938653280279851821451575416878483065787919425072513378723392860948392695134234710620890516396304772972930616605434150727828528625426858286807883158158548604555335798382974376658448328387353333570090374737085095483966373542038217606327887041335006730257497444681740109928321487859987347147488609807750785946495905758659763579986206643027512976885552400722971563204551484035380287249443864892101955079107779173623963183070150900986259647836145676843069423413917735485854125011510062947605536377903100325349797862234238440670384588122213500150722905026058992197071942195787694194536482607652791209279536040798706868975915958422895221666682034548099543681686969905844415048948092078555832211556518717387612436567748330831050380455076519887139444011179471667051261986891595704038651835667631633106796014560682359178127535257712234620244059984672247923796545681404677349455406621818265607294393980568080255913514355647730541825809157372402431864892125411408313448300880633802864406853895089310887827100960020057838892013824113053978050973130384304881511328100027570646818245581859917131901411367163250422595057323014421850333793480690697634143517253138845856715170277449101270323425808617924940009940020070321194213829789605044817302532659943336285573843364663578403440998989516786084873588286888698354571079686274419711753199386572641477336613500207167680250517689655129612594347918695621486287448194306287509651538564724311586282160384817413945558981864128037970274370036405809483806104764882396554945165385860493943705606597726504081177220942157704260445476001600529780930036499246559940839833671297112037947375500215206950607305689704087465480521265578660877675531027688221307396311085706722809039547196838559189927192748158104549965405636282811070650680677773421103387795355744312335577674571385023485961155665139508809142416861444120872299278023666520823630189521403230205700400507435259348101552564140033664807525422304112638709238420742907098969897645265287962221551524452676059851382478933640387648349838452546168605467413380388568057919959490822791925658835944280897645386067641183165626777470961237317177098927462295967252663729346952328007893279393783021518482461531275666050486981438043798054962555254813349365881004007561738839839491753085421833244980148249087775324435226013437349232704021141089701801467968919677171173935409438061813492651677558617083248693893306664744842117140721806694549320995479499442706214621620875246174578680768356290757109699049029955570346137851282989746402004375980726749614802560015184823679081585890153221872532329806475640848657645860638824564623164796654010148213964752752610457130262821880832505887793675732519762298171718528721201601199169633231080246708594055466751390495789762119783613413232312699040972647004428079224030528544293566598933620391527998125029317615166108131127344448350312442431901870714296576068137292732125100794492470145650988118779653602688400768211695974451988105668734518391671161500135428863811281621138504893074298652701878087815991610137078255386216626969040828171318265257193342978769214920223395063940138062766065820730378964935001913384009965049901583399327434303666299284796056223876872686865893491509472949209825986433656249287412750175615956333370607092775817312213296077608860774687540074315423215372781419416254975356716229663410781661306206382748735606158192735559585207174877246597694875034283278494363577462279387811572725618039135342795236203587657504491754754548092210867436910468738262258690193313455115976286656752743850529528109756952073560521402710715703703755424533959701744744196591048414261797344177645889603881873666857892466039742409457671081626574768915850766170823994924125212411221114197508321562508560227167268690465580559387589421079330525079187687528489016725100906914760047088851800180444211543907172255604169870392741571600734599835521683888042568922306976250211627899352348455399460971542504658326346553554654799589392879376886332689884658586990423811420985261272250504843896251562611822483672273378696410264457991297690408685054022219854536101785370370655879225811144370203599732812965830885975614111756167540341067157677869594591708847069911484090187997012095213583361548416047155000205987661819686792194849776421028743319223129301315992370277166276821166499573238586932208112348208960003028784824303029574364820823514801829965050394425697741088339210153520908378325222876917267182338664370682580777372674507007961379546619473157438880604735955162069272190706835148125115158762512458259663309485937212671413084058679804172951397030281843539105272836677093791805479531710422701756292922844927609148641291796216676496610010313553023752585288762345264619039895490629168314273413597827839112201230936723182300384629184301325975306949300574442352162051553141734115841075829360664968594064829176719437679815414077202986619055025175404765449810504014036198644314099960362553725426736839702137388418674823531008089214475597902388873167027713075957712137993250973470126596183294405843661424342133113409689222359663627895891837985599178055711012502998425789141760368059676008972828031719918890248876250913666444254255464995093646782426548068437593823403624133594450217527534961381484417558352009718129147455556637662759581857204908227785628965882822016464033882347980515315523612913917980602158741941281118634110455280859321303074726030601417533911935101916777051741238974947387572158893008892529913068785386865651722752104840942477756557483816950540154004806116518782734192177952551127460829474890436291144375224086488344375921422723996377711070087088573687643703791894200548156238357095950430903988620100946519466532916635941975163108292004869637078631133032205128393646351492780306271054622691202406456533420729840950502335199279167687281120803399409173083068577328983352680334190581172921484400884941406006338125085199670884391323292468585150346325668190452459585440205086844684650765347296423616555596509538132569988046757683513742276305756624050486918875920665755404872164395457594707064664003583870032257248537828466008653997237375300474406810052933602109912133867568747939822150373968070685972191852999546314187086531333537676307456132394030352065928342799975950047675068153284654832337701006029168789598405557686861749011992851788407042133527395630682429947949507676618388456387655317651569882736830360784220965972540413317999203048393668801144820255171250337076309855815693134146082110118664306243685524826085838769452139040958983265844969667338832682733767284201679919424470294789842173378469867726081190686210009550869623962085834461521429929993422393402072551359518281520269784082372950506146471807455109054957411312998795604107796935297888101743390662151221461294560440511371306219530869697261078559164867243817414970953551900996534327822153838201685783750251172995420716424060394891105624163203250860463220900649690288646933454828639632759336395586950781379197878184063038186717328863038083865111716716034627222336971314818774070229533855574800935379261589954545789049464201689813677933356635359032635139124259547900592104917032399695420404648129190641936159857246497046134061375856902752663696572222759506321091025767607223224212348183491386202129924488174627098154830194203804783528697438501650471929496140767625279444693958640106749316299313621587187584409896347012805113596025921231326980263897237566872766796963051182648494865236060994196011458880505825632466397658586618048566195384678898144834466616075445073338998009613040089496394374085591196385260098435738796652159264900806819635562589340612097870792926451973970569078516454501769289910022565259392453113528548127533632102965535086560086797170897465676773875435380191868377932314797746169937398278232152214411051699735805342284052006258589204918609536860712535882814845166693064537261201930286912509122143373980797530727673104251862666090078686327145456302702828271419665906174023419813207030284359210812222668573869671263446594511214073741199186518284939443094045587481798725466154573132456676955018212439087745503409404485673934508262793124572444613503325317418145364342912358223525253205200012236150229761507094512931379058197705952656439047567269467544652860888915586533311227214411624349471447359561826094117995448287019328013379229998096191033370791401772420448707518378737909549357691795105553615072905796111219248143258844676229216282344267012699646194169610251088417789371440340314801936233468743989366778809579205980949213730171548504386071213508210769984859289021708859521427474855845861827819592368338228312831726200578023432914690951838387434141860460029572200232194604826383816721530519000656577465387002776373381319611448806885733832707350159494819209154426410684105150857786226900872369685185880795703933478328839235297139234795314031402683732722873488422915629302185340375364757465790678813608558904876680199433792257196944697630797469771074391437601291622383037617051708156664790838826201720600216877189440905208424502993240541403180608175106510583801009332988258447801771420172406792235181773666284890135567588534082355619160515484285385768591336506673664146000096503130594674834843243924820222408259690907767269302482428402970402639754007890613537977354492004567578967078170283089343795617314988434439031315269354246719048302971624393313182115698866759708710638513396569868391991355166307185215363135951027906941253794029117341282437665999912856502510731989156819989857388005323136569185486669462657748494862257910433402973850005244285931877681050246191623987127521893225658476480560430157374745891559808272680175849641273809492530071392896918610185635023575930936382001309509504625283881265004230127535386551257901398961067529685738865014674259820656077039080800188761430513687629915145263172181631601268049581830328872952175636435855924099678184690739434852889003248882239470768669917574207176917027947437579778959457884517392491670585000937350861826459961839784754262704922061590773944860701761406234184848161009580727858953717681973146142833513272457583807886182281686102266842406915969311193581911982310708234079857118241440166106097656011119722766403983147947959365818460136612619108200633055776132980559634181336050979717980858308189911674988803508295312334138413736084694355131758676090076155920277682674516476084367049976325291787236002185121029541510170188848553828052105135275369336505477322741401194635739075966190727209904943749773708640959830744620842859798408690889586596114394390070675054446448765432795866175624928470501827334864186703589560992133412464398636401841704990333305095034102647414175423995146102582462032244571373675886994709609709622694847870379872307716867985785342617218494781245318371569373477805762435463296991518448835011019943744436988074456563775851800124772037444918758090103307501409356744784837385856054551128592118584963160051218023400592327885542399626205765519256286379121212382565126009545185577582237819681236875525426946977436663286111842601826787759014780779889274538378482155341821741496509584811392109987312204385590011276984064249401681870028360526895193690354732476210017417165738916070518461277506913746530467293284812684223907566407201800039932607405271138873371640015115917651505787624282321232125003833248171598577004433893728058419374661009669162100997818925755206568727029504322474970784962384072266445816745142489565181935497574903118773647315620689747774050696769069975466434306742829870328789193186204714274953499060595540261528474202403474096329657612857952386447661393014415060953294758058460963964357290670680892696265853423866113709858275724016463493830210117899461923094699762144565830320667937475235843145466926944088061147398395492453241144874658963292995118382368349279522160503825122254301718815913099576736606479923893749239586765212952051370385268345535942791011081796792467967490777832094280946340423567791158153671078857640465619968096824430755691071101121239260874402833175202768901894888462836756851859264584361358741530400641714062344274140033060869884492722407192840085961628296563928293439996330827139037233949610123706585127276831460086189599094711718590581285261304422715727836298118792196903046349528545802968472368601066172987891622314405456572359939244918914791595825400459124921589670897400381908205226805662125168798331248196187661436256703350038007056135840433101407645622330506920598187618307553396794008955358553505494249149608400300648978901930964143489128817693086056957930430944060756423689096140898033309828640691634378170330577947965774282321121779352518254058153266799367733476595009294885124040802942528793193050907264938443037456490976411082707880062755726464372862825463351818176418153591676489858246127692307789345904321093025097908993659116743667589931333844326470363600735051326793550567671162293932165275612639287522546845355551239055490060997713596312978773168502237924106453758776195716693670944406839944957650761106879922937633618150461960167816453433256150015357004805305636768131177758100892857496679051626031425451761932230104954155556033254883980029991014689441598077189639392325278118155220081597229817247610443737329410128394483359748993473059478651251817096388807630808776804114170999520767813124893968717682432715201558011718830898925594310115409181775984316911160341471476408453977036526128111567637971271591848322105871852981236708158674129323598129124533082840892600820430680369560331969181463044836370340378930207618008892843576706557136655232435205178430490599237256520528720382981141129456206376389747612741562647425735259049348753254495424760837194210967196475593433032993583711391359697372415272685425530575943051921979585190600886105228640166133797554834401250036946843973194666482073857729347183141649506772521334681059355692962530468752348577737179521816892681784743995273522491861324089702368389136921313081165422344554085085476690443678158559790741358031850137001488903628034658766930093194292092265099937977610572024884722145470439428092591507528807317404536604362051264397250544487240967303422127583108379225631454811119118538284165791122260955113566267347348557184119586390901978541463270580460173268548254666868981160058558484906796712076560977321723435728769949257788823616528847095068871287104495966348277853809371269269150339308394065983438528919537583965737758766228084858924599871719830675769330060701861202949620385456214199465366001713849714989986875445773960045972410571778117484451107249761805188414247654018913021942368181254679687591776197484229574424799259529433945913229255680448819610335390968881471932652800315522306151611689332998021095632574212091370209261899973633986194368553578389361063541787175777645740665047461392743063690089754207248922386552867798963755147272083194864048091333106573072175864252019397942401931389267224560777027235063902321575824326742857137244374802034503907258633261890898320417852463391577568343003744707533124191885467703386430562791470497001807153207629543191790483515485381413823641637708172670475513357493480123807545855677476169702289478063809804907432030180607899927341845903251035842058936849181673221650403020213827856636021685724415064342916106910368170831982015169024091624906843724755875614361826024131459959830752575150867610015273078016734527601215284187234267967933154817025208595174259541405515424132183042187870506309153904930834998010882708472656768984808169835676471353589241428693025990175562140099215520220651663539475346188290412275976545798416316566782546587044703499431969422625881605565355793542531192386302100914931874166095337853299671374379723238573550796028822069713951569922486862167497363961326120118653825323156757219043948278029861870086921909362714981836143896790034258392618065449949884478741468838849114486927856789240007440546962494211568094928346229642329259763018732338478085641326564182825559086590721272765825006332980922767768876173001642731582296374377145442604099325315934099739829732985376686793999572314062927496922850032265728498571679203170983468047905527786679822823642718882947888759114447205023020847737049246749040581133456471282418106049374996244431605536617915156077390034967259175284853306947130767810297455714355930667360446448810324583300346160830925662482056639484882218262830274754738435519882943661929161178395966335774687774349395996490830601035218265914151031532839522536894930954041299643900775016591271978080550181570658609664114576248220884179534016252990908802503524954906398277029956001170830018972907129731699169525828672214500233984724534818538009907303944239358930954447313360309883379174027871256123849652453582569872805339387046348934441093851508780677914282962191529928537975633882485339545903586220975571454339932183253360594297657687324030468019986527581381189074619440453974508463707914169532011747006975232389351170885922696341097937297560465615153300090079410697162847208570982308988925375556479671270617667272986333632917356230075004781404426387245719476899095429582576933770946973346697453110547998573853085889082545628941175793638783128230462604243919241373468255474224414866998134087201778189068220442844310497030643279571495810262109833905620415755490954035031816534276648131965740565596995408251021235930355753019229633713386391758421136062222613542311153010584953569195659653873813951724947808714953474023868755657621899798530738214876150077176909834890880581347644237467410332577140124799968784494044745406668122872161871453946721213331934083921859102097752846460678486208703440519397874492926142786696051594111938488154931016770959749377177281693658294345914082381937458254656740141628465477884404986371339011492730994438151098305259217257935181171272459031419679724289209898234289013761865030030832091721723484422138982290074149538541726176638350085325004234385816957986068685935723168509792019099338806241916282614262770187095505999409169326121198828931755160563173711826465650108829336314058131272767514941034365852154442816698020986588189237003853604930786885978407442486218366468175898695343022104492071958805691231373580273405651022368103975900461182946959183934725425724877286271182034399439289513746598554327178910149506631725186425549929288516507941096932996700409973426613976253536401530098438271775470943849848376534704016525256460688113091152772329427141356754479557331783095947485711790641416032353553366466843042210348347798882748123437380931399229766875048656594297034088230044028713554841151291963738081583603248194415782322887780244038207181113328884179175620839987790002776989961018660700830333996995472577663167181964998648314879235893104492561915226659201335551249007801853658837910411923096959255813478920284057307787938415985816600021751153103311214067359528671727846658337356784342185306798765420180126809239754448090176443565368209250180477676061888846918250381163033028818726697182929129051141219025894920377396487199383200256028359921931781501428044225663509160677672637824085774603478176769095470550457474409871437083704591003531481407737922319149966504385050322996352296951078347174881251204532032823916944505999704665259305275711813967626888577252099552354120767939875109310392051047219187294517437034585226236630444513490822991915023473145041437155635721235662887435674210141884816702443349230310547800631140181742225650648320914896057872794472650752747589454857910274564379357816864019405495081444353554980029729356802319181212467372973680572261197545817282322321671499454466029337610231311152447434363346586014485682177495623328941435399542544197044896317823072101816312414074606899534634532976886530541698336162465163170534073927049570187927074190030663065364837235556825840173275694564946013161575542901000277602396268139095094365121648708713542887924642506495705895212919162620932670790345111402037655490094002910674020697729020507420505001380190911488046749188246342961680566905435862463452838078792504220017374802813079016054566732209120044869548815036744539855712147326412527414660579702819196710899353470824687167921015107893951149919863189297626559901999176561655330326550063530103235855953077791461197992391886577234709629169526520821164447051436585134440563473985182371775437255859794340772554002050286252295539982261543119462758941213520317738545399964374895785369520596667279755568359347926284182881804408530003343471229348357610853050830060813645406434698249392091097177001844020657563457607235625596723464005224978757694687836502650720308969204961426160538179468412540751819292207157819402192002857645031807382551831031848558824187570435411724981458020497388039858429535021197059826771234808216098432599033170850718794406319746130120482202908414483997794782250703327803380089134881217863749082118825313768042739940147188707611189275226470806367141277906758578547520007035938404071697438631953559621775643959714062366428111009410467798134205368680922949592678487556919017632366837337139093487781891601303600379582599747540796255943435464980981570647809493468769055703028798826674500021323163338594882647228829189289613507194846487946103612985205646078332942826778838482781374654408809851602383099236471381685067079131852405783574101260869017327334479658541421057596040687665973998349009451955200314943059225557603463259732166670278681110671405332035727664897950063072338295096669825086812636439360244174563674836984235342945204314687388961597958751832048733464830921129447047322739206128064931818668619275928985036820481663026737358079310314034961797483254002396892991771857756293600990335190044361944765483462498894308185692946579290965468972575583376342884285486678902822722942762606841246669253409681130104696972671511023897628112723347939270330997736819649649957182566038754420341609405047103042419433586022234898930671278681854703097392155486335100416085909306390992333893357344270026555457695035898173972138865884431332660787327055684046404861915374292101279368209569621711088393369545268158446578527646742477450773901907211891028445350506957810437098113044765797607003919093115771403037766783757169460217407579668117070559996739405592173521879905575659932513210499486476420871022525834386024422120124467528721714560857315529521260156113045786689196586535388347740668007638596712726413427502151822932345835704023170550200366840316619811901528595406474649832095716676304114064218241669738391047382627113106087092109628845927197736703853899157059058512459309550623006099640511183180164758965537184632356157672421162640001127349588247735795978681256840304571831750714269685530023975467927279268323082472265146440116959951902949337542247736744957666795506196409519702917135019946843972730034676268014921153498786133626163995208887659712124730153238716774052947071710687185102256660265588115376486872292451683708023448023602231684722418609435282555579694987972071895589185195294838777026887956338420258834142940826530236424585835956342633906213571062735981602460162945677185308775246076745030078704409509888172665043058662879075243113741124959270189857494130588749419589525319233803230574756573673545909754449507956531220009375755382987994318572986505446873318326731097928077264799933436044653835532042691831669118860418923255236908754164746545595620439268820279126956339253973776635169942996007053858744340449386427585835375930910498921353097219780291086184356328004198584798553044007026944558027494228214595545129559666772127373096648692485054806438979167136362733550685830068626937951824122838364842060052695930210270763952628361776669385464048762014757043679962150488235686074242405359985374759655551689727150039780439204327897507563477002407007892534379192207138349698344014072096340290572621546735794548332944248086686806852353473569392620186878789128012843284312262146563237955499321452782463494951149536036372027650161537079154426445447882931200513665425987988267589142981646236421883551170444965466951742953795724658011460283696311574654283262556650721245844114678678744876390863921949759024481957982211973692509866136784964895527713204012861954230577696957742598529826404025693241315261642308792251663062475740399709039138271305206756257985406632326298956103341443460842620632241149121137618923982368216216259867631291939174705232825315093333747670677014975746431859602605938544533604571377284921005819484861323188620405540790132364329344717270992954243408367458144903016908169920836840932220607820997861465148107098750568874468881784644905354376660431251074318299800724163433603706847063554687269761001983533457725208681107298131019583197905236785292262792468838400430551275640457952551974959579239431835112152801391334035016721689378770932736560891885162058484180775107479361904015904234696027408190222875297993326671029265225959678999062777990701960312379871646146706400742012256261898236918167788634566777443020917326418486017638713384880788395619475112533473254338847943105972682456038938608148658514282663138342600877812075144914038500442670456712122675423396030503594959849446758613738762635621462681997709173447695508957798705588258769477769873316707953081448726347196702442232239948495810672802827796955309806597377031897371346456162981895936786055947886785429604421368882775263641255325529537187769837397475328