9555349144674067213193173109185041576490957464295505822233141755903552648484803464956179594679260526780629010457842469429996912974553616517653338585527526117404960331992758092950403165777528014048147412321517668074652304116621445187420672348155511742263825070699331499633448000184311704301360204344217662563581022192633760890235666432689947140460733000090113680323582586391348311612721732001133492640280414255327590664974088337692620662187619478445933342285944207273481253191045538973191796216944293419739833397285604774396080510852735619058886346724263872923018291863779558282965382779962263192379756611439736265442438665985213188859993976593148382258747379698473473860420834773998873501460218655932085079546935813273310441206800009616561164746163405549670351362223970097571288538183040175211544941051708926789698002010642807291397467250939908709001176356176305052888872872753653761306013654259537325603878233510750352627043906738308686409861836972235030330914844713364340534132455969993094489850196531684107343949849149697572682345413824658043038952811579838162603096462367670566757914908715076386022269936083669450941822320968661888881499865701896979111207173352131280266847026714635866573919223351488163975647011697345746669905153070367821633702537101868769384682618301565845108818095872700268430260427912422203113790960987830857909791943174585864951950743739430409503920379965451657622005048099959341488475010176948158653553458392441388880908592408273629975804158297185175034385112475472953468397005623127655266414061257504433244706128984401152568794444898212692304103654760026805340839660929250771046513515206730814780873899967071622984504178260738726105092799862160520048864848710330830110096212275379155540411445438540559181418945961425467602256001057075226021517769315086301012118925448150201087919527267368680473018833853062853715431278036173475268544950136508051278082700148674539024147798504721630900915783136049553232192565739729811499713318273697906263736618690749710152989349030656939600560544526632930965868834528488535590052616809906482376728577431981996267858848487725498256099198287803698573422204744679279198916707176934377597972330367386178859667260797447245489425253971866723559529263088537489005302489161416468395703657305316846195011263800649110576217848422142653870150224246204835519362676832229235368883503996448484641335567590136925275664319157522655112971085787214771202128870046668856055524245723844166953068724519225777101774058464160566339790723290911189594441958905538518580910012121080534720520084936894986987290309362834897905308987486184804934870054544234774673321030410814391497941375742219651854896987327566251499964195150235714413245902627867763173688611293645069569722509285693962734953327824870853003022681988151557999771169244554957126314230396085063189104560056878419932062670287605616172188765516510716984012772344951169036597248210918420707942437553557106830762754597677361615360715426010186352712479216477903985528229238873155392224861552950413236260047452092214791947243384617243258004303534004209923252624448874784114577088408491726098443321790111569367217157230949883216395406563400231947771766645077606256902253376570348414189696367982573809146894929771189149775463721002926605108075193117084530902113406177787585094415114577678999340958636395805346958416284073008194967697187721326267886293604414910680309171204820618238608140541600740657888270241175935850804075040006894612746853457032012520124135814376541137472176388640652165757284938042780007646510585892467195588483752762527178236815052872430378644810173881615296892189322350215707814293464983673981924160282862553073310818176565757173202488643040482463281947413130450699553868906243672766407821976045991287187801269435086878966660250388196887003947556143049605720759579267977371027641045916488564521447145972184858053655293059501756570068277663568933453869719985632748566333680583928204186185649913879403772730022953471099663555832883151334447732089289145500183471797931475149457376381841850298477270318923968605334528713733681308449232529490934386157531999020874808061900094422048801991994081461367467567909214094293393791947174821677478490800239669948132940332400247187177101177072986271214465580298016836944651959577698145693623525208993369454411181095565937399819609945881322440640106709438410471375863996240305326996949880928055541940575605138738332221313119674868915475099862706938069470447824615253863750020623430377412294665281667942944007450487239459926455512316510011756705538574477012574705466578753324987835282093241722379926791134623307835044479642879872452665138569253767104178366243598765388135150426147654590125474340888692107250875630180102749174262032253078065529638658923841367570806103910572446312104589625482562173474431785316637185048596842050498841019651314032637496070285325119211277309712075815412540173684616833574456753244785040158427898472820365941265744358364107896743035072576603278603540061750335638236493153470341795792877900474397946352600734804484761462509948742377548611002550927173324229093331095857057312405122555077087310529114810651992404760277976717769681162238437677154271979640317385402725568236051579666631663301842024680404119366233996163493588780248399711757371771387627085863898728709875602880919782480967356239119197668846948826165262908631642652318192897689296812013886940205436356636394324905207595299219863499162792234625146905434356342692508878091553178769312748382651802799509765173950981166004369450620680657264560658875485911967930998064781247203181639120316019119925494528249657721633675387298290730292027983755828296824554473557676988687953445374967422860226984672540236581119615367644777366723077101869981943489254721468040448269345343438886701274320224369195129664007896566794127250786606118184585374931600123858826586108026575013506767780075958517238030797208559226904011607468292096065895740673263775835682501700307897361429855233716385535605746525262415300923205943496067631394810162602795026620070776440679061178438708211973981059603660677894637407339427725921891258326005468218041994677169248474306907443265170369826542477324855445190527134170053717965797272727346308012520635907703273900273908648459702775365036363664781182947792663830467060607063442650844613880273210926086883137393487949227345677679388067370119457241174909477134172978616627673498605096033757264562323095862201062671285651487834077477963284481649877333581375772420116534082147134968226453921173295859257571284771503249541768088563498245374842002427481558456213662487025519720073711966712343700948750202284281552748310654924029805925153582647812754719212715695288703151325107382863885056625144924340582103831127506012674299792226274484878981731442600139008230958406984882956000361374285018104944633021317917953081510011931326890192324026821239380392585728408427750153735958897936185767608450225341624210009793412998758603626261334855856836177477243003476192226611297880408245969370717337650221351039189903400437509342018130275389307298648692343277588392429058088818672541776103862791943959858730508752930540937107301607692566516392585540633354085245914261912651800465428863271806308824026281472518061947275455195078580109356608404698425970499097845966801562312772615213352262046643333589720008269880116443657322655903986086812891913657923755911412810518100480581847639914506657849990800859807991765666017773567457438523404104370946648316772418152015355876204208963795462713539830376953584014800180627809253147274970238739210339392182118422150647770643575608548866077820146110888843200770525311019701815427515390611788741372474354545188849379441510494522879215669278153191035197136699876807374301217636730350064733711491239679801564237272379752024273497354245391715543870846059586825661185625807451749824530488071637846319809545720702155103010173958690580544116187303814115232628587546590002711551832254888040999743302403675720814149627432532407747087445928900424387131484625309017852454355397836659798251791603499644079519302077946862931002441316713775616813507294488689933164746114685366627446994863756162547258626253826561260647013720984709572298680247363437149412410981939168027041788122946897138136220147049854933845040639343256989903718793296571175149083309998998270140469117234849847187187977894818955877600194079788506393073564460958618627124103053683091448894989750523345865161520930075864362337390634210836089072080576002236075049470553162160378435036360977572429585891008046980493130127985138086666777681370310733746535158966623200968105237300785339854740313633730550183814982526411886927281665610728110518861502691393112288840822734796572733902132443672556549812291959122523736081459604259241470666678920204902047917433357504670238031151542757548282628389746860663789933219063992155083967653610998891223129518833342639404765865645877190152036470644584060646101789409514718365429888284358069238188140512458091080809344241175084908950205105303494328843050569959855875496037376818692098154149034612262865502183043253178683686158374660110439744179486244513128066422534688562979918642094416312964128596352540541306616057689886399158883148102333094690368357086901780105925268568028064909607398477587180616573375182672642472229978787758406743362539794031253251120806757331768911991494520945168259825568744646745985347432958874856313188652237825459193498386761493811677990682127147597426002252534791491459672486245088689814167537686822899038662260029910426280959631810814681807909801843561666530721803361451142133217674841404577667094140364677909777152202750427227731777235936903718948224366098762830653156757029923846272881758941007312097700792187704082268062162804104984954162943442668574790081491980386803197432709556035133283472410191410264434380093607025362614724875992345874883244946583845218695284428006485819214962357888658277629529268849771268493181056874546409426201288304154472678365729469312933062993418866124960432489420624030220561457060566510858891963366488545680496543104299189275512250005673613368689009017944595711821389751187956967869563022594687816781800696382079935338597065857426616786325622525169918625200953625293836398641257149012533539991420813443317532347348502965855998089424755408732467328514190799598430806357221578210062582551510363454089711869680797055201363499844243124310279359054675711051035460872213331376272739211426520176154485729956584857888921683791316855338323981367145037105575606292835667065101916429239787348077250726523143335987900988613410136219972286520019709807768010124846733062714726697687354265277662246642914396066724550986404270504269550999605378834822562999940466312412472000883276423712717763405647994195284601254526898564905470279689217677892355934781282730857716747415205430024503731914099771445286706350452813286377787764808327007743789070498036814581961804515389768676716629200769855046507036913870452014045021917511261075676054199300705307408160287484951566976906086517358274293031537683380071670321067884304618861520968065132165361159690151947100197993417733370596555670764574684384735419846805451918095553022460833484479059605807706251654800894232779785655246916642808289278602970848414038630394675493311271469453305709672601168618050177314260690161038299406377172190921447407524627547498025843152154399030892254019758561145450665095009098214615691547652198265875376275197568128272038358174761298825435191004831045971798264494386820439530923138725805732271609392435399391704577158731958119159392832871942409225098184006911841134311516766789388297607299383407948090666345273193853683511961655565532276703113408766028215481038591729399710051938630561000203052235164045151254118174384304710933440955570605117924362893374477722818375445056759295475702249921213041695191766785233804039031252567726235412081614995308311537793566290832141202602243074228907364983076280301671896203626427253652959687618885064684057609325790985853625403900479975645688157156731103744035182179644102028733417627002416924231296617919892244007707058651074204876568558872273954759515723143630297042939157452828880352777041071876069084730023902948215010127205812710293295596880612114227958449621740070639218379691014709654526690697761692539499600081047499068138904074227277237235439189085898789286618445168892436354352842721740301146763542896431867152434508539754320685964607784509743293157022464532028589368718793022437130386839132090927799668970214027066749663862964644611508639032848413380766063538999040903817192034472448145498298292283674384697034279183633562382601068507966779197115579835173434540491298865884695143137644997341481600496984443068371146535370428689639327862179016120874302355214287120907224125847925465601223651473463195508092784221891913288426862272722632810343423525953896482700983246437562915267763143781961059374027874065592369673952158254281694471878437763621026331167585754192389132919371484117323082667187326340531469617028861260427236078602755802874577463689732556153923299880067425172530413769375777196175181934451604756132069646356064583776122293778381598553298995353621343663940879038994223013658911056412717895799588000412777679884426707486955814714856033790678121791439135726197673286555623535615859872344954712040796368611282768745980486857062042678540768045810418556142949154321175252057649690446150444460893911536741505464419034089535615916070745995542084998496359911413120295785339637037977502504755078098676100064877565226586951568468225945942430297729378973130076899483088322341023050858261278968807205138373475771856682700696576207811758096674759318698667315945737902812479854886656423254759322123404641636125790433768243285497848203476188768802178902220870654485732441327107325116448525591939512757899600432954508451900004056332021091135331881636827938343077280389592135324487170964708105833972932146778227944031401312905203596811488311115619769991282813172754802744855417383383502884191467857121517068707145495683093230915728970686457171611289698911913585373331087794966084943745937295823167375045532140635000504233815232979584038242305916966399681204591449953788919510106846715845395530525803695556567251933417056500552143502068725450653995700351417721072389152607673063543688720592790028934205072379623991873822101104097518015252115414602994214435834696498913235787248547969402996465104006430918742597393234533189600101844845719079718041595804874894089473045052924738987578955445853791105610913396195842648283878248358920911340060544819748025850685578679703810864356321123619687234091972363350885518621092951684184282528863942504467566852920439868110007492752198845530723866852673774414789909884347419706381658926478846846725159801871410675578215090684357962953131282340807628228296632338624037166391481144067986650893766160977517755879376075731720197813911673349836864571145227347138420688022916502060174607332045997066868150710017034594238443943749325231313314018577991845140424457981112553965812612797311353899597719964360942103483125350740600472378805999110559971407571632689827707207229375372412170334602594265095828865393534851895255414940550133929558802388578094545940005019411366257586433232697282292703645881407265809123482211430600074562713439019932271502645616713279550894805798926177331802474802857937327996898506240320678168354148880570259000734777845751696011899847963974957424208874033745824819516904309051572360764139622114065665095001258585561085957168575131641241376225782980486203060674849964091723291580638259565623017904313586816065038953810473774575916365956553057952344381669117618244840405811506830279445357019943428478060120804831876311123027460217114126207691879410633935782713524947568338425367420714392663916411177001853380122204643900291943050860945384397617081472402696992088082610140812510767018277877175984255360341603680481209096704393828355499550928966097996676116499334873739721618217017685397047970358731703874706508366805500297332115286573043704530121781701444755384031446717260283461532686162790294438010837966202365534250430450893705789576106333996312465400589860438386906630020762918468517503547486086740852829110966817567922760378043038320232228900767560736863678071803936269159136982955632909816997390916922845543749203493474174804906598783237602532881229747228618378156580340504782915999612483311136894828988367659158129378709823412905893739405410233260031024365656136509459091124441455667004669283834880790903448693150860227246630118298288533493809895928643216227147976839279550549032906228851676363957975831985898088711697764301706404988076666575356516292623893543932840407155690252881154434888282566517323893918107312865254072228980712091493303045322857364597485467776916256661294470116665314960638329945611730278299956497883947779764226309427256142881679973750727259899732567281460628525990063788668641808526772734586186182551428283463226893176525243861117359287523956645952615239625847572491254649214710071505567041799048164529540021028189645440629534451813778771874783657202265228663855222109297766032762989411388763286596516293896073371222451227655214966586875582810032387400166797293952530198380384522362489059788173427537475413975112451456335252605359007648936557892938662197358994804568462027807190067276012801382748694807687307403131832023252436295786444285026439523826152395024692247775287821883176881020523093317085513306585802591793856155487296747188837317577746122738387006780498372014871546258432270981559608536738115379995849066164229290143827649176166740657273706625630012776694310985941678048711385386664334765853348515320201330969625068534010455206839860003090953569412924969499173150160569565821873165552401428834850907854446634940596747999882267358144589242647796371061949275011826384219574254881098193020622815443874822347736845655967039211856143636960734328984481194126301926289876949381270629748261891983512500104133361323307223303591853114124548974007347169509859034346868223110511255962822807701246822754065027242749931111992017600975382994619983887908097309079167705995466355734434344175182099869469906641125579003521039248125161052727939596407759863897709226432704497447088764750039700722376556996730549326791704784757085640330914068001671851229705504178202294790500768844076957508925845065435595672556954559309101686292746306863019714170000011280819184724411813794101112213432423332814255447716237458670014266599771207741423156891759751287837814935710862177867943918037820512006587673881678372664578250311522180947326493220597954770711973191285018667090149935303384571991110612588388302396837175633822934905163092923263846564127509793294710119412838113879291941921340721843884077889167196291394529502786165572361388097716955308368537244701048186985767363994730684319899994712411087823113597666097986976357508706489800260926536234832568228098747637753846490124617864687597371135810295944067428114683332070284775805300806559370838161479407884465905085640687661588736686365811312811485543319468241809546037279460508163494441275466411024841897858765114559786222973085470650435312823388256989176575122287221752944273108896813561083201924000304832142931612079177408601001041524739032194491409259119220334587960964283633874709711733876325021118536900288668540623911643156367121811830697552514915080405032854945128297943294796294334848023417030859654974443073517991803154957943908495840248599299379695181885185025619634584413441301929018537139690664112563908149231242095719789845267514904719743867167748626511137998399771745031758423295956060850689667831435610552882477184169238195989022693649927175883299213133631534803267250977555985917221594648138464280388133632223046195560474220759887601074396791310977914347413302162379708478519606397832583814031268249187948908538312570962465591325334028929783615972078215865007631044936914286774972803480981745859243934362030438618066054239714649043479783826698494000523495960874212190573132072582635985582679190310467881088347501109658825734875911600808733493513579361845322914184165039389630098034129751043452969463401365475278790665860215512469809946584011891868455476037374364259918329509695440098601439865391293025086056500609579613609139368671189884435405452424794708645502620609042693139471850321296846019179084343767605890933053638349366275719186846326419825299034061798269277852594146128757751157336152070866015530153038803929652278585562173727733036917209275492350917124506280594286917934484719811524074703862281972666115587578630038518894123220586198757404277381233122635967916636401152680428542854117703505178719934202244198384706577927444326210640974384222702350053807339961025023562994264500506896620526729221687876203753813403165127799622781579199475756107414026796768037184004051527248999492072648552271781186349064963802100375230458526744479475861151472400033079932516053991478694841082185493386548243543691550934043252802131895610074334499483998223503727906478575009458397797529970252043790547148193933702465452478683053008722631934205551096344212517818690953147677223422067588839621590595910688400743050718692565615774366434274359664735505751222700236870297723699163723299422702725412442225584401873103056326509041385507056507785105410043793697736387193853522032684698067337110759469744106310679048844678489564401386896537505509393860609665105243833586346897727013174040551186579837562251024735053557513621289172928153256730235681442705933840033959384057081640784065558942046442370876584749718224780574889523761848496971842774242200799742128212152859944211736056135010323154460655659180353969673284317632178144709627753149117446978641858762233205970385306151748512607584708028525554185890975726096744225027889445954433521004703388800413101145640184546647017456346388708823497406950614326071606344215097347097783744277884045689101711545254022396824502017685506677822357750989671032234902562230912248914913970183407807053376377692493895282200641321137565193952291581009339494537740596016311631890901934984347012072784325489678668752241785587794062405943811777653878046505274771021516907085840138033783310788980142733531016039833112543622411535808152363967950272426888130293874690926223018145398977880810297666659381683497026824602694613489154182240690302094455724186434459868193252292592947519928571016003912237567816011762655412614324616839696377078154419961233665137720780327035850292298412789292964033065879354384613555724654950364771359294733195540123588984010597722642125534099011469268779739401776988532942843980916784767618895494348532827126118897273035824463907761043755467246074478950307797463577953590224922369165195964611078873123145648875891311808260477254676091566444923164344171119944312011277812215631066573795689111422659431663227433091470948950003368302579992646945192186082192538469626615879474083302011220583420382953531588096427728850908340489685038197996648311106296131279248741661361025967087617230458382157323569661258957718441587415631373639695721616388132390032596733007066648700449262492505755338749445119080135061311561047670454409910929032538669826930698643183085077970134001083677736501819227725513636147245613387047139151933495859563298760009703526532635074660517936812822703155819072680146198891573755036352933940208222932721989265868403607992012945248411619545032983343142344648162014276130744042387691926380106408825449524928266926029758878518391945808201127820422307185036966051641472594377320560389882479175240487646174816862800789036054678617472180571258548527431136503464212421478504358200954077637074595738986746281002108505378186535119908582100311531392829737491012913861082113267406698562302504805191300512948689248104445796177696826978172031965786230810528298980578395699796365998079132051840807646206185812311119122338512503367097616297428640553896657907244043814434176040006385950641475889261704122826826455040015153741767848260542124879374485901375442236053117330717755203793831476609315626459431217737117500648318240712358392424198919669633465389460706536888307199055029475914850920683272002811727329266767253245203630831012294927943620445779390763847958188680375748783260290376751447365123261736505931961998664718544057483656217701907196053434398894542818540320410230936270719699043335289221363396489007188047952395814836963302941952760674369608190673270601906001278235772733652619047007198798916849417781056218212923732512414008040719914646467759023375626026921002904468004889792120682394087188488824735113193405464603101910758641014636045385932393613805980844956419124653256585857237735710205857869235550118794428291872803389075098554565445997726803183422320929885242886376158839157590833935914448626364979853778538622916517952715441949935213167030322973768930485679663294601314446633000804952420486716276318752426837818313555604276993635411754337129950216876303993356997063507219104236823454753189889686946668689102784120505924902871565132090900289691652244635922078592892892811770945170633126333292472651942020115732796119742162309675760072084658827548413729960937504511720285078823764047944937788149211239846729096590394798567371303537521203113762702281038776906260913033444711092220424201892528619923367849049271314745834187958941288062077994126500083592297192220027334024447097106455685494626639362865219028739384942592955618555841373275158096581831136698553037264592117026775959063632488791518077289081658244241514853632893691429328593328843004480843022492635578428860655055503588991140404962705582657152712060950074124611991450625431602819904012434906096242214857928210111613966357067792923309102923034106492138835504797137147349743253903116000560040764578212296522913224835981996072420342561223524857341830039636988913170392755230075168161035734525843882157771878384191305978331826214420207484323733973561494686207750781529061345733099239698328004183235232376949258272131974874392616230477072997825139236724153415039076873073865379302975490741244152840257633171111409948922157673867882646064185225210013328196572260525232640173795706149959607833996519774881160641355351212995395046024403629793839364596796335830542983255225618545005674207781735034350982543308908466986764848451987985230670470316915581076921010718342300357389080648745437649621555896831560578532317960725687833422005162110963205991063532216658858475696693013502709062393959735683152721122483764670809294268827132314427775042419509438954837541783226993508759600553358832687765088778028904865921266149418185793561474364751343479084025944414871019546021156593502904599040527639684286391051401701261175128991959377917112363433659777289188273111912624951205661638367285103525616989385415971035962690100563025714652103690804390660671737040512977287557638068124292365070131338057812585492205634861478482515421202461910231704191338287448981102459550573753172206124868767878014979927302719040652149016794606093096826007002168482383053423033432015625436642480629025377680924226889432097345417310847515618130819752062796337079153915486309381367673853487294109591149779718854612097346075496456560448410205767076701309958593150294145176752450120361257016421441856473058303316353579280823078254892207137569204551570662970895285416129985805260418484772751380932555543023650791549027293432535790345658023093257269089333687166201866679978304020029062321048778855522519459852965861104319197073535787732718904591711143162960213892566847648098269383799996917307654238002811737675045035637467132556456747911788382886440186809165801485276345273461106124805811302540077712230586707319800382522777784565889847527369359398541819597053642527389115040080844926875681045208936948553651645047635293498928821516461726880494268887227029911173719882571620147925748441443550821810178230354057621576710075068249266080126631304451123120736551587296319972102658860183157813072791422329630805781799115907204483626968822902470550572162993331704390282473611777725041331675855284302550911088861366599657142761192457548657533769319375099365485630385250913289221168678505143717746361363792614731608558073444229856092361533016186932840194617592292438682094612306690610171830150493362561932273843914921014139179506752956273557858341452965973823509794311777562497542838436729170049481668314654318602546128135130189245187653095955209822646269378302911676085571091084359985913743945113711368478676112000591966361872143380227095706907966152889976191529542351922622329935224111731983847172265527859753375787961059343151487040726701138717504610655961019814996576689560311882847334445437826484143009141329503237782225018766171481405637588912780913515481008256496050718610888970332871981806546242223094082970014291390471136850073373881189290610859807910595603030329448367439414394196256726020162117053896738278787403085697713035730129802620408249548017799192676688668921972896841643422342609277144037234423008172515759010947762165889321731548800386387372148365953886069214104142771518823760265654251172683098376437310687713378793811189589327960602771442870650032150108041738808185229507572576791702616790571489912962610977547727089768726964856052324311166948747623496092578183415856073668433295644254401320662257855212065485940475815948015230026557764303998935416011813336439094860201590383825537718052796695172202361309792256927832102772390510747977956281874567878156385336411108894522600066844669397830572682572924194190885341281064112381538821240750848473691708219548601584618694678525885965797741511770132901379222810407086761822099113304542574756897595162254554575906361528093682432948173639097588224376186454697892710174183841663191700445915705976094402796952271441496087658156755206476171499543783491257062648269907524764628096345561267531457358100576938738473029156910056891601668352236173485391082098678738805740964572810450559858616480370945941409681636691686448096133228722962821995565723467277890212185471764863420992239057846877186633800296638638961867541139958511901920694467354431295319304166256449518965790233353994825341966611562468947061407797270714811573639986781598738407235206798945219208877036809640473994673467988909896599189044181581949285084974864513522436955103397215724111607159502755350970200032514936197912963139664762882886047540260961257560437913102481095850976973198945099791111350460055043730050945545424545781738733347721826821375828382950033907241013196788926419347543557948672874184862755406331185540234001288707183469909532651106220630869739448894885738004224847811907881736615193677587900485277367045128890300667415206244762408213736616646612454075600187337258631392967538883281851879512337191330627370168497572759610844664797859587693442109485446421997366151000760115336374818561660307013223200312845473865712878918719042462593788325612183371272054068205465743676147466703921126632553100684042666302972364587150416826894299455195493639188994045627306736781291730003021911315877618391969189263263675867908496257096182191127454711398098938563363081201313159520660569453219656954174215620573640706742064039624132664137285649619384690004077580747160999453325364724834331090164881970816259895277761295494400999087168784663290076196635186175183890769136465563272846455072580970947850407053381665201819068155159935086782010187718899706611136120738306508527398187067629843556529359010962691510226099973229881727739735995157179888776108097269942915505011838716694204114830835126776388462344004434946339412935602331277412813366761495347640100434552303694920606846381045066110576707066569639214952057664385442013729486349271776972749187622823106145889807984672847855627810231956434425113670865541104895918004647189601969056510721110702612086895856043958510682803983145353032628223618579538729117532077381643476847695649521533397594332507854438208763625879109968302652347881711598860448468355295450784463544794580534371217736271350796151621089032570791474002137117823996094098355325562063287008791190790200035578025322650461240459539659653201014556722868992948901866821242354700482769558853753849422656981362300676532428794188031396985121461428172424304712525655353866912064982225665136398963498875466773271493969573112908347235782459777816212279580881615449027262249931553870738817989533435162496380545833917799598441895312651389334927318098047892071512777916940342174083888667975136304105890934241659048805602115756266755748263338332123783994579196872456373617540863141531099909696831569930685761185239438339298982048031000586794327361294123012226120330399969301137257770171304917040179076916029855622630870372077184082683296271744018005032349058566725154782966468268872017013879541067536722478295172483285572437633387960207036544892211869002866204901921634399779001187198385906496599652191179070198908736337976626692801028026045946729453150812571762874777482976548593819900158325612190838125780640931921946879340559542455924099082185379957881947901246849248147465993999688872573797472306221067666056924802169438275415147244011626318799905858676227831666067139861731722217175707481647253076052136308530357928776841566963579883423387322115983667724310777766019457189400008365148570657424025960789639739676290048003856259855834897871739458462263648364240833213001275120966293567494918002424834952464561281537287689589722206701948494512776495253111194415085189029481758308834255464806305823826875941881674090536027658141524201706884041541505107963887940361431020525779820440147426210246490602655132125169283035657681321381657170383809837230896554797826091709847138111945924670149932541721606429230424927494509493757839090642666619111861311351637420329394650322244430561707960602645684050183407850907077874834109668173291532227318026703196617674491721975207939832403722483141591763861381184167308781920345594771067205323730570448641685145512729449071455412467322490004666938883781927468605448697797254847725003196832703247016886501096769360779363634969670359010219895832800846200697664600601623512195386470091161827398358511972192731478578694777507342294382601984021889748125976610940478649837240438303226814485589527382366090133074496078427075927765092601715122562260012710212999599859031543890117128400422621681567560624014026738678711984152209955928429831415372254343768988874476219292443971297631908806694131862792036324544217408288957371457737030772127658309138024751806689383350673439279292094460550228256692660903931850050507562595420080347348731826922983639998430549673318282374077375649638482536404845764992400237791765603867417901577977227240920196657934686387535232955789871991657341819547201724029597485674730474656511331403806866614271655702168829962003494080741269435905122004990201641059123350394894417617117238402507420856995375716587308122962113965051640278759318148051347669956561726754530571495391435291297843016792145203342972025644763458859438643274509707909463940295071024989216767647338284688718225427916847513388012840319280012654356941703131943137269197108464800504674087281504321241061908498458826324143203736961067268007853745377881112595192399025926711085512201413672291421333926597695157487629996125367400893452222737586358248960507257337683905289038673507394454179913781071599403261611341886204196564662722762198350495673303723479836118495615540690158488861108192714553024589648753602598619429790155467925999764135484345297167173729422011998401959484903720547810862064263014219257658021085867854050576887219134899702800486162577625314135048438418699637354512374915329924778619588452188649887278810703180942990735054819897525317497715710009083689070950703344083855436446444803710816887221729115659203848339600781470192265276842862257080950039176295412040734911136845840944862491043347410802925610104299685824038373114295498069079499367950453290602031671478475325361057093422583796954101949581017223932384533912607028112171273005309637190482642455267574702002642505214353528863490158529739094255887323775562901027889763763298777409777333534737425402888107985636614347700174927577755666464938599923703811214061737394030524384287557939160566640489883836364783448242159106871819897180817395640564889709486577467285267996551518996966815562309027554353009161950647238784025928783119529536632696420299601204072494356300974144886906876096404744189820917332721312900609350725133125117941123365566526552534158460072867989315871424170333848694702989678510107349767701185955425613671433443188165935054649291762120363718036842346951326345421733770041854539774479501136688852229234429973850397248462030816039062504492888817642589892974587484734284462253028386265453901650124543999225627455182737028293305760069081544390909172884703034610626624889318419327515986389751723396875817658681332830469435517946634115980749872055102145607392065477075049937242853067628368564112819323317041327623496223180591772714146841983646095728137186264535040735823198807489293011648191706779352672453201231533607517787365391668904234457601971623491238777833624157693453550713063186053837209624484729184256552870586969680552001474482908663951009695664629929177526827693089289159715188180198851533203601520545417035844963859903323694847891443157742138523413756125500299434859533847600941327039690629673159112597267262495209278240218523535784510246596127044868980742196675127242901614428814703788007774286011212484826617187566376143672274405643036607326182819534891129569134548108841469751704184306352275729540435672557727146587113440023087130798944717532190812166269577380459354726570799781097723681319455490873520599577687350718859705345332684744792550386358134114649282441925495640779415228630105033378470010584662503026990001514842699790758215475888477588639123392262347269717295143801765687016243577293275994519809976444246871228948375875326207204858372069181086814491023753473969706013922120811261374640098484365066469672663880917482481220766362908866032411512251590722709436626513227478620955005088368201874535958705568653164763509339427880486257813679085452703736788466514230921388286832113486055901663186188217036629931270986476633942650471275847831968957594258553718866984479253359254904430395676552250697623958983484838867335080205375137533322760244030873472402030653406749925040454541988138442407848522424039185539738652596747522375628131049503577432681365128365928731835896253997166302915751343117300990516916632373664140284606336426487179742079336851879239873515154961845143177762940864751112738125219834252928222209784896169082504597022225047278156636352350511071874106701538354028653989041249426837407651586988754042047161013797447203352941826220535242353732487207543848920553606131466749097728582866659604975598735310319192950236901872379838702333375385580504105382529512383617954483931092412941203254593854550098392591843047267583033329874883613973157462188947351684562950322719024861080984619888235430572743646123231229791689513056013388742355679801871949990206908346110446014094182376376406197931542697208607126353991631240944198368088858660295695868983087497333142937803833403980788187837661985188969242692080068977660427525143030964123432538336103145908522925922344788932875485800390242435027361830633820378959998913267770506780744036173068957859175853813582656050667073969644662248539897052758725522918883349564318307002387269712003992227284626456157495112193494884016735207842468207829038488966368042562246593313195009948734470275432656316747057667651425972099542718440014820596362504091291256537472484976936562713223453678231979128515209965147479815182006203116077608595109856838357657277699297067917428313007942718435204234940732475217627422793537167681085168306837509351620984701560668184015609450395558657127273340158660220266206861637449177501627483516533154740903648665425688337788432758132222597364916574308086929105918131491238629376717515208218710624763987759687268020641463334306873262938906623525690736070500298515808709461724283267974925044805496366203376805231928421935425965691311659240763966809902444041501732908832808204885775029533684867058841132952440018520473842228033828031236480582344482777009803295009222871929163602980680671991501424711804720191489448415505765808270450833952090035876337803494311367341746945058536279060309731977702886471986840467464405389586257445082181865801658099538586102856365683760251416325288137848023760228595520662295823737422225691614573036192322815289921153713885242646256598870398291316788177601965591150038067997039608525285382932157151968757550421273802340644959765861647492435663943288252647614191365004358815219648463638499919046646182973495459296669419410425080798995344980910587538570622120200000644143135193856704776099110110175689903512807588066665676697715374274526817675572138606275046674102565247014661875735362877535045301836537004181765292589342856487660324124543719349508432727476133276688133414449399233406253967284843756008542481405856581978696171457157912150301996645732501229374099780006047236991474635858785194173273988602301449912597366885303620018889019264255414241939569822834712624550976527941135081074357729992347344096791905414521057720629954698198877968409862067740712608077987865561412409606471452713520328005561712052913650706978320353264820901207509965035633465501838310401631391287781254591152345176217371500639408533093218442969680328478441482245655986720026985018855709958283749247929922620222018699694512897721413416788801113972941493772454605057625415627924118357735971442947600251713506927863636234378572343368540990593370643267605562797133988088047475430866527083352076475373187924578554117925251568115652970763210065487279805951863338625702123120779407387973060493366946159572640590328126422572809593219166320389422234987134425375796603246285227450948662114741210971306924457293398164475850971079109802357077307123660246243441461442787484225948204339954308545780958607139634554098993433388857943713527490946345244587916701595877129979963508022581373953103790413300296657469717955351662031182412542117963845631266333537745997241563259643217333967221006595229476701676097720127850950500022060641808417289292077072122134431405696437265285493100312526079210779423149768307628659912519541619561876753684456212113475429581447635311679015737958395838897942715246303314888583413097987671952477017449938796137537326094289437138973967746359113946546074918632539826501147168453118725217071224217977081708654966838359057170691398197377133539112057953671731870799536250504526721526894968055025078703864227890942632038833446954825202624413408772975869104809281802075416857734922408429819847928225776452225718969812703787570302889525847429226207587965713744032084579211243964623429090475978177624555780177649991991048535453216672250367032931121225189624046713948074878071193216824896201973267065543351460892485864595682009816361706843932170656116684985966502672367650978933655223711207868136462238325129584016398519306119766089811433382884523474405017993592584727065353706053594196895155403876582017498093452961540165606083642943782592847034288305976575949143512762046750288129616274878783134410615391310222194821208187491833904444686609829211432240099173474918477138120051295420429447884286133847650755984426469413192621244529394370868311967909228581605068998435522453550341263122283799699432995230685619736158376656615659858471430901975690437103764320215053106106394854907727094527559155575196835311712584384737592517065684277809080239667041701952768327854535533657524338409504880713498952415871534967818779157229578464615293447844525402328040908844306825260954407947279084184068499181618613154859577585903300250169320281506081949698198538663679512531791499684543363227083351312576745894853218554977676011153410085664149461226723591193308649758215739776809581830049380255120052535503193141234339367383905901264815124539662105132971262863989470083537404624237524741027426363462816666038461224798800642289636818584187033256635426580819782474222641444870433086644726604851274538673150103502166639200785913376234540560910127891811990482729443908054055168957049238387560405805601006623528222255183939980470030141704056989114723117115263266370541057645656039440162788014652716912686242856890807175977342524215573197483062152860468102454986434853692999114491437258503002646032491791612152206022883283558261401670841157387090288517962799849007091206945744772633420709683594393524229794171345788758717176516968380250677812380266037745406092831967024815053079683458098607981187889261767174142598398168957076754771958666180439269185971788363831036893401545572480088166993386489179429674232480489395995233972989931909322570619649148771079378262453396653715670595463670508435780010685957514574010388449382850962920426178625127265010948224310602754372144757473084089911452413799226440916664072581472518869248171716808574972220368620416431348520110968455787724687638381526379390487232801683042716555707434373322045336594899170736206040487820134778327816724807528122271963986453295086669059802615932039438083413912688693573735238532575384725027295155402786200163411040412024854369909288818934375470421723208645535554346240777315368540861736280846381015092824460224311484113198836938447720167189620879280500383077921794800529591678597657695003806975356419368525485140910521901598133775611474013538639781871921744112683831333796560438626819993414673066100479126170032724613964432838459406429046140322784080533717662503155169774706085484547819675936241758735116814462817608566159784960733355946383665335182708786172156492986614081514033314182890116765963625133385898120549828830416912374898226805627782664548599181328817630210882660826271020049171062826858836102185812925929947043336911805515834316608201295900343935126777351782443263493084028412034601436515859186525924336288481852095657132150803405939557406681881457171486477717301367007776965101828067604486226453264031627248320236097446178813139543705539372495095740357239553517888431478718218892838662617978757500648519441230514380642449315075140991846969011550624869891408012012296892804960922419498539340542871461642148141482331285119274451607862086990039272490002030476636423621321325352691792995043606349601833976411670840040544814549419693081632899973988932324889730709108271561559947741984462346316337264311566450125323769004645279095536683238341884151161525153053506265588423601027143395811126487114663515885988602932524746395116583834412011872176339703443954512805347648836043777657091397848139763438311926293959758898682596472825657849478874740639498748385677233927874652036099049913742309133426103679882592596498862193106449169427415764914653449659060714621673314880282647081957863935407574906395423697496681477761201068559298740110859528665442573770535554328439525477244888136503567022565418361908733121035686043755901442388479353665878437042317917162490348273540038972786927619425665699527882995783951553315367824394347035234803109364606232925454989693117697918844315938230786275244566226017902434928851920548172528150762563806209085277232049292118285541821541550078891005035346265719802056212219009219813357074646636832564795606627608944741215879553819288859411182076451572160016407325201143361569205462788780320063683808134391222768046915958065334714528058180367261963568465908379832738557593310416762619209047030304169828250201988149170185888819235228043173261186093101680472405037831148475693203613872820071574358563411980200571959232249406832798030128159117312336561501285454367479395216047271937097216762109846876407101939033742564231541435023664374568562946192625770814426792139685542736356619296277610299502471025308044705624252024053904251364894709279842277570985386702948438918836810047805894433003208151943836518512392982335636067882087370021883113311644218925713912759751939241682757289171742144319295498423682968696604778083424354993845203490369029407206558093483867487737863766606437092901250636374058734101772426235526751714342858631042220472005657223394828114977182405452762238050390782694091719950495762095890930918278678759754704380580079163164081949825791271600769866783090508603685165283454430417195405456326685291720166510552362912568191869389562679220386523815161981068007953211143172834116722920037937632954168486779291864156169853517813220179756775961376983978330122455563448026512749438736660683928475819621383657601574131209502349831804032398068116630851711946939129522862778680253339400605209211174460737606622965916977407329536983057817580786277865515357201909205097745713430227788313044234265764448029363496264106510934451938382185121471098508269362708992720049561718818679495321601491764768615896678535484917187236402879741220897641289681390123763041015148228092111180320332609014116630553353674792835868139030542116262608965345628115028921076397924185972516189900402205403143935354951113721721862092643957241887272484767949125335699994628807524863249943855498958857329209952439763658043683589374106037022366242608412871229157667370083310944105956143365371048875984315300810306020367995199987575906546528668361407107617615373874438181957884024744416178706093536355551339732117668385256865219954509643617838605433069646168063514578830623583027433498005811272720613675024437170519420912149412484741354897515577519611925977115590725104965422274245338825647106179690186738956470014907561272889858867430336083185575321558747623509253397995304862305450324197447473803592133610850306338858593340720080393755740871514490259583556654794160644732883323348397752328898204278741939261606436211544423253681555659675846490011266608024482538103061645294295321982894333587497794859478808441640839362720469249734772663417671665601874920954828395552803660837397485977962444284830020387461201959446233488906380392421278398493437151409290939978121249089938272088138168251148060295103097924123947763689704600730250660352865269945304274645718743719854031567551191519974455220601687181247093202463351706339499657376490100521767103383926966832569219239382558369698090687370527448371319575402372182241988031775513745792243481609924022825992553828498622060130022424616106451844683456752766769012583294849033402857422799476387635055440453793088721000948586359855400446825224096197291049774760310364946569978698327522500977008045549296194963805658808805606410964984693090370936726617277819815214674074111115798459176958840472949347769970550405313009993930125169946834999939571871860164277793787361860764711808085101539218597334410596968058957468621543402145587646332147033879642897147352910684218532335613687867571317508676198951185746005891548779429397906791910484195674738506559588278958159198607165649500155103031927732742512329883834859360763865639814065308396770156093169455019900407947786453569178485430031031172877555200667585423976980194302589345866932680123511219328758917942429122390313764895728693584288521434673614981460043812161699542786153424923060164456772842896075680932434841858303970265444141600703956430516346744860305729980951356000152797461947088560559655791491517786433638436392358313993042203972626980724454699531921236566964226825908343713667869983530236658340830665046413199198452575140074068124738379789798543791305303819632105042921990745124355896178141352857059248223746272761489293428704419334266631368545683612954834276219645319445399868229425808336958922563408047033856898488322928810066417212025300090838760963844851502334536077176159036122406992052385848556363989992515856555751990484330967366265426002667233333381815912648274827427784407740088270762936853346098866217981099926992195871206805681312011111103703012609829410979110311533743023335606588520627538670824199401845405063926988742609682092943138678285577275140300379688983296064982440268872813940818606036743131486512390582977958829522297511760411751819007702585447777539615657722903903673932487265018979544227518809266660909625136924988410161052979635625598111814203144161366654518081640551632153468984021786148946110165338644991780293361086881492518142016406685714041250839988140055256907675147642877850759673788214804562186841028714899766134055436983101886989861250236940445099687007286885861996920614659258127927756344821011713785150176988681356080573775856225740858447315450058106473969691166252097828373389290848234203420045255937875203133227051471813928444948735256670992798845936329263668542077745734004898382024941318262470254727238617556769264396123470496979792564319096922452074322461068938294626626228464661103340546440269721484016953320440884939683609582621132827150104192686544805853126240422238359778036680071556969683636960795672575134241306093952325012081558816329744884583889021622821077858591475863212690502764957155841790847423855025185452957663157236310063449052560106491268574307039045490495652673223459217648341256805845411679001347378142977002693277718986897022769673861672931269040939628331517575951118302538432526588321582339835047888131984237886728986210193708587301499923711384172894813293142872922814195324841021513842256534826118637179654866918302537190573284048765730116818748991710878197692479042063744519418680767587357505400606081543485343410179904754205276874038476911353370360836266884471884722414549886913097623302759947419751116104896106969300585589320306418028508129725756714262295225977770631543426091772299518041648326399454806406683803855660834766405350840591250540926493486953594130224374599554647396645330790114147674034099464193868301471592016774288698634053440281438597898576095964728134579607751510390257957444927730188049814975005030826560052736755659541038539042025682787051736201266360213228520098277083157777993539551983836845773471896563363626682881164749326674753300746119777056172647679236612953937648526332949214972906667863266930893526720742240430007883100703882145717892116160170859270350639953435125446053170166194129183178422045589294502628337749668976828122680609160332165930906703496218487547554587804498499169509130088732497956737186025932993806804678927622396014717301690980660128920792922633004745805903960073875944246409810384875465861869146640065715796725212859345521536101218789359031563849883335589200331119045059106590479713362392326437442057978627665646973112344098733948645507264838426837072571445849713263090573325009816074119603675992201359691202184881203273630130360596466686905384414732196109145295941510200748280663972593417037632793814898717784071320671475139418899289161839246489546794318259039068974067092730695364895621624621428835634808977414994566629191234117680171069811210767320249463884543660866848979045788812759047502868955639426421009880156160820017902466418151251249355962054155955192833748873097023620835241836455649914891200903366349974068704368269649769869296831738234005441268232119195125709882706207751987701022932544025003283914680788569771975229732232561962421509356323520053026250517613956006042685037143446171232993389990595763266080425043176466805794853320656364317912339976656135610043019746187978211109775488050155466430058746667888765304209215861404519384051739615145676697174324876714210393255870337007815248725306828867283861805605486011884315008984713090181642191892070512022811382792700875194283480542744035264533714801311730079123307710337781062442674847854767007889912691897042319804580067777555447716896601833813372379056811365147736496580872209537443025161776449188747834155008843255771948593412396070585096981206883078928279509216275785474504292590482219260181808486924485804163102423459467658496199637127543954107542499254004624587399054450870525874790290763121851867313300353940429449525837023119941271316601643698550043845167161289310080145515360375659276992111052060185736262390865883482794899005124797323653639228566845225236758227969325699621488062695218893716402435005967116923282713502974524768369866577269598869120417879346272169726543402289291242930965593809781435786004924058351348897288157290878479972377112357247965871501688536423661472717431137715865934787420796944116969083854331834212055134828230926934220654847278573097579303496080502677052789637046793733072681642909705984848552122495892161235525496084579324646896376693826379828527975917372051799369641378260113810402149445614551415643470581873913137072633098240705152100388689993700964374298279885095124993982253350888207135113623136635934250695673494217729181505278861397356913263794476395445972869098733425851121678307852459746646529872457670747578364519583158800798043801875633479820889294075155959330427081338321309329837342938962914713846778819842735479763550851222617285176151335872858204390422783512020745979466651572002054232683886861458395060218519724248416805581636575081013875847362113703252326074572784071655382594974300542249607975382448087247634175129353313001630975773508271689191127458868032020607058875043962175821617510823894699477071367675168229081164553913860568705573189912920047592984260327208755064956149253902200627760580466962468183008309620683469518554250407315626566529598934896752178229951523179831790684073748065887783835253147326385893267074652431724340654397035515932649114358430965030470273834328592404949893880383431469843275125476861840139178522778652979592139716891904822684851616914863176057747838320589974146747234542257022705548696694009783506060286098269823692351762740090796725324241124584810096260270240922554088201750132131858885919901167666596661675899075863464355571338087654822411319805141587145279188943335577708698202361175603511305749396067926746083101661023164748678274977542251571638831257621589317814678894051125919034806065997688056936341554055969350056646414329913557713119715740756321062494496842624945916491577109216566005790052456948697744565597143754323329565259029804350900624999422764710236248138563664626126169345816830555378234601073786303247729412568006829389496865596810693534880680273201151837496078147591979048175496611705444152976725823827644283855025579095292865357730404933319822380389808185720494545038460352590529519338801951405919756881040103055098879074115706682361575696992591389286708279947184232802591751880719490228112931465755905070269330270302114317554029519027053996024155367708554956808811527816528033679350105500291173335017770583941976997557676883117629496455850957547202060648050723673318894999744474680645551624091332212601576924492567022185695728040201469061400756469787346819713744880786937912659637361052024398787855559250526489126222524964842538183108260808810543796193687841659970896886678722091711079763829826806584151024234406504480773765355904420623046497148597575841486976429481895545259119866450698296949888077622148069046691751680374263060822147953958517692750888215612705929714009861620805994825487658150022523419571662261653292058873975138479337593810085404609496884307255198957339347887358307986427252862667491425114949770578221956233409259392903398376323256451075426451391581921759492827462670113758997056248424364546392659670056946651375128655010659915882988673248386998864365430322810109977292130730616053696739921932939659872845817512882555447641834790677962553205583838383147220600778464619949508891730145877948915851223228279068241256733537339915037469386283007232806269002993497143172791002835016642542831281996313583694977489044308692810900641900370868606611052811092193158258395371132703808190200519925751580118221502892701831883786352410432255406695976159348616252494547872323093580106030892527777122819152551800920533623976653466657662817998091054417805470716381048329119028123675356893975503717559561563386744389979366827199954800057495170518505432114833729219225065572533484028240733106037059666114477826239153136447040856812524962754388393607351066141732984471657195925395021237842915113661827546149688290313198399801277450114729798527659069808788916651663146115977733630520309290856012337949536309673725765785860472705409352983950322808477054091262812747046331373663501216716843124309003647874140501732304099302832743107885309469632873372213496660071760201248202499837059408075173340460595415665648454394201718053090159690266820665104525796602911937997913696662273735215986178371070862132798026300922420148976083060383563475015108351465263861278207553891402013959006522918036956611090231443838738391683596182753963087131414398237396645364639936334048299628441281856382746749473987706679514742927565840524562850631308250635937684278230787063136266192266759418845778847554967594203429194046930407392147533392713066075480174125964179933362634940548197205627114531524851024419573492113685496859002587699131099338650928467153053202071085294138994996743558864295402501020533433833407863649169609869062126569843193979244250121017014226973967287675699015137338030562260556284041501513126859763710046092720124384535848433400872876585757770208662246199540538826474059827848714949658603666448086491474258030425381241518252061610857283186129767882043868174236312130458161047825029316223756388592547464569251854795418783422382536383830755930319951730172300564292586552046187173247254494541061329985199708515930656105660766809897316396158751727348905981672552384923639405687421312810078233462864228278747599720902019833279465988706680339202303504597815862450321999022053293643002894470626758858850056385640050330887840515400286292830405401545523317368909027656849989520674137468295185098753447436499456970726546165664449884637277122810892447153620074053416233955237316561377640647053405039434067799455683347412128568072915311191046504949680902759666858490600704365850828829105161857696657737274760743635655262347117883556374740724197762389513334112478105570553072748076928362874121931599655952236144846683961383487536592097311025409078464592841604254463294497937944791241535696121578908448132937316531694254866024924768582775407161230655142745137514462649290007130195709984508369806071000101814824495494844780761378579699770263703342737106282419367226204230601036210031759900937750471904975179800813989889983769707998495013994075464353341617598288037639928436972407742903763681494268150004691842616916282541791217033133693787959540279534613835548862121590295140277221692076520417630880809424551373443640203344108196187120685713167431561896317136854567525107414267413603244957632099841462213640382643977472136445320576798152190455752499713357980937616522731887352601682927616610371023307485121482540832604265303415746594117256511695855382812264738498809635286345831370662888362201092055574119702939005283020240349554102524404798708327729744789744254517967447217149822897275140566017804558379184176356083607654265046401239248655391999359025542047797911846602141331377379924139818600784355570704831568551975866726705240807878261318264461947610390814804682418640476922017889818890380859100965912604916795676566504690500506098368869539007654204774724784494230117160070736167644027505945478489296293377094769171821426963711730460807507073980072214800182355391371131849238245577057175301840988192386209034681387194725809907727955686599957195805277768759431137695254159969440077754629563676346871396382237234019471428896530128257886119833344291444323976088814592214198522952106639937635517977298618461757977631534297859556285156993178866529782102988843472087787094971534512822121005452651339039437690051234456557192358491495349008103327872437247483232481916826747080867011835674907145247830504212209000194752142857482175136658988899918384599885533741364030829718609548908897350735861364357228189134034814559522019256781413232156559031596449751786354496820145700603762407383452088537220234814875252492231686895659472505986474099249572630320995942193692349858872739003146135639949218443338216580490805429082076907852285016765714895347345543243939157759335806396820565110435838753529452042771354410022076569344797643847125351702805002669603183847232944570640930531808778096381104498956920924078169936846484604043939531623021847731415064424839222175348741835508650267609093925243877642825386251277938947240874251026209737453580374168993980405607228101947205333750659958998558371192396126650025091086886631569789929531297390909017795369426494396259479109100001871407350990439154101112023133211352197187230156566778081394716852061880503628375952851990362048255333394766594099375564500804620154583060719128166612072063535551910316397310227888096392655210301343982713736514424063339950091226524895279821363770103009108221883362880872909276297697518430528854143120410348077837688422585360874297238372289073832784932479567086710658986884277446940288144843525681479168585329923042857241604162209116075507509903289914184590820742449900750750179071480849921906240240216282399307546530422623357371493011351281036699642915340077216628753882096655629910444452284847723011220886458340484830159544217529751849484229267751867712134996862947985418335100296068282671367652340981725236255961880058294050285273455979505101380395215610739266601109169679708747368830804720481602618576557421168041131514562723984842407140366161274436992264563048398113149866094537126343809204034945260256855318021766046067571966492418004635447613328035782979528879780143697459891794273561423301389393663418397567094341593924052091358609539396195530680072478777913784648587196750818825163041833102576335154829801693200604888108366009514097988147577548027947784494445855643468216970883577356795130725380736557154232699425004628690139103858574008368310811373143156176452310720667498580618932248966502834816972712661733536851757317591982680952129392655231306147897095354349662591866380521235025724359794750900086725878992594077513582958059168730328128478886637995291096912786828730578466030730359469160438120994052899502675611567573527430539035225285443014270028471214277271793212766078595697445666083800980302688396145605450916624005103244402341956527163165737238859273614958144806513939412146921859211716631011773066007321914109031112776887054361061893995406300511789477182629725805204844584536615552371633505096527002450904576132369522873383045745991082440153399242529968262747336535789795125150302309126400144797375344867472403733756397411890528152649386626990366906747836988704068906569169295896461144843713110910567483312992648753147518820811978617958257411297602353245237434396091817668897658884109732485925524716472361126905416390639221774255893129341941583122286108386701291504538632891103432043971642871932486259538659092307695860147241589115068934943174934420534268417328935738122549933486439966807540334817730084088427071967548393436828601609108041858945709549883575336406427231316111682647636983527178811534776498666821694293556373154218785434291984143563928555861292171614143241656012305250847977284456970204469171411937011719448983570600157065116309000282236024482543658365986517427556789482930185440387975627370136715753946065519657345908746859431907302009550525350850624200253454195305261313849934906427553998308948474616001994384037783172913708556017617816245758537844036416271883544235950435389063577119736925270703398342970876223935918600138108438372569557270673165026149959893730987942760737154657371277257530628322509673498864691828544307360103463421761557027109064594231342698030107263065885782232665890059853974700017595173497653142258144532912914673280629395719034859302594895263682644684155159644585835224851110384843368974838396870303888900948433769657031870558588877767761605081047741938983842639306182353851955630823622906279110828053339534008180543744361383365271604558068876931205742871217744905461267055748879443631752537027564790595070957901264340693406162632681298294984011555515966572835003223142641052207869455003297897210535899994125901846347676456288231720710232722917542319055674408580662685868159914145141719150918074243839654545960585756772774672196470435990596554120807174541751408452042091757170150967322507648593807007273990915012854004879639919720448747849440625136513576468440485269043098051664225683330174213749654053969026558117450467989254229625011924579491236282081907330202704907365214338067365456299220500091727259793699325971600623673772855681551920853441511674932200595154210302487832083151644875824439861801040833132557612099582025902182296370783048700019968260760079208936915319290291298014091109029923614246266295315117617827730632094518135864396917778551325398607059973459999591368224357987757553540895895844981803239038703558812802481076474654088981762118999289438535282657056954031242032061904768296551367952466590804000291668498153380085332081061571691768617423852860403602819067227303174927303599530900191198820550878370000359313313433542424480578305316351383714067422664103250090522167305777183925191612938937090217947415233526145306509493292223018760383646361892552501821153455321359724450640805066258463718241487359805860841457172919390125363009099676761816624826855878305706615673349421184577152749680151822399623676785243968233201217399539592969548162469383603825565518468664518434770619979362818360107973335278756817715641822769770477710238104795467032125491369416198222133502158951173613850791411243557818023829036308693772814048393085887260263804774041332737677975463280217608175580614997755552009438569229046694766166932488798641497320234994471087781920709663813645778278615824593696676632023398966783655237796055622286588927814492858381060766238567115017898248524362579645269125846447137051804341608562099911595130953769850384445391501502752276372748633672117647807958224551199363127584706561241947870225434470793542022678793998685607251798777132335592372762530001826096873686919479716983146256339939526995687524496194418134868861724413072734284803355268655432604156454627156536971498363807177582237600415179767916843233941609922792734341328029704027412583585855038573606419489892634993241826330297657209157137491980215398032051717548463287927116147776689895977721578906608310934602361340847520777567127059152512859984979731709565388194009251536434821894975822450369769795949582074254751234589516593562056915123648013247705657316663969550172437249674444019740417703669776910745612067468443585265622590291266838034781626985511173323352589262076544717316867074407743001927234899360102798595036700110203036525452572751600103784895926220972428785960021132510900592215212465234820932046308498458770391547170553646951591431387165195259066022387073232486514330850375382985223921255593154688763701339537050443678137442900787057281144959094362175910100288094813937323333869076577588616516007391134467743651218977838490191830944481155411532439113062172265369707813464628861883190418644271252944380753539718138179943460686980319494758729542450354600779368490439804787641987913474551497347380271749513611403750106355089728855039980351592878998524133115900503402537787074864727131452053103553706485182679141955000305615960331989508875890986496527199695729928988776355443092755565435907900798675200755155430086529020810889756277342958492490153055146125190828562858707957063378882505115297054240110916612940839180791221026451563554126420504422492624736482538983306958008451701064447195358247678273083939019215660379914849607425833127128050616644645120080723206628331246207862226839847910241814757871502398521215199990925006481279429658511632152041143644392520462338289343658863077341881133170313241186441228526260449662079011335543198310173700854710028029163717126968076356432914016818835106829515413058791983385077850461053015556852721820259756441588693094550235408590626592146395165574029043694444416066271910527084487482841396737444172273326034573322507746410165573800133746204536797461103120787068081356087430110967188590579276174210918662784771599349496323031462464321609086136060900642946092348771841749463079160135320039264132226300357764671784326329356760092623768434802081423166192778777040317261742951093409129397275079010836001206306647669599216714725819519730370045701751683365738229171145182286866042100437901833740865374603289983104258058131406592130590829718138663468281422181494544626508321288525453505824063418970531363591344880140722139570378321568817042531545628831889816759905896691854009562456635626392293882442637137194349902474104424712056220934753198089336856209670986608602088497206130826446414402172033341190811535527162713154371675909028110264816523704110658825416428349475957519980401577369801553488425010772770711969605686741189932434501788850057017576250369362615076154030145847505220367294555162777281396981641264390020476082260098238927091118547650608207533533466259958170935790760591344698034769665582675155231390424894698065031680847463986015167647016923436695680426725337943708419101454014682624297730434805657568703215673845365048091572137883664085543837474978787945158837203602156540287684563357873767487848064719738406962308186462210994800281165906603833752398519618099128344935695989254494356217127030874367837325351701136857569373360797570313948029242828585513859839587628913725740022881433718702651313204586150163442595877747913055376834440566901161758432224539076659104260851068144987200664561237247673769866780189819975332566280057424300979087978966500756374479222652750659446243993979516064086252537692547271561958810526034660913673937654810016998950554020012379773448830931521316462864976114181425218301464505142439827538947090621452698049664917800654449158110365525430307798588543998804626752215759799468317162561342814480611287166012944661817052233672743862679271566932023729942310584970138165212806009481376618676164288094615905506454692253020747265074536026677322781017320404121738181793461194372574316356878942860949385505032299720366054958135139178738232561434571176662575099016889612969112569787443691201102781753040951117196830200421531710986281277499108892923065119291389918046785606586788084696625754746650229899548126934494056631006661794673628441144684099753853420699067420274488847256221517960020026779706245120855578730436548541229209823436421079943996541405637557430873425622517806561611274939783761103676927718375446664067045312523890592364101745302719413055207597547874294369900171123428959709564241761108198116238671576547403838004115035847470338495140880263073595098683320354203717795712110569078936269305735006785367679625533436163194667168846472149002666919635044401227012750964975231833796301852975786951947444968141421151237534003698793537024849091207331084594854733187989374273394137246605191564973661608026366779504274883949447704974876513190051578957352306087574962614923038186982718958657305801162555859768366538333299930410537882467344171825668088081023186875111956363556013921720933352049551746383748340643826810255459315580229693528692974566581126168726749618961820018474033256963735410371177250262109613938625009540678786511548758710114987587441509388939194970851963351110854014942746766164149345771982978379874059725442867701289378665403481996879414791471509447204854102291888830200357507551272657177397586470490435186931069334042881630277227360989583799623128316570698320157255113482454867608356316158264999501950105682452387919534351850801997917586721050751605141236316515216064647843828099614737378920551258723408890690661035762665611846618069848908974078544801462556218124008999886393158638785040762574985884863503818772550154120478977465942393684452617723145283170827411651910466737509824352660752494669761817490141124569826802142509486567316421543900983663878039087634376019163563662929207010018782229820847103569762682394496274406499474194541527786025475193643392230659103366134737384994259588811987808234857320168558084943734923713537023756872738637031314807288632444720317680444257399880508462606078109978023549278166116053213821742739641995823749360066388771855029993083675949875982510488574177076484742236224713974013961378086724208432154535832343730877786359779613829282876000484461249974852813296124311022060417641548024215635348789981298239094158061492066590369267386210110636532681987646773600438159270244897066264028796166110926944078458265891304274891502504199696542368948078596085135395815875429655559467217816339978559037589555010056888560103100056060728774275381969726746156262868840717145774860743327033759946730802526194580565998601977972655735988697046102691462660457612185784554359960130386542598350679257602148134148186731090826894719580804617122930614713806586967925005577389583644026416165762564164711440308773276927543120377783265400441318646239983305433111537178222354118841740080634946109927749075496371455554627012722724498496946674719375737549712984434384988645027964548292263462905344732696109995450289406852143687161321941941586514465140355724530773868062111862318823969432996963350256477663994777163117406003448464102878268746462774414125469305826103030814450738189691147188670381785776121295013973198907874903072549161381982389709599386876174338354593782921991851889566274618553012391683782977056012730292058350689748126413229830104224539364333318120772195088199522975901345786599676986494204166363854099677236103892431862288925211711688401022411755842170062593765823664877128294888096092351628111588965788508997897507732995716874671249190099789539212502084771248373382492461314246597805373407344683922269391825484175603053797265658884814996435942412728197923499387769158802307559821641333782610487303283414179052226369638909048789007459866772904630593494309277188833810498798151111551981918627510892941711626747992091182055706895080261324008898097206502083663272398431831710529350000208675902141985178250203248249279137628832031549474595929743670694456340654719666115608582950019465199155636502114775534829831787297213877427739107760143027205034756133885669680356360773493096472096485041919944681759009409057366904409600595953129039070986612212763723873379692505503591262494760142420768727987537897913262639643996072845633487166968284548403802519793267605322028846301152432783663090750383685570200326579848215514699738096543664707354349260722181154964628085456192626542625834950446808707253972134799051535030075655436261559762232247391994002568111737992968292416256346846092814997696883702954579103798498679078838526897192549460849689456453347199789408763600795763618354799509588438304775845321793528008058907740680168743375454707617512312097066182957385830311082734076386092700906635228250359632140878477648748312834760806760084061909674458380674150230817815322413480836774832257371352143686937276369946420655483529734102795523169154806972510872745166435098314329710407658735910536170779510043024064739602204357975052904018311817291161482827615120411822763845664780939121983406448520706080647026119121320760305168238846901713334247489556697213036921611782025540398354914635948630792960273837867792294668162936005202320603490270499966872075776306649600050077027013691808486016771731746744556358628709657258935009284958314049811692567383187797725111053458439609965694003882554176371626560431427096497776032559297359006159201900650428031297116952853469389480555598302521342938223560509458503062893056281585307664714660411727007412031199620486858324366448259991294314376415101933470024940839969400838579090183421433937011918968952700709727160214517319511307103474445327034155517249100241061408843376189594146871791815921061956393911861385072141333826033238868269356594091316549922536959846662608257667898452455618203188854014940616496232487948868287063475979940589203451156933861668906493497456477812028622918174075725165910557248541403605513011693200791747471325466836397609768198168332189312959533163933900829736579887819004058375778079161145702781472473989726294102119323993262319657945827557077288221510947179035720302158865584306468552370273756887003989437978515470707835101890500898732529381938019892313492442521395558497680481461602941296448688244083741790936106301521176044968367732812815536166329446050547483157449631284801534488183248987203047000129619762210029443231961376076199051937259251205529726953561280186289005931151713686372639857876405415919024195564202575451239889320921924344901431688223447335378371563008409542600432877501139076133533383238408552839689703600314667905329179025218177147518659015715358376379800627442194959951533178905643523596330659054040103411302866228678211277282787708159289476198956788905733002782597526573183078757558121521709069811468786194060725538690871777759805784393890862416286363540316207875214694680932660207552683304091612182540644800920785954394703865173338492883976955440889359746353797546824112817362350385269905374038611033314040385314941931468961833936268772700332836920077963146440167945225359542235342049453107214919431076021354889193039459271673526733436562950960264219137305658321765311517613630061075815381113380822084855119225433915453574913006304799301334877279715072573874415984924058446263235742090488839328710225079696019593893831614547428441058027629678068341413978710565760562224292198923175573444501077124457986295097415972217767874697032731351860602209531208996455159433568655725046099120019655171124470346828423023045047003520742190225818750163567072872135209528641132018034481289477780201253018131433246794913860538659785187900144479059550847900866744253053068516522487571261348922458754161922675813570796821624969835242344511093451420013285671655180315876086321563574993460626244386863561104250618108454517241770366713933369420241086548262430476148431878810935044798525869816421375462343437942311274751732385412069293637322563780265339577128324343606449605084101635692304146671942686657155665838307538052719803172737553020504434297092273264571855600002062506936736063389847032592693900251844528124462447150319679069095170522344880125841872840847746264227551940052636724018092877403925681775781045727229038315165558016294873977450273186028634189090720207505340477796398152571581653684344879927796325240408656712180514002994663206821971737319527689189389845276858046120951814683591539414031627532154240332890249493444848011765080404448737752792036521422609118158603477152432636298341602524339200648364507861490334595857281211376103663350490533093578306428665286543978028071481738579212078606250558350268307481338360567438163228064180011769803639696449256678574992094170151425494148063631588978188595601754203717624997145933852611282358788169821321035639024285413749528335327550664227139568109574427361804669726159962918839886239076156522505210117408392270993890416169429941053703633860950339481198040045241521995271276200248468272376801954153671708439464300237564245340856123294148084425448294718253339941371785593945590319780616949833061140690094544575554615219103509714783783238695251613134155505477955223657417032104428933483031726359714566369679021815164568741387368815441419312504120687451690326207752894835086408567212471404125800199572181822788400647898301991910967286468646587651341271360461568397934808566221465583620766923852546927773406542101573540242528872575253694258578726070105467255502027486811778641259369815530081293042624801765880717798252350480884047537603192273043978114252240755409260689816211518429845079144794611680561283344286261778683152614882848067301839456623491717089467641558289462317080320501309256011176094931173981014075205231832050650154371669861278709322415710786791128395372509389312564035114783906736274425463495741154765144534218845398834183657873249864318849634263047465831618943929361145118534949696279431325618644769280043538507134177210771546013941956319260973380101189234946230436077993981329430658582076690744342041440573417572330638308472806110254302653301644608448385576187213743919340504975829757215923754029420365316813306372103695961464317343975557897525735095692739270914302958737590063573132316233234674969733583599856260491125449916403487835185070796736958593494035473156674271250834529479729132770086653171397480932970852775042140715133362010004292388665169474555179406607707236575331847795241758799369030764411954039818432618597423427504955141554546390652401253506356751366421976615671922048308043619755307595256824916211052856228193733493928601092723829105737657020370772632742914307318891557259397474738002304845576356512247287924498299529903460196857081809602142971834725171191877585766726031239312895403522710478945528221445386566107460641798693155978112650317028765730919778183771592758899691578142143021939207366642432391558463787080173104830594847087132089357166183594987047422220044252297903622071470274927250255680819609072279417435938653689147138109017334376029613479847752576486497121669261123571455221589128877680746763986243398910169081869627602379668392631423539447624586356684551380643896140194966315950618174213277657272282678300805877784105432298015243401241321818587907550880681215666780813004963764419598557788344023115426912288739698554233177570981433135364137197053576883641649793106632055875571828507862936916326080385963420513464251554255887485424011453414860295341766244093645046192434920040674750375884148743462616108212270645783261686550897168779690818882450787845500580306274233325113459527212762721761489802235756191044766033215491530421755220949044521134466005269212487910904919462585931632158089228020021412369618111374580399322224226378604666487615174213146369891538309876425287794115530177057200141128770399069581034151967687701814791820827776880305592261031122601784866644223364813139233355616894281955488714195508532867439018547742380161681132095282025937892566794711979093392820123617406653232714801810140432545907657312645927307488503546700291056788053545276025975220800839035613519863390003590113204298291763114091330431790802233652482658979389412566745726049415753929816854706953528101816767333735617393873569821742824400134407079809196443336500882222346786493474383037361911090222557126875213651964791893093025371093681103468654134214613916544643911122478344867298750142797151553766914848234063939943123839094371073458281787170074386770680118315661480569376374812480548660492068217373200937318666621487527734565292512506348104866915768541997526788049673583970662148002292945623527494743140117332232552856329782422906311432276499755931663541884084716859176726791295452716994403974560587259839068504886486926213679628443437443204782320913534901974728172816246614857949202793991363280562186857332137057337627864182239457143876189985718581267686819765579867576565146995112881472458905992659206720410031210367502403093258289951903006128164924165474700628613713113736552044561008489451313684006479035330886997846781923281792339343986965665359938120458628861806194891458993886609644517304584294783829628007677542094834292612181574446347015879189662081352661719163808500097015971180315672854761141002011713301529561128404880095195307578919062928041981370480990530288079076279084173301349448491420238236953961389610755609549781714648234620868720706276221190371835669022118080161788411521668742319312523332448527478531697562803735088321675428275028297044224607106049106749566079998693026486207901811596452150059919222860591291373422078384499480302599649768906249556394833772712072046923813448304943427895077375589281663907747141593373980628286104361662436150319757045017835556083159393019041026721332126771470795635036931043726859071749897866439933536741113709716981860557290284547212324604676264441406135254608429762132690226761812435050421274240464724756423615868464517644068114697072725186672529070735242063533341613132890152059133658865228652714037227333549552928704336292563977709533887743035816349978125522302355744428831312047944767329569795260612405647942736113945802871408460611285979143865250840037277014186204802827113739814817634446964595975258979343224716480924511960467083980815238619367350801008055864152243767539565300491692407084509723100963820360400560810619070043364360743789839995977038045040487823998267150049636340244858996688077894500614578212237623512181098878338390858679993766018336435223157097072840830206818641385917322022729013106127818673711202035337510422742455236193475605909433285337502857371091438909499333661194955130978078212102051095361580076599697505327538844943489637635295264024657311295690048902776305832344800542662131236126304944537761242206463786809512152547000877002222979247838780906260970058858081379294078957058674771887662560798727125911716573051139805151231003825427598146541665555071294405787339089994649815361878007547016859858757112094630728528373185860755521342652015198050888207784769322466622933553359448268937413346582155358704139073800693434779328644189069472380760730074551593358766663601849816980998353402838614371642726718307396132572856627065239412184925665378536811574381914856165667123761524116364892984479096552375642804325952342631089088644972546737169765009263471380155643897561287264764691949177192757046893911748115585679696316582296975267441352810388348079638867464091735861153291126924998775521920194781906225448140530417969061081559659272827641795747534440659705660688970644714398042496551421997066854928400839734083639881981788464956796789763162435314512790546932601280257664817459810080044747907136261938329065046054069433234057674767609616111716222176490895662149809860471553176484133223790004984971019164581230654076445455854341542469828041107504149794289714868105197901111862277256784756143064573273384561799524292667382688036453791258328280700977705973887423793928761699769757428025404146516818685754620696449251892216968559418983355425070905084216902867709608034576174174783105806082863733636084702129597808389997284567820539009212271061800700529085778821721753981087268348401309886769842018416524241086926057045721706917859401836944537243958530701302187038111816270904200053123264472285007289817807337343755172529848458287178968692436712329581576312240957754613857529761710967608822928793165551304280361368129912204174580145276695731978880782912430889803420090663861640718919152241121474584640027191162964979203416664012477579299305601009039471037449786444464305966176070017121975844598934464961578275287009196771120923460966013931469160189757879972218215926210356373481467154141363294786417453191539786491805042362841582338657801779329519013250435593827692473641583535446872916475867536873138297651195882084632219962649063893658778357666139350257512519808273140086843466302437289431321159563672357603333586304258480605562939165835269618258773512673239422439922548500335113575733056008342244599340473095342926231941776900459494442841376568191385553154109149593777915571490639284500911935985263064511761824742203395498087513819261447520094225655194993644035062207069069591056566066421824430751457454314519276882424517060036281027468810848437689141947051679782528310494247915939124829097075228159109524325929831324223920552368278231674266159382715107163499327241318745450399660171997246178993034808444483450467557271998788081572417866201247002730929807616763005791321546256539522412273850251730973127843496449790918303329402599811696945690660661592824875125016276970449506572722914492904516143731886836493776977417617179783167355939689956654306078885863180925418487382048478085874351779762314252990294032941428963031017259674963993496690743630934046861738225624964633707061165579166240163635121684955762878436342976083356878037532009397130875073771007694498241452482205283880158368027577391547795915534822938774687434173328007598142534828705164807325758558317132495878748365755587063818650474613200075912487046853245100157528948956558807611296510031147809794599254035796926688691805596566915940454933526184954044603259851446581974337046541946316742727971520628161866410615256920103890043116922019651622148830851140254565258569434606921705890904039495011868711271973144633634137076687863644772979384747010523231899676041518705734119920973396586444158200171744166058145485133888293123141216732447262801424803633046460692276510247528760241514829565524742403537280066081132625571034518759102821837535759012560674025901812094187841417418665622034634716925444238479110086559753226608200844277115036034789755078648578563080702305018597563070945892649048028368860719565873867446711616429265141122079656943698360431074000515728036992697966893846054454506179972572831538117591196642092710608865149302113972082746956227388175790730942339648823528141980708388351355689543326788592781861699434579138082425093853122218478321888801600953462858161392239072261141312407754939756895019027353468609840615019095684296209934381142126198790699167686216200749963176895664724640409130851825722130719286759223364288363556128342314342918831278696432887590334676000391285302272816104854998455055095214754071353963458858793299808329804202437834179065834253144086966497631424832848332858272670276916780932426610544739557714841533101105347908053426471153537780091211745446341694342558811580690811086630364434968214006164234215423097023577064885396902435867300719412879676065694295538024865836888076934640100529073985462955634532235690700762770168715910484937151720791768046153924515663067873955034211025731034485942348026322925346558122335774379503416159341986532455788255783643084699634722486731200125704068467936890362510183313336906312258942631668829848289513213845160065228385167152970932253637154150782511138843131124349613428944012373486270684806231203555449841178426153211691325546801446430548391906337507740294885029673727657758381132906936425928995267033708547651942545288771560087781151915781875120748515771770559665866344531144119971448626782648125860223338840737882655333597410097019452237211090365898148999099790736060791991937517322221220100174880859959142994637959081191119697673578592882255941859978190059717075924202437022107104013028000717200721064876087708200612512594324397594981680460291252504863296625485883952998927153403889208971410008493793585300640039960857009010969238587128192296192188988990986919878580499619338546445235234935812670710782615579114738261664246513594663834381302776503779294945205761054482623890550838867252883350455904266556601795571397575900956557974530190369916146803494599244932495414541532257837277636651145494945490554879553371144819924473968518563050916254469840743190597348105400502137673558533942902636556007157370148493356641941115860571297035049899234999094115702850980783288178101691690012682978066034363281091150219321689986783387823141251366398330499487165403285500725862501345484333049599918478541037288422960404708768759507452555284027224364844611586446181437966468191637011583631386904148944581401665376525898026726141035494644701248990489392964688882322796276391291249278575943821154334051791810944971728322605820354759839910005492675517878360496862855846857497665126903840890577762247932772449961562946035083750985788056201208354558251750135134603518239369195650576752765389759001925961880345403178345984859869962469547682232549384972368245242588443102325670618115441376900158093313646114176987522750340365275516970582009698451626751798325876474532732602547610386465397975613066340500855627655302931738290696221381367939605235428591421480113242489272232756208157390448559884022949273449069985715759605593096291218562569467038504464023323052174930287133936887233736179475792196115938231810643027645683162481003596410502666069733392609957157416157117374070053383643539254996611322160667662000365719644144705847163120997197233815770294665259075488477197920301989918474900907546393013705836924825673163164919558969240824427819486793110612567353388360713404442122543504751587925752834184528841095356821970762248522930393277477012604702779004866050190428266977138608986986372088007150977574397158956545283482292007195842281097892557075424653964773258486686375620438071436823290526475034771234387284327000320482139643110234772491833634677726039003314447915254347701178840454354796140942468902672780675720166536140234580370548826884456463126741775223251315207986331078391066133655080122652441074272111317931297796819074228325753965196889019889460378890632208605124813815893740887667630961722244735127616991079836599685758083457060731420537510170138714512968765748981044896803917789240547313997786880369050452130055119841240019608745641786999005526501635736607571045113713714266826999473143891995417898169586169858805119599789230919826784401387277799748717640741624302743981608488363135999964136567842130300248074398887884298945639853883917815254143821350245719794082384165691105497622747228298696934351920030580342627350279039623168350364412457720565682586559875701847298544326383941100755643214308028982325063357567543117539969872660903409844601365777430327314580671921816276313980623766597956013106397015756054127593143948549960609401987582004754178572327324484335524282593078485342675417856399952371630947786320688239015644639977031125804546605428420995469356159272862216987429362361807743359386562894482134171307598372617545102381820044561602451299450205825063246341707868013243298219891307731466636413225659978700689720593749302044467922920890868740790164005219756459741730717691770887387818884439304477558227394382111892770123153591257079809347559649927939344704929637517542207272164868793273665629380135365183399875645072339901840953480098328316871478611602786871120229162993581629590750939617839852869068426699548514617578352347524531384043998850211979804039891344482886286061193280270774653797236524243850069398315383759128952504029304301330172711196009994144547487928052179450569270169674139887670485793648794722748706129108965913483858627100374155877788575176515900763583511036614492250877529029196454716919671011347424177180199745216817875087111954372180190174696377055663374570017226346463823550366832270727728551295831124570517200527500373238357941163511662392444205233556392186292653720059204724247503243451181347729725755128552303727073281426199171656269024365648345674816536444619335248774238073630022776310782716240117631448812915192834812183717828682737618910439713104312794476345618480282325306617059328776410972811849182612374089922809540548820014023384522021023203168122005016518847200502605026442264564066617501332383653156791927374871432293326654919335004197934311565884127783175118618128921363519098500289507018889702594731083082833862812524312283543026124423716103385637069398642954577010391012350814611541316611168970900111347438890055187758864652753764809552442547056832619085350637028973228482298971233142677731533331753501830637851175342125279512798059233396182290734057584546815720644984602922005401269713394967031430800093394844060932372768472615795805135529026110348525472743223803416979981593638481938103535825167855843902376114218139582065681367942242579191623546494700269406191325683503775020679140276117727860428789156769737742779381163840892770685352225090267105311706786953911556779389305026658828596182484539217245175787452235184803041404335059677156991114733113418568001517575380979191664985327183083144991430538447504002535353652076576719762517378878032667032230987558535897524301215481284418407262116695457898010669787239179896007677222901813979857680598578189857579870051449334192242199007093750737743988821340665884885594969943717116008132209888367826322326798419110934264243070763395637307248260263690114522598838401241966882808277299741991785535759855434625553382256445524087653548181554119447672217860369124489207463874818675906683720633171001847135526484974643915988395406680494956695082456758256186737395445840510018364039964572256985530015176187023427414972207896459561078697499842694081311091636692790669319303562971102302475135414471402342708006116447694218769216357592862762383928698129095016752401687954193586455267267879544884953759268527162798425112166545041426343205012282134755062717212454199429021250463938435706438684194037030165202595449910664532041555258274895055699591667020324480905833313828388337404106249787788371703095833677418939563531310157328728212689431225171435667782524497329597530763281434001779921471203153917083312465965033035282302718019818250406092596890428758030941923749899498748338480266070164357632611560435279118234841958384158310466510047058872366552390805647793444458154042288934174154729408842388204608837720238644116067841170990360253925058813235931626833833879994297802784007600863456730117007536227595906666753098671683494147879529019776341651528687936441138180091069704979021980684328442360360577557944956155224656501737864822577272778393815280931114891273531269436365657285389490889017360586430177632451990930918929656715458466239575674678760562537119654501135183741118985941195916872333546064438550449943062564251495740356709655699594901268683822397333003069539598088104962345585318629025988837646456952286844386159052640524398944530869543972697502776829268052515591445843013773050633569375627177311906308685981054311248810528260450191959547643184219190143079015134229184949267799608623931932455978986381318187058910313417752350149887019837642434566907782918022911613506360503060651329620423715886147873834230305438491543815403017895188502542186926070461002313193702663827136738346383584825245626882165988561496035494877401963642969457203443057697085725821285471417147582897657355838320449096138952601891656492975817852752476262532622788427625206092378526243496769038881643274984112074698948615529317482809397819016486370242794636384574504396298936574698967431069427978407036820487846643