33663050571655716366742296970735989726992088538561057621232273491271914896837238001274204452339133845068223783971880242911459882080935702032135060235637850484473591577774147124439627415330385396063954361667828729556528562486161192769188189286309888003361587317106773960757879919267687499769536118953431340057865609317819055295793464804387254662736030768220293179731998536383150840417165965003917423279576802919088018172732476827765357690477017617495612401072853989003863102806493077013782940676136418049657951438495443123806179324235315605334293907792679198248873243132695703430932557388723900927900906527413484532495689636897361645280516274196479173973300447337708567631396598462863383108784735958890997501273700344591735802187609043852781817956317483090848422600116814949378647084556660982426352495916085112709197226217365203888837091188878580478501426765347251499591389031296663666918483015010466532647832733734094667123280202787953383968227046749771157457725595323344989927463511848586826142674996240577553405968884981048888930875379697244593462301016983413255943243032782051682121350264795121464914645430764537320224398895056725465277720614373799288667395411072169365685916268081876266608738652507079488424561213605730249568139561814574349801580720515233500155080093792512672095788373019640420396764394555884860377551166963560483383879072037698243259810011909650930213099909371759404638518709440015654334569495760375865440781718907228854348430693876750901290659126676363957482602268004060872000348564248174858431272807324206220282006204120982672890541292877262204822714078561042393517894947626342567838772596914185160322127100107779599582820829615963998300078781568815219257592539288427294982542845554445754692592210493432809484563135120925314563571099703702415368604922168387535584752120652968874786862615573775824336157603367517600362629391075908037492497523303175311749620709426214998473908772641679048332331489136924623370895314578192738148132527139649691703834561934637114616668943970043205002790340721259593861088401785397195114666539168217976514609388378635757796530608070997840229134544943154715145512689853332916632341064029653956901295831442375863055997544723171772489675761194744295631816431858088282463770218683410012449840654558719053890816999551278853983207516031252357542059814126760150981912879243040496328543469860713209876443204167023364175343448705834198943899443171897972869305808083190634315383018332445721193751875054094243040375019912520922033579772223614505663811836215430007212326851108319560790104811719388286572397165609636077286872713815675214434121438906293528049039995453185634583364253841186152219789069412282346086376506836624626167427564724381600972104207723390004657469884755995786940395701077044183518799745735824511926518986846266288295389905875994102718102271198315487569644602715180527690987307437064064193164930318560218529843780979441225559789176059428716326191457642936490048816979713935977327231484821544429686410608643562174225089601970259484789488437321701879446479616801531512924168312638700230012060088280399464113926239518804426905822274948782969467860924935544336335411018881355648844135327571050155952361924323966172426555336256748279414458864875477799450064690650984165367884578960869749749685575591017951901597677771233121323688087072357575412976390409908845796954719636415363619976677352743211859805482535777292566263292479635183496345564702593433386980039175938363148530007355738138388689365322542599525811102212243995911647325374673997623061745733186229162890300179802641179675995134875548398107326217383451278323550672936484712720682699833579418323868981615570410617809159283932978280589699177417887150274971141938619893768232371431890428762803082406615850612906873551632726172349969978306478788825597967307531335726869226481206114907820680219267283744359451238098748724701985225027087229058709280108325646668401878588210929274959847556628251799388689603799638953366381795760387395501264313680371992100916497423449991536538922722331479379930872997381698394196564407785779779681562927684101964569439822900874817432478849756345820194557721577383518270723669594480308756078406200276218443507440995361313316815501550987565859084137502025519675863332965428062331870727292412225573827995243057877838287848243289280299811451055875919062725373457313544116653443758988809132931886497144476232663202921895189622803406535311959594500800485503358605130775230709550448448860779890315618481498678897049922810666393239861507143944773308303247612077343178604485510856242655377993110303906928649866270462455281309264115043838338781137593210499629682712749409937629560876025886763350708462284485990693628503475579919254563010258738009385863454032394861349197260544162483815259905760455994433306632013990544660745615663834159850033215895535887985475168603329223795276113128798907748587692139190402100971913302018794375731744451492678973319275367531160222703846081251116509019544057591997965754585629056156805905928609983359489985858361347434982534543052522990118605423863905925776502739786845805655066702040594464826857445687408927849696275995805908406903134294941387779487668820159543020168965765154055139427467714570505052068084458219116436325305930769073422621246139702574407889276504603121934842857330949756114666834124522945634695433680853758640574025575324618424508232649822153815725057242983120443238999862821958770108526014256466152357208631293330273890571487866216164341820050529191990940146129601354693567264941293105779686675082454904789467314759465231851275376400673282852774270017203850464284539155401410910787415811443579549931997167560557835579562180712948588843976978671787617566827946715862935792641189706920400252516447975253098207994406839551400122353680264009740118240315958312336835006910775497323292473062847779277239853305135374530859254276798969081975458556946272112562967245311549702470471805059023691840254987571652635330669076050006329626944654938998507295648881460044819809311777959713584977929361141511742284837220318547652543826264857454623384533073624715533295411546403993292792705513934080765833294133145693706587332358614662434213327035978061465362987619378415965304191298836590265086736601635504708974537994542208076858713261255069152130436958799304923606970400128058832247673947065000062946869667011778508880100228218001795538470972144828757379120872563462491964057229606147728807046597129932142897921549303181180575989747661088955903516766056541374710730669820341671777651343614671371961530393100925360864558080347767108683753147657100389034902372270950172262178269775788626651457305076892021138522053896948458909270868357699365532674700517175772374109830425873161365743650389674664399884781846945792894731823877330605596120036755824281447750954126478719984402190184703915770278882387607979918069326511521581466401945810461040993700397760023329733213610415715781331019064806076649208746075831557770522427116740556161880955261658866553382117393093718585069270659472575789719734672449643016337404686594911045150453110487972284588496807745035105463201600243161382183623082107309990842618462200192461173858395013895145584727332049372794700529442333451019689305563623072717529547618708551100918344886171874411269422024172712031829307139701232474081191559444774362992292142223049489071800843093682658969599430555279304937263478318172298548154584531789162424594832531646131270546336674517948490658818362851264866494400995468110170477685917617315745685723251771473991758474160823467243643203855186530513612286762211356273490844246034409879518417542920161688419437391799192705902336169884605301595227854857689574014612262228994491919320760073478833857702931396510703992017853268459592560188966586379320439340764809072958029612219217789936969714194657202809201028141717245288417381980918590459306407375619548776693386531516409660334223178252550493529533155618027498588248936093403674226440766117550450445058871563430275833800123010335458295072663526359711756368792223079241654226498740204116178356695412121279453924627450007875392809132905469730397874257570768115814068415583289752406788208678490707633771671854914513602603823680628873756104400097809712846496895431740355581007903121591494128091853140504224424659983812343044255921763515779961917871477128737006985837202681652570022124780960148125476018905848477808751529996403512159439730916591905933166830458327827673336648149603381186442792397497405008591590650401266585148086353900346424567938521752281391096418227682242682302914643322804467112899122630568029699089294835475224644696767300710129423832978719044464564845150489599279671913924482406713046559768406487912136042750525965057227853650944176407152668573204065877597787410015448889691608957969035099680901823101045210611142334293169096576199274912585685035197679003781216357537699412324501653106783624193042349463256975167386491987383409568335447142243133283736576181501346444075892629204878109080450478330095287663073526678962276958359928660080080852415629530598295299185869014004495044501979065100316406302998486557436054284618883102237063742887558410222708192412818395459597860661480543119909897451649936233310619735204711506300279430305175946513189233012769604540943202674492407608737765106590309611580121648853474989011827749379604574062663338111222131755419259401307652903728037054811936935171659262470832149921947622852679482836315587405492102083493535904323319802086902207405437238558089291224553923037185773753535218040606152164170789399061049300541729232442307097885513743157234868279193032274283709540957187639130766325093221472776437413315953217721536855321059050752573891606122207789484079677547752999477977088042122678947157862790947902078311443121260091796416571050353688157826137903926326380529932983951652569877640446962284496040796742743836761856039737438319555491360499118175150295933654322793768245419295113780846771472195048407487284060165463728854952234802032025316120234419669060357112551766022345195672854574422179171300092825276356206958552440307124134764119803554312751627973639117866576025711570348212802808154367427544897037163629926767262788920889977528814946532271088726423900301066317874428355000999612009371579754993582675370588856905331254016878002696552078198073585636830771785583678369103730332347866815103467201155298138653703528247724730107975379866088456138037390348505095363876764125387759648950296140756571416988420844689472460669988330112887382568603650040767555318194330346224079429134219988082593395623293031652154619620323178032025856187166400308987670332506825647157908317080837958939024784664168419050204914104072849202441810009363410992214228373424930813690352000651969608033914253016523006192532938261691066464573972520735212666971313130766211428598695580086932254320505320532100666878183227181528021261174540968683464987079863426507615174184621901073804403615701979751147626877889267026046755773190726741411503539992150545604224808361784603207924429930286330712533653010245557042519460736141845137718863076227812034155095928440826923048209898969323427171648045961625766979178269029692859249172271081729526392991436891559534896496368139005204430648396429482645078922467689292230884416273724678328167924685330497909121284476576853854569289887559926672738830876074327440532681887163645919271536904115717619761826975024376060504358243076319054733586516202224093110671440408749088969260174344317894281540907649213733533089130414523141403425463318610252445384529820137382656954424130778661121321655493746795280690093427929369611237895904247621407944833085648528295399120050852957011046968796065600241087024466874673990844188416992749878409102053555738922945011602718229985315788004557545838776854348779819703448262002790611274373718760960604433563766285567596933589267667511243592339878951934477018324468812874941502521632253605383927816815331929836196691536204482845659890795443876237632576255509907059583942800164944419039910992281969940502612115928911646104118704137118891678997534631505793321218073629027645398890792713092954440540335181625784856927644070079399372540239362649761165937821173955732920842835653987823105435278187548905544384671319809520418189220469805016815251439653711939270720088334755828439787443310988030556687453531444070582898958799303169446478788918641471745655904674647455341465193869868637341289943514143488269400524974409187321156422186500225502334053941910252059618933769901245395898798898878179816764732022577091711576245286202410339980051503649856909430551552826429281786477161111994980262675406573239839847950157769579795997147137982226379181055335296576021926269586138325933480167206498093526716997665548342641567423900068047047643445428821514307198864113282000603215278247579881561635976331302755956687493831375779230365430153605967353975389060023315748362289322766123130835857263835998466581350863300714554579081052015864058241694225427935578105899305783254500652565344040109261636217933578597750307167440913979160120627095800267607535407291659837983935161881377278938332453894426992992377908450356100526786545185703352893921514004749300684040639304698770784405187322061042491678278096619912802041896631332719117392880636678294805375455378075176855063384893814736599774437363059485787467960630818245909328318714432410367965808332728835751657815876987626551305172589796545313472618022602521057480777808926677217035634575407551731190782670689743215088797209052363267556102350423334588475663726888543763687002809562577986586539844388566143351113345127417615274249738274909947614312098830174078720517008087191053971437419396323357979287556078583324526726010894171739284102744161042316940603728791921940000168727641726463518405110811866206077740368300931330817062449814562042110000245736198210477468126892714983217005713770573925815113382177779520680596468984818615913405972504466031040759041815868590415658086795726876238516354177292165014584621233125124356856233818296337008216246585818448533282807325958275877336927263564725048803455225768884911317958377550328876646721559040076371359539300278999985113846834247874334009181689719501056665803057759329863073421607733259259913022650443587572212479406084356905702241540049071893831439288763243173818059531701489313525866027265025552695635441095595743211338881400168817473856412734637275974012911219741325869715972588292197528013920168129816627929656911170903437611865693851443886682712751918057466269023415115820644119722510483547057855475988096854137834304743195647336132480815124741592829876609200146616468265184248739366768335832261913919193366726034278771191239130523891246838873559700121080862958041818425094981703320888173263631928806640998800306789227466034138115811669517259254610498627112319266520643829277642520337144161641982383686059217248962176540148194404965738500891151473951400727714507212177748292715488299354869518268119720008727290739261398220360312300630682547993541614007467779933122808414842638148452532617214093179912830728987049483675966552151154525960661195130289039301241708029875758786537016769974832965974566973996554737199784469232641746163291263014231642483405691753131722388216642754521359467487069079232286754152282100217745567195611237859864402140419975909269377250991158876770411988031664846743948286216980835878919649336919222285555918318611996036797129814917164432606115276829910919236659119211915112826080265529761005031019407783814218663689569837451227590284861343145271515021341654913641640904902484106190705864262122636023480578892615647189643280707466977901145035925760095180211832743769583316639290687113283152278029917177900032448667136401604284633041673712712954950603063286046729177805157486276401784584419470951478794683312047751889439283890751680448987029655104285460719037686426357106265823071227345682842963707382154369903566192653303971105717012996265891711585970226012343124460375856482354230095818090546944926215749915512775309903406860240786215357161938546202538084666696565436475363264349526248229164463458882148087290071394648961069552592594620669450584302380355926050540385267583016480001040877049531347494830581149719547398382865981169365436080283172614810310761610909450593842401875861622321635280847787025483041229596289260252814888769267532745444165404897644781181511128135950919421788737303789872215486464631493078164936207025599757219782768557331927661093086134606245080684399987391549609266283536382088601132756685051568138438578448693829779438172122710537737275301560912541326599336562547489541458569361721349609599822512422180106887741641005808829502922082392742208898990111461899012231873978658054137516629076781589522708408451292158321213536111817850806097281166867228223379948731388019631207768231984414495693197528684917186840788718128181872650659179513299591625982266239982967436279448977464851046383770879483360009176302687634342664914078830601305140057260600268183397499904646039693980977833870622281271916589993398586894738367980585189166421644952564739996049810849995330371824106761243744653932410131919263635565478909392077628030714220774498579766199348623344617861616783203568379275539663784679499205837390256357814788178004281512695952928321003752494785701794274911244427621815664139800895417944748499588802680138913296580249076094068073873135588586476518313635249747793713499404465241048635092753078339178813694097209616277892336690940811387967441915984771549514422013738008888314201082867734417129726933348428560512872041233531333556441077695308523833885452981893690335731829008358234502578736664759497959612830739944678507938131792776255640513279264316373806550871528109326262044806670991484681714572291737051658845626107552810764928695708547149352911398410558963885081209607909601179863411856891336157549927276234673556381222350598165833831678634698024500488639070032981008286711039818850878305879302070052260056415236786259662903629744277160869968519146053683928263054259938032356955432536932117964758183339875112224219201445196757343712709234922474708224523341882221536775176277443681455199474260129698359503459659542441439778398055042985648112402215402453030899795213493864158117352502174216859833071557803504653983862430139959889529789471013370812518689154105371411890229803130558680995136208877883333666282213878577460931950502064446770914498342635737370681281494751066376610952772065687405181384198568134132877483959518262488538105795431025626630880780549094546916903577729995993634752154265536089230702342733038408913278935643040987212795915666342806379058639113479312628882834266827106194031156950344969014228211026774602733072555555486024679393755939556944520238811858252498595716051438500889742572479843123310682238656866871455242910478106146641752400165202360505590626824972592637136302047788188785478382176015309465092023749604213615299780187051860690080411825642230324103201445344253128352251667166483078209320914327292415517236162835963645631397991203259109321042862726867991252989964205414331296841529643269822569453712830224915970290869228832504666126843953527866668802413449076159858963420337417994200624943954176342704756279365227236094853372793258537857240408886566122645309305615040753133535486097324604370300416613067632636588576696802606716109628977068753949180262152812258723358676697360597230557853076356930017040102941825537658532586632914828819735764671334468256298169915122719570649930623955666343560697823998262132733111158160782848746408800890409138572964318542839597475099659751400253174536915072235043666039631270396574288674646997749540477123253024846040960092224324296858949144368400410681705460553345576819899479722449364639788793301832979854677024523965842694633144532445098262597141133378323159190697769181811241193973997590821825642480392473127609041743417674468241222131695063320345991966967800220363123082480886985260990051817958964983089794933142082387033158749096854822963093156687547269021799345465468240684020259634582716110134976189754176414269524575743659387352099205711452385935733525048897905402603510414885217375575527988044926568839381188209935046757796919027640788446048079869161326738297397850213420425689130183866897073699264776035279702520375805370562856938672565568224333103964118778726741902105929606257923930954725426934834552343312437089003626362209075768520419600903280034488784663051349840009916719667768567727776767769897589027309650263214044195939592502856121283926722089814050101229557937612200831135515959884641714665348903633015831514324407836330495548824903343972274750164421224785806174821273088248167842545765231223528492277439360096257117680978199494168933083031651344944973228251300072168901888418022039327291341372342281833214573785534676368660716909921844311576620957554887842150031490320655798789800217305464852729363847912333647274625323480130043436278091647968096414489947765120235297779719656101536935400737501486463930453919321449163336810509592238135087292985828415836717497513594806661409499069334025406334814833026280350079678572980297252777873467256031726060837255298321259087809002142810086571604691344408153889361087957987689959179449740058025350910237639985619235774150868045711116527114500460882034974618729448764482263519051725646255753034580564523736068015809113521867728842127765208972142784044061005328388026841501764341198697102935329972449797548252812606315382463497703259997273168755072225294108571251142202721674644403602734467036651341700592891324643699338526255140610743552352578957651537045252184719798345406614721127792840014060284207623154737299304508765074230978988989569964105242886689555214096508111804771976157672634574832928678181893758347295312843299380131983566231310821025320550189929341576898287841847980043679014258851578500456968607329838014725796856768412764191440326374129617958410234469716710714594093316248822286337163388125800476208667197959240482669934100212991633433669532563573762453367203001514282220508034371633206346074795643454088566601682031242496129800885107018217464062011180378633188169780105108577336483373183305864446977404510023852908293890722055886683445184566027827352901091658504406558654610167472962531096374414232451549329672624766383171870844348544599318251409188767663337355040916545938658039444699431087060711709036552745864870382682068098402244012586293545926962221295767926437518690690651935149062390090837048362002189075034711709155710841962784622539616521047506276303369440125657985028725661516625540087434596301428703004956034210052177307245898863437279997400171119365892187066472775875110422551772499394921931259558138068738223010087994039703123099133250792889615278983912464805758770552379732196243724963046751787799774161454026555486093966649811172633941571589676166674156682482702787877702049225645361185493453932861608984376959584322071362251763464237239112210944446998228134656417107199249942977974021498414438588313274105428977040173548765178515951726907919450540513422156127262869853832335157519471703390135866647854741711432185857356108003583417380467237805831876168331984668383375795234334495635447248601874772416915440829372899371757027144524310648337223716181290836199831791643764140171577893548661982576037383136067034713614300898288975505759944757335712154722728631505990078244023187008008967817386673979663695151415637186930200644488139950470333942604015855495447282311913513886904728040374923445135305011602853391779587122777988209530966735669327553999911910309991482520952000201384672876048777239368629978388165871983450534228030614186805116158673813251183803792919253641455339333273404032942205728814699621720039172574638087138596728969993504978390400768605505626566540361899185431940205414587266114610668060736162193701373508817923445901279420585014561452187143703082131891824629444636810183906254727354470026876312908862058710432945033524639037214643399789373371781857885297625458487047289482612663971656976987301954322399670048707988473963339056832230573246305082191110768314500901262126990807045828394976054686723264980339349401586610093635545802146366727104208425155881868377012931741709916399769785819908193159668636197600973547874211388199995675303631238939891781084601676337621079463111439942142666105145833443273156967618818805546345867569785412723688455438787869072324450053087700063717014454006193352875034209635159156333871483864744007359542581591669654790651682455802242256773355712996831894179735050907063957027522912309715748414458888432943378621067881450480245394226994770562503424611951832915296363233729837729511152779649902297239982469242754846290773519392752978153467541126588735415343584678107807520973923764317500181874055668441663573834369269676157846768274561332178202842512456145434858763800977670802553056112865197658730591700635523959308906117697723240846104113657689010884646488625423623950429821659967426753795036066119780628981577843624748589229858719158130608763792883413216138213462631070835145199419913677237361389923061863348854568225635274256633234678095079179490197725638131727609834682765542280463307077077685996566451238906851116699808192810617757249105454211170987456104595890023488151495439350066853806963961979550795022213315785217826789077028393864346501497469158861769106850218331726726042873173729949455664553153931210282810183047247124085124459043615068084789356742088296811981782983471809821856815997760026909893967257560554474317364645785553596838190359315459150606916213896727476873776576460160562759388119147427128662397441756570244022219384511102886868744150518214433457212193082216262538958030559079515568594133678954519676997541751942148821813346306437474014477413183147140388232947505617317862586144911463577115339933925738231892320937813880952595651993795979519002542615541730663476561217982328163788954963128445728195358940093004834864811437883540192406119011074216868238177239202152728838900587105480088647942715045054948827498916739849408291244762876541373058761375350062673640218186663783456308245184990723880363215086512845174077993588092612524346667378754070417717645518562277388446601535110494830161151933700831600815993830583665994631240891811031406969327287056571080904002532377652151285665860875917980532203971231713936753676877507405619497313249066173950338002748250781632695963630107093451309607375088236886525935592465107651555936107882199729163420801459596657826108941038100350217488369652806199818733496422719601603279867021563476113896222430535566874532632289918683375106283379411658330787441961874892896763515234669171242903356068195734123441951674550025279397663613577927053956186861359064219570918426467325610586094105964855962551857346885975507848061616410586214064145860181821099047584140799183857074394360744636570938877367291025937389202468597051417348040444255078365072508035255985136270113934455348955749268514349119319746728830576205160300378916921986042196418223509697122219985128156864048221694279823937113848881684051370845632205866494555871653004951602103867084190925970676956855990355164787257703141889220054945574774976153851860343005416777573472379424294925392689849527837718188297505940862498463049170710366964414434842023764433429330426140011322312652977811128766739253946036614435663056131545291024001164778652683149455819271828556303419730499816098814656706410792985665070900452225785589644205828037643323812873214895213465710734605630794625690920529365146275309685736505114099152348812602369344184373410017074719506643552460234814018910353814007786914915849195866722909714217312214408119613237943925017873934218574552687476997519839760833203799183291988809211205141068406873753895113600563389326025775638251143921611511949427146334097969590083194581381231941809531786117784686423388636377567947603335370562307331184039432324792506078856149570791490408551585368650756473958573575984610657094003505442771373453411389090807488655311810442551133685528854045094587473919918506513191174370694048773037569454977838138084613381532612963417363649104680501069657130559724401409566614661766840431413923400141546309022377054625711722953782254890333319923861908315972101524028729546141809357161765743683943876758282658024708540169444174344221617502495072075532975131337616322037648216503393343509143366912224116661543099679232745231207459836687256140810881280435968259432410911469855873660660698325418192566476730912073224037630146564129230649543513765584500906183822069111613096606215525817848393696433277067910235054377257861537485853377045448744818090056561029533335434675993792615325411554571479894159245352093195752499931912504635110668743597628021184955386248096162221956805340738264839810211990119991016172928776726687245632910170563941313236015281350823434062186085776323941065416870391124403125075328684931238489867383381567682661240621558262355649274496900036740718292833027716647245246089762410582512140947862284256293424197933082417095527463788679306903802555335092601618537922028267418527719784036467907501665718406774821768620672221896836822792457542403778134828110855439169024394807028046684583533782458528199939840520907520950848525557496113985612446720390943420847924682407044764133718487283787712297849010823731783787552528199901708754349036615856405325971115587108511625101622361153430936026597464971864385324827606678485008974189085670017833470529383611936606416019777507079521609293565740688655881601536666861828334842632236094790676328814584522510735991112100536040382259916360678662878025697661649097509928998300352805209178275699147821966367034531357880186266421575100963999715300572797974452772743877343727936757160257779088009584704113601077735425724733543572884475120901472507281434812682044084278857226930554300674387633605598266814622063449395112219403937843676397364430406592918986167121725996846522044894861636457081653951847975151510740967376403347811090277852185159365290359384780423861113167594679036614248825138897392580325973001558772170971557785668566084624760742889700708888158384990271490134835135621058525179698516304148633637302459136483597506015122944571648537106113124747802890145612836819327276011521871575068046165519732239048527022260735845799215922622593690450518273927742418622779425367777862445845105796020418168059072440436801341672845984393629467178941529619846611132237011960268917810704319425127227649185208913201815037596001880404889389573774228496953932253779341812278989687011650990258985618419496063062264448030760697254272002581183550585436109795035761944562845026823026253249941994740878749986953492409336904518185739702351282202092018982122953752191489422396247030097300225022085103885253073727885449693906844185191434671101321014901462876371237862461346190972118373023195160484554935890757982681801068617665881515274862904420145628273431331808455942264651858659039652817886235191576940225451872430290187228703754885916108736240881573556330231600088970547572202247826336015569427038870091417714175492731331196832400758368910099617007896136634733232261756778918802670709432309799655119095738332228543335078926558678654103740026750631313044248527953557587561849055805220552341870663847185063239337895770193828467557344754744014921385974716648102259450053428253461597398932525687622189004264545718494527734045810210643342228391550456240869511610567563322548303454759667649216220453120482859579242485079820661419555328215559779913077939388531117420454141685031305961473478468834012931949575933108266024769723779001458245825961636742656624912005519891282504132465567993661950962811962674917951778926990263894149075264586320509028831144303529598764181017731157088341070569723101725803123751455081025300964367133544520597522393567392334651515978719932802868822142687090305844800002699215182082345420095637301772749815955935388311681100013594185772301650471888905326144428604669708779366972232252426952364363006820021742875499708212165786754620022076318278834213253803678626141864233378281249049046438645458765262909602637940257698863532516291429325480677961666312914931460229476893769955949308034796538864024975299188232358913893032110823241174429857564597273815224126267843028492577983941078373959818143599092076803295294479181232225393852501985812877956979764185869646745044608342256756954227064419114488307763909442484834423791161440852809532489083963007484903944937249077844718152614993724920134912266175365129672101559318794334025114877994871470414520290114964875772202736010595107141645808241775959698537263682931586262444484559966746249542594907748452980954594421092786997417665563103388197893633395668382355755548766176777406498251399904152187826204736377384836506674055548484435058595225837888146364206140661755472712379408632666699539922844483727775561362946396447703157616837934132923737585398927393103930927395758358143255511596172069352296250472894697452135091463902691199705150399909255293228424496426298672279438020626403579958585127305387896173247460178324961000759066616025793838419933704366822975064866755887756992939586255009477655247057836061024368978844330692773786892944223413523607855137011308137942192614618892000949690776074166183316984555129772626165413309004045203964254511608777264806764807051691892986910388272023934981530103321652916564882078906413971167528297195158687155226325664022055826427029908462840278736625119838050276836766875438060695168597805533426324662731991255707463450614704719355389813288553817366017053418772173730219752558819890630172081737721026420663125895902067089998047336456112188759840298673871119196829683390827129559382147071902534902392313137476196039440638317297760093544433636894920187971701334374387358135505466913959224552548561902176938939017440801544443460526241747628300426524819841118818583231980559167316612858885515002531881073658774445021457157726587390112232166823436929287670055784433057698036011276904734529136481828884928421453495627146641935668575661683513528114457017132261092769812934903227247246057781027817491493407825301867836343441606717240833202867055865131787979779492910041738932267205850417693002799628245577966772805670311352770080520595869892003658978888890133841649075150560554128037759532112048345358997279797373954472034866020267629988250863824791553160051422513322869775041211428549229208096647001567947311167193646937289967641591489497589039415703986169399234847106884660635532587897852424126178522110279406176816679497979373621061889554876439675414547869513055942540428222091278328082817744699179187899301180238265874744081395988895561046115907116116914457725688662454836347023512049394676972170622487718028533795795946820512089227864565073033045022310432421408627116049484098810461654804194548144631274776906619042334198779393134925645557974642429826354132538811645790978423678669829354609471626283522292552363736979959437826493179555858066229031584634133749620597199648503932163600350170613999383678117092155720410732441715692622046269094717129676622821314811910079957463691136869603787608331475898090864299189052938005686475765587827229622645016979742860063823084546578647332019237450652911836640289240427373027155689665419768229942626585450630459561437632742355006763880962808372021553470379967801807938712078417922265367902541118951427180828744072697490352659014840384922178988667273368108189038182802228779652324957705221315296536372100538427117315951022881238471674368982774840204038639205797993911559572250923713880650119417982478645143811913907744143070895835416480658181633296428250877269833470049985872828309561146096021319259252484083810250292414758507730947856166842247256897369891239813025328676062803289197950999152122711587393546246828901623412430859772535959685356541623163502920494969191126269960291974479721621382380858811957250468093688373601442367151535468290094890510233736433053294552395453653928870500954680543334498994830007854898877893537867256227051141781130955780987521619779092731438628786520852150008767712565640058353166473620139325510133756250542065662838874781961572207025335312843111557074144695080615043075830808432788141565530322457588543155320584621208763540528614968464166773436325797126888080689397291125683376847033957720765207522718407918673163459218751223042073857624847207961512207100833478401123397182872248008040716002426014251677043983749566382855164100522039735426678158007217516864551617267609551018758261123874191325729350284223467561449045009713658035351403521072010167385501178319101168229961614690068342778317152175659893129109017240385458224544966603357241290351397664297700490239931051219526106247262317528324144546399409752036624198644362991786183901386927172064866092563318141494557407335724160017803577182276278808724580724052959586128949963366205307876512269668297262075590505901247152463813116803829556384876547312372576082893080180168045345159860698148855700067377328147770201008180060639369447342100749659550780328519438534732725310442642302909911029699295471866505134067238289853568324581662656650426660125698174687420626856259804955019640530714995641325893490017722255849152543175737403764734820024355599492458284182214608034470977464632276721098423556701661535796772812780992914118700668322591307136858014676195038009364376381694140391466679262450983386072017892099753110961178693918935655881063307476316696878195998139594173141463489540350610056675256275298298188937388160476422738829493754195227614200568769362091825769781410335164956729530326815809557287939792710618790893374912241996820190890593610167769391583385043734471232911485550157243962702070056945555739367377614605051917913392730778753767525352192657468580789562713231503132551902956680500528712861301562720918490029548157001670114395265547949204729738670612446306492673501161915994041323251795338040685685815858429654085074297433264760768295168677526975385686645826823365163479754179266461181984957239008019701144175840115101086238389134101373103199993501305379601837583707352896907371538799197621647355894975386244033321875603542511488504349946382018150129046745309511201339238654755856147904608376643223447262747558810215165590418681053256285394662190755373254570226388480794809446199721275724535594932046390498993368618190066558781321852589103047503567827052784193131981374494370277478143266768134780847884623726343580351672690655842976447504929106503647656855362719189159904606249311579836824202854201353382175344369836544776749935022082519765919387791744734704510504356789714392495476237767694859096147021551198221737615292123681380630100547995760721965791483045267116761586249815935079556620417443086743086379503495420923157560260202136859434550996265199944109675359935546149362311184155513396107355177685635567482103112376553372464669674560387073690045920805969446202960770862924238273956902910048032611741353972764498212177972126468934866324994222761423200727410340377616647115914266677240192136755759266763981707244482392576939460895243018331343961057234600857841179042248454583890152925227778275169740748622282638720483047035978958727487919157756696332694157827952715476140587010650144255387575018038893040695218913195112383206202690051907335387064175566433310763206427098467456082322975145132565130268173106955100631173891122387829589649843742217444175014000602798793815334012138594659525659817503729999731103748929327474502026111168485853735345268783762293889178662301670733287537120229214629886302519824975213775444655635223780887339661767278403772745414910782865936619731749206468950048503696476085237632799035967897043440729722926264241110863706000453077403314725385941825741602720401238588611337668485505355959828601122761804693821423903797280661499134461319214467945300803020607106485067264974194658193455552283810292943066383760006241877441470327679781999051549753065254444931319971537037950353564335549558939243255646596009728804640296757742765700026707767620223996969994751508400205272831124815619137292367478893964431999355969996972808143963351714037341811611590870650655656173229606843165702741442132182107603290842419247716188244158665306143397317475493667549682413780023884528817753430429155950034978082440441727787006280827648085219393154026510456752046662830502080276434293858043212326665241304340036987860829135781479679009781079544383796380593591290478898319559697518658674291993909957246213587529582973265961938889342663104720208864835768653960546448341474424731802235642504899978426471629537836849323838497616553476378042810288571869066717499606019980677646163311523184680239510785308428254781026819567374244630556305405943454688897797784403631302412704130230051028041077922121565975470755433499523032756497619729679713307273049322787366803613014083084371963321998106697022194966806422958368597772796317527015503966166531997859943273993885578047501194196497420098032340379957032790631305248198127197029721801158128503094066557328764470457899490447978806389001788602200081820462845127342431869925221290708970047285018103285128073304523191892876937480391635749819878738089559629576028053790720286607119071136220992019479822476116267971145279063379709174533868704741812763693432194411699712172432275528196423155970203706503516330114224730366810543447084723372687427390122586498149582322263344517237277418072111099946629255672557027720174507078784062062955325603368641695273877815988680157685190145285105548517164784215940223144766462678180676495904008166091751886179610866030580765998889796558959234679762423652037815041874414666753563346381341674048056957089650263769079915356310862994590229698922792243391476482746756146027515649177167502582968996456875919154229689809721854652815904656115572177684966404736373778235950663486933367632160069064134738856735289885995222969251050298011872149333358409123189167122829803473931097101345554896775515855759093499170926970996969605799338817669703816082440713627480599712287785660903787740053494816965044309167640542124122565610570395723675939153370576465078882369437863418596595098551783039961680926481248128627369017050929751614734495178589121724834374662470047497625582629655635525276722199619639790626178947400644308145561450936100267756946304856888775039019705701822655791996421114521491731322253214930354881750123134565655409563335075718175270182505009607011888008743748031736400411398288961484420901805334680110465003103887449598796829717504460067729619495178999286299692309610272032696659488895217166008952941223406517842994690097673944279598698509022392847954541668527053835787461071829783566979660638699860204964796529478835837381477422275462916979421798663826117089297788116157307956944075407874953452135867302331379481066017646462484900718978170005404213861953736735810151619714056186776884681776002116557946848187019571114799467742743994280606772561909163158071926297405488073850886501921275139818750568857060609489247979089022528023247839546470834709034880522071637352329977297598767973116781307053058784425775174714783362389571242953199942881307606660363282153888549570920040571430494348463583806557372127377768340253588055180035098022861946663582876878804327597322518311890554380312846483634026153702158587215703804846244572653078549169326800781214278793029864909368817849453470647990274674685426274683709376782594114420465235429955928388801510218955272894642670296923508679185018791175892491684658450632894001414475004079718557433970222256936553208028834845434318131597791163233901195034439831195022506386197031367540920411452671241435107441350432875184770916721689242651418858510861386704023757287464383093972120979547921691641339747581969225705671899461246411020798470320441566524096041211480262310722861193045542408774503190907945244688328059750547568128606558420235826988097081338070887049451871608196418136136790225458994346642842326170577251534519227231123559820955036828306418475937615066017390831709937390828888298875312638209767132617305465564645356962623235060752086775004140075115664004693951514903689761999335782702118661359568989659678042938311781857052396194183718730940674043597089374166229158271763941953806686809583275146864743461362539181372768537789149772996049768340997185234060434244615420143233475524545404588756892349193402344205367870847368055575084517926694629406110972108483332133522620431181736713863885357168462033421985201763784635523682751999142317935649355052506079722942480438885178819969818088069379340079958811909741726505057445641301750245571475093699777108118311339056967167252650165580572858559870447151548336786627718162038013227560971206508068843192838744380235645340066351725429853594925738858676325772599384313893974503034794735097922884837045678379036775360836948740995123747511361222609347570931307270377545639854775431817384991943004712196778399730576114556022404813256587333529577799837094445861051498472523507958969841490010088081680825102706171052317248819352518129194897809271622338561447431090821935387243887174584157431774660326392311341307800468415979036631405124607251269778651928015096630278128284605016145345268355489920984858206879255463955601048712810614108052673541948348806688364934041194321916463157968714333949143291128631327468294877915282030567326521736532764702149499369252134726384066097084175243278561033174903015194966387983054449900681647840297331604792944053155883965541941971652888361430073748236361054853292732655646074398443742958097336597429845259932617505951769153252498121061494858157175866260193857908167932319486031659752934596095033496228122678530147664575621925561127665215153348344553897668995670934865353178346211198737340875272388127999152739328883551329258417653466567289377460887793391028407665955780186745696830253853213386641634588979049558344290309834903008637906116796743937108512074961734937212345981899527171170991612307554060860027065205193079463922575499594496150072208714751150043463823978247807457280419558834454174302252365266999523145339435542826623413853136494618705359072846666344061549605428058224574016975388292866243799879189460923865079809930544863301459528033342270836831746455223738783267682105586642355520834787360987414187534566442536281988184670971427588636902542886723234786722260479364228082023590596610033157002821410185266641644197598417797524883364408874624710752760080047049904546417074218515896413847722077063310541011868783263894796707830226060838118886427056048459504593287844620922306992007029783520682277324082762685798152067591157772902107430904583360400710794955717032662705089680631951192874127800647905308954380053172166094787437351849066461560481532771300862435373387280779524023656917458544541647436672264239393864105675426110118919463715588184989755588730392916820969417968556810096684572884819675442491090684699912506527038979988807964705592306865451483775243725697818160508536599352894905326143599891152197950698207106902257845052931825639523669392236738669299441237838571070468535276637689253133200623384138200272967692132518355293743487842092551512839965677429016588101905097833076656986626536348961519937628885511897698615870514250809296429257557516834772435960607419719954485873194854831404624327048707062921464132950836476880622116397468256406216016210541273490988579160463232599490872188406140967334691628816114621336755049867448727489404724414526503542156917780060830439407484062097582673210877492727319691629325982582217826066574289695993307286594183135260005877393224921135833356270188796649822411236500138444378865951014033811237194433727167609219572716124011855444138816975130013737222060494060918293193513448699674550911166054168169811732499680826762354018690465175366786736974368984662926032257342695841787688444852483715947174878202836178233910803576188105453407633176413577268327638048942169261621835127309272713809847013614488423624962441082266512184270389916050595492021276141791458559859466201505222598440238012777018580911737254992641908666794211411335784185014100106349250372073089597945763236435043646174808918844131032806386075247406786968347894259279276346914265181476987242743592459353507691575030734657171591628882838377713572273077733671672814116311677963617481502469070731238142069230555203710211111842723310980981213137929570844184727260902790112079451060032878400185829019249944085061463533447212536533697828810518377141340828574233790195194072846817557725203045403579455480187097417733051332254759449829768690565612425279357329158682237611488873545492804700146953457830636031974417700438357283996585593468279488578680551370089050158657246798217398008717135960135435629263761043646943034008566890103850038076848586222732146157946192087807068253435061407257450409924374652592855099614620512003935989742009754181255110976177406669700985287255141074456429746249334816741857080627457731919419215117117158594262666470114295079793632218822749204525290546552431868137930470444050718485646328719089211743263748090012320571626264122870521024205209724525846870540083924073006807697677663804127323167259523469824885059895954575669284163940278036448768776016853178027523167001254311381708161323359722313100584105345001213397369339424517784064240471895829845379540868546767513350168708417926620288799327627291671344643386530535008791454986409918237103262643423575368990582126313704422482145223495225581157300487008050687134693311774284718627678171624369139710703500953082010672633221930305892021984572237076166990701611711046732830844485898676732365004333641387134543583814975350678257931844943783426126449086277476682152720902926546389372104408703071162199488192928590214091336826521235571045187851131528874874384231950230760978164931263208377156883017901691868200093456709656828750619034309023628438804935426231978502954332855980086221016286510223079805542611821157359978942600848254854164308420869664061945522115819287144146306871325860204459353969574550006320008746233378683276535160780017087347664686565212525372819590911756752791324927229376274790165120795100044987523909660159984327340781281007096479036051191392647222763089125970829020926005201201995765140522999163742300057642453955637235089315765218285296655155426383344944595296701815111504978134552786003980459860897728064158441269220974555436842353536654455101599484317811991966063714918464107401940185631758015443064587935481168350164091301038562273053273376986547951890134518312015740870572614922511681302319822144812565555941867603678310973424606658220892067086817766039974598975077316818079648242506214572606623175759979045324180896124879629050781254807858789335792497284828827982020891347399724888170543336210919510878310076229848747866407310133168640296894476373305563191450656230451765603341453545406387202774102993711217804374684544898418516398829277483756040311605137254862006199939006207845881001373489588531252598641550710448685366989595372728305970196633091736896887694665045026366535121376414038219919291726968352962294112887358607321675931669508118718995537784663699839694710081077747751954944613600935546445562297415597848774898049614468638066849254808163972445632503772561434849875523245543325224828695969558407969690650197072091691771998641357773247710937938968279228723083682357568093247110353438187821804073644052411878311396002811088708706698157419101038287087406782801240892344127135021213794734665423586216628067534478699961316227698309194536406269002246869563089186404756617453215400254330584185404815242494761471386180528184787780151350830721669186573352320798182327964917049969832894729065475612439086314165245345744313184129276328704351450358958649186247019207254409615512846055113995044911146631813757355239427883376564419141913742968525570286711832576420022957330922134282163364438192939708808120357150382560460029957351440868442809025690789497681100270025374426094365949200082506583624514855106464413246582516746759279191200027324446668538740350367245688386312994326313682213226065137888042360226384250411621798589143804584861787671975045678729797895622402763803992741023067497474500720189404518067077758558081314193941553575176468241768803364120755502569526949519862846411453772622475150016999881631811637736236267161362914022644066837102537450548163303883757352754262735342156222047416687270138961413161365477176266885615618749185089668554546588877596946445114050744927707367910536087214042132242435170539510638397712148430682074984790000613559412323489096647429867993407023795590244389918634919257491183598490602718548855951635139669127072900513046927352049683743982569134294217617302825202906909474554287890410832175462721333583803604128706291095094939301341560812605653754737002366636367489840667318133312478890014110539084947562566244237966672291253146565858541909990380866635675360659781901543750842391572187301654968366594884757368728006361708209144268567776910698247390080664908571898751120410304545968755631469005483796968775464484084917600726195013715325134956428571431753302520092496124259625562687011464349808189663551225319266243985172836112819230664256921069587684926442370502886809253583278685110075498129818079570698115552460266824988775673898729440788580958517448345613376819604040165745923860167119330216753483135889903714790503530017265397780436461830685879957748389357056683852149172298918066643390788014090492621551952036939831566712732060072408309757429496172804389428410586116026001062947585965704844317371549263915772379424307515610930174158081427208492295668471621555658319399348564584769117899562816552131531689780501083790790142715484128331581665978216122752866840052910680335627177846055147998188360125218392684337943447332992334679284842197650160214702982657497452214340662698867900032620285621608805308167217460569730670985920448345557442387953757206269850423749084733102441779759470296084141038198476181292487424444000665566720099498450946663878132381658783284586506581845412837546445317461815178756807211325711349207515989250304826317924279305636447846327993950376249377345008321269444223556674424581132987071716983574325307207989102240599077291540894124630053540288938755024066992451206864619970955488641317070020531181437789144854847746105261240592202037897786552417385069591700039431631612629586532111440516109796312109090560934518500869513218562540608194867996862075074581481610097361467517297713245147031347861493086712174711240073147965063312854327622056699320663723621380370127850690236644175601605916096987735353948026156986605674002775928380462970100173379665009181583641923939918464047882048001105889305209329825796349972673565596940451998756260973317605506038051395334598727760860617505740746651917720067331191701677179580046259290073307929401018273119229700133791256672808899179131719556247217266059847246864511507255406449959296917962325848660973715794793694579619541677748174228329786949369247807308990497876787146792526178329017691465376500481688077721695886311013211366581787669230590636736686644856032069192214718759157056898430704176390497784834991432521973326934258782603576505433519006987672889272803071328740135751032703075754133469212638273287077450569105032419424859461538329898239336824762122419617035955737656082860516193046594699087585408923535616104045767542756330226743860379759137935835781931554900555418837770373630799127958614658490043531915897710004562594862051350863051458098835970506173354252036374081754870032506327617585828211821999167791543546656181595172446171972164280047960271291928408916110847125138132527636430089761068887275471475164440765804402015003549062318801158282521292001132437825528888777250643889698606654390239145290327232467959225534094867206988186908699921803641117800583149745055382510343158025385450344579060451847699401476775300895665599313926009046191058216835105721529393283405327798073350333789748948878448040640257076417555546799936365530551533383717018663632790937146842806040646238374578620937342179767058930991767374409319392415041575947315526775621553195413741605240891932192796040255190833392812588493351786023156222586673088604598842293396970284980585475912503166003505521815661882750355319680160162628433205260220002406401389039312611788671812976329042309400723937079525429922587736007189431613015507177557730782524609376112025773679442662530505370940105663317936400713561667639099058150171108207100487031849520204917232178814849011249025331586526247580976092702368499480734247456140977266403709130900496179476292584004564727837465031004644709680096922127673173066073372404480152805803037712589494067924206037339158073823237459295209573226813944840274914930058804908657368012605604591305231168471547378218847695363765310200753378432789957580569195709866859142847663967261538060456387797583848660024332634429528170277684212145343860823113655381574549936344989353985814036118871681084797153329833386638809346172581214632477720499198980301465821958216163730080719210449878362224528727572265556035687136674574285708883232770509878552341115633556961852656761291755614848939992333898841708172676908834589672538967469378664097933285116120713530031987060333388600405353900624778445267471137591849539568456319747311189975765274972158051075536928184263362954568753698765487812344638194922826794171937782494831580985810323429154658234435435809637909660785015057257908949419655399829445163722362254043356269867906093615251419495008972089453424073657776594087402843524478567568981497399552263047028204576111657559045133380600709799472734012169446404455476919007888353577220633434563057398469896358308546547032128743460410037254971086282921516109058329461115744843165444350257919234831039639862165289276492799270588869990001915834836077657768081563714046346167392723971147920937111680308191200858245487046428875733955764453963118232834143358007681498692226387389679770129641271507693437333064949228774413347418669284443679640462655984175094873910692012466604157394341307093765684961230619372311728582208045023411960263787818797687570516152855747159242908328880164504637052991089441676016124502250559942744603964282803009392216484249362584565086933849651352871028876600664112014825909745100165206091623282832459579134289963939739517509942938990840392760709415003166141205470901880806526055432587815637979764625529467671168398688844105441248842221547719330111317465696810634310852930275300063508523853468910150398371979200868297597175970737203473364943530998482088922924816587234301813066595136787337344360868772914541040724971085887217998378949404249606096388480248451048257910156076041191021365685258330009774283993359397997364276688066281305521789328433288941760826850987925592687280083204231128423307945710538098397103590044915420610044840751843547054611867128387973707821557729499001255640602360727020917061007438965536633387334860795992882238439454591439399504297958618248646620831022509434474621824479013038807179070742922172419688450251450333038188609314506118071709957648252169775613913667094466310504059690605748084742227859622372673447871328801796332583614980968856499080550676944119192256086078356209843882781451147069013894526064904916373730728189549086503422118271537588442951460706041447020399180390865616322937969101649675072532805244076659702421212912438974159162433097308652143397637018838605814345841216390586959715810995810546843558021959891615244187005177048771574205385691435044709709969946560197321825978056659361443513875831022064860059103182388568208735591527018309994787500295572867184885874526039207025641631527826981707529729736650368507887889514766371715969010453502814813198229224890794507323652097047266288342890210641477679391776913962175360484603475404548080087299418547845989919917055002276030936007302224353860313251604403080579513351386435208621078383137775725666211622845904007315538544236973490348805061771888334544972937738701631723320532544541706265041938254398696712795362523649577837233762179139831938815979460421819230534542336500704530587863960836697950592639723298350581332481672512798617500084586045766450149465178810404206551302484598510319210202902207839344033256790906793146763196060612607530444809465965144900651486144952635834010109832645566152783248581101438697631720618438983098718113376624225482725404819640262320267635640668991404606441044591006819765336026699911144240327509504991146751349810005221639377159715682040541304537982192378595231981421856936101346803780937892210216010454877145677725883567524945654965940340599246951805742803766369693728421046494109108530428521542900126209407406233153621447223353670559424008369932951871377326339295350469621893065396060094816545583601063318516699096534131997013955448396552470301334053949879648845095935719325177696637458306139602133984897972060172405513837855983437976882228800571699112744413098170481027702068899937775032773217958633707211921400546048945540850060424936954998090057669254783670158773741125363846100165159338247086286920743823272097044049556763609537333569092893780458149094218854259939820109889651166147071766509073121403714770537276975835957602105583626737603823689899679824203911878228896995146568431221912268774389019855324178639982512959182671436783404082336379189774252509014812199638152617991349735717097272231293113082768517514773945784110349704526046832612263611381685225287675835600664670987246587595244609916582873251192527533215211145860496589462831686032979411001468663058329287417739352012748291169275820179614536033165041020644527940579804833688763277845761189498878676923131943173770268235568729391768370376935996212128878265945047162256206626700192345020491097953430700708944769769233348255830596063085681916868543383840462763652761734563183760324812977601705441243695287534969224928033182368506212931197072852252485184457325148024818832850944183067450966160743702915115668543241225234264181328591314123893141946338962663156315674643759985725801221292996908406762154364495596471505649949294608804602232189747527180663600349692724017855203664268754737606762361161527723464609959763206271729850403933493110614038026240213391281479234869210215004921048117686575364698130229220019133908575915869067593721026880649558263594553742168530894226205695508059831234739670900614558494716745835181669431725574257787868200194525838347357555475127107085291108302818641569471607403654411114881607298276342736476132773205620195952829400669512546005811025028602557076561476729347486163363007774695490118086714283688560231863199992368066113489248347793720115721197385873730762208414532286114114882187552242302208245867741097024648267910727617216702364553702851206704596353576560856679951316392961464108028524762076350943468919853579815786598059837181615909933320618419853883890707232191885667745463901867505378358539899352571878883112342565506562047451157082484066718423298178343648214102063560501738733607684267347574004348495302293006569588619851204126467693196080241392918782754623717715119306049614282333235105184554122216454472094741349616120509257983525388710127149548222274416898479178296731814199273540823371761227789892061534379663104848726268612761050513615201578136478103119934499523058132441043348276396705621513438245126071144326466630228268797446747766145348012933845675342639225622310762230576774545107009141534123923687426690040403089840874885695896546015043928143273806224805607334736752791993967789235274939229319769557770784825315000139960821859188952447830520650152350683469657162015777778693018316983738419593714225128063229125680584712914272036399122341867573958493016484067566758305134947449050457296545330377741379386623186474293364762713098697459531307270147742223456187771521819827379873175538970911256948771290712274907997194861234732964140198697059338567379848001119385198220131576315983892641623581651831444209641325335688929323624180605036410860540676147008408402025155925858252381201194955688469663536974167683192780740868518840822501328280181799780090768262207007406100801006626376253025926673355885637837598569994421860966346642621419260751291079953546741284390722849579404720501384708971317290583240263195969292210887121372758216626848951614691197360923303971471644294366146413326630865427012200365834695696379639630009879733748084008750144120366120295828063428722644365750902415438150059505599085627331985851565322467711977120059373566912704242400216933804219922698339020698438987756633294376789896253861511469463127324702093923243751263400183523264030746597168694118263632097736964323144435622558886883850956520792184715724488092617663697535712882985242182221235054987941406854122118910615878072899572410536542951723124925304867690269054606517514410931187792899171929126341295535466478102729078338816715469059877336816934030981598195451635508655057850154486949183220920377187979747682049936157498873819146188426104559242347293601410640182915662832588890739544345033596484339358722218990939447992198653050889518740483271661686020945833395900949802181361791337594131824084446681434187313667469071639990104372697211061051279153285051287746170595691440990731483090433333712131604523509306641010610041034678967016737530855640716880824966472170633052353778311042563343133557971160889338448949404137839063292852955223449872711127838281881342780661710769311713578891201654086023616108499568762317749615634079075272938446571460784861771215373773397963921628070248810433560923532513296961560708774765635783387184805422969787229283583169310235079192326392486418274018310306275634306809502235289702222885271377024395119521722542904247958361727823498412062619485306099952603483616245102447062430985292113534814157308592087176338647032254667685450017045387299515358408370116885575245431833289203268833947941613259655577985138279000974247236514304887637201827961283747105664983288407785523176452648866310892312027588856664119745329626556358514839542336723577256196481045367822967951632729505714979262815502985552626640114687943259156674656100168311747782591621445406663796697993536818901388141386262685137483705065063220756455830570608326138084514732195363150655032545541064094300352298520882075531182357558695054170908938443953908669398984110417943467380345508705834822464334770415280138152407610671716020042153168015250714310434432466859549893653498039545788664405985144047255227117124485440376359821284735373248544336524956467804007230952793794617500077307752352902912597518588959437385694289356459001293370416384944375076763966400101304438306638522167442307795935228245738153576361699558809150821371232025653312576005546386702881456958107489862299243061165056079586921354372342371662584697531693739895648269108085298955670833496120712833747586114417500003608521694684616008793396891333447687255686773686398212174646071485030541785122834419302190965873975907255719988796007242922720919083401367160024522911467575510302322655380103785938075705374381553362952878503910641582458920830542930596566215706599402658802724473781331261523369092051149814686485202674301762092077560995216569844880979397729935532062813547622608318972550261519802661448603852655626765132580601430536461845793903276716972462383899107033496836968935161073472209771954110230924114823072762265169007792706013536557577137242509698063136021875997370035280628079983302355199426940953408132917482182748953205082882766664905978154532303034938258326899644196385478905668750238168767065413761462801175936643902101109263143647680326684860214076379765618575101350945498656263476669618300243112592207693315637932164073551320154963180760517531965192558887963466460293112482620559604910880028781966529147041305630627524170614620660220298870910681709037620282679226316395689687953702820625684343250940996154280507181234163249386370334875199709914843214952628425666968413198354211213556321272312358963531478491418556677361552491478630473594621189425646353597056390844786315984745409864003888838800044214534885724141524397451197313585160313260823531059709068095176667192901547558228967608969174440085636754700093681938805467640278433085267043530137403226501069611091744571490698759838924526938535010789055744044256992094901321109369314693331751374281652235015008889869209251909601544926709572020994347768754590837851715855002699007240415835086033709674560615721585801413832853632273234363462350896454796485722116108015586705802348962905652254697657464496563067974785795933911505727270924241545737089980199194283508082072031073483848132175872893841843678705080479604657670404146105961344467835522373080957195263516471060659815899450657548613522698384976479484071863081318014746904138231255108241814505761954745435271468627757211207440298226012792121103130229217738355719300796187116800208037570740865462931375572953500426309399553967815858829316937542724379081522054057326142785650044314205530768456032079987183271348343402592515859295537919144162155928269488305290773319627374612813527269610508041319832802621403271906319203446212263716264556444146265865246481170089348317776975700898698019392185091664247430586582633249534510873051055734549388155984199033216002639072924765241495019664046712638469456787460956499973498653813690700329625234110540890025471438637684598380305591312805001360254872469179728018022336230236461988888687676334175355347527038825105369772043847389309758555616560292131253062677559385184114502245377585798952268790340663042808966012038040075736171845023173191470688729574989582829313033595753827687598707950515043531280941534083630886822549311543236491193247014157253720580735430293753345301497147804006371926843270634371829472298759129000780874179290408767161400242339119587188197196751201334222016116570333729709784933404721939117870471550155854648494803547276406555633134016288180412814154403379254189958489506724777129321971199593357717856674870144823376408575981960197332476928191481953310442288901282533826782769512110094801602323400006489081565911367243704651566461594223537784421511490861113585123566872444064282899145196418563668531058313711686852085424669088661176922783160038271669510457098466409301639551359370436568021709343832459810915762533446740338337886120262669837400195545035631664976835502219075535878781883254683005135863376486853910863850499041570826963029710406651344686173730774149702216613851872630021333366105412812856254517629488512828590153497729516798539325115632359370799692064372006870701584998761586283552090494674480133889009599320253053441789250549922632342077157325163548903850538329221325377707228281697885109406827104919525824930521885848590378200545993465994940152716540616847426460244590016738145249314498257926787484792780962238841463165837004636989438664111922344780208122061367313848590859286966814259925818752203735021524964645715661043441513685011997708162062236961215842550224097947281010157392149003594036774515305002294511735989558334968225558672392952809890922134578597612106922551112169132911744927572654613000371861158677923907128045425711568846195569196930423909411799587376529303993003491503743471840425282002977191079355838765987956511445555647690059962414272683480143444370996012600053221737443734873521398471054993900778799839534320763040134489922915854772161598269382129336770409889542204478802114593814694340964461572977687877431247881839814275079595436017559989832758744461068595436365634643447997277323892941770779898711933219543462545466468787387328171707247559610128376622086476142407781847692046727864822184903193928325670058136269913562121758769586415908513212756514399700621805205096646227029073879000008632525011006360721032153989881284532275990426913746095806714625563867701401940591080176246517491349571717331410114505546307220286835114086596326079869190336462048750683736395397597101665805468885777621036946941855054645199927741469320166295471827617661753708664303869984013750255878088842770639689965443121426236516410218244734671546131173414803445831886144910443492574025667417972431582084331973473787630339525831266239892588782913443886240208186076636699369286262604973768097430582379626795318926755347383415055534724475907961159234663592629575667182786827481712858073120394207068599583847529188500525615878427836629448892057484375456036712021328520167676742469788903663836754800254345911209654734896655932116186349013921896559199884429072035876964637167198411613584074333388597451936342428233291834683965301730604264835863009605418466794632620430181288199597034481131038561336638223773613578957496522627716362477511646241972401864160632082103204609274894448578572583050388870614647182828368134778468633495112469410809044195646430019900517481890435458810321138136382157553814372992159414008414162057410699840168792089789526510205871660755910725864122626029714587565297321152493633578618226974583094277428621452408320919674718699582407898801007837349655884297679333537385386769330975827558418858458241804527709021157971483208688441569308224300323498849757276971497474888442804130488704165899356588982509978176013550755108000363518377078473863843456819585321761853895795690060480789998351684904437325388806640805189116874255114295666054709802375682641487906619538931886719425988815681957276106116947096369365527632043055167231848151688479407561750233268683016753458049646163547459393882274545976598224422981542412007677954019653421976475075571213697029753496262125873339436551122063983714643013800000633370832683039254331264944079248047473877039465080112885082790129877234120315746378674803973934958619651332214086286920439435600225263153597735152630695305617831198109763379750205132635516941255043080359833105725547226769865915035844768397820281723095788984617168031063840184717680610610978855301436465666753438885384640019532067716281032528683583288279822585424437125540072469395983315297187685120701579955042159445925859386925255908369141138856921004988875050969294998119417791966287126910210264844095203133738767710923316302287647810665012018345242390083362641217705766344448291567412561811396750756797568841548254588404657171557501788894621143534694328871333983407817043378322233980420610994477333978282492920075138742151780127017897084140020999258316695951064186187716475890677831413906658652843080897999946783396004576537051194855641876785823358801520777517259428940282505836550238043832107976130730402579136768189419577598759341304955794578439698501257911464791644339846708417849544066871585328238744861750974780195381582671978134640792954065178411928500983668095106499668896128421066472262655462099802351428525743949965873349626602717396878522999837012648001567396796112471154401329122912747164630845660922183738317276578005445976065479475512710566645540931011367934233672765607918346794292271467448100469834480389413928354665002998585986504372236053529038429491316036766161906310067639543636026643888658613665388885423303481238062117582464704607730036505902038676496473147057328387246617293045228855487959889148735251399378299775304917449669750218969527149755662056387160262933839689042864143663391054951508503438280808591758219733736920644143918786277752613378423626879120865582736244293727527962942496281286537490748792025250496028451686541964920689835320446109641428963903884500673807522428936892307214700058757125122092043443376920146522006959584032054698900323265773170169562797058682122512994898824635963069199724235465544937846297239514054869379254404779476463524510347103736101504751121783200782914780752677800740168776400221154264006494076866692212486619162549928225305955202382416455333847738188146701929751683485576250146133438191731126613162312777449819794544416514578525718547937242223646667839671326375440493600008053118529930418382725166266082837339375368800459263566001789454083473953075694707169614208585151825420694015309883327670498455381805140618264927357933291209711768453731468302126545786978412858208390877737729170568085395922008297443860542854438673072066980457199985564102455635259732038900368984518279500478549944824419644056315313943698089301215501945136285050499365102127884363426875190606320137564045873004593208804047136721740250554153540661676369227412507805861225798919348777348777643339853336054768735538788404306203679198573775075453023878783406505108633964018687309189155018516726562618061821697306013475979050707329997519724024805522565532407801652921940889595481406186861731178804944130377501126781552991157968515486284833890117854371711716372130762501141205013750521241753838505381962295356372625723834622002006331300927600484212434005129593472515115217327698853872222934034499780714788540388650619801242985848769812109012480046875693508277752446818844898978603424096459199935478743161050587848058713715597405220835281364797899200980302304221018267920885881039919855518658053082627668870736785842504590689292948581726128766601126436423227161784412617619020858500403164209303433463908670666522617956841640269301005658636819715942938859474882742914864650648108090845039025794484987381972974794434927146131170760704606806938680565105825971407407321097133311308505690557082645238551826232237074233053710258045369397173575353669378582996021486276811660994209332527367879849022776001318836300802674164444155479391235825734141043456583147643551899787082888088495757885817999089754243013845726402796604730786139759076849583638930748769989139808404336902383579794657715791076419286895698744359713891681341747138766692753330936254698367551850296729041477708540592692383515550947160975471574524001531185198929676615222564919754262271051940103400921541473787060754072706136364703864058058474063140009999462376291422964207499942298932910542160279494763028289255685673086255057196301716234926148550418720326736649849930160580405981171936373546373527365102427831956850026570478330345276682712728419773566865420462621507627547047124907150886715567751222502051726258487152003440540738324282708787731747506368416070812646974895510740657853832528532661249902232641701902148659495754117051738297693689016520292358406740697271184369791254696732288604574090027802811639083809373908943416279308830659787375230098317008423411972153821106666011535044205716819567841671218933983113779780871915090919181894451783020396878601706293936430574173602522035422218697318288776879579575264228887468169602073781459665230575776284317667788226499521386281929334644159091349413991692893816545380262303852904972621385114836570520725001827932914027235622256012582587083591197199270368027919999009704791643504091828265584547009521116577986903418040141782092284740804633825199166044790674081834715396644427114978071158305033449027805767245185939163956574954813072735082963545812391691574216729538085885052670986667850540441585588836816811901193476177100940437547134082793585714760211261377596560218427591695950761082579605344884393438555803229007051479598898720217384182802387100316731854960598523065420014227511241385235756554565487247584155958888974543446860681357888208712043087183629563320320996093116393177310740621795492068039574356931469772484937567580711949248325830180744492507770465275023838175836355065624918069165265892763416519118753168341274105895051681733604531546512415154439981081531998926480526654082558906923096631421988785236452805844860007568318784385761748038489651020730168379393427847714059262827492111674811880263687389793282915721873546938653494155574869487048285598255834468030100783542475864328883468933752665935208089976221041793978283313335119562694609223525595666798093087409267471042166651860051642596447586763541851404653737894674656539401485470616452750226947560059021361522208658666146414833668905536944728391218738026614431449548180933998754004344567867930491266244058570317446643934840223775483176931227314214457158482368596182607400533384281561366286487356289244144030483655873664340283572540877185586775525827955064225021511450407464022423451990963496201355463839230436165230013492937441960806012941960311250209820384518304346510344306002289308913411389091500918258383260122150155547322689254921476552204803077113947691341533302533153429639004777129997615195613481209790808010981169149435773074380288000368949131407785204101504523846366310418671210552341107771926348536069664659631217059771020366936547118208170170358007737067353481870776063712703526061771894757113765407263042925633500646767992137852244197866675425503044328003824208235610217508613896443204013307345875524103793223595827573670781207972337528760722698998572806544976579008576610469167924219029221934428761678953449440135131687155730792636849423062633482043513492817675865349675603010583893056714651723430628647294108952436181330890398808335976199460179443477482785537836168244779715653392336819849156150917559975668443866921730498695423112387075711050900341020801561221691578709875917105844326070068607017956312536863284864868598237007474503689554965612311495987541113074432867756035865102199644983263827456929937068514562898110737058630678214322627187730913518186094049354125291320332827201049339331270869845127612452704263108586156369840462971556602824777240886888322388950683747747923212578479500539980548114681211649882617011726271165761468707009018651064020547188536012833431587133756456887646406170476495534072491713232881228420422500292421300182881618905429949875271866307832445370328657773841728462920786328342039174776730205570360319381652215055074436877143468719062324233101312622487785998030775378843882054462631679318052644233926240021977581645475808757968211638126333994009114713600044236854052197807727837832195323724222077499652589593055592295961821985265681326767452442844620687892446156020214448792152423512176302277499224461747660383080482501961800849974234248471046716425190401680274679501635791744743715677056697344510830143955522712343007249848957686524605499194690535367615985642639261419963447746089997221268019097786981842101378090389247012875926637982301991230962589621830038104654012083401068686731191285514844260718024596756753912311594198151338822662729815040881428150297230169949148052855008815266143736456196446610044674485746279008169897001346930147896005038184861888639099223444895811576790862993089716742096346132903309768578579040148300175790784922937466824768891895587710317850301272472886019959826359927786175822100090172470854192598093800545454407516621653621304928946776913110120961760037042103054080125317103794269729538557545948936494322777272851409667327718377437150067335283032283478938622057299374310460870286995664170641255787388187011630955829303175422056629236349257641374634970361558999554679780403384725162643580259949632894010314466590179472574544938747524884245145590564362901195126845262488572995015528316813317188424618749160839203515439754980570452168110384022812164677911324075694449152194491233742899520397212917764073866351670294034310518353050660014703293944073458819445075567725644473624547574465018290470015736351312649317709975986046507821599810131412674580080208515821069355715855408346695663269147059833918199557376853382405255520283829611040302924108847651714455613156968264459178025240811058755567288765628922919571466469815778393172611287590936841705290439890026009671661410780269602922704237224862018611574213331114779830346510054476023416041747875610137870831990554173342499274119028051333059451347539948382353378683635853124106320348900272787622086836486902264200458312661796973258274248654708387932837772308491331765550181262262387255900997097454725242995582595388797542868277896395795416928900069282787127243206242563632515044409799435083995394679784531155278183065604265844720651492870854281463543749257600931962655309625883101072095768506348973071723995490275854201842748591088405509520558264360187572066829948993813905637944627657462955089428676482716014957124522077353165171655215250906634345217333166634149300951226354420557611262617915589710233332550234254171981087090034312132738339605759959945594861413368631900219242902552932524594038154720969255964056427608985286799036211571537443311878257865188361088892010097222041685847286899160330904943438640894388275886941156281133926245545782749013877939883447408627010339153183089109528284074308789378015720824252410538782792918657788346636544800492180884295219024346542847519416379894364286041571885450905418999325950663652315618851264020104016295189303310648604817450798773314857899945102189749061911615685852496900604110544254441942337118221379592409977838136366856698786700468699024287748495406077361578135726033686268282642768542552405444185710890611126945073844094364214703788823262430068943578210379002267633275955561830938556726097324856883031261413238398814778167001324014077078242740918241118924153803620963437372844847715097685601673788177705983724782468231301951389900140480033388201754159868303239033432328513936814156764151817231678016720696583863573607073437575720009732499486107718788999411353889751814948172232609340442884681284924992558338517529757749162280689749780855604657465811427186741165129352408022740780486959649486041708848267541074275805850565982358270936652849186585548509331285084223942214610689030304733545008573352390568500488314438663217851634106907339643643228126171088069359142261117844863251298066098636976576440190676033878201096660649755734854237451361962303661271752040551975900241208596306335450409457050769542051980140216976662397630973499962217140240372360861205923024306918396238082916129422818775963034199407043282828398814081362372263316834275739145777032440480369477986190197403466097353679653773614624515421952890760970427642771772642213012068823292769602079537723531815847361688537740434276687334083452280597377528282162556357996856101749690317361284596666882309212983897447690144059298253069868571522637908416059365289930272786694782761140028849291577053760132334933864689613100923646805996491187785826241882036240316141086215494094313812272541491169223021850759138431024750367390485991398666877810749333865671326589444155520693475198033542359399449381885008473799571903451762054536885810426386838181622299340115129419655899221819913247045461573830115212019612285686825725154414865725927605388988083770252042235935923673061490973510840309494152707533192956263021950977853679637178987011032070625243528843669026283813257459863136281448038459058649136881535402068036294441490138513142454038851163173419829382242895034578009956367049772018057385853812492062499964727701378099723173271741868927704995353612107418079839972465741022053825347805430333519362972665552458065363227390534748771924077958384882602889193814730181421636073574590669861628653726832003394822401493147132862085332131409485297602198391900074366254341156843465983167187034014835019491637860506482420688883649238230770590910999595653207216281581130864619195477402068457340410126689913578043237662265795480926989983205820746737096410539266458081861411085771168760811465919488506840938023314778830909919181251096301419473685631886521584061378119029721696431350479389823588340657711727735168008964467155487255123799613044320979074111042362774302092430241511401216264826366070058757800988495572653300102493235828418634674780375328595995021638903458638390534341394210899290098573430634774216445990477329880245341647022647903329920501521870586145031676213668477537741761082145020346392488699398885496210092354127852794394333547173734442767930345041964037108291137612316690243935950518986475652657191366585615342031609240441165047105740006445649717708289565651592455176609389617342795241395953037144517307970312649460888948584781509477456206265180671527460610463628383245910554746472243522435382727473086051001973157875051268707157605221042446340310358434083751763105211601322850484350277240055250556356905799429706024481957864762330296025065332348215361493280161253595741817065001002312205391077324448376496418411880131988830579542923863993146634451417465421448729699594558217521851054503583963919999511160107530658601390980268714375288695806683878170533101226086096234518402385678446795285947551670515992045618646176261642749656771940552809105022304572439074400169700019612923261778725283072506441629738326532730460812107812264604485165939650508457593277561800389964307834156206759956192430111064728927447503588955138300787720657679115729869831010600681072823031248629099609727305052055661791395195700223248439738587550741941489334967260328132855608460445067317389676754793469809091084636723881947476241075054438942460365082308872165758064226079424470375031898935876444653667891610616942029117000107458142760204653809050737587323331233292893421792922792191606640079605392982665641539743451597058490032588404106572081214588048497908804317854771785585362123187475772589839218746305411587460781088118454397179830152916301983508516913295874773769532305244189678989722895043214583135938426500219903000259800027068637492441260162146101307017686153170646850870635826411315597418016469072865931763882904123619134817099891954545782005078823314102123995136533031019537323493968000713313743866196437246317890502188136963576548544144792026070950750120544560179640426553641675100645973703712222706441789739452957055177334955543344211818763774631473248845851855617803045598153420853532128489450774636868827376302163331458543945554088753158200001875977049651423882974064511853181060726876231562823397015284943762430184611754831364837899246109957895964867983483417037606029933596301197095257489545260326920725282819130008148014000392860262311805525762957490464070691952226642661353845656563986660823943354072711561611447098044970428386951554531695900624986716881918358295775301546836234726038473666680675434477667030484408697635440526196100085607127981214813274746054288017786369519090834598738831747156532087984043242453786508024518522053124024062288443616516985691250597569332757123633245392151860286985779284875730292400340883884981603408626517802172011884226683315720944015293145150475507293520888090096301748176429661666139006508249248845117973726116782343867199644164104020844030923932133130008787281379866254187055620344010360159168416242680405065523569297521374964606471983291345054187975266404496113871527587825176130911674577818807947203475944492975078766921112137632817255260498427121922706888264083414922343866303680967461925304388721883079928909492021678070454948223449381188986985698437421327480541271407217767270952244419416125212006711195793453431701318737097598115213904410768478272804010690965379320404168600174279739217295329489112884735888459126517711817341171435853920413872939546350725770035445726107663723755452347946342679874307609920557018619643864271983282565164151854570041439502488226900985829071382950099257084822389457960675612966398727938529990663128142985143357005106926515681180221543156158976080679042896702939022631664472723902176024195326914125164386984911697005939188574922948317935665489124891624185174750589679070670143429809237098571919813008480505272647697485467524481442166197418686710578265994788853678171771216928468606057737886587162265746515381276281611500981878205996879821837445195949689075943328049507716376835368360992867629054313516033103649230804829356888432494683287899233868548230995629341902131656291746544346248858328525934583412681071895674375301461334291910257840867517262119221255797491667159823929012986805071140661965934788024004690751417360170564760493886734758954245694354854240638743205837344173545884052667607271519149849842824920602058392690742537296595077819390295801083580486916188487021662698701105556018532092667591610458133163570009212568437252095582725228628937107478349812010065932899273077421398222459378914195448771994314817372590434171866808086436523361693812879906037676314120869939278801048609780307889758515755907709945227098086847279108457366091430233504023106589703238178488157290481421010238190168277446473996708089847125521762540023245998866103905490751604146166717160417374819283818857620285468012447487772694647620157957152070124608769600965447992777271348800694686966684266500900208618344558390872587247383972276435328390973689552906072044211691580171526923711160412039204070148077116025666373627892961503131828508289121460114619300233634356074816531295101432317853317758830387124490408317090882032728939716075593750676334259886439296442056902095966244529078866969635680888108923525547757093415726680093915615359542740699674297480458256851067658626027661097433096067045024740753747707170302440652859743405091292141415317166831157075691164352316576428576266960683658066273646897265017507016694187689500632309052300899308234675042074431965679120090854211962906453675125399779660091592278938974180149089693780415137070082715019165187248748464622505279204576134777996820988559100191049774460552999599239029633431036073740221412150088677925513861381814065097598550866507263887512175603633907243090983606437619767141200280558712755759436249483969607564040555581863178626282516130012511613556954209072150724080015636706751104525003694152145482441896331255595319470435747140773554842676653773457387458652929675569570084568866793742725796434575287022990798189722072218192270393779940513428877554896006012223507113666373609990756232893492276951055236105490972543529457171248540146104542200193466308384360905030948887990235353840508241594102396269788151947971477401769015095022921047513043384513193024973726604569193314870970846638190175108633397044222766059219167185902091243298529714974301463465598685223789548165422351288117578217900870537763746734851501465655074671465998291973980314817698552738966688036950150802286322009870315684682896645111595639817005429678911385283564742113843400280441996355599501150806872822514886783935932824774426293978163003333312581348928225649546958338404390129749811966888839931869952947091916659022407950825445303142033091138570669454531841142477991311077286998226391778682828374524221731262546006891254866967275757660443871814410340398043205996723466295335132502009976989740612003130965619412625884005474470528688550284123469017386483672982053450980354926666388647291323766431121984204848072304397537420353197189405534286932457645471594084244518640331947246510678134331797279371736229899876321734484115711616102483441569703208293324594382584249790408103590626156278321271498693501979614619701179122894999305732252212101092925868587174253502580552507204598742225742763563887084000001581360576955397474365047289948751521991424215637370286131064524718603759040561048106299697141583202623461902204680058462814681615556711864473071542160868633459695989371459825605861185817977650884619748378225014229275151477270693307737037695876655159768371301855002955740326648752749631399592714288738929601542849203262111117581378808421992352332900365623582377761717093986364962715334419014926553697026691967601893538623278795638918856606817563374755666651779824325705209275297094087716495028388631053374760040031699284564918487890173571370359405823776175133456402521999743801652971873233498579905022060409776404379533576575118134606829478963443648430078447584648181482899519795036858859730616139636974184990446821543927494190769560875528922892662246060709010382066558010133524664186339419954313158432891819084051555058008153211901993540122394406019923458092197430018468013932880149561331323650539281697935279802228899408975960209883845579478965574539504238664423640156372288914334164631538457152230878951412181566038670492571589840650877028452216296855944651033794819473065627660448602761993915763451166593540551780295814609398962522035732645516955818971750531883149174982959046489599607210584717490973772718672596774374015299446853485423790716533986915698680581338922415842024735519527220839720926632839701919240283772078815858653838378273435604135604659705054160247639220600092847230912703904260841412278013922692661083660015538081948136848040589089042696313286342752321472167680996180990566894785819355316412886519316785219062253533155450211764546691288328668249022234972980046770737806996765404647955970008999396552798194534171594899548985013747759898408409108526157560785752549846063273717843580930279645360479673630348809004081568467492147932223964850862787616384579468016329918837314836397555763360847341671461311537965848537582312497654235843554940003011889785131169896331460148877259091454638355731418339122237362697466902430305989427048695547450055464934368505000744961646903400345873438657063090696680949101782996498315735405109634359694743144284678383850900241027332218488133317184465566227461117199065285011933571210339409447273610793490833696539015781375214731925101637443694704471490063115043618612142486584071609116692599867518435084659786112151305560141383749399627001745763103915454327104787346357428893669962955855187912990275349059897899543623482185642602568382300371357293850480962270228679313546492014193629980590852118809050316673791092284035706937545664598712476018570415914755309061856739957490107893945228360435958032248054274049740695959188112935685975643998238127158598522722599991985561258472372074465300681022837654816992255436329320697175703410551879580891877699131443978452236466800991316106315452853371242033543949738186530356370593037421170376547758284380593211196160673617972376560215021952634954582713491228802428196272583266960331414366125816538737856199730135383659897466626758267461096774313972126368807535639687448685101190232236055671043450038665984956444576867105561707143217489821380882451171125194037742952158671255608145355721706058610388680580907668123440918478820455895329855207382147588972320052137620138209501343635927796054794547190731794657631943747588887749596803017413594325307835969651124753653702180614264462899935678467452271116206667851958547419269884720313148399311269544091045688672984470850901859372803860085848691147811199705096239070683686969960795291533663406469311305410335804729540832663664684579489833818986196430568592017910987689078964643649158228216980738946929561327790928100741663872899376556866754123420966694358060595349123910332879143933718414664314093186754399176756745163582880466914865989281548572688134823270839162467208912349712985451982741470466598366230191726795009198574065581125468440654965254087583475300343208624840582976874010615043617881559138596633033249454184822852405902893884435116241778910291592000693438895615428654914652975603267502496763898486562577861167147565960800016055506740515816001088810942129057283764522547514787098579278771803043294449560711669898672104820872211942974158948112205619493181036066161160767871386587280197795304188959366461231764193873805068297533900603619789074046302852610387923672870583080777826490688726055445089495735071683776445905394422300970333976199555027742173530366762335845716125862756276613054132395916522446428360678379157239939079611350756698897666208114151708731131620057866504995022649018290716724027055385384475594580722167828551289907053398759961626692412936460424340040921220803424387425450223429234618306972685187228182825970806590661795890091884864967124339344589009853165294739193792604106075642775673522046209686377319543380471557222654270715721586787796611147630315000265817716124834184702245448873214651325225650489034429533049373269597802112436710377436442626058528051817472769368198691197822952070459797833471129993092494330302262944110594401103719614953384279062960307835218078913400182270950015758734784743517086378105726496229102333651277269614531782683730983296437921738414111601044795255022791282059552419595719899200151036655703493488330786953131202708161251059676616111006479051032541605729831786345094445089611079154528428280728616109052581803960673307504841783683935027385989048678850502219419039211760843945653223498984973540814604654126261884812655551414795505206064117580617193754426751901168384938153190209282481806670236947444903863594058961223499479547619064721750663302704765428265496812577420898297426906281290779746801805938775142398526907231002677017361440711604092847005010839368189582229972274401767488015844730617243077455622280866184414219349591765488879125271009725423463159595510627094575157252758981743167305736641555362330820128807161978841154807071450343598247661443870972634677977002522881906412957453521529916701428838670663217441394724779980036195643237462779953587449180840982228818418277102232875618983305353881542736186582415338772514476453840343218481353908274975556513123251595036392227114995527395019431839691866159207406960996069942428472911457057295345342322507344564877935791747617337252685490787344920831896858850139278353246057682036270375290275680948577432732381124186680405963335637211156967934726169628037307942901156380487673854271186058776534887908559364401403651972833662141380224985545371120906387292553838293264279058017721552690095248445196539338556022373009124976245049821121269437216129104002