86682832912586496617255517869292221489124648198112481121846972192188158256849561929644781111535956721179312242241312598465365543743164711674597279641175124313833985933184466436488978419435358696695717175237314413292743666128698387187345914423198223554111812223643232725921583481847439376262371338565413178655367318366388872616721828832638499663161163167296444313463563973972781222215395827772542118312154835531441254172683293855244963643572175191252437119258845288128148494135884719819956264288578999918174611883141132585725497698587227519244377495234335659746935933997296628326727184516929721635138584366241286573717148367693439644831484431554659941815617645298199291943671612747568282272871495667919346728611321589448236614341886265831242882646974964316452412712153682146779937781153636592874175366476456753135684535283442584581864979739583115756413855627599212199216911873729717756598139165636486633442789773977968976531695577432169647356538625728941139198295477413861358126827962454176736998862224148359692366967776637636666778164343376732937946849112412333774841443546818125731399145611318431962562772839973265146189532644778734276348478784772794619416197232576669956333671149174793859374997358717896927146553262652479266697134874614879398248229357154931952941798486374152113446794825834893219645131732287629543821313549377176445177419233157129921484665324545871642637544371924294965754269784635942123332746327136819118846554546817932656315715515352166914389924452292631354911121388559276872453953668124169312363645848364683148186936296636327569817495318395159538751371289497369421429374819791934196986652792517152825477481427696811621289637271375563643523233951457321732837746425241382237374759841612267933634927794425794633778535527271854332145458413833112654799542356431437988644234523219359518179772764934882665596729847932897645652496655351735336481521781612962567996337475632618879644393446512169234777165623575879292464862763447192227177927332323763611313358561399414815518853238633543777289833221464335239373127914234417934858824314653396962189914973289664875198852365685977938991152765632464937425132937471874885912197747142465872244883827225496485474325597677556521643482935518896752767713486549318726291783161551719126258658391323418363942343355798861237665872573878788229317453215851259861522163662199198622712223985624571246354479497682214676671961269282697644631246887976933416347871394665281624822326579356583574764176649593688874582639432591388926187897716815745791341921339687873588533124519175461628132993922292327984733388557414488188767736569886725992427174274688443817412933453149117546559285538635146236513624944167985394552836564866444581227275972298992855666352616257313873881746549142158114551699986728349879597366445393327956517588216244343337754576774368571271155812731461397759173949133815866296186215117227844879182928128776438886519256891328199568881832123572253828263596953514349958476162711712794743632224225162131267272873945866263318846677914476731367829666753821867261554612254397883285976992919661942558928888514737198943379417136829427342547618818276733152844654412321566134439539979686831159914766468962335237785212827459874422438917138278276113739941298316663958879198614714622592644613975887633975926632264658885726669348594285756613485259738211228531312491176433629416352154241299292833694222642894496764927328375261663644152562213763876997792377684362555881827641168412494512452866341121876284155973189321384782338918741725443387335437953243568264597935134353436888966322753831384183349127397896422969192685328912446238981617584974652634318383345554761758421852619171166771164817244477848747848434473775397172339884491853385357557956718872433344544521871647567637665888481656196773677257261849191753131423289556828555221751896467947213446332481283431764414247548742116221391667841291527726769937531717267323133547446981136141443137244359429815279793242447931879474548114821164186769617513664159697929556445991658768213215274114437814614224899468544112764619152662417422335331331655989926811225477427731976313252742635242329834534911825449663143518276786391642144255895936315743539928554769186291223495585465367684879313284684659991883857224594464223427366838976915144173528377978713939332112277221633766961436137823653376453494632325186489317749213999742776714395891554757474442716196935757711778333527713276193231399527545464172714234685477323233157125754828449159784765324729589248114296137624798411768133352539979267361211426113393343373973677719299224113382547638469499521412381889277473264325145194253643371734159247553611291289991571121524471563569631576544521596113235141127692362963341514269585948681988284283543768286183149333776139864885528439785357811648438527176153748335986663238171161555957813653377174814191263834947676278741567333296798557884269559996532475933787495243727696488569711987533941293373393624345972368875269999896613142719169887313178821958514496681888556355262625367618724467128431979564344639363946866313937192384192551769982226427289687178124777183789197194797385433833928372563138477563712581193526458787323482554517962553291131193356983887377134891489856488253371899687613842458357956944724112347218735343446119215289141338273618648636567799237178535492348517944874385154685414321418862331586389372469217286575373955611817618165168756288225295374296314939531347359837524294121621528889729827569737428985952138267942374998853763429113974462191542492485715591836811189513569813322916437852394756376717579935474886983994386594619858511251566134912699219441195583433276815947237629318865899549937974392988274495847517771325446973746439697635799678367412322152196917281479952675732147485883268684952238815628266991818623645133899944148486954178451911216341268787598521236199871584662852232641885427689167189735176257496255585857398799231436998656323212572527223713621121913717321526454387568983397885435911675589669628934595263624882879136921655957134199273394719129663472985574111754416695446247378612695294479956489519622248524887343991733615671468381461292667663983134378725951877892129167428344817374782656281922861193362547248685645515815228298195619612674798479513848522757224593117344249927652447773139118136741995556237786749631975662631976565149573276861712146782537756692771147993359949493894421865612493413499129263866574918651949891483669158794117695877214637858853711743131292733831594134295839254634954961617838311333287547914897347355534875547415633223568565481216996279397216784153963911355646996781761244744979573441233169363468867296334791838955525699345856771888437282678157993831155554484422783471247192528131287417488539957737876986799523945311353726538844791716313211765633839884518212115971867542312883543161131791594422992319739396117484368772723883491115776778352364343153452184595889785669153161525567383759567956217312971637153476569952698668359457813976451579533399262354382591118872391988914228698186969143614686258337151715293574952337757387928542576624965997772416259298659747491848856827926554342837756434437664371612711167414931437919757124544841971771317765171276463733378889238828943619877536233639735572419317153645969192548271161244348459642511783413985992391858994152115212348966356852643747217131273526183281712284652474685213816441112334766648228211452659671346248897492796153743455642755137579197938851828833477224566242213531335811213212497424862486252244449921177592819616147651721898122843944641363383113353669664146316179365856353249736533447476822378249135815479411439347429832325615819247135699465554546578395376957592393453254518217946941718375332382448173765372537898845212352155144791134835619462962896941261953944689195632656558882627899168752492131934711999645819898823184568247786651599279279311314167231984212516774318156968187435518529241682117814649828455996933928772152274761297776319385923687671211122413272762577965322624946394278221281651224129263957896824911358779855512562281734716155526269167551413149434422126463515275231248975752783617163312839865931987365674516619389342562382654284181711243517391847463252318386539826949312413482214389779328714725813985333337363129585584686786165124443736138598727415295228156817115324631684538852536654696779923936531481822713416458266678743416454275847638791434518949366943616555882957193935247463528344536143531288819914749814829954882545422741313971839771649691816514781869657397518257332241286483537637322865138899672351275244253377163272223211849382647173892219677124953641594272258877123578218953791542399551394285744851977116327421997971345468418645447367161971283614714849772563393142919884722998785844823995678321379651874631328416628417443754876949196563754151141147648948754289722714481527922969221532376598365759273888192529563395249838223552438282343363571815999943675263461492389461714679316591329234459398652585642173874873985622161548751125582425312463624279954969946132811154444368221424134517425786973263313551511741369768645163663768491841145425778988562187773239157992163844289181716743623498473177199386393841981525961964991841734539119686222371463874145448727778646368341169659652988631523417783473436394232176237965483721546672785265369887823786982564919267382618563997437479669262393377781592891461645546389822572493937733316254224342725982779829419248254572491415174474779713331413492636928833432964528281823217661327254957441179868515287524864295795734489349335729119433186343159361369677871272174824579252618838574328544627718121156567219185881394723471332195974194142843312471374166124486367891716554991381159753534349869693887532255752998934593813123529617551636125526576194632451796577775419696438162848137594673137496314131898112851739525714341548883363588364751181446737132247122641449257226886332548417392447822376244891565433822985879226439173734328362856347435813824313487731872612344881866683932473468966117278941166263461581765499876328933178932288893121438813936853433464745916395555771835283355542649673357335685747851334135992934467957848755244217382856136888983297291368722282485452556247523334852223522622368897827151554587823263185919218141491112558564773531586426357787194725819518312257127442348719229748381156661366657371314727163598434423721644455289524882744246685269571632998817481611694316846839956397898145183612813163682167576611342469179192849553611294253274496232582768947124293114723138298355849219317257124793847378245899432937158746248493189413434758238877131149776267733152811293299745554691514348286321448511884793494739885869742782364647385152553418712271478923467526989167593719753561859817317769124118339332344578661555189994337915423276651191324169878114823878825622232255674459179472279349323922117346387568254225528554812119853868447847323343951818642336552611861662795797388644671634443771614166864574147949173356587945741559894812898138582157532428458793855438911835274327727474333254341399875894897336811646464562899126977982515288825548766929546623142625812421589537825294267168191414636954117127365336992639787922981474813537815951884375374628533343781445675833298614773928917337135283686614323443366415621883358184824569524917964674248578873494847713182275682226841197698757371448116983131275784772634633238716531721929626148677722974953674752374526262264579827141573989584367217139851917682716732651744924536415187987689283993542161984779252743628963443567224723276553338678167393351298446132526837426647415953739553712153786334154265332762239673324835915526466237968685138659863996784627787435262613448494491478289569166714686592574133344211691842775459511533511922365672834365491382556373955851795723187131573349679719247234756732594734942439917217942242263264633276999686113288234378171589728369623113429275741396189645569575734684668251575155695578427797178112914987278197373696319217152422429592755543631296634893922287799878128912623721141913369892538392261418744313251441653872348888779499968664119759574475522742159552158356957179852113361553735585619635225443425878868276532499149562738955941826761365923928991769759422226766226477684885913882433835235923688799679687163611349456565621142882598468765226684822676219475793882527177421988767858884658992564125993275633597193823318529481629832679751341373955643547884842149992794786778531472883196311217969659681174977472349118777613128225831545212872133929594161116831985798166841365248949321574848848489262181224574931979518376426398458252885327894151382899681291179779711766847482487459144916463517692694552383468172658229197126216481496279181527468227118862445946256615157925116967821684337914716144543359296814282167642421825571559153977155352166797594624785971689434781456177165885257815235227579352352636322888398611732477197453586579339575833127274617196336533947884377616553953565354535617719715986117652183699666568467976484688594444169477717351957881574155859444333543685631689437757887212361998227122824811515319232768661185392398932897737278743389519285368511669556956372562594348657818995231397929528997458248742868729998722338575149551755148641147234699723693599513788284938955916253817447289982283117955313261264566837523553173296623717274128256845868338967136173713455552519239711856365316224461993965912119794992185665133611893838795126424352594464545435429692494611147256428977464427784628599445322914166265836854317591744248582269821481247868374975252295928419457271928271874389745521448614279519941495797166943381666552931886275599394785558112879344621198296472787245745591235384618544562731294617572876522168489863864518381528274814986189488317952529733572641763673213475511353245424619317282335868942752191993758482855288957386955612314188129897176758853272492717162632487274493339622753665976538793687443896441287485935555993144849626525594481911345573985657626871196667512532112511662746881184177113683427943753685121823922947652966582824779951156378232421272639967453276382711144977961426468915865244557635238586154245351932926379579767146732773772762953889163733221341235396936165575759666229975387674583277114564188862535663269769785125373673162765222981757153261913532712119624562521479661258784219337195794168216331735217724519434841736436646297788317653696699541646263796324891947593946811855774217693115926656394276175377783612551183382278781793728355222568271229966125515186545775569235416468236331183145126378819452642734146816192595758518284741372333815745819864325955533395752665125882565886729319831692297159564879648432965877381425249282683924823624664814429652588936531398178854593931359243653666543897751895214168446375195116912368549147845569319177121765141227494138735245158272849466742581945172637145681763115296372674242193921445583457886143198829544521123321195396796819578278595685935487233522655116115365673972624194787411789497917356375615386627165794627337263834317876481148996439757139675996881761568327656317314536725184311184191579837755141433879449671236766312266871214312556971289745431948632534111596173389877618835649197678574247871487852514164811226553762163552151923669736417149548441454358589682775371941454677171834253439421298411913355591692919349217766864115261584298457221533388714875485335562331853171245121736211519821195213751985617212994629796523616925924636618862783886448374412211639156536328553823628852157635747147842824942537939574365913324682929492678461939594117258131977969962228635892161965998329926286794652691331427139339569665814173127735349492973213432726873724327453514844414141268945538466634712446419862633898466789389416112868925724534694115684565355229744816141548147743232267318666275953912127921873537669232449725255966533941324795633481699424986659968742795126243192129772223858545999264621523129217477325289358393535511763498549375334555477545514839587578224519133587156617919467526472323565574987422231555171928879839814597861962811412941137531819938655342968137225175568654467288162448428484516755713238759512615458416935184172758454821544438933894189291575675492222163836783831842511263771365145314114923645242522357283444181558461579489161281334192717432119934846593992582387354752479185583282429489249186234226517248524861645883233441353926554558489297291641671193212466151692415271961937114379741384293974941319728613316558842313663676562321727352145547515363116621816428445968947819647376659111431233572546999965458596552795376143556982984993236194641295932843944912361218194152687249616766294997755357186918796494827488569292568244647175928146182925599727352778426994798997798983675731675261614916158845156634955792769291478963178576981536453898221469373399391163857675764131694417336314199471144164625434993318113638141397161275146641942489649335388224899741162573122718131116392479611498256184588339216526414848349412873656176484898221641527814885157739342911115287332177592432342733914141594538244625839814429364238218673758713828398634654584745317618892851367594876666268735249176852879221175269236646122745369462148337458749858558676789616311125876754369414544128843844514528434533994149973653232253532917321687119599729362499477954225546857625477262666265385345779428137327216321135686671626728284336379131234171741124528143916597918947494498981432337586391941152939541635747167194181136945846843741692721562434471775199521871914224966972727465952381752742957186962582519316159697829134125865625765838796582597934643779173136991685579191961296781281395671455578751282224866845616892897768965182674555283497886373199666964193615243696831337164113858233993746912889922882779412184534296982163379556382123243742672332138816181694985491574637674597171531599743433269373658855298221338863699461912437919719656866893329647122428219626168586424364443643342726681953113211425445875585526565749362948946189971393511335182455676768494245472712716267629849558639664295674123137919281129264797522322851627264858344297759779661148919123131559773695242494896694482115735877875691446733331611686284229234931165644985549283947915143332189139133726345633295369757491336392458828876324719478682116271597323819743853697958985595771629584482297446446847212961187277471562355694657216497564769459179952736492781922456967725498143112945324918675518826341321241984482539126921732393594742333289721322671718358121738399948242118952274642723722328362467763664833899578111753559791279423223786127217218239954622326168955956727121211133771164115421174994632288591497148521235985665326332257724462159911734582326897363426736595115819181238738361659444934389223594684442147299677622753136331252688321753676541615664215714417922411393666774559846896798197831917258676929117547943669378574228235621579583616217428558162144525834128814321233315295981925396975292262958229614445274192521828362637463242675198147331718719991929991445334139586295464889862453954596654139765513722182763568963558626864443385337659399194181796853562156293499723825362251126729159345389722776335986929899279191744684955559837117347523556111263885347841385254811111177986766171765417424359281421634283827355846531642369214131392922637939656521924377174829547791711824987952987227269998834163946515183889539389429962297192163974963333949539181519187612764433238816198526175943513762494121172477864616117351656839335375299127351385315436421461561322224767743974896791713896358442462569371342192122867646236289998365917155744667162429379143195481949795671575451825672862896542771356129538114954434668789227967214535227163968588124669217154151943121315298898766729684554183251912255673897623455782933477795192419739122618878938248117989478118913324229722584228162219792314394244196386234718442489932313923144396825512349734659525941629481458364413784917171765852613444959155116241122751448539372398461198592464819451354764786165785683422784674668422922133997527537681869792141916652836473466361523564374966168575538611639123441943768873734312117265387273142348165156375494784441798433251789456241256163373523649233278431497119162151865118449219291616239795658121151717862211896863186682337759767331643984155645559844759762257444361392252272737785199727112596267795159566492986944465422143554659595864642739238315535679462711298935449531372843587123745673327341677111314816674479145112491462725383277278541155771722398823113648258372397669321482924953835232766138367438814638329572565539872412297644565871526115236359183431648436888954181682159244295651714682916475648252399663233941836825618556162448641557229233665354614378556495111932771761976687979793719212911724421384277274786761352895463218992283699371671668966472119394225962324427118442891392298465783356378684871153985752575698546714718395395437713118114956184452916647582921875463868377738997834542752971936276288283546386144547129542449765928413114134522171624528226819441353614114493953176182834195712136122656451257899766121144353249865918658341875144823248953389741925292552777838563787871145837964621594511918816926216891736882447215221542744578985885184171578329848471263679793198344366456227849567979631144445721667465355697631167987925419451564385684372479365581545513713577472318988264532931954211542365455734888697765931953133142455638672995449273731597635968163545156529287487624142159425959155319951893319731126494441913461136613249247425589225975245284241552546343453731842867572192298891217144144112824465676381564886952166612226753972918836491245199298838383433879316968968694119397788161737798445311444624742952346147844323289766228685197759313125133555416885792559459482395526165733649596484335154489478677899965148397833538323184327155992764489695766956558945113123688131963877437774869136412613916815482487259933931757764293326937851444443894561225454493746319465574748289332684492859383456482935885423252276829176759913371134712336748943947697396552479118872482418452426889924826421485123539178792113265292977541483916727595727217392393252863583629256414569253734345811561651194589282531621735659419856159648159513611435271239235229714733861846569884651624219468191852554647329857144762182146747235364758493589715728257952849794335637633121328387778735627914591831817595865965382982853666877424691793787947436228391211838375391329266742568171418549269634695199727885735877824751625724529682645655323115873832128573441523682317293453791546782179629458253312922865342137221379128841843914615442127328276186747441242774568868623621721275559677987443339582915735735423472329382225239435751884459266932382218557766182327982258475154219472568722453419424397255573932115947511386246322382434477447871662778761314887917335585862995543413756128732318531176488265156475748334267115571735279421911369225443395443258965182636716625847488422176262913715682134322655232696358682755455112855968973422927638584195571645561396215436823334798711786643744691747611913371439715926891984441573117687168735319227785876271977935163384857382271128917327351436937425597734998981954335534177635682297976555416624654165494129914677442346113698347959664658882665814527312796343714951212627336729579387383148696612827395642636458771379951267823762492872155178127239548912552911264537568899483556281453522224642138986139798279121919453472496421527947499536516943337122969923273154645353239261313691367673211891539695759916895326525567563245744999378136483391835651854241943623823222488921511345162428662515754378912923393745925394447586216821878294253767122643781445325371322292951431614353267242977939843431813433528851464451458817262171451128366922266959125229328126195247121545267742847611338417932465789368183151527548343972896744435425438269483111497427818421443191898496353264318873941736781323419756219571947254864727321184343379555145824468614842583847252531762396414762118278677762573172674853586318673649718144665992853844531791311712345589186344772871311798432534838711146533157831499284256646795942742369146612891663534261537954394883584236943649224596841362117882379323296658168615513887724154812243378353867169661484989622895765748538321119249727137383344365766679993868296623495747961272884751433465712513556553426943264767964849855241738935731565529364512583733717985876937377656551185976629441658573262837392916336151756855891112166935433443281355359738543638148617934799332644385913467369397186114151183943291231486925927428271211476258917139348839566977578296765257775448924667289456213738447953938363659531269122146582713774242738615659697991173437478765783687537492899749488165342138168666653199677397133152325477838862217543254754423665736343997162243351766225726712961773757444672944242165871322786535981482118735192963937899637484989483771263111644696726914237139521384616994673357845445714844754137677561876121454945571662964157444237612644131818467327223651537629453456642274873945426563857374292471463128463425992636981452219631752732416378367521135265111891377351439566239514289972432378339789636442786645156444799181966669534752393875413483385497578448318299787254923528131781786573987572118413342513571368423568754784545369118832847218132717963353533944214912391317466897879882215992739516328117851479157348552382196662161521983421329921299132462222891341798978227297655355157498834781218836272155863481862361499249383717283185294953668129179452761366232737928841916392639259186781548917646176147177523294376439144979479813575612429146257957357614791741989577217865146264686818765483429255423798416159743959662477254932235627817642933369397157362933889353674634267872641478642998743877413224427774881936564836861332848114563329356945814935643939923173885127156272532166981697614641255445146426545195796396374893576239732449913143443363143256141735878234917582228414435318962832674834992315413171733714429377758348933283267919748698113327525172781536468933756972599352159212856446316137147342627975571893816894478598588152929381334865165542467793282353672993486465578366254595943432937915544515291591553378553234849975416166222422357457432411146152773892478445823192947383888318656994162229542841996521746855849472445961384919465344567322686344969215381471973868769117316181744251523264137395294993789662758564627367128312265219827563971979899438117182367898126462896264291394454322241232672214254798766444892589926198186112214281579295578287529244917311136636726926552468227313395163159138232211263246178422935979577697236551392427894954921218188714558615599113338289175698832221812369824494948548634314179337632971241285618539136562773136228813957459332182694158137829396374524814748782155966633217351146293996278667739553461771111824624375852845672676121337587323637155874866893621837589227152916314591564343434749914114295536723524344662258888334535833293681627252583412639962743783938634112383151624352152522933932525718118269327642563775757962113392169459767457612695979519387648569537255648643781761253736241495328797942156889253832562537838674395146673831243711944648819177358884699741284895266956539364578649857691872947425181917221411137345187149135753425339811311419311437719699412468954151434191852489221766186835452526497837179656747512462255151666481324231139943212541319637973212455712612956852592395488119776684414997763737691867993198213583311673353123538632414826729376496693226379919839114396812931417529522544687933151347114392136182556483614129863935217525391921879182396781521161838869164291436735985799563636885993557748325191879631656543699746293335585416124396684952856974475241942728917726599271573556714444314791259512115262371543227816581161187115299121128451357722245693693311754491131219668363756584182923717818874842395361149617255288844912672122291317421547844574597995789223464646178388825713231731991844371332592412554746746299241796123126737895296555149322675399662452247863463161642664624768272712122697611546811362492972664716173245953626571387638499673881178351918135576193127876335748943271662274232672165597335491165273478793877425185723221262364476546785673227997468915914961314225717853182226235433897775892661897843516171195126727339115155229717922144196211971344776877692916877868452939925754817862873271774316491526951115247631476587296845173535775441216188365155231863371692547655161647267965875635291261773774655736388176746496963956888124611594465312123333198673217499986224757893658448612526913937343995944764467884219695647291652765445299768626686129181648753133366839282297155422142782244285986212211439911958261749547863281732351117267679699921533343593351331837591276931764475519785816314718512722632353627985875544219747812823889124369922639641448913383639184322796786453522118726479334372247956485344252249439644225962977995362953684275991985445387514468627642525226722197622633184887844214577735825375439289939811773867474638812838126427156413251599933392568846628942297968647696545225273617144537297878143988728295925632213261449946512982858446577194584193198913976744162691226423966679683812929337175281639692818745347742677445516228928755585965547633266987272352472587423196827576882515227476635187542264362612775353318245645779865881573334474431763734132225969825312542567319461253966272616367189298926487192825645431517359963661665822134714172235699449312617597427271238184564384557467668331881213623415634924911952996315968948591194358276585737111282853212744639119915698141812665392874575958189142948381633922927675564519112555761931751835863892258333229835314156112412193711327314534639495682937621132269491779497735531633115898533955588931934472691576536387792117329735213856151636654551268692175996597317581177644893319633381615187214646648533972712617854418992957862563824368239937327764765797537918975212833885882456339934124692455915249918164466877434593223432692179386156737791775799613932248285922282219786816178748431521413252729919483642111222946455272861653111793352412696596245139534865141284292474719138111192199294814983613222929254236417271547534465566143871635551668889285178189351973551157164989848817834359915158925198196338214818559528321952666941682829946113239814426396255225238233391746192677989125552187242546897146159836657413879426251127272627311125554765793991696317472345867287859836723781787964887822376444543283338528817195789489388662482798324365394827551412851234693463432316678531535932492546662446542139155594261827816553883731557151579741112994451648235152255926443568591123237851298523879278268354522451858749778831262521362537947437157161643766297489429315113451282934131698653729299551328436268847874683636261113254152556996726218124876392732434539152232922628139949161816548354165717784331372686284648675278432233979752421599624259435462182333179425991313712616541311622871819862898251517231531925677157965272792271912273539848957369526533771456227734998635463318765142798595334515588171262461844454773346441762289675128911191846541122788242222866961277623179223243179378741736193969424249724467839936863869155241597589593441241339877581877135277723169798615242622287293234649728388315988697374752137124673687238518685244949925335427337213743961884781517559185419919974243216563399858112951114125791188452133287438591939273821211774235476631166634792845993167531677352798355521875214798742446652766584497344859549862672932974161714755959362574519796676172867658499341679416313952866632962929361486175366448793112781398857665794758788212624681765586565429259335817975134149918452681282857291331891543563375685916391711579467246796564934231832617492525577327338721766718431643454193914169929824999518287614137146244667589983226667826687175142653588757433159185478618463839432512312263633145455599716511256915124513862833228774264872841338867151154123968262353963765765314879583869377165287579539685625853979926259279178441466483414446186927566717323121521749155772141451428624847555226929488783146954611816346787437883362241864663877935619579323863654749726464727962645939249452668923739634754881822119536551351369597444254623718514674263841447686585519746668682946458444386555331422931213243877656825718387425662173274359741347862413861256256622545625872158362986675828747341767956433526241329163692191288293914182928729363397627775861467477961165576776361731768593365154277377215181453627122468651725217931235895464843667134982924248316428911141128297141181416184869312271485684216558593847829297781739994941513629836158597651243524691398119334421175428152299579655222638852288384274934698754396695583929455969565172461531523444134842572811679414819692319341923831536229728427313579965764741873623277492216825591927664587439212755774528334446346752556341838658336353969977138664991133316554572752459491185226273252148755783923471495267596494317338448683595221996615517917445586446696338413217961287338892315646874873814417395445784721618969121756274321649391487962979936794118596444483676894176718184666232882786153466411115356372139798269184473334889365417746372152443727336211386527479418847448131439636156991247957272686549133576859671262398592353644124737637493681163519143741739516513386562843796125796371863791133941468175419715362473395663386118169924327192291465874336211111373695944493772868348325438864213123432899992417748173429967949142924831173511464846194276362389223113736376734527619365538329797588212869712388765559366235893436647555262784742132418965318875167235358844116626268248861962413522778521228339887394597485248223543674472648626177343312248945638943727115553426673841927232315867679716421551717564381159578174661841148445972347353569848188926912161391518241316517282198993139657614553222979251593764541757242988458246796528933111743972866416366492977414338828323863484417296311642168691498712534765233973423454363536541672361174355855839447121559626481652332215884234126162577984291289591574474292678542476981538431821379932859517156641985423241173455964191327111227212748428764951661998321142239982172842216656319947681833449845237332574893465529916276239768367644451712853287968216277215981578253488599826881627263619155419331333562611184745192262557867112923135938844829587291466311361125525448627361381326152233364357757151371881472964321268464645298673867297689445357162374418453697717426231495365712497286294211658146647827568978325321776913533148435265353399528412131247989826357125762164845243114889657599316264322938762732793911315796411452886514723143526135524215594462755986959283857787342742851193159777254225432557487233465391998646182716316322553136949928266447651385149475487445339735391763821677573474245165491836396668516996199376227127935373473723422716981249444883569653247428624759124174529639111922823541131622133824173165735126743428213234877141217148844665549423844329277136878526118428232181213725586721179997754647912178442937316136377717254991696997357283122376456488918125121592685517393716916181139512898663525133135721166293323192491258873631517187581397691584353634128985834372669789835324521647493856571899236912342945995728451237465888112491377891324961824682662594496221473599333118769385318265176562685996255373775466366337221375965355913284867383373688556254134228249756479569523836556345819942269549174963628581679417419729673584873843443334445454526864581873948639178996311238359547211429536667829388299544317718591268564388765764223162935323217141957421544211835858533162336778483736648839988791811819731342157368716565269336473191353842787913879484988368862756272748893941816168746975141386154636557992564144538539636623724115923483292831845686332331154925242934738284973293546737157666641249598445922649449534518566853612358912821968261273411664411142947998267673761515889843968132198629251521119233276573349895332157939512292351257481643115396193663728321153325591617169815294423414856124481455365723252589972458423858867715889869389686655935696921745917432968567321471355393628541767938144765925429235541128358161544592829645267927271229733135725114765515469184318496113548923834655493887176975471281845978718355265388232365959372114956677381167325974594468723429188477958852795911581249652111117611711722695818253929474555716975631539658645298474975268211561257687915285856526793623912918158947851695981664476633891414827646687816758869671771731722128158569355868114841697372824385299646748834344284662226768743441291736451242437922421116473191246295984664172148165391435319943834867873884143786335137318998949632242615494116957466876779384964838447461136792375743795221239324299882192147265899114285819611475164346742961111183632124699585842287236811119451514166748147224351578851118154815591644822622739622472856919529656167371229263711232573355333142532836327224847581959839357514776626188436764466376545733747851868864141214563389413246122847461241989418343917721637965189784273657823364938381253842732512259241972989239187585469489441949748535227361827173315799666554137138432588932311535945717247428182333794488385536382142516361749463325271251819914957466528296513593313345475372913849348813442277619242416511376959224965816968224684955262789826112122224367824142828592146939333116329216242162246519744458299644122648881497314161745746816239735221539124713732691686411745772818245724243142944222677837415913289762427653476148623436615664314334894687166976119971356386124363157318464974122961916416616554334747492169872755573526723954628851331937147788118713683849554997321139231347441786296851916136583521944645335742752835285949821982271958952313626556766547223376199299441573395461676589631455954593235132276237371171786346671844462135135848582324838321956471841823577756459716366789326216717854753456718673395823529443627165776235837996156654457444645571228281473276941311971684965188843516943837228341212199196224265278223837461193382889439829355283444699454676582453217947259965783399651679372142985824342742725141296726768334891352135696832859844159199131752452365579553266712677464483434279412729128161146874271344843462422667978472259338151822923187796357957361565559227998442683558315147517152445949765566572996321896424976518529215938983331935196816972418699129272672886574949212257344569145789436951955141271675275278964342413397522247235795357969244699375929119651845314468341385695865864253347185319511531281294272386192434986116272739314184243364759786381314831188834652157878112895266588357338352477923171616948512676233394221797653348466624274317747973719478774187611964176923471342531892595357611226546946812548473153363979881273329262743221582692185783217464578124434855468437938977868868466459327652275277535364971143962352462349247139715146958146233674251992661245998636854444299186897371448795137371565695331383516982552211969148515318191185346821253419345249696365634655196824986214485791318613386433258287892548352531333396228759355865757557556857512678337728723815386226258592945434698541382367597242431384413355457619925665495314546469184371411179216342314312178983685563419879753766756355371613539284256243619938582856314385794685756447121234171544393367141652515451515599241773283747734576435116636376888862917296589139864764629429253621933863778859691835322124433298159578314496642458686671113322151494881839729129141915258318637991993177468139597681473754415189546913319953214916361112624896857166223642151871257939827225467715643389238611127669485161287316423286925837653492564949858213444335975451587851835519721593967492389717647794982751871641122313328819955668174598929877496858292632443985238992523435614537538915479276348927216341774544751791942829213744484267179164125189898511728252929159493764164125828961191834834816748393137936349558333729511555589963166447411164315721887423788943729517451312632175337742559631144112646811985459522881636567547152392591629627197228366494675592263845132317449652816398119585339379723267845195498461397592591988611137931627917925982829256932272662811258542943399326995114436186845875744624798767339286617127183348296214824965426198145288961788275811529112432477694178183767336459946242313228352835991134251939757845318347331644677137283261887884467776645129197517736313959836261599234527788654156583152714669487268367845217748238221186251972579755283646469383529736328353556846746253311287939848283342116467139133799482372153133499354229296156699713647462822455984635593263956551335227396452869688988126365588958693618543318832331378966749493893586955959396293754371888875925795557678996848179772757272219249274416521255882143897111864867155894549178139715279835865831251398354635815191497555331323458598878129187225299124997324931995448442265957641935331546438557624916669321369589347252157644966235789359328664173246246471157694172754283475433394244237127844433274643549253975571873752511423613322633471278748563694566158269181922313815292488513167816575338186584461873724267443479175226354914841847431384179974411483917325939666617518497747831124834393763772461441795851672541864182191598969659926537322328411287248521966862959621351864337532177225715669126264259922117419118282182222295665314391899312119897959446336352144775876326794644142635916426431587362794371818647281129686456425693911743971767128313733984433143297374477464146216538678448742382488111335315387918736783233932285135121118661446758762541188475891436924697377926282425843846895235292495161771841384784936219615232294683228832721346223552185624995477322883584662364159524251119291996865237148882134293415519353355738616366261826682614721342963573432625771151947849724686911973245978264493943344351788822124641558349449116449764546282575191613614661717571652632945527917648838147698595717592917432691325595793222599292697921266935936831265637215576625239877855999428113359863252869264223364445488917612184481121934369982752212361514512869267721931412158244582641162647266994142567822976284634955775963238731347178738713331276983798797115565154967765372286368591555733721946831536465586132236519235551264452781221184693984675337258477684912979916549369795824226684348394311482583169916946569278427253848129671825785612799563484431518325271867233152461551483462218549346546464929144679312994447987738841922315965681519695993285168123393228666627411992197481462341515851847484516291661972328765724435964322238271248449957459712795712717671527281567555229369915457424619526681469199472917698898632815717221379467743821978669928956513111617581697478861774822238227521378112988635161368882866793711124552998196934894643764187835847513924416442933539671477333886327733923395297542726459485829997726634919338425518168198656211343921729971629145928348336985572719347267555126251882969123838326114619189281912547743761747396255465193328117734222525922591332796289716183763891363348768362134186154394552616593998916565374559163219892726649524333714254448539568432174116816957956821935956511745956945333194637772913271718416441825168649561153241386941345185832644673835194749676515424457618195346746362822254619522165119946682747724996681187355661664479594794684311372128345881298827597565227338974271356563753337236772954192875995377739629494251352263682564622427781163948592386642144298826595233224932429853111333416675645866951615171544461711549342482728753333611318986434345556194644178187799995516363957267934758573185249912562857212238714168527988881955261535245115632558243946943833425442799467994961138365658859919611413277626631758334856517848643568178584968883791564125231683412735438313865977757567161554246541287666972627317329519764822555215491725198326946147389925945883737239174372461465392584373358353782659169878854634885491349593996188492775848934723297633159794234418499797912348677989562453825383922586943314982677916228258367562826963215313349695329831569579483142681462932295126316124936824764563127473719363882761866888674698853181619257111362319919445946366433695284646349681997593284454361298467457667988349638559155198738191581252113275891966989692377842924313343813451154173821972196649559447162732346524822445572474659711197653922964519192795344565518798347299411565653461744222653769729535456993171946553793182239224147277442141113464321961784632393929778185467228246525854731537564956559435941675241981933547193726999681842759917987371886132623614416151755797251614529447761223341394546279362698918927263414791423649874143266925532197671841195926292373664838113757949724529535911668491564263364346496342288183619157278584915266475431785632716134116895877688331822232423369412145785399795591918537294173356691792341234327512132712764716955995235427635876434939927235768739978922567474199963764338818422197553362726155562515482299481411342754816773427911324369748188463113386163835345534619318911839976168473764899343385339381426691365978321484762319689824135157355945163369166869117393819646857339438239395351553712934936933445342976647674393412784114768296515421477239149286163228295241343522199511474776882725959351857563448881636636781576543515645525829877622253159227357213436626111698611534977586279353163319548256111442771613488586856193167887615776954252725678662634555481238696327111117743949932955942218826858972952638452827558378332251569614726235295579853753453678899115842921634496352434127578651758287213917851336411241558596811823736517468463973115992162572452785562186191678217663762547861295434156724155277521982363974674146725865194265415482466368614337586823426243173187132767411554319961283846574125999786695947372954962922715764725857423633114833323392556617432123369792374336622594922359366752591458853681637518196678936292389176392225145747192135161525638339454658671359635636166784242196962366762659282293619428253777694743538145812691922669262583241227436427423695159552632235447487862715293979273151812525385794363764797426581517813999122119728941918671377567117437613963341137523815253454842856178724247572625656344267353271816911166295979989161654374535146458276825422931522398761812347417844166194931644772437116313187654662264551484511843281276144431882327351251562753472984687528812563427113638987588798139651336821485224966121637245178652543835572333792689592556398137527766645233596453442119225173531111745637278234619158675866947593465689653746192152812596112471332959964534421547318626399143951424436657263716393267738312989811535144595987124445974294892738555312933144938693683444169555124277242419159236211414813113684543763831263464577714167546192687447852664234599931131193382229987852752723391353339554579463851259484136445625251745769616432527615919932316243532282322669698995837128214523853728157264968231846416843656776742451824691568557523817891295813587281699793524469465927996696337113573194664266415393184227525873759394698247858611745261849433836253171244635957582363538147532259391785463452974892971492521513896115111532464879128177787512129773356598477111523293494725941939614894285475655962393865996843353457472786927739145796515457544271419115763618242332129196712365726139718567648693923372962517912699185915774727896321548874634856284758533852422693983851711935218914482174354846352286128925469326554365852756766793155637462356541812371619145118224617785867254651915582363217533564776517752595514667133183344389738856774934794133114231214695519965375842538121211643492278114338762448345752576345984814243824945151326575443551295243523337878954283157415868978375372299949432627744122689635353516784434441231939682778871318149976711646939642758889493764591494125665152485394376889542433697959266949588889299131953574918593276124537414358273516265719426132538697522848936364517161452439175684519336318756546143644981831174116373171945698517618317255843788553775581926311425942266794796798736154229454795678337732913879855934863939956127784112421728988623185759225936397723899634517777436387328671192182633594411425867623645993982865619245324817258421269441421922665619189197139929824148522338779148523857853718291239571599939127494748379866513537915262631486374589979295829857332438545341798991931522913576347942619358567214581163463995184725145388467785826124931921996375397276854447618332432842378444662935364122783634896251275759759655466665187365676236143129241112714244359465657763944481777852471352861116446391425716767213362775142653911574853871532751388236656693794793711543673142361321159492745321524935984735222272236851481526181373888142447837497138255298325424254436928474735632351746688123482991115331492852897293186956982213638591636312519846312262715619484887354888311212812378169316233378933714716541652977156935455317685866836818367171871891428142514774697435682232467364299349881986673394557376316421944272159128367958643975439212419183731754652831814792739987884865786431564155431968356857116851796452393825546834939466665592836928412293332771353516782733915752147583427696196934653828177432191471179661158959496783473372111329911371555469177753282562994549824632431955386631471523922561677352951139174997933635726273787984255378943134989326159183566412669673159951524617722116644195578286394336486768567175918894477716941125193213233562111739151787365535278984296153344229441173152128986348361813721467536796633482917431719758248851242243197861466252754693994396915421539555551325348475232258198653498562169187932331532315932313181141415768817597492355458657192825984479495775738878924116697997797967213425897318327686363165698653497293774756485362798156892596311665561946421479145346548836898911599542427132657194687465272273256654262157192843369567592493239384661563275523736125121732411217876868959157525535641715169811692335291418526571719478556922428517852229988746528595752978352627698165842224492521955126475337887964926667275351893264427295665585523631987362689875615197213842365452198663633315725168466366684936216271527384248297756565985478653274326935134849217198349129755445828585434194362745233156518389875286219333535332952617357233184131879741286851438661371188716932386788359866527681184346513656879964173975638672282565894256213276183918752173383756132315382576368253498296713557278741762417448839224339631737296557791393936836964213342129421652571925863311196223311487712888446228127336423133849185527454419688716332588288251741654264822638148914538299778615858362195133783772144332113545755466551836247142416416158673512971918521749388635353277448975171422449153179472392168399173432277252113967655494646293779171636372137475835615965434927548297929349639714675711426863754991926856552744186723778595435175279619226125528943253657753874115437944263396297333173355361136118413462179177179329754824149126272135588266527294798398116244147643143631133172234271549878859885415694457656964769332815641331382771693513934247935621955198877524974645267337444662385415951515917338395984339224943471458795483692926896992699247561692252193293285758326974277533861692723834936436373248314625274675986839442556791695233222356417927525295621834385489191866543261788767933722176177713221974853555383426737528772176667915323155978143572235552738322936583381832841123943735652276558412847951693884451131263578593278255649996218762119713329942339988922296339171797977317146578243675636743433357822259853525778734184948848411316548595838215791431275284858335511316237512911699142277693318371659689566721814514691614722454657133129872159127556293389623465686913813652296673345231841134488573276117447854238215657279826158826865861299887346116255165945616799678824336847574366347515282224612959614511658366431752945275958956187443412186842958743592422221471184238154217635437538565482649862618234621289873999381231116741935487775446119466125724928734613347639958862344352638234284971289214626727486213711125657722993776533998463663395234221192763966131381242361449581272586118196798172462379434623183264233865162421396366817664832163858624898235722475432979753342174119493889892656844121612141179641754856885636534737429236436616613278529921228856298667363816763167437119873748652439524813584656361231293821666745957279214479729792931173767118135996249583111479748928129158848878832991711111338799437649461475689353255573719282328671114674587274487626362983513977811439231656893894626819452596134329548318616684853384244967512455511556261463765427752584665222654818962817624951422498164374214447288517591183944883964157771331733965947861683921413451237617128148456358778895493317311223284635528832769344474831232496742856172572939544612314596728416619471319121823159646833917747639381491767538249947925583432384555356433178772125511123473341313245528657978536657158373487449667229111621676174381642214414967963597915117254427255535981361338817658458464791776434942634984534396583114987261756967366691668113223162681118913544714729163494129652563959554361339562371444372751143157628384248491746525882116891876444266358943367574365755555956171666371745517556371923268727417785273182317349561383723439598614382153169495447528453591764261284151611595214559543471743327687457395239421252179337476238318369833639824977773811362395794198324762821414753414598425152891271911157649835623171884132292951161172374479456197222493326173215733758118146931183842758868594477382341717716221885286634167319835726262754388681892778441174857144467792629856797515675936323628147561914426315686459829451165592934527435127347389152317237975168625591517351556248377956723587946397475531429936392927772122827565976552411998582134271345831737818537553872557723771212433536632459228213196652444466981633959346712792828276479354494158454565727589118613529232299925731194755996861653881538387895842159573291555848945572852973557352619228575825452351434824483872527598839684928755668697639991134399235389721552585111474333985514822122263377216253133921743386486353513522257232944441326143564749931227357691849674571591338689875824184125569947241913419511611676836675625251363442234971345671137112797426944337333564625832564381335971645625253731536852338323561868243439512895414273832446356481723615459833876297532942695671347769581927633365359547956583116231184942393923785316699145239116657433878655235654834184279616348261377494437114282247418639187952226398132656639114851135487917115884791391855268443588856923398243732637861495969351996847472536139881826273587117211233741859499633614816314611522457852159292659537223185193657162388137213233185335543565336144664748753552182922119189128836315269435924675855611593686618436491265581282591566238427454454352434811331716113229674412545958851696241337313278881949724122896624984297819499839328794239162439723155632774895614361733831928139448445258616115811373455923172813566738936289414455467767281749144471728957233541728973658652491488218856291596159431571549972556742545254962414131699486883299829111232817248977393367527782122182263474849661629171589339974998413395337912123131189826145486717618636186292882351421552167946169469144725481276216678443312888752166379535378377692255988227446687843155552899376613588143892195742536434878796424222329627525816665312384915266375544897143114521177267354889751119137664574115274778378832638199788321831453722791921335933426661519723164427499563156438569915953534825512939627667521622699729129423961916252412412818172944717692471222644933324933745215129994329578768697992463239133582156547764151614198618395455364364961987186554533265367662372537644294471381363853217627636192997889177422779536237919375364467286694593671166291212337396388384151121636234715899543329926213963797352712435661961296988788592386777253921164999654577897616335489255966623281353475919123221245971116423817443895377394164415685116812985578333495549365272457213397426819118121542218773736245832813519188136327438713319983449647427911539196729164331114191363431269194738392865812739334321535781676524537781488471472274935759961636594941877915383883611124319368473154468243295284294252222871343936957475172697737941566121166225496158884694445334964986918826524823839579223173581288641388549125348731889432549424725123374295551513879797165625221111941916236477745487332937971324772311974288854917176152433279345181882445981158816825353677838425353877994878128338164483638565423651462856852188618518324127251258395546884536497557694694513377552571364959738413456613944784818235992629759949443543219724547292273513745896326154934242815611457619398333137172862829629974532838142445492768398597316432426114535526967223828478268629738541348856938365143112331585833542228269472427785844135547385937852713139634823426525855925474142444274132447914861478929325279345667425684521633442996448145961828764749738199323313735811979159337762519523838744415799251316516384719426796954293199576341914841759349643626261354693856973763727691667729459749399335313712167825465571639837293249277351566747655361164934728824983683462227547388229271162739995451986794479711165852951334655112821318516252642689872857285124342895475242436933933861258534385156143947743832551348398971631285242158125543847492751223172241924956798162829253453698471145414915879727475474669685952216237911174358439229399686186713959134967199469438732959562813811316278113863377842217857846116538728651246749248921354838462292172315243336313912713372836857677938449771366751113467457745429748734176955478236642842677778691451196241143937287453823479735717964336567646548124813857254616949982238718177791294443838992173727661126513145425945915116624499992834787786764325134131569241948967923189344589858932937855376244315678691377651638376955423735834911465352271497351243133319498888998557644854278733522388835524815452814133675614276676989685128273337399471126324137923753725246126544273655516333999257117777255288846753223913742211562844811941557174376127287841814292345982166626594861558149664514988815827192935483356247242229334176761628146896999532532333125732532232223235298211466543611356434248664547453868273447144751995342351687742435629294615621251247697975656653283319419186123468138272817731769392199839961874897316652752439457454114454233937667742997428289461945218467826151723732788941549797513125311931897369731426129987929716713545734329147952654249191621525987818463357243619888947272129311511323621939723173171531339497953425895365271564661295299587246726711266954642555141832883278185791656882169346817987914548411174923927157583296932835773894324536314589813298883132467127159559689478248843227916811333949536577353637168759862449264979691519431352117449213764241874116287149361725341358553393257657939798491266533261127131674154444864328141651329166989638122257664699882434827685188379584781675636592423744712489177462531913367652141791847626461232812188846998929481242315653552197953365533176458541997275857842457449552518217129971744516347445942672878493736124237946844876136912149978436535235869595552584176288421973621524695592374275171187885614929755825726269539856162233689654218533549226399249663161425876639944746415215736211675359113988321186856131944295829161898974651153981822679141784998416679614763966769337211394142431834184767944515299586572948325166957948236312864298615363192149422169334398845185865682177845354189954833691336661392269222269537239574497695494726395895346924588231367946854795855667879339693577161158928234933129723766347119147775915298455997468532153582531198382865263991478754217831266476546345429773191235613454959557964842447111179254955876789783313699117858938557492687595187535518715115382924998273926552393697127974914159367968579513572926165381221457298227191838495727422169666631578331635752821395513278264218921466569819448957149767885512193868246643531238413317481169992956372294699539422689798955764684375274719221866897237635912423431464416643131543597583836368322237944252316227938561798623838862281132964599314123321137667925766412176685754962121535935748665641459198368323494839984427316123489176823257941818766438217224832936115183941463815871728618286627753811611832216486671567795131615256993729686433453772742845152373164334576642621645953333429653675548159567171856281942771448834687769169565143123956762848664927965136823393197512443343839648564663216789941512147185243711217812561157516472469589927316176329999442821993943322233366261671138312995591141381222762615256711138482742496454265388194966327897782961688124648627126949195173465325473193475418628564626433129662377832123988375933551742233759845656162932324535246822596672838534195731236549126693314697959453269214551438264992185332298344641978215743619426922974162718998829557536853411729458656974738116835868574375724668827113694381364172814751512792173474446988969956556855668431925671694981932133866438975184112129625536448121265117274925923279733243639833364231321328428369197366959221229686621416746189179668677925497957433266711254841371993517344954319323159253827812679784476731913511982493632311197363796887735138588355947547753732264413694838194694679179141273187185876615714625769132725349734271411697279284226211911848853841253148175751754468337117466496726424688337869221496592371828216184144818544337622977437761762429723771746946284332188287737472431279474126967444298834561789232216147571332575438463534489427368745221524951911535617126234726124168378611749188978392227482922383525569279941415156636449922892289415286734567726469241544341872798277286558728878715974479541339447472222788914212958232547364448746942477127698685645159886434796252871246386513689583732943576231253479293447551416789234627798247693992364914292124491353444629826431598612534325663653873913867351353523972279845315722585159238159128353875694567316495662366821433535252197959334332164312671264653732128226648491618949327818658217263444286872358844958524472656524193698152146179194686453447649332192167933479386699121731654126833756136693467617163646711568142671123682339112685445941541425238623471867693991917193627111313496576366968254785441679798946636599491329384113579146149752871825812447231262284445235336663361275696381417767135644826319421416177515863228351467443726737412653644613137174589823753625121766796671142715279929323859626998251216635796765559243683498311576914245236517567983512382175883911159817993263644286694322166413972591163341242713467737983348276614324799143452558321249348636152271147199158164137995156811933668912886366192584497419882873861777459638655777323836173367781652948974565691651926722436672576673531291711939812738169251893336232419244181572388219296596716288449712926444868433114385426749359963731126238728379719656482725511416661145348293553588876411658386121941262932699282884196547298523737611362455994873487664785277464532351946431124861935154284245737368247489947765222339864623949479846926543817257258157798866547978733511221866565731267959162534168131322864918644189355157792731551293561714671478811561161764685266675298224747176622229589126423233716359727751359583193977651392863642869555313486248144415137353598823577347325236299122812932428448536873771421839127776591737234868595382478576276522931592316158522687846211923851417457297175556964733151942242615996669271529715577739864553951855336667317325358141146644172652355382648914852349384981761435412721876495725988274243473488446576962969572769517135559441433342454613449951947486721511645688334575186691958493488283919327714353281367135872439453338399236697685669912649867644324523539142635385478665221365783231342476149255572121784921196775881713214924136498224831314876762177218414781785986256725811444257697264883864184349944161652617159332932469998515299287247993826232915429866228281849661739188249674952876547813928213958589733997275314395768422777315257159819481547276328539984312153291327489198499883894227436752112728791588326996797747943241298929757592278545216742182756551148854369693238434873372585213422123315331587729958123874166869865322479334481798375625263627973945383243333599532518911539152589455781235893956271453156388936817717598146339388422618779775366386123538146947241239151152555552941988514587669175882744221566448294934293465499548984297792244657993248888678642217987926936181249765438546291384512864194874895462663247676396864161995866629825297988358548783671514391415227684462655681487114223446159845779715426185531623472941991259798564295344431939441959583714591511426612914687862482417661599286786972565342851224748926856371432725367616976971462768612287327772699487498232566819196437789434963763915631625392223622471685627691331179686469941583743139386267961771657144774442311496956617555968343432223446356736216898798533291497541733674191675457458634274528941244453494817468862129243361544711219443215685386821898161943856826232521694689712296638286665586344723841162995277285995231349648895137179545476972886783125938561494712375234333144682927739412469189448924647185513894132973519185819317396595128734791849871371287693177842968293126647562998712193924478663413517251286922123174249533826262223968313361212654194478825338754641376117921642238468684784727435426573954489729897612762821279823875326787955271234368437448127948422253215175114132118536668312421752345124215293466624867275359782298619632679819616585645641171491429162316516817723732511632477569625733131757132867634196325523891369216334331976226697395573334667239591681246695947689139852226145313615825778475834713296262516232189638853838453655889227735234567651211135769577527416116339574417474572983287478279233941597789642628524677671472917734381254562266543216726418967818615522131418834433815575787458657215915884494176359382246358827261889246316179736882712552984451851157584384365345864353559355385669924551682628129677594992645136533475912782821568661596934981937349378131979141884295878365179889361947146685177883963884141637553932136419955181291571549133426181327225311836167329734342574986595514346682827745314712395399113232919969162581694815445583359143545563496412853881251796615256161872999317732396674897817734465433639722748194131877954686289871659173467169232866823734622136283215576867515385137619512318968548114346738729291879822626659747816227316914681288921373913438464853611457157982632226855485287973134262622656388279312772549126275767243397231438993222354484442765914684486934335565628472137296948422755557931823393285551782155299373434198713282752857751468735587348661498793649169274446231554762934673181893136629322642313219631311447266937836948464536396881347699822544666653179364593116263219311734159825454333244614314193539177864795656666389884463561638355789551414254317455622124678344337326974249357196512158536138272516713148822654656244511224191199653123116788955412254235264665989522322636489267367731311729696353886495451819233477748141339453977487714847527812442726516664753765477643177942355649447974899957424921533632811122876712944446426296857518795237831428893978327813536858177641194176169327724991511197671451422279781587346969325239977654528957589628619732492996356764874615923396534432433434829695339548643544496625714556882325575777458628776137613353994737332366784816369287681534917953893442319283864683293193674827543819422527163222115168238157111871667212325612386543689939826564377263854615219576968681721218323646916656653941716633988784592282914853234613429174955348144829351322419322851471972283142644321247253554589229464351285239624424642652715118819528257866639757642692132422727745458723199584382339942976955539112741457863111149686462124175131332398285741815994161626159919327187652447295352499164284291164961441112286429214568211231436828482749514379886825335275183351739695963369562762172627352851667173686748975783143913471144491278539617418681141191431225786895332948145469112312376266598251136426643341542271297374987961617863727697967871583744156829921621275326632954471239475428169596544162772831438133127529375743195458722319774271323725844837992493568379461483188817171518364726546949352761836465435372548168717638254886665126458244417499615565318599736949821764512212845929425541766466261795176592871536715993675529571133435922295952721677814847384521896331248651872288853213376367245675192876884519456772534345943258426969316613137892357914216987984849293931926882389989675348249163151462231943659943615711974679838588766718645637612232365921191134522765333431176999247248696745412766892785738885233263943334481242424132186584814418695568727697824215866277559153453249449376998516348227483372522359223289337743359172833264988634971251968819272134319343376156644443463854388528574837499912116143378521529984361199951192586167313542169739194528371185985299486653168962367882349479229273385171821993242446933944651574995743689439593655736113223999316521842434684682634616613278366597354472912428342193518162736249421112228611262481136761879992494171445433676414959726841859255162239672165413552151225318995941155238464519445572148547431768881786311592455929338862511324348613727513412452337451768479253857255879537911454865332724456731219659974973691483629934599251233746235974714168319939484816755427875557982485229288381498362212137515124887247415367294621711146693632943767676487499196395141542894114128281252621966253462425456292934695615393221697564594945149414432931993881118116328823171133592935463642222869871621235932571333689766721426398152594164796662678823837316739239145664818466931887712556742523193116256258232579628868493435326262127275874146633978374791922598711581549714877464467491291619127646571548792122144989468461939722677531963883583372455265958832571731727672565392217629785114473531339964233475939525193343453424568992429785852415698243282115578881147885335937563545118494214488988284591464177941749265311977494453557481848576351525449421696241785613953171225358326791857463251242546852655953381988718953165213734355235386821846265466211239487957528479725888836954154448881868723956271711541962222282574183117652771813339156491928356922591658818538468167882977846229834789662257428461997445229384298623183353427816462714599887256382917858754134962833227966473519138784473313984692843112671251412796523432777236471571787142838416966979186784731345974459458555581854871774899493131125457622745123913595343323652198693621732229554212191793829181596567727381567951542636567941532725458919655437971734643685767289935934236178437454775993366729795915739239932231568828447749814687561439331585836371113382443611259168915357581335463684442374116294591365383367345677285437362519537619876482364195664588544769251241539496811589945561319259617233467771735439437813673635624553757445631391322243599475342219873629564141999843333263552883635987173952665156259556652449285416313318361988393327552772243135866558196114775435379473166618789178244172329112776793722535248867825913811382512518734381734126383226787588994929811157523441924316472866339972781496455773439656577511781393917256275921311471153513953535621658613783657371128363119937669581967152845163351169771159222546687122755843597276365138669816418565172293971111878431847323293977813997584651484172788354225115424235162348261536828831714362484776557158382378864241376821799565511178128364511291817435888914839913848768668246486445127331484728972249587378516187167728943375129268826257665511476392228172227938451583419197235684794138186731288282458863636426436465397533252646384973774912775773186832857397535434744872513881132373553915735911268515211487824236332614794122682446612315929888667719372684345118776425615422717364842822686913734198446161364252272794851338527587232649669211935677232178151518547911761216374413556358886234213511197614945514614374882582144176723439374673144184348554368731196994685214693922525781616993543474642619387388221972783747325591293647314932725535533387427918812362912241152184128482338971194947248182353379144813974452393172353193823992785546485156739571567653633439484123439245197391176562584556139192863964415368513472993197222675999981937911668847836319624763219182595271252369545499983923677411246354434979566337349412588194827242849584491224999926954771431796646235742929846699223422243835249351166878465838313587274254674194194437168949798928994343289693118659159941417448245925116148659762872958521651561211186886325826811623725251247243761988968852525246724363815981286454767622857862295344857811293678642672833531943351634349737189426315647928771564318541884126244981811822641825424323225244153954332566512822119455123342659938184131387113558826327116153226878989428575768594577795757684328122275139375932211622762562149951848213519441592414639228619991659289197551233993474231931778499414251311491815295634116574617449866146973868132267857886327393795953585156282641192143677851414518783523629667369193299988179944745232526251913385652755287923623217122167932688668149513485449681285315368972859982179539549764473121439323174193714292417722129595939555326255933667698241257992489131334152534118123831546112938991273251585653561151381786716415693811574422313161225785254164134183725983225172866111979668962857135298112317218561275396932699442355313673927922812167654122252811326662772824871791871541454923683243566941774786311617134419916167313819783327417717688763462325872678542241614237935982183449864764891596997921473722385436998465161374872626871853299246874123839641991652234142216346434213829652246967132487352477181769641155795747927474641828328517165382454586791335426884939823885269233984268524281151186755237613787332867553732228499491226251292947854784545359348375922782222265884971776497922412951631145451222754599989647147668865987663698241658587515538789145377264289224923455384323432465287177662491469774356219495387592523519326376238443891758234944964282833772439354976437515872249267478857643658698355733563257435827259134656953622262271936961617493173799386824174686635441696633482174959258181964644482574417727349937437549997535416719114698978387739554371854944214176455131512394781555653398639576391346535714943163669887156362598513572382851499719289715363368185744898462266874781278549243828918179946198213539539732433336312572986949454429445552468677579257128943138856338322529489396118986537728531372594464349734573214884445634578917749765511993912911251841744364348318777494895189539443676259596552717424311234587447736142354994633317227265662538319566116527249276859614266198279739544447274757194932321562327564516244631462623657397576962837949789348869977552624123386835937341858258611493833744415924913236596717536578386296952974282259367397324249132781941991238612784489637916785579884766112273713299482672947943327817748172648162755197884629794515624912655714336746279383825543884141452422429417697691825626273716315698157574626171925299574746464231119696613565116297557386184999263863247354533326226689669373474831224495777417167538295158233691438375744888911446125337224341788773934826961362676421269311211967257193161742537819223818141222754234475126341188236746213447427543314818626111436133113523858769612213765811761467215463922257243554451534849539233735212854518974182638523341716128351449514759387523634925216438271531627432788826732632114784968784263894733247532538426324617972352634325828326156729763463773989577813985181947758348633356227167451562291936951661311219553791411138829412887125219944162848571866618717383444211322529578565361912191227466913826155459167156634958259323497676183786231233133463913628978117161157625847827391236711278932859831161353574472281192818593143943328234742868251829694511493962227972319252815271526176662533852346744751168976292128294942979124136329899545691429392161685446645914289821623153676286341795862662388796475437457313213299718635788261964783718193165461589599969212279163529333918444729291949431168453427273893264947222417551463212526298533267437833973518596188651588229395323551763617925872221738652692622116853976214574221744821436615249125422399831771317351772573852928423729834176921694271817272378996715977784698258714224838462745945572215995834467717427789236135665131844158945427694644469634451545614592949726222771497853319154336992793556379217826686518441999752956289447121334151755588188924588975398251165976484566336443525448221189618224814177127482458137384545279823621952311276198484551318167538893475458565338898379983253312646449122621337222157841676786891377553566434647528863991845564725282441928394511274727979262761322632422941562741776315167583697951928242332852761321485738956141614119866212897835786521725587694529852578865572865283195255134752318479861412123649796898955833428866464632554991389293228159944641621642814559729459963641751958833582416572588328161221386771928133562916942589927411927729639752433468895655555612987837942713111251353287866374955338472797322243254463253132322724476476444751553634551553877632882137177984876196884622645874193619793726574147818123376894184763387727348435977597433132154818414539174177363973247543443715244681656923813114197546896869364618525561325646437446424912841478358784425786919813168234584395724714766837896227941791534338294518744919199671411415281564718157996139276761415158596565782611631392618992881568434148882112625425267761119229728753298748714112315729267943157351947632894967347292745474958579994814439151188722944332677772327889575797151463621858152924718339435399788312532275594452443153784269634543222283569529985411643668767328495689217524477172149852714659438143222545914852477722535399838155622673529792743888521815168116582354723675984511136896764298261512282175433921691611659472616132911235283722419149531788131288172328366949649313841245181531415716664663472498572364958439397125916474938992867771673627985622273898186561678547517978963174279984521277262335162152541553883122955168337929256819716431213721293369368668815277686525433868242174436115484991941928821564657433336115159439134943564662836186649572884437822337655836761381292995448874919914722792274365337294977719551646921519591142157661978616914899298293289344122859213851281159181111335367527685646127622761789711662298266138128317289999168771883932941519893242669376261329767356131138285711977176341164927434891442774361522286636359253878152929323228646294283498193117424133364815254987929555961762789273123781456139887227785254882747718223885729813841523495233544227234182492511599346311366548666896587313754674192463298474429257178443254174256323253919593272324418918763932163521332272164792581499189942231678744628514641231569263651722454329923335895174184198546116971436399328358667225646327465381899278644138126246863664758466612874495815413218637772885356688893762612992364855517998678313859294422128711295759681661179874689653545928123135294424474792541681717761555798217717939256887883472949853865613292657165437952615954499174846593438961161132416724783993167354817856834768147769665344168129259461388925677729916275557447215432622755214599423125848971668959584937242971392322218976851225553393323285794658291414256322882618949896332194696569222475711254195933711466811986533392131553418623285778117649752174796421133465863648295785691517642961729684317328554921221796187331473497844599274513535664933776295665177721528388271381296277138276516915771559332136912595612858959811775568339266243612892434134176972395453554525166523554456239479741181826313893526222432121932229122516194271228396676844942373171833225219251157962345729957325981831156274552194494273637669222594878232245757736547988914486826476383678516925231788765711328365143112845994252667759931356633745825514894651392576995332197826152373426557857334575744342341314969192379397377517846952351158696481513625886538317224314837788629737812134223489225116592224284284321963768418934555591742299787425187545366229468132423245733791147645942218912492479154882566653412585841467842226421184114118834121446494114213212897269481752337331456662793772965864386984843742739665159548747376194112894239917799517322685773215643291376752157413573597383616552771513597563361574736752956621645787199428879226994671216853832276428271131735454435132721756699515119181545569834529944339279174467544852358779761739685529794121299478465529161356391357724257158742181471751282986137988661786715585683136241384614729164127342417627863613419347939132455642169613286872997423673335179215149627156854662351454845472655381249399178926541213171999652354821661779846791516262224367678727253396376935429915873834529645866181569769851955869267594472628777776583872522287332693179781889396377333829117654489191616296634481543264821679941259841883782166817926534163339222741479859934774615454194481562949158652793787669496897319426787171723473326372842755338486142186643712288319953734617826148965838599981169423814464479525129217845997467473133798845199432378284483178688253591619425191942373352578518789615761688294649384862638963623328465223782371319153412174719585929919854851434764551453233391553294113883385548774835575651619476785132432765258365263449867815274444339267318223416879956738313868467644898556234626492898852922857617721931946977188553226158244278585266843527223283611519964723264487287892913621164314641683786639922729411434842345425848712848484113216812558189165553947953139427228492733347518921743723126271128632735398943113116352217973158371293371258274731116432497947446841994414231138974117217754313782376551266978237141698346385749156132112416966417417541621193235926487333419749219127932913165348389388481149746762996494624543931738415288558332439521359555442683251671794961118457178839849491252459631328299648153957977337371698612432532121388447253448155747377678367726746658137447837852584426349848421581958312218782464525962518615857325932653922849871532869474147887544636693127216265391425811487374373269434839166775719921386333527883136984283563839593266516755423748594677135599969736965752456773324963294773291967664251744265921668517839256621659441335363212526587579179483351727597632587168239534767226118946384275736545361714368124246173969656466576422428232116468235766898843119865668732471756876818598712332957263876393561158369597671463756533179128573655783952439958555548747246251722173362246351591835696943799191839192234311273399814869327181338229154471277347456723677196397746852498599631123522241479934235831996946925944447821575458295885414174694364281977311152112642915178239136313517255924892694563862337782927831425446875596244142646559319213316754244662226731125613734936852262318151846127553294856117381276812641424635272115946655635966164713249935533244523193843819858738842838183441623542999521921947916938555661187775421313341654573964458358285291267849777927422472731697379454425241657294491568733525456954265512562697733639143523993569928916961258362212247511571722438413715546688898241143917964498826744825366524489492698747879154931786522793476543548937824923958588211443321273969596333859493147486415434371714763618639657635773524681161656966979138228998977119134545368317427957297523477865856866898284221948371518621521342827325554817957193828779531331723336964349559924739112261764572155441497372542248552432396379233627261398367167698495299662342192117832455664474527947687113411413361515765892621491136326862438172114786331569293195856224618283496283447669735275591924944325683135959258765137285673739624389943226671494975178192473548346291662818272618763493996715395286364481946623137129595118754385211554451361571922726559352712482948178127335777795736417998126143699522852888229728293935786942126131567384277227312126859395981537492391839133442751773518675595833622859964574786882237313185985532232554532914924378968526659747192741862772131956982126917615472426253792965682529384382295825671143957162793312411336537387315329816638533942658331275125856871366469267954372653777871792339721939347865224986739341271618274415361138362727187673396864673749439132563266426219566445111435915476144414717191781285375829816777916745839792694369237853883145361883326913978987554244535383499486253557312846756993652963365611793793916314484826436517399687861663951953691659319925873476152144436651973253532182323232556583239464646475659181164266144515757228562161219751282924162681943943568892496131687455781221553318841314959885831615441575735888458849792656753168396958929444622729833592211295618749393845252491547554923853529613351138877397289877395165735669947851889367536932741286472427834871219589186466727184939685761983159175858134329393116823896813573982335444632818276162797568948392669556439313444559624281683424231128319357844514374142819829875374235833655316161516532898171241749238559789838344332691658465682752625867437677172232513182816323546723928114798854431636833323947536744123666291898633147937615899556685332651634281163413642959831644439523129925559313452196182498253633452439689386439784548535835448453777125159325814699495655594654593378943915451196294823817258533236147241194334396266585922159343575242163313621486881493387655189514984195892918112145895495315158355754677453187182243789648224371361726225348746896145639268511734266153976277366952914428816916993151565167316477719725562924566145114652189529134325751516983521874885955349928419436671636224674793593245212624775922825885281588284928713733139325576884172947545386636445947115519635691679492619861896395851641473995459998444357934315782927332146235945131624911146513173454141569399625916727948396972176283776253595655464346651749515237586551697169127333816193626742728372942457554931227412114618258241151453549915844426214245114241131586626197118125462859646299654149349671316564879441353826465545262797721746972718722845917992319693521649165842732161213268537222658875183256455766554539611236229778263923919211434619654515215136216172298632713186283731745676456758765285175529718411564161178426234976487643879916167548695277183555991499397384323545333777977177426678493244277822771672612551389245455995237335964883117251178596738875142458591186734694359184839718155291745328323815992496638855284944267647178722741983417575149466377135441557848942542578345551431346363977954955457914364377242216659768523319539859219546928133694943119779682362749212185611232828518391113512112486724854626425334862718114367412428488374382335561422421225369449161525811518674947498399211616151672312225362236693751361479534452946588147515527322216435842221579587321951426992117244183667546472524256333785354717523326381391565686739999315262891916744263631392844117785263638539998455767755228939476519739291612452443621526131121379862873121412297179378342991985241256729387752789445511478357135791476379566348784224157916375227879742746263513791598455133917747487337919594654522264696981372469397662896253749397845874687754428562249869169437713477971423485483375267955925765243445653383866412648125644292326634354492333155486993257595214195867415188861275769176747834827974693882135538427523245192527313739329361878513727364857344866568139616719737599518564522588954255758629197651374621479471934697928615198646148922363442285232632976223321175563678962596352632314416544669177233615115999839779522511199295856222491345815523975186242539834517898472946399979149224232347678171151436143585279741914631368214317194256614492744118268141441772122111886514947713157351235842685199396881162855317421788488973837337277234543774519941831657311132925786381341354913358526454844141264195279136163814968493284868674828768371939378283174691335559843392239323688129986663368432337989562189765513965448953645442239362457944599417459544864654772565656216543539722564973962896839455221427765775474198132248874181977239755253443922755563153434378234531169697511822548158971429549224838626555742795717149523287234958148548348551434911286383382276516555619476285955786451886858264865443559251474129314483912519793945911843744542651145736132776331877886446525529155744656417593113356367811768312534393589132826428325615439869421131137268234821921222381218159435241258726424191623369885533419783458579691855747431529727141354258191649937788196144394245375317341444924859935173537336996758288335899794976749825194299265129314583255778657116531355299481573157312294347544262983199338542772882766719656614489581981922151237162212769444713121216882887433684391233414153448958487925769661684115596527539529696759341584137575752396393395781648429143272882653644413735914297621236179557771414574399899251171378263664223362845937612432228211456972258634374947423431913183811623192253365665594583195692123462786619249716892133478961214412487128765441322466633526891894453588432165623858146638276451195228129242179778533927784598666431291434955975698498436213935596634442557266181237728917184132918976868453867758941126273424399383443666487625273496296916895991441949329758394941938877371781129948179478362342876613958488214441874522911457443811937143722335569615864866226713663337617219589619825582775263567756284434198866821531145458632674431842264584528934352668134732418123515565924922294245819719142423765277898175344198365943122154684915544329788335223673491528682655662384756523945629752586395779522584634494642953596762873847742781223211278454748223667113684929685716126517145373215589759797482567712226312721878771273469313332313145183316438636443789316387333239751683925712858234285278315626365715417978325165867256225845637579973838924282314411216391572448277456217944314524477781436285741242723724215882479931152589641267471711534411321332345899961767714212614574139594446213554479984978327338327273457646996123665394455113386226517445166769446489368213718173233215275835231845547316215623925144294177846914236948374398227764665245961846191192254784592622133578111328841115941185661848688542295491694112386844672413837323876598453284124653733155246562385614828329971741118532551861484228188455484529997521791631172344773831476313397217316482355931335958494129348454274558978785513882677266379635813578528935922252345481336253254977344548556843892935327126934274241515286824436113632221587117241631994768959535371595641776425414818359937166976924366217821997614252235283269276143522228333414788914896231652937623125854438581435451733142533145951343556288979658541364971881259355243932179629566155875713216179556949969522414534444466739721273683196743525312494511855121377356543671728812294114463987839394298976388936819735431186944252463573464545749688336988312451528857559345138642688231833784985588473622538849419487766412838763158544965267365969624791584211194633635234264758421389852657755221484725564636459985718321874179829684694447237435724217633572612542486565665112319784283588139162465399932661246572127413367334137928332558423611285152321394474989822282354623454798921714327257212397344131452431245177721361536347793528112323263957657199249519265878335357551928228343697132918758919131147785442179571429187959949442116232149748855696523584186684179655174354791945133293252241226293162612411287549499923337244676673435365432631644776368183539269824284726179317418761335215416837241614613219727882187179477735871162398256342692856785722767827932324912345464412919778874527357589161392623146352251483221238477658375219157318421552364961294786159421177231498413165224871622125166512352611342332183678866464233436522518582382377492397297765195994866421623212322185211195294866867561234868318132127193148456745386745298119475154273888248217373785982812571399918916221351958547986926678473762343357552884962257136123771476982397238879584331474911296156481984271287135737825352958751899799161546333117362265834446683899873248551677872277495158848129174162339523775664986732323661278413536626813912762435358135164219874611243854117998717533943853756576526971655382296737733915853593375325551376248521785399135277773915959963254562843629886915361455171196364458463833661788575343439531741182665464649698418215167541116976924882771937159417281145312729716921373196213623774543781532166936446923797743946171467297211121138231977689589283951744914955835752628656642291719112911223678968763427436156476226776993868731732914434878762155197921121299342334925813822395689487835716592116586258354788841298645685784933457333162231482424218974878987687428473634145181646291122466282736997464314115722617894926463467322718772756827621625829694856699341529721433484426574232133542527828685986612912135945248936924576219951741393346539158198468682181675637593439174631366452345262465935141151861138789421653698152274422362672868915878181222559134261872934386888816741378285689652383444743465263216255922187734945368813837746151618476182337134594441323636686923842788464133445319877944837183117761847545238148286855812353427997426556614617543111372162723333336136377133688156679467655472847352164811234699745194728972196842411141168211315246777239542346292236633858567467383637936739391557133398656117585346193489718158334939634377832651455411439994628596419263811519729198751817468756631531188796622146929429124153855746485385973657312715248162526297469387531765521369387814265222527521699942326618634384614625293921163594526946798151476792886854338957132115381689137231791691926812852466271545199929594829235791337338938844531454562721252325223219228227951244153895975714534326414834569371721336888184954891435372726969812891741414642123599944417554446533921415486991331549294245719788552594235953569442489522511663622659429758569922561273334684512226541844264629236584542447699393233791844341987188428126554146527678729377219782566338816866886217989116699436612335387318945524838162647212111195475628196386129246786528952727517941461363667235973684318756939211615826873711395229316362555535781911182722672296813152352776165212986584314356581652633187799685631333371597767119438351645496394138949432573381831866638811762845365476842962634355395973412245497473854549951562548873593425982231236396293935854917593882774219985549144168311216875316756356813245724665583353319628834835724571294425262471199717476722176461264964572158241996712157883375438134852676513953255867624777692569332517653888395256727383574168928321115539795265681512721937921335128978493858214456841752942667125549586615455299527488869346835112837448499922723245391446633562251234141275684881494434134772258183242736571761483227662272331121545519953923627191219889651728834817253442194946452151496415998945967695123273969928627419968652844746135578462329477951543332143112626856633392585459961372847614651896356675566512994682893962686547686855847391629927375333845234353474852426861324194582253934922833549698628697593451391559553875372765826957434457168741593764223139233355647228699345954444612428414621379391829878156541271493885965299631933842344252347152179393346325451423961872553389928139558243391535859434145922529932813988743834871277461485274358425777149211111855382343186197447451477111276962291566944773768375888228713737994281792312216311369655112898395712591584114893161911155818951185887298218247293421791194197994486726749496925399275132423144147914734449488991351868223797528212773875161639621753515174797852433414633138226754923262458961494451726767768732474359924319917195217252421553219754866527518953259223222417971197592386127534239688123798882476128276119819675518819131218716459318653849439522993329668537195188213813143195711377512665532219197346752979792367794228186882348772211768977267722125772822694633381211211811263815454529953812248351249472891868623614692766953916362613846423344782632434972398846454835539882431225146121992252513985576156493431626118953596118268195348551391536834458677377735292825629545754538224326117421324471319517628488155615726633473225213215137789158591135812696522689544548491856446824393961531593578692363653737389626291869399376493789719233854149649974135134244794192581815188732295454822577641499579236775147627618113961635146331616228624294789244877954151398484868276345123791696297833278735634794569747122994919297632323773611793231688248733654338177181921122231478234561344974565982417966236761658456562567592439463159114947777212499759242758172694943272169336911778462133233638312486513117998662436178995222619559373856361537662464736175984474195456258654739463835351467492753485492352561725435631988859249942495685332291479171345434392293618967264785192399887122877478831336796272257728958998174672886248638142539622737616398134168646157931681698668841147349194964513838436935774532912881374746676754314859739184254831849666618639592658389763731917972266468332533333212223922178238974188373951419463317598233726378963716427216743671231834272637339267584425219147291666826159578854114618552183799845723488883475322166753438795762471467686841852929184435195493543744116429241635996244511872356231994852881561785672682928115156711566369169217572556329483127387516488281697995524619234775754929218225763464466641154938781657275478317321225558972642976158163796643751186646396752831789719661571661813251774456186734676736429835121226997542998719426557951261214884755817828379841376872232498152526131471559947129511737175444543354738929683373442374611743672875124123425337197533133272975211714661881354969952541656434997715238126826845739217417293338756817123918226259227812832693235765637921152989471324654467324683523757824742153543254415163778623915635331575346524617674456473421118913138418366452252244526377543421566196956188159382163536713823674466491162618482673369578483545425593644861162695538566817396725588875324138813958893581372637856598555611429822576855997624432373686292625833355929364542723312939874146317659856934495632561139836259159344859961988933243284499658135417173152134342292233689928968247444183961157333834934638617518624651773734674721258748249754759818991316199894183778611968433428718529392599359186245738143919777448672147929212549486462779163191566278637969578783686684899881355257542754573261527327277354527987391694845492492939368529187112732875999289341986214191244938341187129364445344181333794512924485994481275735649818943561968931835986727885834112696961364441282153124852339677156142722188551288193822475385751576213637758291312898531412377454499229728112684491951129321482925469892986422959879961172882322216357627759425853282466354593752215299518695813621759516612162827669461257575324315775391542259268333668761222721976666935195665149462585511117844378415815684847761487245386947982476996927581259149864429913415257794711428518173658477415711416647699713927996522547366161953436142299869842288195912391129763445696161426562722785412869626499776171383259526626877195639682922144999683234346859135642956949364398163945691521213147573486741139527242318338731864462447961179899182736954143798116221212272172524121545222281813239571622424526118277134417377719614984115798758429284158583633656963746179522277486274494319267445961895285638849285427743296464852364881639121257532946336523883937623796658644673669617494854727649264225263573111956118832279119964281573374933133682835186668846186341922519115949891983441828584428734155725417232981813718114769317126675827134666128841941194275393615236337939325479567381561458192116218329836364669941544999862125359254682782115638254553588439367397134921725363643181825711113156937721314445778633812478143431448142121441335184815797313378969499567789236849689442433392532325238257467798553121919823491989761323833868718641154459128396985943129953524513282681418928932461623589771393914423247728233121266618691193164323981196825599424958238147936217165941565216444716224544923268297326491555282972481266343869118112325329246132692287598572719278963329899685937159143579465688784898849321416182737387624418176131497116785192286896434117119142854793868646511713992863923178355152728234237881222588298211382913721363534772233263341243612184817648913938934656258957478582753818898663882524359395455317313874312548485665729897747487334475645681775728232857843179329179353644246459726846516633796649225589831936556421136341982892761589747946412151146997927792912755633468868612133985827334143882372247252956175935989512638427737224749569749816796761479187726831554948828794569744783782522785898442836884554859118913218327476247724924761413136533634542312539827218571521612442547333514561649217145746424174931425348452687779995151495711914393762573579678719375156143198756132113367956777246422336782692244175483895875644927361438246113823793731137493513215874592554865592752383413132951131653241597864775144224567651434323177193142312724628229447194268994469358476559137879789232469645447893363866497164111877384777815992359116364633763923483568199178384696947343513162884771755155676345755651741312175969933127549416936227416181181894458813323746633694792912215256956519685885458534665847544469662831639994256442178828953746951857396512371434622885139328263754341638838369932811271985338973157465622312566127192752635729841279991633429962515791228324588423918225685981265719143769667152363289329294572217273946977452528267241129155348126436578251673832366529265192669679495747161593175612532391297526982819588742882889635761719411672844522135675677859169983945448112456434417441771192353658177128855272622251938659527648767389933974338154547219699346487166617369474365884455652292532321919571176431774845717183715244443742318522887997838355145331411962739274411749832835644696177778952762696335629621541173545122548315748172886288527917374711215717113447496662217493574957825171882279738794418817818895123687983211164738855993153376419484344539389547182869535798272366551428319221989973889365316855412381156762649785235612255542183256858311492841783955863349526824794971221315751931129816754315992623344249259885481124523655699728553463435773693243424887793978551381485176131959562896883393298151217376349238435578167838456482616655988296923558241664313935388217233341921252885833291242629374295723254639767489119943959312546285369887539139133269258514926599324624248145928623626298145698349343972194625547978446344143666696797152412399413668566343194248443663549977684384158173673448443153183939571839546628412633361911568823732442154329754651213753533554256979116593783919911159919175382143731998932557161957356949374321131515317929647548843619316933671444116591769667226635572337114659543185417327655442269599949588535344932438227539223518255321968429872917772941515186218466677126652992565897256531755617247276496932644931169352249619537555248583884994693674644448754199553658528418859737799268552962732782167187416235777622112989614172368653244724777675946682692663761954345781815871226394456541985551938831525598537587342453614187466626752124365321221621353536257437534663264416134942536756297779944777588358922385754287512522748715991131229226414146158329261635848218767933728225875748863252996938134927347463169947555316648429477163571126235766329679224183268822325832816869159858539229471624629359181541153953994836527721637949546694323737148727283535494421841645153652692758232164712762452259452257333897823352194117711162717715539524758387294728459699362714371242982544452373853339931367992962127354135442463615646748777126518719242515765467518739548563338872296476943122643326868419162334623799145695569315352896749213149257141412636132519517578712857762746764475629322482537848582614357821179546773171167621262463359365611544964329627931857151777387151561484511484869379735119121378411444652355739576614672495612583157179231946729976321377684646582667228196854735513593228342152925921789734578681922833111773697231229392478849456162681954822122393237122712787314677773349223274122631391741651478627611847973394171879527352534754539486726898811767486898772829129257442886964854684581729623276711153338231261622142735889329325366761474662848219264499327386483279299181711955625671256244794893864323622351752115435754157661927613187257437538463945127191167761893684336824779112825434571354425318854113969944584273881649613183488464225414348178684261378569822173284578825292872432347911749835161528966951719652916664286361842446539784368983692576953937556948476715111848529715932656142914663974624111597939819528876519465378399412635123329751767572783423794573776555423136415735275449534673436734562456657891461359337844781538136231156268236575585317154817844333938384826598628846336434195313359763124448775843424588438857591555228438874537198684732867982422939987455356799212259269129853232933712417517213639295795184438879559861161563941278749237452677781444156743589773478411558641253786373794394643755673592173755273647757326832942836259249281727978114461871413678899882296796247448836516228383125731984143946933427481242455122768335422392272965351755456234151623192634457992322176144212767476419335292961694733672327642896425535452783222342536314162183968468372172761272211198276644775642645794614575541339961861477318336966115359631286326866949549763828158443829131719674453461715911282692362931896851474478629483493694128597721882167247274846991888288355228677527393545246963577728331438198836991258723212869452117614235728331619279218247379835749158883999316458361935511326237227267236286179798282348269815736672458977353966691796261557649299463958453558987451853281229833771192247712852977876572399724655317711985328572567854614324617177873189783253382593344387669734636614831719428797483857128283769632416152534726543155565545963729111517222132323376474671758494377796571526113383516631311366544399923747368997649354141734648665524334358716134181635931515753993349581447854542594856222626861131181714518863363158646395427591445597953687891566549998259546254585187616362575451586924178783455894483513675118683323389581591583579232257165122213382327586331521411476188247658118473352319872524325835748449731166726958826116383945144173712997459182322258999283637117113782633298729593337326379736961631397111543815156962664533245137273126672273276739329589326357571571898348639949194419616598247811349257965777531591297114981823671957547665968578938428537441296488442861622161216349639476141769693439621949647725214259356695846664242712215212124729849282542315835326952243343244924592371726994524532785984831513126124483638689162523328847929228615559278517918841312197214636176258145312983172344335126179717144522965725157352188619656229246824213941614342476115937591512824172395214389539441911912374334677288579928952328572643182918865147225372724526344569322514878177123753796239728789243534271895569953666879679811442126551565249864163282318781975969817283627638189222146772768943139613282424722947318593183927527299788887714937178994766136211922179293663492662474121162547624182545342113425176611718159132421717898967444314752312667248139989245645932456332435636431227818682658654755744732724155485286692129595863786175623355517423271293753746639854411829138963458794229732843517247423283973182224611923144781699415716278633375395214118942354495896952471374295555425929795895742655395371954711591663598385658211999138849584961838646919116791543434115119523528676353616538841175928295582453333719645979682416552798233232222831191669274781582219133721112834242754636192328493224221727972344133143274653926897911268216562393729495876698367347583422254343373733571568181478593262144615313125417548393448135932336131821554294846263123781139157223571767617736752266339998648353719347291854222164648768991956795943325498376187724178752946699849723156691289314413232148974126535632454556369479158312412989328398728549115635919731445785164121819239772218676863141349745147433559294169681599315668823356973434779971325554218182659453846922679993346272944672431311499533861714799277997879926744777131169251746731218612645946781643144756442384184277545361526953963444218865655947123791487354257423637484791497674225331691416927473218753877532396263633961481144142257948548216155442497825691659638243285258653549891463822669745716455712693223775964467982466669128655185524288195369815222625272194347353551631697959368629229693996883231135387494747565456289671278521885871957241339782657659897756755453154286389356352461769375423415414675484133716299992285611551157741236193393449931176939811181897221823685136854944418928819942869712254823454784283976777882543643183619653275617972717693819112944466659313166244876359268612169899913629518764881332954949632563446572314592218699262463875671431185937954241177894883433529997639886628148415976177979749184557714233175377693865319297829184335462342232367926311886374266131838736676144473374332212642674656336179679293793295843819469255884674287839966951792983639652821513745723873812631484838837381695749365822395211936884485958626132637476681422446525259715895154146815549184834415587971887179336198171512495229327964855225944142857816816227139152426519691687322492996524298474146726664392364599356254332571272575763567797216131367814144863576415498374292882637542978464213129121332839837152773773619198256127923977485525424126785855923164194429554183831646711179185376534369468582986371955187144293299611288343961334958364113593627979274242111494381169139621336486772497442225671151153717332151332861291414112917622526435861559748554242634822634145341246413198421584112294622348444221397289159241665962872441614826925235598541583899361917459958783164123997367394774321261266413651375196796369864663174634477438419814746663787818646282271536557962949424321997491867127359377781619233923353256753486173164659439844181833313234365973789144179257583859949922187419541178115282345283659314379172768262912322528157924916284842654811977395868181149246353989424654685113471133887366442335848368338474919141352341592266423425284487865742683174771415811615563291212719311362713661734866239339548797746225321487237137528543922983342495374538421261379434841895175473646926695315765918654336389939413933142614539979888461895325859188945446772594628833654918989426712972798438123553225671878571577838735411581497311567555356199911767136874674147238435685542785324913517411932795474683349735639535479957146597724114215493912217529215671423965726658151278572975586461552835311241256668769445245114611854435926831386623558353342787156382432168655622124287976345165654251859753493332711824463318234914774531673658519968149699992441232477885656448251269332326239852461166348268537629327668498466778448843523777269871714963545813497375714572228659378594647664632216691484625293467311167467582415984513844169846837737792636841714981777254463638374725265289828687534568972281914551124611791767183514137762821324463464258266631616363342993929421793413197537771296971985565749448571184413949589836718631237433914811616414141798319862453841916453877695779471545981734817385965172152979785493853751213792963142191254713438961415175356679784385414572316349127169957591214247737536729389631277463321635131113189251166663668182771438928453724714165351725783454962442212117487787719232178527129498347223376616695458519686373543172462461915599941998591162914598711278935954571596412275536377652428259822968255197633751674741633683655624462669748698733987125366951721972393144396471927428397888958655499182113441281366756712354123621463338859778475937882711731759949363783831556563111241354457192944464956198361246131597516198844195749385223885885346833472853234723744562147358986458574936169798262214535382816597832237339772215912798526781377395344764735221121624613571662369651156734311699674431425562829281578419898955452253219737785718751951677393857837579948628554591954764968695433192896947122838836215472558232981298664668723227899621459513585138549724747231439531353592117981227664438529544527634695339235456877289964751782121684633743449712318175646782294879646837116215214919512572594157596428125939449392274854566294577366895339313298571598233911718338283471199833535248125986449392518161824676611784244797567118448873887485698563169783686547973487112385517528561248124596641141175212798531439566222311675246641882176366194251636232483519387928976185431763568195557744168522463545844928964165692284651418899653495434841146912145658192282498499331933653288172935699248462687822255679135794869156966592376379549145214234253152456449238719546884371146531928544182182975939898319456611781132473742732572767862442796626284333885559251733138243825179313886297672971183541217763962276272139479394572193292331373349432546989163684767865233244683657329326966554553377592231999346416912661492519923829664337462724452469975593269617638218892594314426216161994996666924953792217596322581411249121518495235723733586225174722783798391673312825922158616783534432942139474757273455297515724542749724722372492251691717366471448328417362952939191138631129742964915274375661145389343813766363314792378133718822491754164144972495639947542456618399797293384932124481194322442735576828492739213416423315581566421513843886251468528114628791741411269828352728451194874766884937144458487651921527416256852495395189483143964713281264835647558561796517567827662429891143468177553693577928645686517252287921792115384489544841495895333866211653176674762238176523113826842993573128547285277826233335659641886761488227125618791963946637337713474539916436122894911789785434583481229845774247564175483592293213766142963989414794818479352132172387448958728868665222857525823321786436627928489874875218363138395698454418443178326982391696335543282995644753783484669939439438847627889379612131586316915813273996236343951561357456862474592968193628652685827174174525914278548497255662443441237268968337628622877431968425454637316945179725275232345892564139357454596736598465366879548894654433937776659115962269624362798628227434121989136295613985148285167798372637525661581626672275777951686265748542653672914474367744749437581284921751956299111831627392955363126483142685456263511947759993769994273969585183583777857175482342831664894779441914475863953144396998762224786362918786352667623165822717375326331812765868118148526974547713426867567152916918356346142654433485678762173866463829584646883342563915749445386925548167645279446292112755238834598399896931531243856694743754174655188864596456169471461778497238843233394231524747583286595293647221487368853753817318175399396653824533774731437978534421528115541552976388617175568445617828368959539738476225827811262888713353824264645692957828915869111629481765796744612917258153771196756651617846843248255169856719399272139635726555354215255339768157224449241487572826872436189373979378519165915876561289335724325877368921418538138897468217151999119583267723197339164299143311343491249294334615373112852417381665736633629431117855776144387665612621713981178477296627171272562662571722129375991637884133723268224914692231417346136386163527594985667773962715755114361568494376127743669836931869924844947917972185856445268567797663961272959735126232886126921168739524315199644192247195248583245415869718513586242521234372135817279819623461321811227233249163834442345854941354999552984392256817312772819474953336512687213969228238848465683168648532177256785354998768835597634755488628231126352918116482124489228524782489393139473771318155124754326392732661717899434734959981756796541395872123959184739874127263843718374547112151524949257398414517343161332182188592899836995711785957186757534365762166214195285617899491119157657349212629428912285262564286724583925422579273856371643778157813121428468757381567777771621814362651977162741163169213498975541977652858924393972216775464397166672718691111312529398231618651739769111516365834644232327367289148923662681335961936614369893241299872577399992383866877857381625334657842287522836399598969876348584339473722242134987773169411783273549754117522154424296639887536269634814278494946189741443566468181622675471611112476369783122758737428122272986268449895373362292831599754431485311848681837888153395777982219389781155417245194342486742347948154288729968413115546645655238691632862557285455147122736436624952295856632258492989639914272967246557976423514961775921328426245422953253427246171916935568265441416749523225322492138853423967671546945239467848121544561165291479192319525997335164384671875434521227722738632389192476193766638924764785521752438368366942981813676291742311796859599416966191939259823379599587384252867577261469674566122952982253894695724563235225739363282337191124361536535398926387895493782985297687137292417518319823471788731123993254287929814845941174867632339787326671337257314436791434999269453721214462121345882529681355976784865435221943455183241175837179126721168723262394244732613966548824357922533573764781527163129951217549436256639931173485212967323137313773896255696371816855173999855791876216719742827593711517346966439158261848846814528933182683265847911917491657441355582361267834926463527934536574349928316396184599225835161748365783317653335752111633141735229316934296552483681818523165635213541824974355314791177189419527964543495653839589461196999135686531911193287914232361211289272653343823565711829454542582398968426757486563177746729482578115839442234912537535323311933166531529746892726146273921244349477532696827158436581669142131124532524193177114343533752858419134615282291114279838722215278165141956275251526344913145466679717141839188382635924949884329562838591687619278431598969953368263639383963926791133327278775799138992967142455814779229325248539236746934299247797565373396653655387389778237535352464211257954873837122823425327937233325191794821867955998634519314276774153925234515147849879322918521422983195815226816649419469344962699394711224454634266883885123791758238714387516135164421195636528328536724628838829132847192912797638271132461958193521511542384637241919252182196185333499945986292686419798534134772633215474311589514132719554119953824726755344659613285384161165358888672898838581614227858411483835362549923755619334268723429723217176285294332254985187511339728854782511319128318916182925128913936154554283396356863443127277652769577923345915439516589693972167394782243839489932181126834778837391414219757148266383749639229917591462213144993693317288344319156512982688711472414397213318366979962251235147646265279472179356169646731316646847261619543925615139491287649375151938969565572861193241953673674767991342229251654585191449393647374845831374177875432852272642693129794656532597975429492538464124755417112588252738883764718111428919911335329377198769788235787738125937424451594842963516521541116513221712691211688716286161187581187212527518896911418861726762354723467444936223562372856888827691712329173629125384577355773898588914818594899639747693547156533866616525759945412469678112311736625562738227412395329984362145191968943473317441692596928139166172611817199751428829471664333319291251528653986854779953523975646397637766235314926191716794432696124764138314575234227497348222594153645822254637238136381436225827387517275113794657417589662784241425536712444921179156918297665724529684779356838866158148866846737722324791581253298931552334383362944817167956911837793789941193384386946183642566163165524723138122458699339748222111148423833219713964157583376427742625489678272813875465954222121248712499779763928381111226986618226961833275347454745879621344565863595242121964662866741871794811459175713243567313536581436675247442737687984328672635751395534728147672153819118266469724992969415545318342392418414874973285672831472626239736616793362614895642517211549974269241773495151999314222441317897157153946848611452932221426284368626987627793945297453658686461226936895388631749323175138295235142554639777913829328426699276727615433949227262948144937866472352335991478882177457884321144272649893364997218663152938556955427856245798445694766284345217474494319724195551663127981514772615334652854763448211748893936347725236669161285397265143192516253492229416456131145543339135166885621326466276327153174429452633594439167215562548278336286475499125845957377443778792333493476133738186637548326135497385646785919618121242548923241532742897626896487833357687549798561441348366468211138199659635262247563134838479451834951637381994577874991355515223925973697279813649153599553364536155348452513911237642381927151987421118248634486946429914759928298741835911964565389383739153647192662684389792952332684323289933637893579879536182222989914563498329427199943493561212433942739252484958276366231263867619937355439546575924218858589146319187886587717177144226612626621825884536721258894774877162676254841495797359489271661489919758929878163125427229411541638445813159498795551336416842378218434262286375249365613446797353197842151557122376536486265659668323462518718212955528274164989829641983442223813525871714684144736182461661815614143869633413243366219476587559288342251667342371468538723126615138252194216429613372641556921259438749136219788856857338746445134656551138342296127859172151484933841342628436399827677879717645726427381222435127555276544713388789565938436619745121628643462343513741673743291967979526395251711631939557229112432115278994654338391876968918113786946625575972832581919364469453744643499459982674491515721539684174425242664613473747158246599314326749862696438734337411722411522324725284975759733671536949435972287642481942236146681391315765155792924915482189592823464633528859996918821897271431891935965623429367941945233184115362352777934764765381998273823191134512955635926124396642266614395127134351487423873458592172598858516746398776366534864139729518511549335927419173688293843434395846126132748752167361611969818917748185337985268558563242599815513748144133673841622861122462938313174357339191763626699777265375622168578692223225867458216195115869197338568438266984541312786281537268171635721592131395916879146293166547638234195854939534882591252389325924982332421754514693495364547614877213825655397544991659114534589412314954645862229659224352739477451885814335672452865926817679761894687572154186325745916574359322313972171215664468166317523595366919911844944448394629587357999123325113233281633332985812359544396811827311758179972453175244362821127221964779823451266249228262186471586666836251315937613955415458937952352419584635758169833946116978645641283249914247296998255552188352926579332333579497289498218956844123728616417475563215144418831442452579436752198368816633819339883288167811773283794467477655442931637345534822723417847325597364386475327281135917388298235661659872869654872731313471927313394725346511764121791631382961895264959434871534412361945883111879665675638564252527695392653429188464151891126626789775735956493699941523184398183847535775555398431557383823128543999968114799354834149918877992399352336471444635954265575417435922634223474626222661735121174867129949892571631648612976361613592914184417792362214276368471575329673252523478512627526879363346184692454995131584381785669524675458815254497261923965196175512244632167462365391362235377865986283799493671274359366443921347362148295583641411144989743482825324222375281215943675998686964185688934884727787289677526528321716216218635413478521294435494515611519247722486522276211363343377849334553991283594577146837691231921274578688962995584745276864152439286655113112558674889274169934931612871687913831794579929687761596514123555114679433937732836367211396293252818929254438691957376564229922843179226591312233777219885991763892441434961125867965342211973311322458731234728196375114544552559317445477968874664487254357939665133967186263817924715443947341639272233653124595584823385341831128124581983244515275489971842795364155777124136473531964997984652988238359181613634658115888569763197956611418949873822459275985554412143179533764546168443822178324146829864756842226862954171268879453516612488188312436138931536586323724641894871541224441862459512216675473249289312233897837625359511776878377723277123431293624914427187256453821714687863551134579699358939557812849657417587129119187657784218141129485118839199351889481915929641319684983386814452955983343679273219539352346977312196487552615638291732356765134427552883937291967676472316783168527243328914643223263332783989775342337454625197767513681861797838248819173186431184597449183137616872166436287579747686825583318523671595786329917315253424814833796412859517875622478274758266211945324212136881992171358928184696451221323811751377283241824819324564587369961816823493983441947931125731928637995975111711355613743985779339539132935162171936583598994681645912929985143765887277489528912444516942845346485534312199892615789667352471333226624663443671888481521255314262566529365788143512598648595386199622431795235238618439139426248844998749321248426428292411234167234258187152756162842289993554222318427621749556737231232382323875937712131777484385595444537167792398534161673825965225844373141548186832955684296682384966629222393176368631576185927289195457477462842183497175423645335472118617725844512353294572874464289681214618119551143981989899381339665562853942224838325225987165292124268188771444445255195362531439752993225374251578831378633234494349323936321447853749359441358518444651959226252919465275955929197877552356329847241127575864798236477775585936396476931176733797813396841976653193751827854391866643134996782314768651182453661281181614666661722716316475985213386414385648337667753852941378357394263397894116663147724942615232221929473324376458284638289439328147946248528325413286987114693176373437638521291922929527912797923381117995147872524449113256784434467226813356525768627673263774564294147955723147783344536423671482183576146517952837125897242565256837778571462857645566492654554534118343179462126833529518766768834223844263531811961289239152165534559318822394648141297725228348977112881811141668561348243279414888429674627617448644256124488118375969115883837571351162784127463938793978186438677886333555129846459465221624132332261296948281559689413199768213626175383575231576441949652819157597516777494646941151224754237467257619745123572869861812766212123454212215765588379353328895741564339975168311737437167634992523296189152258266821878973983415272987417681621547932793674578559811912126471274741474544419357968633395678635295568479339642996486252332818346599532973764985215324328865773895655389444713777228952929154994328794151655415227723847239218798251168462565591563872954323611836519264641716927146743282873426584239414899822351245674333769146337515184286561162323619591735218918615357651121497561527635515592338345231971723589136777775483721217856631658286935876835518241598519888653673316441329382859787664658414166576997144282451823985616913744462953567214178651826212398942696285861462283314112711938255114574617494613155662452766553112547723814561714227152549449344881388177862941928243721692413442154141515456787658176515423331817319976314723262921669351632351917251252321858597693382691838228761926786842735958916411831876629125191111917341623924712391624117934863779331933173142771854975536976731693463215578524395611969459461512731254397861478156314246319388232126988345449763555196348384331372377851992125353511393298784451277875859157764471716673751145757673883917873793533391545271323178341757423492829512994191912918625487281532222117623173623828488329955311424164849221652517442286239314426823513344124584871195155898322684135582458589214412478196197942311112848227171796895843826525964873482384299795736116352261482751519319951151937487557933626752115885172266532561437781192928372981383224464632378672732591569288323767313491918737574747136741681258211562337466287343541147257924976516181631662929265777237921619164884497796299685249463483461684864115911225414393624751474798853261436253592517192758525214341246657958794936455389198231787447352671849176241674715149439249938956329224371923744543835226514616857922748712313732757279441462166214684162419931432599624136271481462182168417148881832655589626645591417823542369968354859433136851191914582284579374669589152293683694578333289666824234834348815251911551367893618276398691786512183421524531417341613437511525419619747186194944122789477289388111187234214839852344912613384793587761647215594181556713133341531282916542671997334139835113614816871531658749316853977368839416469776196881928159599579788548824343566122227941264195312726777295417264345248585431229351286542965132267495898993158376817212524432828154543119184664161177819158371957235278482547243816219631538614159134663461736536737668136549143888158915693939277922453987112448314461421582171752223837334243112549924423946782442372122336453512647184737141573712696737511972355425766341542838493639341455111315467168137321248644653345488854865418568179747718154397538115614631996316667389773774451899188832825751713224692589692562147272647899986518887656635355251591911996161861782615122628111531335214593326377384575921137931288514891863363764314511574156523195188726372165664939952629375718655444154931993125846697142891836799966337444842176235161863371113246755214734479152382234712812731216214819256842883897289242928122956893255819772737354852149933119224318979836231472344121239686548265785315945134294858357826795332826389772147657966461953127495963128824893582757637893766878825715991531613316212137389437929839191353471969653255829372219586665493354788282631288226451141226883355488444455636529766171713394198594384786383244453223922131134978445459919611868789268612325727379917183746341381444849927222821554386736853171287319595335298736798192173886556344625636525493234319216766384253971982459262792358475823653811463442828294481991787324536327221261327654312745843595394297662638553788625457372664747571625174937822282124759677913158181257744552517412658347778137192385834536624886766345713153856384284751416924211433668927188245844599313121511797679692573789237381954429862129969669141146221784567974295452611655121773552975972946694452412218139519856348658923271128632176227821738782156456294111893311117634891194187385951887277913949165297267536216976881269619473259629996973563423811357448265489417473457369675535636313382653451231625989581542171256368266662519349337979648657551592154299618858452632673752932245468465549442788848432986528879735471719954739689166451242515216129888957878954844482589753995679724333323178831917891973352773956444796638679396619276485478192132799338232115966384322965595171652991478631346789944322363152444542921521846669964695741135152526577396425782271347556946399253751528477367757698857249173939972356427635933693479441152164224769451787485629361929291678759399422445167591748273914723294295671816223622355158336635313237375133752715121414733531354918126131441698841665352367164359142725141176297246229189495112122324742687428452547663267377177441994742426962546917432769974721434251126626791755962837763564492212468991753914223957239686335314397841318764311877824261682145858538873976548142519163851486883186449283989398191797821862679591612542214326393797514341954816325396789787174883847782236873766355857684934974315525192595453385722142512791638966319946335641933467631423576562916541343832387764479171568736125563511871338925923945162364572937146973719868688721185387153381318716877231539682653819642279368858131196341268829988255625565238153973517821882779181483635263837498344352996465974357194456237694754467463311214827214377779867214329269918262779521665336281693198694326695866727918665863538955881563246333398182396382285676875856711265314417391257956228317814948172359615873214528215414313573437657888334476511253519524653342262883169875364153652728735463259327753385585538629185379562735127659516663852841565495392561895262612898894546445426524536641273123138155638676292986363823365688361959397656245962559798593123752593857571639915112119966981175316415417349158793313452728445134195256757224553923446869122747174682284464264537311566352657162643274845352949336668857986785729458768674282438632752135267898734766781731612541633481196254963182421519686614873126715688612684991995263773284818878512158415934641762859453671671227831341648571928678567987497511831464463255685116263155298813274834479781233481464471761274572583941647954196159818593219462231566681788455648982728191396519345885533718154295261231231358348649591999997115284844214732782116424296768334454418576225976211188192818438796121635386489973366739875465217129117393286341197736654117352672791493666942117993237374754494274219881815783352123961155183828589448379828199638656925679618317214569294386812572148353679512394213218332478631255736923673435677197265111236713711364436973589956166852683341955547944218842676585166445582839881559487659968575357488749263765323283386433468618732192953592687648793515258158415132512178873951547811995235275392825583762257517161158437517722238358919778952172196493496346432248994259751227945289313724213756534149331673314499286379146346649995379922187611496319824437469141339458522921262881291345529192417116985191953287179239749368751884521676648915161571891855168544755743173987747166258879266616244484681191443371952144118124414258497317863389843573816786915382181134896144682259958384623656417416337136656593281952195692379342372221753948156775753555731932972722419485761166762185233622635951692865983623375489353283994699862712421611766891654727318258666331361177127134139269839796414619551143558622771932119483866491373523341951899676837347398818952653595991388979413439144843657158677976613642439355117722643559653694833941982876969815878427451933291789794558161193818359216886182426844443632296956384583837179363341457956622342845273262957896997164577313396763912359561263468529743111331312681266866122313145241583668137878486942571163269484584653829453612835969424364714627723191688595616371536111758581233577653387365382411577859944521343754124214422943177138358176213968414794825478267113144944228946272493889818274647111388455338275213527433196682512475639312254176377694483212677562322725821431759142871448631943243557561218513644111333178761537874835939433936544633792181187358289997594339573653554886398324466331431533178935179417684996251729459343897854386136147792294293989644812938255636663939414285664598462115529529417233995143463865231264538787337819385813835326483477662292951856192283761347112759448111987396449551286845915621427244613263612722846181725113361447163789518232834152992442714649536852268224662886693351131454317276454392354826592914445923882773454782449278535918558192332348413941945945398217269356115963232183268857939927455816567475442412524772829232749715914252339927462715673555762973334574496874578441524156498746574713579423397962289312345515495194663771322535133211392467527199329276111742637149749477864254717339567288785936738695658429415812252246313883225546323358875562116337342156843315242777752628376126982634695971952864155831333479266286712842134831744236218413189346315276751415869733789229419778994688359561318986747442277921951795999898982949997948466352112952338688726344237275251824738386681234511935876627385565364366666614459233482271756532148232726542415831217123824933236149696999918683673522519361671769122558454482623348119313167828496625493413322733132581927339281385285954438755195125673886327774436494681684428923917682391524683697618521769278845719272271895131914579921212353228356658474938617879921147937458134476426579644438118879323641439372719238197992933923827978723642648848384264821431432565842278254975216877367282397453554696163495359958415944386691585463515215354335661229113961242681624635419893545562338554234482677957674238294932321716177782338384492699874987255585563414648855742746515738635255681653472554833375368516517611649124622416513723614188327684973741429268373141324686412741253672718613833379832455666324531486459947268125814422751146242965296224995699315136144945641784949861899921379854884671733445248673269652561352561429317893821768231614282293141342559556737297535441618155293129765862947436879253823131224323747257249943546283137512138426468946798294841242267731967237529994293514212834529466136874115184677864775568787559994182131968721469622941862233643917214725851272461241398892727347845494982834418625483891222558756816468778714375685123151934924413875173791446871117371419625673171937764155293891996863563765782687763335812829673385329614213595515928121688738217444329391162251365342118742984252267534818187182212522687871576197352453589321755689811682242563222346436136398288813589421523884439414796449551219661262941113295442813998819232798352542714167727857465478561474257558171658142612638365676382582497721984141896953918958582952171528732977922312965135432199416113955411672938697472963948842181851442638499299434299682845931111324359625597539886538725898734929616761657477684896819245971643682852273649835434713715969376695285875873897539155728169855891379898143213781332239549382134923637985583614964659518996733153793118497928636849445246798954244897949678342829466321861614495891223572259514892743276496831756191878213152953543313231823525272172688596192131344967383861693159854837438221794352412538219741446926963857916814375464791722948447162115314569922923636148423858757428281679894311436794834313844889474182243347139729476535312655985446365423639947766234918422125127174296144651263835377291467376212254478979511868359875877948762644738758445417155333257485666266488434231922379946763217888568293867728543389471743778418256429476444613972191256591633428233851911924621597576644929881421216776833337782762746612468294835186387672773695848642635457433993259212761573222435861683373937419316919971511371911186452233611426831279352523334374311677732518861443333277773162312755965891563392767583296899172528887373375395239419528258495734669491893638595993125977919174274371444666815254225243756854263459181613166857392973541134914342328977217464245431718251611347462646191562121399576669128326593131443551664855142512621226914314541427289627237591942155832892393638928524233484348427545392188153972937998297342433992586443192215165216164491463223577813318694686441541582581929551545162498816274183765133192531343623753351541488337627921712383343315354411246577719852242321626983345191426234836488652812186441523752198772728931773919741951972692399937914762497359759676116727255616232321546882643253622283246481231245783576958525119775966113346511164277815519231677592685667715244543866471976128246212521946481351925897661232543932873113993961945148624816667617836325973725471812339333628916153292658163868286255543585544728777169524374949493282834782541342812138152966644326195967499844751485227429189379165544735886759143627638913515161195467538278381383523282399835224382513581755233666483346662738955313577825281572251434739313276115617243216449783377266574616213851276468745363444481432177169673392112734835961263869448234695549161326689288668622488214616224939812592732545133134959987149666346925313124544313245263547913384722132956717472144373176132216571942793875363453461532112153626672516514872589251247785829673131828483868328473558664585959963512476853722593187543562791539623263433244556751991244315735982647688234545183643272935531618389559941597169889785937635332441322271148822724573728231272972426897838851814329464613178449629887152229791666826969396885662445433424211555569194435836112436541494867546964899723325836238573861771648832324151833393839487268292161931118362658129133237299956698757177193783547648496932178749365469754533213221338715566145491521833455593176939436739332122997116719562154434493389578242543653584971393312165823568735758119912125797417437649951728379478195829865964785237593818245828686438634392386216796221617688585464795615865328211958658842135352235124355612254838462647582962664711912873677492187538171684413511313436326435464552891275333838619769561225938914259879393952772176456743952695513489173914189439223969964818977654961146347625777532124644457113714299319635646173814331176626551926351114537547425632822994379511211461716951799398124415142788531245546315567418782796426317291717395297267662439955393564194113886757747224563947587853295622552536979559253563918156448452824632398296461222183921424232979282641391566717571544591646995513333218995332948919982227957777441656226879851169135946555127186842649534986137234941779517855264247236231614194428222728649811237366669862911417571895134359786185652775294496261352929481271159783281965811429887435685362388262252944162957763491177695272393335955221115575628372424662233222266927213668441431848799519168245467122952424422574357281461675824319235689915612172494497449841538661288749775825881276458813632496363172214983458985188853543251174335734129347145921473225734334384268243321182285345814636388742474174571949483799734599454946793545477482387787493849148824819689837852718651211161227846414675924642822283848642979129736423491927644732791795445291381836953397166923213884932713527298883545827345136865395356531691755178375135317342474147225412125767794265284775238471324848951373541341974262527334255472115662232125529327277836148257114366686346128235132729145373311142345186364269511616739188845318153255441348697254848616542991788646594437746519229963425359778114557581445265486347149637749877871621695782182817492124676345648192819611483354832871219536674615121336476535525466289232616923719983477597639473331984956327466296711583354291822952361865668152414247517752572371786917746555977238283937423336947683239431178215627164193695995618721375635226189729742198212232116318832346353999452721483629434852679475217719312374184725221998333377621589164857363858479185719585293999552987843585455548249958136211138974443796822185891733365551363954916699685127577353276126241885393119114484971526442461969361989549524974654756992491597722869561249971923565676723465277731437482264293475938795616855328879319475651931141434684343581712239253448753852311592373986644824567474238645764443672641281272624214149381432711319337144724391127915832383181212261838533132894532221923943337951319629767585221515473566568783228973169966696235544923134377713129594361545142353335941312527778878688788374511584924398642247125246512525634649124725315325654682243571567234384113232553316526116621922721363465445423219594659782656768576175995592975964578834273994864742996963532948198542595952721833879976783374249429735488544311665682264886986527157819616474954496141156444787837911129571323856249996619246886174523272255313222544643421998544331119972672823427736278333926826263976494419545743129329282929519136517174222947643842915527336617414488737186446589123844113457178722594425626464865766255366191574492279112638426918223333611889648685142589947473218579136242778551851347717715313636551922575527791975711614748165935758773569877521164191399628464484518757626273321154469964137116683695727514352498279583553194421615913312231856739333563367839341739132317415486189775972457559294437776283726544418928323234361651691342231262252211432167629439383738687251599787942757474338538578947848146188379635255275314744923472598699766671325665399791942731157276765186197233246891171435363285998351439299321414651115464527633433847733311516274361688291641278595148975381994452759999626131353766148579117562418113911557373281318647541267183298411374356563619596734497327522121216791257314272588127697949215743176541273243434723652293659278233735983253475141854224873373187786195584774134327513218183311533391264425544383539686548912762231342711191225366756389188936321196695992835848616333719858244886134524435195424387929436811198279946121533349124645277454719387431248373282296269414332362217416618138324263139459694865894111412282222979788347172416718224614215128615796115192336884149268657111166384781673669741666791359716154384244915438187624453338178882385984799251311127436557719539819185533689713942194627578687316972453743319426934614515683287947136633619749145559246478264754222972419384496639258196822112331252698947769573813972413228891787853712179284619865988548573386649314897642362778414872535872634667636636444972391591152644833913474894875918493372895615463492366491497347113562664168177496462279823564195392731536749175292379554559341725426289262123276334425451132645199669217679975354356375785132113231591162189739392814591271553955635595622481532688584773261126654114893231285375598478233299451128735995631825931312681851936336292181841163349828963421191417556427656123371499525914955872374826772628766341445549149811732932544646961173821112934342133169942348147692212752551775811372944288462893236298345826398125111283356911875236615196619228836338796914475794599261775654772356947612428181744591637277217792156859499311536738221153542279625478137675692485363739748636994254211645757676975632242516844693297578167178321113538613951179382413573813238274578841179844361655685394616226427321314328575934742813237452424696434126412281283222651179719654718582896335835749339562281383148938914635172767449673239914218149447534695488942866684412745656649291695324727837738259446768959714569628941533829382836568488712432466376321829861169358869841745794819278958532998734847819621922625534362213198312689998957786218341129419615124777877318158974132816377841151812845947724424222391281669578613444631361367754222446525261924555573448251232128258459954459391551883849214487147365276793935745634989261522543342571231216896112258357334127622795494561197868315113777874197545348427253151559367298431986648416769829722462216462271655616617153626259198431462546586294746148438342888375389177611186323862237191495113949113214888929511362912667298838294499816346422543884232274991957445364154832162177718264977536914679688162959419922966953812469885853112121486713414316493185141759215317177111618669923375993637642667831974949686893666482857474879368725374671555673317175426396446813789644929652852339655378713258181866826261422491296236623826187946457715132221329264425438524534893293312594953331384783316335114462883777874815829592567578551239368815514672261575993396969552332867244647984314858564156396535637991833269719486112693941576981336123392247716792565975237326523438226264361452316169325768852939729347196415253119163668889513432374467431454378222285898852924173235942262256243883716594115783867296853291669389169549837794622318697397958533498922645842532422616287889464451494412152635352386286577531868314962917334213729863942519737841812685446159662211242917469437626283181583194282167666995129371118214232695822256543261588575832688261957177624474462222678554136784793328151885593197815198591253131717284422522111749573196592577921262841368446359368431362714678199631181529846844666856414882798211921114792632599711241771617844316624512992985731219551296257882193268932132791452651211672544656341461585913742121321924486739769711876916441369726866253255252152863814154422163783281373411399275589939144116227796831523845642364137739914147357835919221665153572313175126254452139562425487823686951822474953935478165656233129114377543262867414492917585228311425816835179454521786929866591359136762718229768174335435412638156643795134838983689832828559937719461266447941274356838265153923955857515581572486771365988543812976452465698398169693773211754223364521398598194797497861612114314996216218747521498832217733862329234321583428684496326965688774172298834569476214371126747552423216182689222116861114279928429322461197224351662869478845578453271587162484672719837841778816636653698851358431134893336993417737288513531326211289269753753227861924123142226118983214736953372121953471198454785343199747111243738862335828225247697977243235113659154587683573441152928981286869119154848881147392856439964635265263665933399242959655522779262639842324664828921891973577772446227554259116211139363351897242251634995522224253563382358548595664294257892298373756867141396212778138224473121565739957977699895252233631111187345837911611989449372429769272239833817982183768141458924142498237631649721411721157622949347173513553572959269333144181922721245973374962327121952763436335933276726914551368393768939235389915472729331727544831799321245793838776879927371389188183323861175922492421934493629793951945267488871535176995443386724564978918517492571246844645174581792469446269935246249769262486659145171325959461917352419489671672218214467643397257875885266885921533958489948293515497691192152544141446927821878584548683977972118421562992141675126641635723236134785115527937412655312947386812252852416972535628294962944432468327563378951169111127662227746826212825112362421934699393275854148252461163266977926856194342641142288366942879331981837149958383291594498598618961621616611647728224633148212566883111323916872353857626545895865829461586954177462382782992232795839878957715679975712887869418298656546731778877538965652395299238114344371492177592428946119258712513977187994636666941499527927843617477959554532681251281717181335292156239114963345582276995366143548317179514828258319352457439694268923883286874895235978671247998824427326455898649433683277125143978516223483186165634366894134131521873677224828316836598911262257441224782632911276511883897796494269721293522232946186476436197312187398282629794865537652297171652759538816989543219365778858147275547769477176418883356711325686585874374739622545669873941699581213367291532283986692167936115296643726918127744496199554582446433583454435944698472328196292845639584762384192723631257794335554579717713599749219392822756111238499619974974855881441235885983973358126143777527157837533999313551596897255959245541285894311752548372952956793246423935317916618334473619451819561641274391499178811165127791858417642991759795123876225968654134879514187161635277441334421797848167569828348263958533221174113321517134656986321559379621629648514268156858832986162294766515998691824849115132876558345336723514921251469977359976341494318195611569358617523279596152185961425224121874139132124329198574793234522181127182739192322711187354582874274139296172769771935591573886677782637613557461148783322182589818594134247922423414865922769822768589718855642955988883538276816976177557281214969576496197848114828342478611125722235167821361299864679157519568161525955826125398355871248469384398443329174245114938422267291262636531471984489711658964948275921519389886742136497687885621162969213765755485243541318457323876918765756797733829439448213619446478283765371256282821399255137558552939839141574472621876217431254261424463219217926627333761781958417583277743197895962943222647928184466353775723659626433145428863273686236194152171322569629651111628751213145563899212346172882797614679928291372224319377668968234516645118316183497882983768626822876498416769491167622751586242733974794634343741844299295151486354144561413213936534242696559932955291552269134135598552214634351892428581225266895794758692737833831725831478545667565387244552933895923323333618412927277445546965324362269288161285465286268858658434272942557355977589281382476414459295582237112398215859928247662581737829262742169347681213274227961999888612196144895623332439666899846635941263441235914343892178943646569359527449158828796524145849237798518122887342569765321432979189629425366395456823774945761297639532173391989551397216216778561921476852722214825312139813696669488956218971572537174228826329458591564617359312784162213836517977657529237942691421682271479775117574431721953228696999499617711651162388554132811656237416328556592845565911189572528113849297464916763466842177675654123529796634894538487852283943916784566956565681874373391159211262271976592635836496375959532158923677452227534391785421449583619512948217299215989722487486879941831342488521159477334341543288135158274411683641116822333497484132631879197246337439342581645415333477333489151447358573419393195443358664254777471856672116986699926987534949733725388813939388919751572898748924133956943975712663469429588582466979318885821946195395575721775512989596319626629573519587354463294192751671258911814316891247891528134842797728817633842849547871116798136165785359757137254637136991861945596448424796625939174972366614736357163524292399195334416633524144361844791744984858931684481364923268136468213754146994793349265578417959593186376366177342255258267731275371461283723759295539944414453455375776952246442221857559584629614152151428527973531244175432939463841861883477525512913473988999343744136218268935171995492549627311631511968591188489161626526656574437412359582928322262367387723819235983272577878147713325513699691183725746233941896491144596784368167328274465785387969784512171812499284623695751931968819263293194469125372729341692136127912357496541167258169379332832814465831918247214392744611555994683426365791764737891787435232821142747314186663422128821276988213795134987564527444566166177494919231953767521255736729197718113882327159396696975546965782537259595892479261594244215977571197659436935217212422927333115255559157452213831336416815393212212549743571892767692279152195932624191563182554924987399571828251468189686675818129756848974625265446274567287736682958612432371537358941348558321238971334616331759474128963625677837379251183163287129491111726722168913513759445233786281395916989791541582569818676356211834552119311933437675528747946182496556721111311696513811657911947572357952771324554535948539184978312632131156922669235512492114769336115263755354885828125332994191417213652323115235724288873838614317319436966614536969414886248391324647445356878799676755221727931524544415422996335934875565238426945492615192631828443978399897962652176523945363881515869157456364641117134393444591549353517139372867235861181737491899647487431153997443877938636843742416771848886946514732321978181767517898737799231699361956719264538496823736655262919739223853375257915652145135718828588364558323733781459788421681731131327386393322879746386823485353636182766552534867611977171323843383699491551685877844466274768136768393857426594942127137541623976677128113518956597874584637537794397475419655669641834316279368946556911341544977777728382488966566538918476838782586217535432515458949894857659993868515552514522196336596193918585199263923457244842216284216411914239135211225855155256216932436429669754264554622938146851696379819131716157242125388362263676284522976686552116869665269167552371958586923123441797495783188458331449663672294795463786858218487868894535489266756541391875723668811249565126135891833753127144574646636563526456696941398658324476812912327495234981236415918819154625722562231176126241254997288684399722851974824155267623512316717937386314766378233385831452821831664551659765512183872468151384256464433519727614655722187617156438914712951245541599153987568785969171384577485156133576552725623196351333162949429827525577842529661961615983611427836693582459114885896911459641977375331946528268579948431269125392695531743321194182143169172371658382112747388191475673319194733517524873688168176147595915287491395536961187593143185664669385263573943976686274656979718311924244717874493745594133713612298676857952241311124952457817987647878671961699524786135854122415957598795859225598317536383563922157316737778899686477415788493256823942218871835434286161828823421684948479153185286176562849789468217496914448664111911918122511531776144452215375137621291787256156265655179563884218363336429417763525672724552531782352654798315833111946965614211453232431225946329256519131872392447952485881938588641514297437615524861131328692193493143524619291532916478985989728128319691989628615316394197816679634946688184743415485331186269324293147466884111858293262974894668714124868231566988872827524454742566622226639735863688694789464343126629278529487224932198962917194357913374415211586981417491119183592156762564611682963775978494575712923579311659344977318365151492561247917489622747821812343954463691531428952834926665462344329893923439662952865827952552211243412889532298754918268243666454164171233865824727986394721771518213356779785133915733149296495467472838241338841988669264137138818985617699466597326916715668432644858178149967266373539821131998652812144678961765931746361993848987267649358991653773184753421226762238714292444225489414617312888117225962271456215457242138111337421182654324913629243552822273561651181296388678423343293445843258143614973376268819119459579966176437741458786857842791254862629426836292649815346244944974813145727328938526873346663812462425839843717286871853377339535114385952344671726317537425722748933169752547145969942577926796453225375261755813275638918688518196111885114478624228887895665782557851156276835884474786469311711252342334766438591537946633543264322312117847726416973268446853225168745944393557428198199785532695568197924625837676829712561555814533936295595743171498271152928494597238297415499915689689692915835247821342994722928882845627913581164442816871264539568427641721173381494122283584285332355152221161251166229993885691815242849984361241624364733485141378764919762265354676914229634924761133237173742113127538694746379552985178851136567141336856426266867914655727527379174554615734834939482885393692639244767132227413111151437616674873849819155982485671484685326414326764886492339816313937658839383447796324237992952833864937844489377377212987423811114241649518998164432552791676948199389812359235499539986212924641511326749964771846247961621761251689133988459766422782326539772741594431674439639468511241213485639333917494872254741649893557171653469142216835393275532948835838427719326743964836444323145795629689826136356294651113458498193483164845771631711915612289417131594678212357847375154843898721414989923594238995342818531693269922476378529463918181162711436588678466554132415892821166363335182768384312858226734467399891346217961361719681115116424227118348263255968663332936164822525372392469493353689265661167221124766193276628419426663262122221392616987352799953336398831877536261463621766481963174726353916143752724157324283731897915199136954131269284928541814963328115216938715274545134242367694934212896719185571142444137458829991228611245174511654272346434695819471532652675566337347829762648267998313341745827839811267452847263843266978282167936483172249741833914713493282242682715995473242516345716819932232495783878959723634274378418559477197795212826418195779165489313457762749135455258997351485227843671572289256547615224513919994857734999953689977159582719267358712172181574697981138114223489785479891823847483266392958448791883437983277526182152737368924425144126216117793831541525151441148135258443235269292362226248264359137421799352147923851676571511862237173231654846396376865124355649195482726989477192924319888592897833353582629473132691432255147637571124259894439264682581336325596761545779322358571739125865226275466564413112544399387164646323172853248354311445757644673259913223862265182823332117494675392264617724222649854851173862343496622522459578843229121434446253469443721186657234224617573295153624565527489992638535918178753199676294645146498744612133185493273444938751136424676374541879571271412729134132971952288346464526877452768965926781188994318622616937491945959245196639632739296597526164571789888582687643368343447447236629941595148841964618162868979257618578618929737167472988379537415445391517952888252285654699923725682414513267914628121733291753285289897529996554289967312756923196756544358318839854469642443342743956269164574472957999536161147212318635156993345287173931992147311539196276525796451342399936753165317891347547476687943399196481459335975592129311999434729479612561426912699375746453135632363946653325818454843517643977348419271489236451647335645767985774911196713234442474935236827964138184464148642845712916969946344427725914419391736178519694799951782569397925427774461892691539282129196324736696163371745627263829922825271242128182344765891846177528585383378215757971282976299547526646222747165572329544383997697818911475289658784979539924963723261173224846266319441792167439632369275121837177276986685673763536777851526899981659531143621493279491131711956363893673378267963546385794691365462547812552828895757281113396616514954641745366225375141136667251122471442116666634364439964323645244338457293469362246266911423659923126589187119615141434186751965156419585421285331514757322327234612769997291778895115416799832697869883431382966332552636265334352729412638396271574347413916232849628566513144324933229625386675169535742624899831558973147383325335433173121637796858672564611413618866682431855245617644634413371168387214913555663296662441281135445588611713593658463989824674749613544377253844676474171663365652894579349424684295812448996729189354947674691265845196684367852991181341164287868868449216225814575757211797197967353254412591712236621731328329886223769752967162816329289898888787736116662391266819297918744875652456881474596543896519524424731119594111289331824668222662528569211449857531779984959882546614559846985123233463334438922946474381817279183582534537673776599132331576222937319552623887227895412374945674566343983942158975458414431217588823354121997524464316597777356148556618532957881676664567354677721698936214919914186853437663164936672694533645117472889239394937462864578697294974675255179363964348371937767659573374272716819352861533779132477315396881243155459386691725337145162221157526994546883731766562392157832853964474765594982391943518716226245748699645777695992211267424956939346584842758489374342729912935967546392723584999596321998985166168183844376485169316229382353337876189311153641728239853267963922253444289273381777552168354835477466372463729466921156273143256192266222253193146763951762125513215678262638361158354793843955269246379542971237891457521421144196745965892139291482336764113268939689339646263495574755491581522932855858491383473999322925471643474999865731364183517461365911911286432481869268791479892853168151841329596317985924445669185944445318182467789219453291946393851792854598312882287667612231784184351661891242595331613939124619372737341319671187565723739544333531588861591985584831249274514418172914365652712493842276876451163135928952968962193415742422873164987828618865778679945254523334862625692378851584563211689818484739434145743444593828428365935849914749743526649188776222446936953635285639951469412113573287251685513351633666886634465559953229762716151945557441876121253225472718367353917895876284657635787614126485696246292624527649316172333182498135859935868958313312411593993424461768637433791639715929952249936974868541451738628931152838791112837584215582311751872187122417629244564148779529283928274488731855125142685388678268274652917291528629123695112687576163142796962887141224257271287534653489218276261238374412633483232127291923368255969374327139985743467569252619779122142494547289593139487622134684858661531885457269936925726213168938828761419743847927351534589513557533198417836313151478351731316917454967321376225987349223766891692166244316983229748942149812814333463783918662537869936224432763651384743223715639521338287798545627676855716337161695736481927882145893136225939317854591462755739849736799399142186646257878195828226873873821729313288662461918123332185467197334922477997245173498375173762579745273249531352816853269613639464561368283231678331836813547883626172169565885678833923924394866135436313656314534811769627126271312147225412282253397662596919621441584122716317527942262311561123618126724679858271434729275963538842394228371344897127875299298985713356835257724643117727327524336697289173987146495639413822622484789264633812325273673446982345131829436922264312433327578561159759588765121247111326498778519424375221267352767272894347659434985178627161658627841457991733335231761466687157726911259284555424864794844686843189722228236727355283455995664124265843879167544847692798578734182451249368138367916122451267943284954775286737651917584132492852417776473852371325383925743264147164273872191617973222123995322419456336848366928625153124318151994894835918827487187115288854995976956395338937612733177738559131871136388519325765126146928753368831237823973742118142433668341198159352224657926171227922291534719648787265362555892631316294898684114391295382171982855553951934761817585466433374356652487766564373137439799896941558645157856259192134974672885535282599516352864975649773815428422773139813172976549828624593642423186976155314642485295373144323837996229155232557966111874441646866186172187453315648845781738352972951197294983594989723282512541224455366124426754541755778982269327487843134334129355579686286997752973248176645894442352963674493655865179481512593279143231437112848599975771439798246472851734573129158533923282853463698922677281133486636293583635511553138363615398924254571486519129974656825828737899886249593489128122947272473279161757434374586484168124414912873848452975673419986764377881828133199971735243261714825832436826396957746162237113417919931634738582929822766139179256514176713631899411344435698324461661424367257115493347832138761658611849812774239122875423418731163845341833847723161376247922927874634436721985393336581793686626133749854951988578345548262336347177876397449196621424571635629513451783588487242366581651935657139135822845274255895717881324652949168928448599367116461597747186443828921642578214719744617534256436648326113732151449262813157969335375886765217654578974265597799423578886376119943398239164122195561737252622339657286497775537176797944497815746535835221455915721568968919173814851428963263637816181557449379575419868377539782627458643788841711195428569496738976783827751836111572186934575458895613695474694573248416781551818989316659499351258597729265914197653693359672737995238991256624451683288329758831649927916525645934751613493214215796244669181856964312261492866691859126399797138963662125487698691274657781889264392813466996118851816284425469255369575335421819929498553272343286937572848818694422489869674356881784479497622951342536383129638158442923733679378981858421252883863192889131727522643572336223472836549645949337761574271651316493158842667338696596765215346578625289931982231864164999663723575359753982496629814716233728861352235973654187913264214116272447325851324261967984253496944469516126559312177165896354361419171992326119948772645537261463854375587779135417244119824875865288937249239929812134747881252585778123848466181622292678176764142995127847418347447294549459685197997683897967436569819377445154351178122425198395157646452519421387959126292568841836228998999697994537376335297895682291189533625793193735569828995262273663583142557323621431682514122834724851232352147819246564411517425839756671534659456737379325878616662689293971442395891919957992262399314593355935964752437268583218869621428748939933966794247441951231141451225326563843444669232327675749591621867923919144759585875961187922929528717253421411725737225878238933154557169632381567558628466335867621182739123243288718256484665266484218211983362931749496846729725774411531546622388793813434919619127622281219582626139415753754113685958528987129651239762136471337199338158677744133961518847282176359813835393291418319732436632977552684835133926953982287797235796713231153396955871631756396396669273775772319399746596977833131488316492716965128281628189755615527346192542969576334326272923871459586599688722524223219479163517127294773324844745423654137277938361819481535843794791913195458363118339216939127216825342349573432381686177842984895242678216814634443741769484538269766442665873914313711548842171621165449974899312868551241192249795432156495858951149358934598636941443374397314219667122844698619939728286621456153533264148635627444297896491162891115844533544694414321653352957921267858467237323952492647762429255595399352249658985964533588879583253678747661688799321588588162925813775429799156278653957824346687344533622887785148712119116133521722766292339449592317725247626341454454793151885936669451812596185399228829121546742743282453643733844534423117571439811861349359146755625548193432375269593936975185256714565718587226694487825863655821128654544128567124459359828121673449375273941356723896529272752631724527285362625564561384412615162852349558811598496591693713631473442356732513622769337766696366624562832542639336225556519389911821341425559212393281631975162239451787218948895176782878966821573532742581733252171852864716246152452744349719161471464383693811978277425717887266111317164216313495493844684798131125944263362478268712787621737362758837719331946997636659575164946564299141437674712273234255612651327948262918837583156811394353377595616865491445926618174842794791371418318358391415796879845734855437696822537686962669482684682812277633147811752258613429243717249846485382634378489625591867332314993119347754579665113142596667913987335292559218559522472883557894259421622972365593428126362188256794281159285899916416273272941622618479968811422325676384742486594457548568781953398322914916229636933251747218446555377628352552749488112279567257536648843488914176932463498298814594172411918814597856714727495976775454168247439826163933661642358557411355429196322354591486441242728839637761667984365954951723477219765227179516741942159816828643594334624125849451782212928815468744733644429198218552685852238683251461235189622662188784987393311464759427253931593946612786392449466982139214812692967355995497874255481853645285587143418763111287495437337474255428968136285558448557915572296111926799848684195434872876259218142835192429628883381289157236465587532341165529775476343865735237575596147469451454929686346396676293555978348563362913794683664751787413391397319384765147362669361858795976266797663328917254811236574927224672349556591683221111769152245946276964911963858212645579775697999211298319312422497842671213199724499338343941729551628825363913256856999413341595319344534721321634981879414865684523133579116343756873135268231437538229795311757939882651722584212296977695517869186478532913537836742658575854813843669362263991628337297195374111382371625678476769353487773522512155396977137269612429667139556411555218825436536876854792739776322858449829894623527813677332623324163297219496163285733273656994722562925372548818784573694427772643984341591817116566874611164319753913446843335678931258481299866761179223266383536478478213873776117395341537733184422988311337522493199932638865862287756331111511435366179795371137822678986755415499211981325489999933456223434747891276969563724518354979125834495349452323593822444719427978996427821917628898572193519761362117337672751147221517327932522219541114281962597697197168313964539763356945156525452333214813325399533626495328935797989723513544144248597145426827617174122253937264258265413892219311171225661524164511334355818821683717779122796215124653274925869495643933962237586619768759235964413582971738213352299944492581416178842261321773147816931416121446328356179626634385948884157757169387194241419158819856439424915764623262413185987371166515455216888651735142541261968715489927757489842568192818714675749873182144575445723532846783348487634257782152793958834839327284783773982262198981398269725124375175567582438363545499141136274348472656393346346985191394338586327318716621575883177111426296313657611234926576976391332158881961516372993441794968285414281228529239353356544517955411359118245826461772541413596939464261535183668762178851255352498796137643172164255975161319991193481323213595567447147787219397165625865796915779636417186969343323845556731993159447584435823879352585134278715814377482325417691669939144982945647591211568348474174568883362846234825435991739336247197646951863459671731885916683313995422657216753321749731565556375427944145347453379736618943459848832415266228592864268957692756481991274697336929845353661635251553844598892232359176914639248893226294948495329542612112986634576425285352529837696729452369512584745684799392945315973855177623251212827764216349934396671636447221622379776846795147333763328624875999154711483224151261961782984368923194388122858479576165552315398546924345228659282757844137783918288133155882395526967231622895954214732246447315491223189926365248462373222515242614796311725215666946192728445825642336313676574326579669374421585476597564445297725548518219828785491545171252136278912379377323475255784989194696882797485789377317656977523868176581253379791361122658768968874565651831488238779216453949258284991593626269316612114565982282374924364988841364396177147455686516372949225372715639863323469784318454599366298774339744868722992154459429226598752321332442826793414552958381365782593627335355153156791976252755221735663885531372465792975763234291512448197937739611735314232524756168754139146571912595261711317292757631562992193913284946663231465154493876159721542465273552273632551421299811234383614653899495615615614829892429912777764218432878849642927922221512991213993518822636666614547548663476432934519589122341986976129244594579399921613195522887214513325998677133329214926167439125184535711396845496236165566852287383624372191149425715545485738111386672814933696151238521334619166672834843961127232824298342743995391684877669713993511784623974929788153479989413625363649338333464651326244415956449835747994593839175666532791167123215957562978365585852299975237183577747216371119348766541574448143711175475181899933162431231262592372974463544274747346322252569852552971154864196264241838912178993581479331692772957646482576691492937214155515357536985115945361455918252866133948728531921755352454279735519257429476878196273411537494223343533319331981426446539165335351377392243124398554182946729291844755377781112245934438625537997641678298839854156886597187523718889346422932361531317376676138153295393774389759143697154364499891936931264714591745425924773424912557685792886125218891951362612445652844357264963992333833667652846959145247918729145863222367126524565659379689355535114829839618262373622993168693117632753539727671132528684274615797521311737215575954757589484236132333263132856154896413621442945918571328732952736592337994555288649477311651875729731631338643489262798512191736145471668134165745316735159781996936116842273947815298475548969545827145761912476667524339375599546372454163338836887289513264772942343773412153493976912633917829975363725523582592122817287716229942652444145777564714741841695159226253182998136226395634566838546987313585564998217488961777722911834111664866156649746983132132824412145154416216249938638538659744792723348361774276151759683388596915786827424998984328882879865875253361767896974199128267614329883131761863189438273451863238266291512371938432752568159327131375444478528264878531833294939579398989848585441392193865774611136426115431483277643749578488993292452576526718421114174498439259568897618911575752174348496762447241673666625755163483724455275673476692314325395555135598694417196629858162374871162366437932845385654327779114217242252462281288137777756337317573364987585793683919545728556285531974861429262398257884813113426512842742692544351699938224877732184564238916154629394559295697759339943765194852377639594562796952674494729922356224444424724132411954216952323374415938179966158679578456143715656572916214391719693359966461645381728371937295941147693858466421278163335615419216594883185755882855847882262213194298863969117472747369955839517769255372912147475857655162512476832242352648558974244551968565411393433361914217264319798221337595293353913133911685313583436216567476974483313569861851693169952231141984289741652683672878134492986253266214512496751427779846334711547812472312332368584354528675231946463995369118551842352172635686651593243957928891174553378811823789848815992825226185349882689851374665459371292787138872714429349911833556879545627857236979735376176627153911469968385716559759711294881684938734191942664145255883669387682914834721597227548145425934385392682417542852294921763423496336114139595957926664943416862365854512432157897237222915376882438922852223848934528679346912458552197858143121197735763811455751112193675565734162774948291362754653654596664415674386927533152218843421979135882177333758911834663953868361234425228951364621699849466347956578645698415383591657451335191335519592723235389341949787676488997253193427314353967343446168965655365451343693824936726527487991822117231154352717825554227733755957449766643378347321676493257758963334431238242948492784999561142843141491511458742943941465362392115722882984527663574957764325417123156192282337931238682118312381644672172675292812423513256751644937181371583915241511254532946789819386958363184232252476462239247444272693698316995413395112233548923215589929172782373544556651492174825577432421981149152833681463982646872293896244635331181986381253777967249888221456565666517848786345525852139493261172215341457177486569912117768419374959949342125858591933751846283568261332686371618982459272711134143442652713183436483781498716912215467361588988445453178343188482937444116918583145911964823117952785442796329294946913752543586365279367353546629571463389772473333128357572757846496397257852842977254968987156864478286118163221534142192782224351646218684353572655232133877137279642846357213682469758499856345276578817224925753412389492796453942113433857644959413741131668241474916245663825622931421115561813683341532354894577696661944649238456923922255515718744912295347354225914452874642214852964218445273731338632598896212142963798479872388436554638836761826448719624541866165927294383297171527961361587941724642726464757446848639164252525753574198947633117638863777315884472891743223537898799299912936661484132696737575464521937175118847638263884644976893361122543229918354519738396764837188353586743978669631422328838818982779278154796317143899158546668473231641362891485573167673139869861946873734119642182635666684555899285492139576796565829129122869863449146614161657791414332818665494896844817462996623537784339949238821178741975853511171269193424975248936125488658112295265245719997529145861832421215771131642151572769815561393361758125286621122821498349192189711157486495263912288521854742865629245335515563751854915789228584587365474363946215423112945717974563256176922381446867733575617731274824352634383824191131574412194476768193698568599612864339782145279788194632931268222972218341239882542389615873828159194553416254591562642533912844928976483176158476259462513963822498728312143237541257994368775971941312796344241339767462791797664783779599496875462451726956223839213765651178497292756939672172397598875993117241937833263115277985577962119413757613935561811379492952794251754981258426535174316295326579983364463561967262227544193956163795166242234478126997628366441996131217822858382145769944283524455386712165143512156317456261681652441234473182944298937248511648259138811573854744624212749445122822954661232159251528681215415193136489644465294671718719727417987143581611858521713598189842741577656284417979573565399458714335584279537435998844969267133827286337139923316556113616624728823989184898611395876995439575737659338734943668921524686191445447477919389462224512796238433685388753632524851261866988662663125436846447862758221297762176832172173883219615561796599396456789729141429586216842335312354446641133259386212166776479825832113243567582386461911731312829947318483766148691881847542683893541219257899822358639486811469755632228889365492136746186775225513186865776334889338561888534552995838253252135658581475497121777362217535791169819451632224185187946417983141311114153223867289833267299195873413785862764561725811322444721949189197232121321714813113392962686349328948915661886417321729827647141553428277153316353157199727226931294325819222723888797155334268837175712746829364588555434379162784858546685554262524546962414473452836151715792668619781191322126421595432315387765514275513391811852824619922498947689621248227143414231293231249829622941322313793658879986324334359734186362599172956957173561269853143133635138836824523521684586651999324171692554573935287631526854672175145268227157764197928363894511953251777669141629744172849671793391123914328133292226188336599647211331537686254829562626967184535226392524761696521617233161294832158686756949646863832254398717442381666253778319844961472591772145676783732713116465654715715374734331385216166538273375342552234642483549346183979466781921356676275144557932532464476837218824119479377735652443783183192951287636133238299934765179466632947225658147635465484114315398199274731358613561923153633842732125767558797228629171775796774821669727333481652133749635411836469648716538617966677661992582494291475357249186875446159763839245772579924357528849113814238537569898989828212445684322262981956385526833622183832545916921219226121738923772991152273417326595976899259328139814875754221223372174953144687764342298423744938388441215331186259544748177244658979296378523235988535711426371843218949457165371756288632262135298354681238415467375123324794925711553518359997555348393724366119341771839471762798791958785956543315723447134961798182895149432778483464271469663756973478798137626777716877636413823111475992264122196729174384693495422938588219377224217245815744912672324939188599663374734492869591855317393257951679961757251246998629661675984237955756461234344251649766487469592144775418598258965682215119549936648491317358521253361778466865529979939534695355764734159254631449955985611871966244462471752363138695267998857212454189144224699816342887871988296931355458325194468472472922571779271291467522616321842897544141651779355235452798255355233253175759133157898898288332866372375219978895327388118486288615846858811763395768421573446534337342765832358823844984248429483311172119579884389915693351676395173195795375518765223612693499414996471953848349387898984547847218122287971238131125923948475274126768257358737642491957657597365397325426976788351641322683221955471315969561696313167329754258384125263721346214818813732263839552464627824616338299452515863331716492527184114222651651316692572922895249437482451147539186158683963656921271386757422442879814139552511166818437122384638846874313885985985347561148548235368326732269787289522658627227931626356531498912296913883156686611219451627961635542925726857439383986112586324524445237423436441858277387446189177746894433616138157975785694123977198277211143487528127321166343222496924486929822999944889322572945219864861157872111785916375114124184758794939831593155616378346769924483338531389145258838713268557943221726978834554718488151644279259212342133469236384436323389429667875277862536682521473415429387653162176351524773112714945437531522414355726798317199636235229649642726961131126374642151841522917423394859181175944462715133791687811833766942373217257532289527621931449794465377841595294218238127363932921843436346733348213331646928922461246628612349753411933242969354274626667473347718389115292393872547963936732666141357113147537335346226121964959812252717594131888333212541724826957251916697726651518531818152293839168251682717374795285293863163527129373951192476694166775671292967651815715251865727281968753993554343594552891195622573432949123383991244335958711634225231831857593286759331221294478441438585865248235276285187969638985393411766454242495556438286535566712587838266921371163926123225347322933931182232267852842125351244457639637893397674152118614322836867224867333915631492351388334443791854913836262622276749375842541324688429785962625577421238341972132718897431173531295146625217649357515241823859294323663395934653476779422218322527147942882587988834377525399536411578769355822168545278326583738613474267353845214176954646144411913276493175639868528738135819528234717886166927532813483954815223938686681731989419541878172515984883463417341785666139946543766732236146961219495347299356862822129459341847464338565954258216226971741896379192432811485412997717122441649353584234865446168359843664943588833585692778287145337338519586691969266361439456188557621943685692193998976499732727456991947275411528539831755124284366574229196159348987984447324928361262174623428349229226953817566833541439267329576322627297154718951721642262383167123774959218588371872457618725844771597739836188694575597391145619464611861478461347616519271996611686361674961979214874191276513982169473833362443834949681751974389173791269418295426321316911762186357431875773174573296854186912191143422328335626793751333273312443961135232373457867792363974882572879332137549657276646889625999138586969737178179664915851656852481386552482536923595482296756557173313513234887292994635341858914974298121621543776474765174163925576136846583429762328939677695297765933155362217131261172844689622512914439559717264795697139877979386482835565323328242312559988669587442781517454129397496531247666324631527413163533147836335226152454294131235272932311874865123527226589597615271116748915649718995295562724467324891134782345156466565239257885432661949593759272112852243945329811214121771262498567435785727295247773314695128844151771757284593951371646721568847355415441529389622764158137734456891847149747722356467523826193186211319333862765756767419777715523448546763247322638482369438286686382886426412521114479326254886251654156273453777351217295852653511253421613916637594921839336696918587687371315715573513656824551379342815927831333126675551955733724987981992927445291212883912382679472426942791247692761269857574851685765813513794956196191282267326269542281427111586317862125792393757551373421799155326616857817634111915843254465913684868972839478828689124399193355156419381921144158962399826717572432927919699578433447875816235116758958211883445236813281639435875267419546122898851749863378296132749255974643861242695166859846516438617599818618751162753614884135634896291298244793151664117832611756922274477565312359458884318982483642885822327515635877184336676848759993626314387687284954193257436433634418971772925396213181999553379849386164475918536696971722836913146777715165116268414335867131914272952494818323615781714333936651161471919642761125958381677991145558514119537511328524531686795661461784852694667579129152351654347587326421433168297697434999134715271627416845956425783541119554687378153422385819316411369885729719393112491542223221492364584125893442968186742867643891154734366633827548513366127532632458441476552728584254795237511772213261198155413872838921918918284178277674391153357476641631423646825369135426139965552226162944822995981763477961213699374548418882617855238335526167599217791795891817449793759243548177359683597478651779868657615324877423433715848492753556989977267189846939492231756656745736651331145746962126283674349851474885356428852473875743535782969112758694957465472434229796224381287458691781667249147617221458756892445116951726131666212675152334923168163689495337823744655792338467836368515813544672423211865733618381928784378115871483272591533127741382283792659113665642419857838795191284615821354231894516843256472518562949326986231223923991162323516139164429372641748481769227585298966973275966155677656769179714315229321237626719278617324692665227453447365669698488488153282223926468634671391137641337194924577533172548595127324893999476744798585489347255222427661393181737957114261957542662491232476138125754462757715917327136549267247154859984219352495938738951438545576857274443599383965976942695725716579348165216812852328395132618759341114257216169229686277692167849991447128225589241411221256415753987956925465344715315519779531883853364227934334156534719854461995644914849213858291716646664573691548821555224759812366352624734911863336585836576624874421472586391977221579175191462744341898249363353572557983384978327767534963568933597281655162789973989619583951769426241654916735777965733191165481265158331114258844125934892771866692351217718539119182698918542269446893597673125728454784597353188393134719927775199148551185458762261812441352733799945665798237132738763543746564399644995694139829917611395755246877947455476876235351681512137181593963695167596921172254687256647356819441299133851769634127475626588155123884327325923628836354314684739218437244243215851365325124188778917466654465457393531557753949644371193826876717595821652761475639194724681747157655887381243833569562852524679244457423294726525926344287779814744521271226248656422844397983181349117342132427145133168737968287349393148155853199294273471549751655646782159568388753397241854462852423325435142897252261369474977952344395818226629969264886544243644987557926124922829929258737942177718341881982832463474113622475765988874862732761918338794816489945259552134563739158673898622924641656117341673554185212398673924728628394997275311374964698912521562617453747885674532563711447717654833329147659741853252985811892747381785734169599357727373566588231529672271987168594642196246962838515127365327169588961134811243111932731773112493923264128753461579381623562211324523644133336456259212928662127543289943337288896812373723646856345962121786264565669866511543147591777243916421823412126342188158483929841336816175337225951632646614788364751961872112833412465311241223234472657213286183329986332135374847694131813137126515172273812875578692814878432876658664514584123774731151242929554684775385172791797643979244113951743189177773751232626261319675353116224265231666247857966519686453265352998534565158212917954388146536135119267312611835191281352414856614351693451462297449612964723893852311488572727612144854252896521896415962475179756751512374215541641191419996673822558951369247945628439915138794385126114477841281531232416513869628979948178563366441386392667313893863191742317496555712884751621219114477424333648181831491197365734395147876789142396578187568719951692979417473358851639868599271111841298344753787563731381912412459635174962835788156717298676982573964529471518342427146194264956417995333143985361788866537372864656299742352424461128151478656296856567338743915125696519183614414374189439821541636471187888154914431121815247626883393269959982336115375237757323759219987219416616962235338366544648718462364745556231641824829372958636211679538425986971493156233958128238422265687229733438321772166689762841275255335997596351832829933215444172416774683541239868789276739177193751626817345465162895121782535719897257344754226189197821899744662212232399757337136992183517328319326579591568365367831538145187279415463969416193989243325593997977196776278167188829874661625427658194575381295653286514813915552118471792651144272755364196627446296871997436534428886986762542151324831744833289345964379641173579136174266658583763655329198585858158353364426823127734934214177194762224342331365466811927783387834691922634248671615565331731669784345951294119595833689167539128451293131387324298238368837193264945851431686126189541357566499713216822897991181438849244146473119192279431929277683232471254845786263743729842125526863261935239531946374212257632324119998582943949268414846173495749716471646671933786951464613891271552727194899427763652411392577722413285131287713272916839242973343587255365372633112372819864411215919159361774452178757685497474212665259299149169428855765172539899156682531743242827912296751117451194379729649633332677949273719346751113626386356529424727845421116384833634192862456711786973956252558158899573617564121926917769691146336833813791858395573293876329248982598635212955926391449441892238227182169985259359465621149246634733699545165121524134872557288229555144659127496434322566832699761134927177791581149253465225918652287871971861968588118491119688948379266248856688936459936668926984974671616634475416822413994219238418838561331759842425723978564177745274991397195734186678817126891118566141274744992441679262645546518812341423474818493941343768358655358678185591198572788629616296238539269717174149871969718188782243419651281932741518111841339775239441934195221663252564831368315271893296871476276736825993281577138925869727758813588581399393256389919651634639416981638651198619257475515126855829256469689223892171596558796291925481377132938552369628963899632966921974378786724431474253873912231527797793211546983812641958744584321796964292765471766956381643532217624964234257844254116951274393483175249398542623218516179229582191957592483463535973942114498164292392848232123756295196164369271228157211313565783621768721267686891556139489891268937577835835756443421777846987887752769528819967433189168827189139239533261941947979551829977913742932183716748357864293222443799665625144197451365619119298837226762393213893311465229716132331195155622937981553961451455541114185675525663291393896634659887483532987642433484469294353531311591828152896114321992943915435846162357183333141733991175663376161613181455592873189917351914371332515269122183812783532125299636986228991414274271565374721919716331149711939557191495929653693635913914686777844218352516229224739175545766921915214177943317441586234586839142456999869596626171248674317675454897928145971486642322898112736511646852586524191231597711931945135729128878356525463194138882468266733768326326258718715981592686965242249761421886487194551496768651632415361794843671695384814166815351615774332649339425125961971211141265954348464982994136738745376699162276338629955454247329492812392321584273835275255917561435386627114847619642516347976648167249972598494148365432426334399141241969113139658672225995513571649321244788123339416424161189743199132942496431166812945914943215736168615727223614676637645546653212115895446965923987519261763654777192733535141252362892157181638776638367384983995814517624694885828183466686535365944545147788626688479369277578217557537457994213685739474896937145332266189542976399157722743952521672899295297537221237788635356814634838147619342192393554985548444813918249866853183881853259132655683754716261444484732311564143248267655653431429372212993492134976717822253237361596693414845488866223464379824742198958715157946999496959739255345376226931568888135636277233458246115812616127376478491712471953157364845635358695158997293182475845873173343815626566592381696514259658291752123844363241492249432117712529979154499638914364577364961591461175191821725559997643838876737762673589223971291296173513661892211462831889554357877542983654816376525563667343846395876787655377111273241849114637136165424628257383441232868896863576292872257468414918168529555447555342148189845212275136721689416767865384351683699789693374842463746681469145228477176954562724151518345565974852314778595135118166273355657382162874468931245773488226229571297739114222179524442276743992485681154285643195539231213735839217655189591319632742212227519937634135256656942517477389645942951395254241462254672898626419958522824225525477244286359466935988969168616438528283818312859341712924956636998324613354624259195322567663599641334396935249843347444954395891942518915539844191864128733836984499461264485647387632558777131931799759957865674522856433246978932972531323272951214224317869945598214211977631249678379896778626882171815119527662855913932859414382685993885147696759762921996249861464512279247468164864446399784657586848783325148315879544964485693256138644974852336871126228551485754617275612968952162159593268135113425294214861431991761522531334673373196479159751193755469328921485785664175238773931566511837654361934569641996761275483692511492455698983824866176881881224354535911588382746378637993931638751947796182454742343675417286499592185833643335247661568411562816347762123368266346834229153559421879125531182899931357883942126477151238742268344764377871916578515997452151877386145414562286965338722958163311956772125218831575437929781822267311554787632182282124127179918915248283226191743667391381698678535439613427353586425611898716893456282129741579843953853214197753169363965532284468951234115676322228818212727289967442284267395117351731675221542878421299797889749849786471457662732141245976421835492632489723733322677944277861172738792279316125572166797151543231142963334913166345438246133357176336578563675195241795996554851891614346542353832982468454197997355915549389819653822666764232189441183392539442717411137339914588641381464392646324864571541917481888921148577837283317742313934382195746355923422215781749315916176818551514337976746858165314816247814514374979196734641391249621791527846396554419451661322445785647549752117464966372979768962811583913149416621748272124498182548498771273345914728694418874654749745844896312261114987667119398358448916471581982875652572974122649527295865863882423639442337299519422348218295856543315291226463664256415168414192689135331777534211553774239645592213884947446584752385935274474473792343526795164225187862513452393744357942861789936842834688252133918316944398824276732524347377719157495979338353355853362223316954694496641966729672483468746324714439437119855753452534551261949232244578921241484699756299167966819125655369833123273198473521975467899335396954929637262572753996836134672614513142767921889274445121246793922221295121687399337237485783913993487584948684333188123752727319164576571954833299733196565927111454293873113346486246778175411776349212579875357385976149237818642327417292176631251864154786324155643242514965623239899747298744715939891773794899562991995538988746492138812749454912521183478668233165997574858424962154389361713781529884449346262211854291214251355212398962896737337216762152432138113579817478813445357471977952877441339297851118899825234649132321568181123325339936996785628469132926126728162682713174527733147194199282517413629494331966522916563983544939249654564232561946963526987548983392685835963823927661889644531679537675775282584751235874366327557196192358738652257641822411643499631325113731338393185126841435645552496479269333345346557532458599293335932193475867323555619916895792559919456214969469231318118879411923528578344957583841327921534482979441814627795115433478197495943983925181477888118964274941353786294843715164688881831128345586772536842822537762116496917838131962219366513674364316357955684492914422441127163417225444138712483416727962849656332236754146336658444562435658126816318175838614125636665975824195972625567832765719714218716364932611581519822342537154342153549894351191716871797687555769578656521554418328149837166764497751616376894552936122897752713127285374217698783867285234737447412266966671857344781949577786223528453355417217698483897781376781384631879782835287462812574941926271217334342376258979694318392546282432684677433974842562638625531939578315485883483148716585681212929444275398455535959867265528695585387117739963478551797594995893132965353121158843141695118194411169764394716277433115986326449647289917571632468875124631569187751993674923526368331152188663558373773149363252964422415737795742542235933264556515836644996324736853262143415934919276331337424645132381527368626264249442751455229552354926522276898824243548711747132326825143912687427511154123393922615994822387424911514244573334286433519617819339919767179923958333111311891292311138216775291229622163375848773776681892319951177332311352849388656634195727359346157647877734414524632122739563213727551424598551939295698261515159558212354912469143953652338622895736774195562717684692331816812392997982459921917891174386726681254996248481392542921353921226559886316913167426467353712535373488291216372141447132577583885975861187884279566421259599154337288732637814349731943663797447451854471827245226663186534548656438332629545681755474494945594584367428852193316435223418491121584224713281717791343655128325829116542213753243957484927568962245871615177867874164188616282364591732926643376892364961323295293226722945177557842943136189469886334751681951213712998321715369192425837397719614214854289481832231392551221248434466392642861373872379366967384142898811948891669566679826975874735651144777258112721775962974262856625386814342878913623185223959316862883299916661747277356848344878723963839821293433745684625664531113424416127246157233793319885235225133567787494719418363515676284232491447381185734645559531158543643138881318293866744911839842192271524861648657825639561325459499749973941433149348185343211143922537777442153349398553326311384969721885692361987853992944284738922849813814861689683623346716179515629168465767268944443518945439893332335539699172162498624819532612588396295413616852917583195591242913948174321288766732425961159963482774187419394757745636273185192283292112192271311156697225289862613515912919289711453595973726258148817171416844577636285436889395491512114297332739453433681638667941947841991658157582771331252217296616182851938685342322333733199661719781419931319636276645511623976423942465523876924761635488629153265497589468676533623223486194149815971312918226853676365411377417433258724323721128563657419526597422455537796736432995547843329243858226717999615775588933169469833722164688742621822592546856693136166256587421767252414751366255196734418144739298929398633132711993512172738774446597317434583958788476127924284298489559865342772718556559821839274125239458594193412994541379565658431916167624611827513358622439128197898944287165678252649282774996136635249646223423123378395581276829555322442844463655319611661489239975356268927182936122862643423562563737619699661452918263932634347279446173212845333954159158853616137813898185674554664883861795861443689829566292194314112489894877515225121321463454116579929335491292172433681123329456572934278174731849674148636923275617619648666678672449853514874292283753419663555117413649532293121592149986376827736838475829474257766344348482698977931665465516422564223651387121577816266214742313674319452299324559381336859189669847168632273669167641637832413587859226485772726251249617634815496387998647185839824611128187931148317714313532667284818638515173785629589562152853272628292483873226381356535225281175382158997385757854547572982643222481782917195259529148882953671874151713348379362361345782179478186595385699846241745395441914259612231821476329842854486621964794734562777359654248655377767115821563491817113864775163727241949434868526981252589643676981289933863181995687641119793444939431726989934278294628796683541331589646998359598911474332117194734127564278655954493267547681447113238256676591589721964411738539525654418753313359231142568213543195249959353392412233793244921646961539637843865155363193719184886
11747217847846249271682529621697191493294378671232361139472337273232493117536197854215674715713266958337765973425193889466414293118399861112911956113131323262431514558156795252152761149724196947493811665692227778356914424626971935361986761431683162723241236493829414435672674116919199379715183246192512181797158645522592364718138228584235693515526429315555381935478491839524743316263556667413542287453225848787882414199584294961973923428945352654396221478499936951341521465346545125549722739544392942667791216411563153331753729636391221741424294812546553637522289575328485243897619551658849864998159977499347717873688438144552283677732143682694692799923918176465787282371377741148185397664613978137925235529593555291283999132194897489762287371512391479366371239172223675712679648656541152173942383919913727288717128893131511258635424334137946232167926398134258275462359119981111354727153343129249946774479654155919668952621123287254215639439114842883619269531278953485497223612369115113145121797999417299136945518857358729747141191782391592564666939722554914565341567214392867134851916787245455237263366719555553844514497521633415417356146324144744158467272296575359734398491986825761112988213598193627562841139268388527269211799716863792483592245633151111341166911129733574646552215881862868964589641155445677158823166989174534273746639272795531773327977767878526117379135292363391553813249654397127611335999812166328957265234724213442433996913612313837594242452729549692487399655337876794476747869742923332725322891891764963271618698911255276448659846464784372779639934993146356192331732618952885239562558571736857164978478134875549814287454216386293971815833456962916622638394145151118273416941131345514265397917599839318761232567889233187848156292216887247723645213523741867159472713848121734587613267124465419735576715933596632582826233558253514899144456241126875273666535761982667522311878372936959912418975696119233155641261599118241862341422225143454814675549517948861952451212195184284354152383789691928335543578559365737741663448184373864139516442437278866622393677716131299938633674617862831414256121258441347469861245457925282861674291162377853447771919127715516279195944647516713282332521698725273312458345148496323142537389799336452961232385416374755461457564955379666697323219714355396665369259597946831911794767138493924877352216287827395647179877684371819152554777149491795719938647641898611744553444917561352735143192442582282257644374757785712345744856283319864696192914381386184991823359165767849121328232545693436351954523973997367833876131523759915543768417594959239721238119925825356536351931832617981933259632872338924467928454787183494286244194692453421741417128246746484415758243395297363777323495669354429272159958687239818551318629589955295596436976272462391966891894562947393929831781548765535826599346422639191523832173359371968793662273737253472142871716644621169815593639418834165968783916313586649536699612643197186746878214498392869225455732147474261891456711148382954574465719969235149537393245899413115394294239395222878446896852339296446394465768745338649738624497856912389895641116257613452397322874496288473488657619342859324523755843546133956611364163738273221952128592612842269255948576459682568593352892472614889642463998425654581499774446725556962146981473125642538879716513332596623483935678371226377228294928664217657525514136172577618662468124341543313551632784281598814235613414876495494515184123658372131339482921596924764675474582419414132848369387943582424252558731866122781534382248278739431892851189171453989434448496183548613293281915971597224292969653935622286227599198628631817689118279214385888525491464931884348458241996261776365741618399915913989227274213686996265417775839223392934542638613165127818894397364822876546241543741522785261111776824924791642937222428217973664921795935277285117541461781392737833747527533515779339823465888431224988979486281134621962527271565788821237431837451717384942226113115562643361277771279691487322955352212179677512425221491347892482493996774236899349934116888722989837582852558144836567178421642449815532598394376531694774164953229585231224499941227318873369921338971213384651298941658491348373197654569521196587485223613588895264422425251255597891649122724433844635824198985182674554289688146728149126781194259389365321134549563154538787483623743245827628622135962979188394311343475321555597893765322622787945193618514882423936839239161992742716765176876191147991869479369532661659192394997591364852843112255761819777269585947322925529364341165999636775941193972451289981179177296484723974257621181264883895684432182487329586527653138622313246381553172745771889371343893282545551138497918192459165854418843531333999863265496985459181619934558154265198541531892513672417766517914521352434893144884731558872364614139545199165335148273915794966169766916657422594481466581642317283543598598842165614963873836151243565765531827418254967686572191253556531945497725892312384428119654918778311344444853276696293947817529341988244178163561184178441945348896559376445722648745311691331229857474994956639195517524215214531217648352586644792462783873857414412946426147999816473927684382149542275913932178249642192978826423754296732536794845143271843548797719692489154991463325727324764397664448789439169379918635782635268235754142648252121219278464483133581235751129691284462326998849719845818942625218929327963385311755598293418423139383944843652139734515614291491613921846511157885549225579911374364115861239428665626193268642384814487674264389133888243797212499734914796352795713299682482416455233426237528342189278739972927678729589584217654827464351215463768612239459386297379763646372457323524476457545829484656362683947125623616491751247816298635285237713644211971641923184791669455973466675928757176868531917671234677437281124948245745646892357979243537842248396226199546487965459762587559556376113379417133131353864745832212268753152229996644282496519476957799273143391673559587473615822429689912758216844257392841294961454453794146371557978771991181623683152927918694679169155394111858753985454261777155835824747681298527459315879252517764596573475923525896676388568238521548688673446652149348692923799778254152576685386142954395923417897271583316695492166142138837242284988135121698625396228638929722413433821147421765277386118931483743421557348387559782826342725587866635956723232219184487829892325779935944145153394653167161595117352764649798383683359792545621987657958283638179224389812726479927981522147971411711122474281475421954196314486771362794951622376691762164926678856121344257158171784311914557986553634953746933524317442738464648437133841187614194113527457621179249868972655972852189332777635614577215482967446224766254852643134921472198891176457475745154226438166325249757722632513421852436197396372236531471355979812828887597269654314222612347362313297821268371395193772356861132464964334945367638343881832123191782853646214293928931127784197521793287846885138237194225451275774788259764919523133118859831387864814156597942342851445178312364524273449124389297446498626499556536825383881227721341966356321868323833319262371321282714421446734549387662226884451891536361479493916161757775514762331764947674146495675571292274214567935345345714821434734634218584746724441739771996265581912616122611485298141454436943348177574173793195694199853974276249823127229411613418633777892734158324537962842772658937536492112751599153963886128712593378466227832624151218943294518543742413961834397366961573353146895752389519947222784265213437766991333834743522676626851933521775236963872491592818628476137572383697311811574422127551782187112823667772699467355539948542816919822256323545926129273874751533678618555888897726496467514675393319532837764254729238378319768923193297361373779864312679824464812413219153929216468145929794666667524622615126885112814999442157358183897962661619712919886694669961371698115686394512337162732684295925441482179733366775764273115628747855872651157423846952593461818495316648269461867223516129652562972821388784118538423741229615218853945759629236145151145522784861512487819425353958629188859358792123175458685261862614113251921535926222183161742915295824369632916752649938434181462557635167158428853848596794735755277232887641939658638768716411499923116571724597216251993311275756665144636534152723795265131935774158644899316588115395959115599529889714265654764892493243953925183117157348269383895143272232821377398377445181831119925768565167278425185321212633488188877495946724591626273647243839355133426573171635182383678447882621932683846887763751776717542486879436296721868191366837981817175631516767618263999732951249773675278188852983265296321789161714381749446986661352357883599413565687914734275142242264241322736572714186367166285165479386555757259438217772713637524148746974598765684286624467656427234612323359737787926551398797812157165111743225949768172189424894232257579152892628143295151263582126934234319459153644293464623117118798427789695918618138672362256697498996556579753743541653678949736217824313241127812553198875195696632652743235818467491558326584894272681422186445171821762188177616443838992394973561273169955773359348885415185362835949763772253878518458795338799198388269623916793299686137941443586762466356635574915128392173873716317873487982199543456576266297933251321765959142487751932661957869355347988177646197632111682462556975427558484868363423924138721278573937578166962911837816874886999541842568631479698993217436453511142357471796139727567518384945313458395959669393577965233817328369934329621137438556916946787345493349969889339797284715753459124698518959188711759511181413277549761959978881129697555376335865196886525572171527115339399673466359144632449413656326928395339712955428226627944239942486534878544341881982514234522393721766225143368154168289414655666356897459942316832329787835928951349957969817778184361676556861721291537944353926758841129713788164494351259561235325531223291174314186636132234432525471185144213879335972891756392242262329822219293668335825477657598468949535335185426937742779558495518881711484621348167262466575857999227337429736746973529166918878217787273467768673611762185997371152147992386137433283954416148199854499924639354438261575196745623681578472213524296716493912133737557435678231384162128738933455272345579724814196458121216159582411739882479265566442398547993292915273613655759547224911217548236265598679572112482179965632436726815336633755542992278896959123871457385842749726924888526416355945294444739687214864936584774798671336233483787367339594397855189838785632474266257181838551418128932376289578763713481216824288254111845745859178242617288111149154938357834962265576135111567382637351681967555295573913561918681531398273474989734219486711923619751544936991783285791713767298662681745873737356391416385817188323874918774671916465689182926979796719744145973638353427613219953636171942336979268346956251894693678539982685115523811879194967416393882482348272466259272581683359535551487596895344971251739211739133263235148821914825874723558876563336782665425283388659299815199497178431461968672573581765593985495575162588142983344784325498762237116715691636587435592474954873147936831448379493927624925784268415447824213826839589553421683377363767932197232143129323577158411423599117435534661783669132612993858712995188117212197985863596987837726991243592643322491684497235548193962512931226899345422547941566859289917234894971764252431712821178888723243178962451918434114113873879622422244147618392256691427626474946829768871983166645281615392217126857259875557862274819742166646251241367631911357297469351371518429552571426788427619524146949186595328986344279374297586772189489162875876242214755111261422294391444752315722264239398143172946463786452691551121576596635752953783815598749342486252621341241481411123999229736748717848341228891921794319334324319364298499783326944346375762784976269552982311738619313335753488189115871772498416128314616744759333243117379258191772559446482393581636936634568323886491566179336822243196669353353776866788149749243461982954336169916119723294862521484913983484572651124669361694222365139626989381511813468177141669223241727566959793776514893341441487893395231317788689168633277243277131414138672556685992792154835927243951524386619194389246453226618986294387297191657417671521415247737463988149777615152868935282743719213456334211192216525351634115286938633884235812373263757466365463149296658714686267673592228641217961119218221388563649829368222419729863664347124592211292669551368922468482396226393429632641497118173124975867691747395313455522678851111487594314595447236885591837152854739866538868612574633945795845236799767797633429524868121535673263278734484772657454484878954129558986596498851667439331745232923842494945822555561644786731255474946169641122166733196347989973783351337523568957299784863148864211335264494723141737682889911948583334364814926345575628438717173458517268293526847155514476647215852172489174951538889914574213326244911143795487721233662436224381455469314799392584818487171576198884497214646294634869345355373524513583322451334941476224734718545321593261673322624922941629631361733572488414234639391385821268685483961943613799819825428321519532634126125976726791515887345824621154397522493357227639298941943775674239342936241499871249493369116881431253596664826848273158412854681496121796664661451993676762147911854756282423181533161471252536466533875671937413784674751674853186576861331492155674528262135281672433463822224173435981325696186214689636633372644672662398867292441493344485576521316179221749944587433484622749444184944834129279581454429288733221118653117711239515788373298211845756314477695511441163914439274154672751198247878656246719458891742635991779671977874354944687517883342441399915583971218356324524526811367218362977334467253513735231398529512857595393455519784577555452918876322744236182213153789636464745171422759691548691244577331676526997121513693266762353642899883946877938173312983735222732621851724428236679849513622134456929186486999224846579291381187358345241468361971189236892718211182736526878484931996689473192896685936577397363562996499265251138132362127142182465583253333326289851491359716697628439199517315518446488355945413542161437742461467928166637814727451177571565227653126213429736764981698695121498448579391622385695659729539433957776544227363474897235315144288472196537313345792899641577375556995649483131833526868546332483889648165563461263725677341567262746952867323473258746476147253486338826731372733265241541245464726587131593593836457173913865632919765644334175121521161461562858693999479749782551522465923279539257785699843162781766296221349995759334467123727431261114525459951619126188365783564243273736895286517386585194159371927851151547154255388668851495581793884987517649173885149398777713937412294589536386754498381664384771996129119412474499315924974498383427721578637366816984432756837695129974222719897525234936527896297796516658224476922994466698771887629529928596112662958665955417324666392654919415193844626723786658692113415527719661143554941711695152441776631757872552929135962965189269258517322232287393126832677233619684516962414395889643825689719313127216933175569995598488317787435695214271867266826235332755744834483558722164462454659413137524373675442393298745114323779245737798569434224142963431432737237429378116293343232741865823776216486822145966835383152133589972237473364291514689441733242981484198111552358731216345324293885426422692684719662814842563273884181992134396137716437826265381395468476593833637429642663863812971999548153868861633444198337444472442346641272268823669177579882659748411841714257151851532858691339199535482391125969427854624676696992386671746517859282784165542325127561665192271269862886714352921551451882263569911123919967542395169293774782256869142572244727158935831761637895147467928626957292895582739252172241622925555121787968286748447187256253345697658187133778954796262385616683952538881581657736348197539774315351172542693998981485342337937239926639294981982527393425588637158173655982534243837243399532982467189263567161335956929588695842725346848187134572252197326278121126531735913852178663412129862635374383461182145731611885919496961254439341745386554587634351873465552717578873851725132728617335271831167764715313445642175135655293914239634948255831316912296312467671595161116594951197416764248676118228973642765722758724123487677633814194357727111897183995627714721333139149118155616422183317451711991569754639243896697959192263829166328329198573875222425987554547291147842548153892476454454931225662427125695224574185719569642792831695419843439849177917434187585287591346775331238171793958383133131852733777625832572743832823511849266943671818394815664157875972167413559523918437924262118321896729269929667317597541124414898971419543345165125612436418111588786522741534328517628147399275677334175144226245656231163642529161595535389183562489367626111448488293719296547177362896733187777752814464337517347638385699291246494367568625881279146373295337115381876266232827593724825531742331227735518112612737594234514546522353657866912818231234962456362216335117939861396661539693391766719521587566732699522476927393464994451396441177468687579924782286228763418747629155787912546572589827327499319188248179686388182614629814662917332846316152181278662418661755539828653731877221858997632953581679781796519438643566472721659515621737161223729964371156556144799921635399935313665231416912293914851348364812825222745339186752898153867186151534874492714139439788118238155747939787843151761662416386417581215289811548771436886784928581264717522221524475951995911367448656535786675772274915549485457558568137383682325266753125832361297836363987634857959733225467432883367146462292823956362697221759967653174486238938555523628135264599198831411238464924618174545437466594445147439949679949447878619468453493368473383517426918759155467831789721531952393296443131355944988236562229526417488665495121512932716712895325552272339259833697233755516145529368448182456565196758763886483499665115697653287425793924394433828896775829715664993229889648968764432251122188947882725342647749849524953324924718755363345156899731466414218492333492811588412633686861728942426564662954552926129927555257498729261385225521994831772667673533795495147518276358746456382313759638744144923193997663175846357178227487823436861233695877138677781292611234594445284227487717713568641641423216191271879754829978254456498116698522844717428848317382117826495867136297485553753159365772133583652397381297859322788682184991624666495814282597344112797542327735985489547881785676171955279741234765191868657877338475755296917563645488568524282949855185386477993529663332681927174823327881267973789743841265468236919323225613721744898669818896326598317234458564779293715263955326682852864732713257948323983587567533125155158355742756631867661727995943622441239443749141118392966393657963975757134584611292538355193593462142385297452375544653442115245761659141671429175891179165755383827637411121628723596111166345243442467991286248359819681442113547168154824883414341669312516816385735578277394292297869551372354396694155512331635952529353513222791637573174972862911972169311564166858775315924368244339445412787789742257171397721982411276362346925666698818191171811517864426262141321684274891725457725643746188416639959847175238717117234659622363352446362726944653568597219765277238326379854533877951628391238186374681836871386161445472222822739816651935874958799779614111231157365299223581937968872775725671912386362964396483587991154394417645313854875813876575475123749786462493153234879971468699248513244441827525278455582249746257596359734826656711741963263936944542937373873646686892259945149611488922197961541478626181739153426982636551238774915784586271666625268795398765122996194429637795117381412665379498985563571482596596237927359375917893493379463245313423648556245966778834976435635278141282166947476471719196543517748452549138355336185362521211469186239814662993927855296473955332412737378418484583919174822114212673998935656389743218531233651971619795129717637733464324862756366118675634698782315881435311268528238451579264419686239163721555371183523738132887869488459717888315199239658239172438821183113753623114663548815684322252634638445463385733651872232477958119453483926552887457734918268852166425419494773186853488381927546859514951859488822162296634332781457233331729635729794449197724329138432713317542676496197187253246287379288152576662993384443621566674137469486961321832865814713729615663143971117474913969143557522164726968731477637634969452539429245919559853986172385251512144361947155224513215884815872824657835119472692982664437161898386647792892251113224841497284236692491711685355669759643464518244775741842461936133565353727216338175295199726655321743752233292217195337815714983881813391358266481387754444241898911846147289396934479746928523211511712186121413627488654743136236794993985997119554855652724288723841971139786434455828475822364225758129173163671483645522712527573192225846494365315621194716512367866135764292119343448128282511639271481176477663816425752288227131149527816146636162166454596479587614364344538146617928764774694975825845598373512422776866783475365332328642778728929155751252822397571485269691326151239786615458952726747953986948869855212633619356176179819391572479766163456625517945174747469873133288722174236798682855835766521886318131413762932857821593473377116921741618791826781456663873675328333944899442391416423813711591772525851574936916516699592169359219294935225925858836167857239241926494661881211574529422541156288267415641171464135859133964389758113528195851573793822135389194957991711687216192618278163328742249472318673296167425533612822563114554246486577821762931147957184621989643536653263436753282149545699282782711194397243782969375691746651427973182646481599886454342399638411791426557188741148155121983872972155459551536286592437687374491843729841718454824635647419449182813332248511661317355378989854767363842473931834145185191139498245263457386375371482145518347957269138213561175855198538791311664624697186764661549381435376158818433978632668961865493671428284998731965316287216996227495712462564296976673784254962659227156284933535882743692398512259531987577151184128558794144416361553776465724233492963581415811956443412921876495651689872785311571237462141584363552171446541197142313615576295628674491224249176279923678639142566589333633726896496429179432882864341487545254584352436329387926858141659578434967765241961123552422116862275212268698421492171647292244583218586811112186321315577137256465284886641895424817459785535841943571141333792541566644951111837584727268197392412567522919762783545212598864354121932935725291298828333165326392123514516794575865743525224624952885571453266577492986234323169967327129377615123342169126786443347295222464293353172657799647545159396491434919439393121936481445418482565164454152614756836999213188621287598392222511316177297276725326243231812372824343111696923334589938519526956323764583866621272532261814182651197459424742379267674351333292672337761517562158714193887216362144113161577362139372925343492824885217781394366195872835384121313865592128114941469586413273919529932986271282966486447456499372324118894367261216212663874124321596153227384522431147297478137344199926494988422379347511285936864961933213973271849222493214271434155411287718184962958792159394216663935671378681686566624955415459684554677722166632757282883688579932161817347746521796658459745577731834442113744312132369597957681464435195347715471474485626735853831184284889427737362492532698955355735188448154161968457135115928525741646332635273414324565164255324677699947519328334396859617662536933823736252263243474266912198385436537839175856119637312716617278521547517889998242229422539126279315968719148193878157592488447116881273559316131698141365895484845216252541489532891669739918234248224272456123589327824895685379184268522986173238552467697465872651641496358383124676255246169811645534628371678187692966337317918422188289512779132156379428284212413128125126268723159273826841115179727489421147416785211938434764144463575578521357932992427979914586436533442687973266258521833758322979948851765383521426267137975825764979984816243614881587241828357476445512637394461268979838459925999197285592512191922884653284913693116928182832839136739512719728298692546692158236184631111396666394179354896768729286141652981916731531556214811232138593961422374166865114127759453853451529632857563456948855341231538256123425338781334785322923164145121466376263315713252842796623429336939925679865455561876464628434348244253257973664469856765574878893747775222631611978955258395891969768947814561797642529757717697281272825586567292475452767888875161261567266927377481811799346915239257296865365252232323817455192213639737922968386549347926219393448831656551431415173429232165116427935933634271795233463587638282223178141515286563797615772983383642436582843611354731161632673488712742837319542357752496719991219539563392492749852788717571493189958153998924969445241656883913795376868123223521434561857838495179412786635946893719831972899214188536839689641341619627727481826289736494549424621481134781823837359211358297688734263178921825271215251688159689749145538347743797281958982691246923385378538374396141172688133473959521773234743499935572735754783699371249269432143479845491226423516588964617677565237183651499151137421947755229925183754314149131546157164633548713732339347814766394372458279353349111454894294574477236669272186864112488371119156337979614445455747385536474454992749361413297229269263964421237114717353915367662596517275311846377864997932636775673219638929636892588311458774221923821939991595988556866845933779429887315916831416122453554548423356697563584132133557746182678693827969799388443849777793394139895152772162456359262876777672149924232822288426545154141425676385187171113299441246386339931972216549228372752929986977395684599325925684461497329555943681237874513893174522681787931221469159286118177314319716329753946457457752755473688647527851642824714642343573745789394672653849558638941385639484337633536325467518359418438262391862633613836734952715162261859378117955375793131579331638243721559848876939826688834637475641825267621981637169566984171127511747553783845621924142511188468449766683857937199922851111229592942193545863669357727492465432229845545359932242482951767736715294913611253431814341322367821942769255889676317511377973868558283227558869853426993215453115536385424238855667455895853335828874659894155618366227872955539629545684965915167719791511341469336538934466653523393195182572311589788122445236724584292865383591669864484746634162478822431517326541861885111572371117328384361153412215595835637935534893648936313147859626812141749153944937163452844921337226796554159623173331413854621218881267342155294981665237257423969179892671937474747332988122952953454611583512314315367112167321741866843172112359683194631164796596624617583948139219454131511932448828797126781914742188142866938276228712431597564741515932192641279815658618129688666484175463418492698272271322268685916428961214322927158944253483117236536479184193141113883847131212558432494412469129365417359398587899125648277742333919418125356952391883717977856753916318838439311686763382856795593368137183725432937431385896863754287659527627776128593661432156479475924192123784971732987611764139344952774663816125661278452763431615867855188264676554932344133643543156774231317171647825942188594472996698665441114792581967489748897383845634317176121116464178191289286556289582374612778634679489544455135811496884447329822295982421163553637878442991334663181271654339132436741891519955191112935799616619549898792143111232321216385334274235587323664231683322296569386111994372111741461775225114184568146659353332298555688938157388982779646328336412444527984168348442942183247447768334535535746324713313252897383531892153221477575938984967139619372379126149636356248813773653857744672622573513573981847225966443545167862534314545626851826313558416475665124935315344731532387456858918244338416873542675978487335872217135225221346843165935365549495332324625638395445341437552587541842332554924443464399128171244721792519332795566861554122947533486226743198664228477536967182355793533997542591956818559697563148551384953378939495332873879697261424562762449959335831686841525375758341943882679989846621968849594975268755471919323754839696438993231713823642186164465285396352983643294293591257655622261695292796776567116599668942592491575541248162237952957539795521396673928922126521697484479689128446341161977833858185113381875148596245654829275239586145692595354766282446586721611562837493551318769625381571442182335138432656964943124361878771917112713563344523654569234369613288118242276541374643658113559811965723882444961299318248976894589728841454346181353522529373984324319283953226837586133525125528856144868733967133293777481939833623395382266346216116917495565753681216957248733529773254552989751831328727515181919696712369313441789839531612154153382852981584776314874982796416594723636297539198919143649312616796176178281887471397717591715939215632829962272268216952253759947741346626575882224873938488217155529782272146531143353215131352919857815254793149249335481818495668414735196215754674747135737942599135975652428366617796483469762963715257629231781758274823834465195371239314911287415181156761718782642759793696397354292846167772611332663657828275559679942989626861937885872544391592496391456815792287913397885365323524713375716419417592925813729128265499537677229549435127262446596781332147146516761299211786258445181638982874938718621996558341797675576693146365399337615169393954532634823789649844584646264721871572124518451713212451595631439141148453474296947862595382344162626424139963665796791981833821582984122796296795512917522142171711385696711981111867293778755688649487952198942655283948891733392713388489483668392263341262244116183238832591717895994134662411682157648481525471981922984516433286159312851744192168824612786111225364643447974538282877331477277237965369625623523133873289956175893952692412642652129191149472657541227667532614628213158734521742896899387975523211199261234236444394157911482682413723337827355791935579332936423118517378664287261633993785638897417327314176225364484527232424115113676616353246744287615951575822275785326371283481193651522644956332423159123655512183697948575561347763367471699621612883456581655927414972326237198529752263216674989648697852624127513156725968549241316884252716764475858344648381854229162998864577745991888943639886194241119139656613545356895349385183788368327293437323791415544165616774192289139933146686512521243458415494716292797744839355747955227444257363757729326534184518171688787662237917258382964426196662948391875877484884648275412923869973814229416233413961291639999495532761172776614871987825874931782993174931142462571697692292637931682549654398214866911283374571641482314913485138511177445757257248431224489653948621256141762489247978886636899669294574978584796732586664589155767349312134386542871428193836276494891998434548562793889663214322133219168143242499432682941482315822361668319442418867372379866838316398476711214322513496572119663517148968567361813796824843193263752816377534156265196188832263457355973166349626777763234488147695947855585229921722157476712319232361187922732462224582842193977314835729525723871774129556131742766619169716528627224143416545673112955321713377143418424968569248718684737493947352272945367155994533274528757582355484263187763548576462444322863654561242589228531113996929295932143359876868465362268995922856326639652492531358653183562286557923544334916181298691699472234294385854812175424432824188371413728256876187584768626374153658959193198882257129771761855793417178271744428518431192594442972871422555679619717284243128616787145156989364239648887134825557583262839486487483435957116125872657534756514525493768313539877813448692581997479925989472832783395943834422916377612257621182179751868192745934768343332925659452683489133916452172329386742788191853619186918948118956346629822813487718833922791794868823986669311187359513587853638219319594549611171647221199124922495448516546176123487328668751346946967211278334332168518279392175473944571894715153781148233752669997236681568663148192767413212411289129356789273579734516516337221991796975336176732149432794316991522858271492444462176569872763282848125493443143219828435328421867261789892225715291278945416116412282281422534131772622422519153785579947478141211819833598864622682225683591789862496671153112134439569488576889519713653761243481111193183372583637581936985952181597715139219692626522296555461776423563416467844317523665383842131771675172525946365365257485955886833371196917455355234577538478818929862417892938986383226289648645346796153836384181963664435499314345278269425658163277487246164158158132126629373619745727939348252855489199955631463533332497882731444177571614255142957374116628453868636727824426879123715261889473115565371453321526455437821769537429662146463651332599698515122667624135514867298429432459772972933467715948813466712812121524244911344949491215674422765189366341847684554527791553233123551924379576799439318453314248768963183362945474269667171388881419494378373957264746474192823352825518243899796643524641151164944853479526394891798715965338455226171548258537215856594636572283262273842353252872937656446491368264519873954992975249816623663153835315998976657652792976134941629626666684786752434385896266497444571199922228576784557547899912619675449844327114219114576251884762191131367836964487143845165289312526341191853179511497748821257986114737389389841251657744253564241185585625917498393751882884424816192775451127149526835385833616751328713594313637483339267114568724262245818574514282162153849117139867124131912982616136914669828512237849491513464193429474711111724321475423213113728958479656981777769219849467446635312581387452476769883437345324488478992727376962747414642161763792436557129517247935387981794869962122244648291134394133412965246311383829264613269398655239373442756614713641354863553352664246491939945159251529258781414217988389997423657721966237513433272385263442155851168922629836972765828989322364241546465584865481589492732391729366364663223326793461834166243337448832269215993893673122675883539199928715478485744286714858667249328645838895929472717469323452797992983373875553259412174521855187742515471317439376496223179413967874326323487226951185515824476178494693673313572987623281893298955219144897187341125323544299838936828822658944228491498139363926748689245241678358968958135796712146363445269397121135338957542997111585352713294654756771333794913271438812388924643833535894855243623167835549458551836375394151565278833922545975739693349994247899125971995797159455356474959832684314966875753778482256571349478571554974995215731127344139373455123214851649341345326111912471752878144825899156822493452399232154723691249615474756614784435493792475839155966465297664261132834685514697763362845949867345665518866291317564933715447264397681213129673815428246554513236645166659148684423948234257717962215278211534221573217391251111778822984345248776231518757952491664279323658965122345394985521324189947268753832475277491613571238574349661986142776575529842888132796254723851376613216935912714699793959288685913999615498419712638595762357315246271369119851537459264722794847281193326614617636944373324874299182828865894273654416751754353186419313272359862474768476973246226344924578747983376554229731199182464552386265733931711739474173816788457551646664213196614612967135612697287483566892418453841839829711689561332563742955714365259899572391144232896716323189496746672692271675914125293832231526516944763855813166338482288427559329782476436228354717178447947828668871214479529575567389536437437629263565775268438119357421435865619549234213334957375556588928719258174525848398737636272347316121116877411925636248729397422235525644768464524216544321582874255333368864997767198953495519743974657883832641546399388934537336165878922854214447148194669831977383421228195742164888623425155891493817561588923416828485118153682995469751485968469359264954622949842181345631492983219845518658422216999443979556663964928867286417794988891836111324567184899521693691745356149997948582521757446165861833153365117949977449441892454396221114184956981414816812283911676381636929236569878335424742511662935646765177476364669568277344177268376154199221522151926611623436824731527852574298665921173679226767229779639362973732138789253196829523753112213821122118183591166627932786778661563991127325256975698369752572116389795849857711146156965358162943572175558342391224865474924729751823917414467297398928778513757274255154792267645944443747636457241688843443539239579372569461835632197414117888363262712464844174137421116567556751686964562575339499457566659511145381832778268179243388357861194986757867746349335112148542194759457127417118461293475998279583898145711793615375258386461555117791347468912134729276875235462335437896613412986113465119623339211627181254685335576636544397629392234384123935342279978122641691193688657398331954222795838255554272532373154792682653982554411411939617863168226293434651223284812882685318519657827323425138121416384137626642787973763141732623485616387567285391975327985854896458564961511921442355725949365598488323771542189486967688594771872257724284454934462799676494389192996877414675924799424164123358535849238354461489468298867849142689223756913614371391541755151882656476969336445242654798695429485364638695953761475779853866496944143192388131486768393175756511274984189547643854971855374195158938818577255544453761599173217656299948465134978685561697216547299151395393393637829685218611374935885874964773858414318113577275738345136498419236344319348453793564123882253121946612443328545839684573252523154514864472841559345856682122632399144444849721182142696386779156611251565976757719998693274724691524136915642342184361464348741129512269511972733282727182364733454782143355466497553935488235738119925232424781476579346661431296175255686674911392952517713717255932469412871468295281326385175547421335961561843189976157116937274426369173376744622311365487568651473491733794437189356635968386932523484157248713471179928934484471643618435386512426978642359356451338932991591129361826342613674585128499862492468232187261797987792643833749734918347626887872611276517911945627657773431838618346497559955874243712819761516819871543423889946574777397826919492143252266129852819334882214968337798718776715616939222899377227899137763656774928561564815227226436816929287592574399585388329511633236193281217354529868927622461721141573593578187514237458169131914141915658124733891846747385413159687245168235526446124635597241861686742828497135779195355419611743799658769724822569832289957849344921191182141893579738433444722447117664232496645913943274583475261499882514317867258733923967636399121185379516369314914966347423154832541136324182597399593118131498433694111314263525885853845333693717137431436955714786727815895844497976257167329777744432181264355926844482229538119439126389526397782513473861615514472154579853115543321258542243266483823789373479233441217191523132865362591713492373888239929394929316826146812536687846571557775162349182468248343917917325792559735857527964923946357733865722476355972964234767355873332145662651163699614197566593551649342621391834784641871917584338477277211599317668121945534616126146523191675773551131881378874243582218581915713642335478288882367149245262245638254113139167868337432397837169729386461294482594496849465872363613199415996958599778349692338398385219819212232223228431691913279723458174994593897235589169938972417782413564552993465748696612538192252372558486853529291182724352994964874564451459514941428233137796185839534115849494659789688356956243988939582212124153129663627391566994994514589835797961423467998988448621451821362554215755949937159551616231185656674857127426613668814664951721323419247513578287492396686725375152494713353562849652311152911836796936791811752433216876414237458682195195718126829787112772344511336333992263371877512831149398487691569322878526393428549745383228762427677417853984326483485111256383425789848531499925477772463874937455913921874561412286719787345211616117433176342672118726279812367354497744489263876485441868668966721267248944879654297258532525914299552637919273453391644877555983727795586125767239681395415527523595167582357131225739896839681288187496211789652763212317883342172962678611945732721754344339781212265764421859181889987241727318983122955233936727196744946968149861645515126399392652926284941416144492383789431449573266646762516757564151212781378661916777895594396266471179688143556496726611829889329362161458555324318688868178632819279147112325864722255142171477794879562881721285323769489896263512987563293937254596932122561649952425373993495474655491978343932254482643634693256134244619743656657546156323612852355184966878276552363229397676176382195639556357213935859634883673276882174438464675662698817549266191719857289975139951268711485512175997125735418722131725294371428174468199886369454616162315643829623298537749196495712897743275763286129787946119634541138121445298149335364181259611361719625267581342486374344375289141633254145571474557822276922534565272573542464188353185465297379314718214597432641751789862989152397811875772543221486995152892358878345633973132351593551688522378446874546161274469982435281723345253262634188998191764156615649865481834288212316397957187265445523621353414878247546541485476528412455541613818995264492124282465288937349718193979973994625212438257431685957331421537171919836967266952767183223157257935393296814526461725322155263482142622492339866699576654371175636523233129639442541185278134165936313255116419421936736718665266883721615269291952375959497652459872629135338779181883344716587932699923742339586463431348228816311113941973461651211153965331565677843512914564311222322848313187117751861667691685491184121375789232452811632484642131485492396142671838219212874284474165882466823293311413924238442436754592597469421733494233915769985767843461332256184799942129235181969258155143815545647418346497718541984929757526315982878981518487479721541541463446491358624921855571199839992318981883722316158228889434211173322168664894348224549994382481211772942154566165923866447834788466828954383514512135184167128778675574633186586193317917982469332956328576211325378658789577371926461939914168286812461933481349932366912495322436445382823831626549933153319979517414884498272995953924421495453358291139362671566177333247796128679522671974438315444689768735157961723697563175651571649252969334114994924719921348287885864934116156387765224854527735447278311236316882581896234965619935655397959725859884434762464533289799462819219584642661435523369324622263883318175194796224999994584219451285253893744446582555988529195438758386176199452599951354766759437894474298269694827581978114698529831427139883331155147231976123188422929978181595549611948138458856247928473218243777371711328753992598875251239391436386134323322333343829441872465898838232729182124372554617822197798231541195455683335214298798782156695264375172575236674927455335245234649164331795426319761684138829894286327694822777433989133841162239483878128741359215272321686314928364432684155291527998291837184422399226355817997373219399568255729331215666417413736912262397719787361159451341519814123654767384892322871929272141694188429765574981186766573961529782588118921371837587326613133165196429279914398678923658726596731853851153338167661398138214551522713559842251971568779856269595515173327585111835923712381458398256574369717615629343261518373834669631437211961287148165256395952896852832179538384344137565251977272314124954647913334235612924971825597926963425687546623943564919556419295351714712392853298469917724457773492426276967369836746255414159122112118818976253915149223225543323727352281653285386786419746668749299564828282511195147172435392677482178336462969967121562626163485839657499758119595821286738295222272184934956415442284614184776663444116949264594447973277656145646175679216121142382366192376169727439612431757431347578493117531934622116618187381714255213629932621521446115229753225291649467143165372316472286347211285397745138265347282676644948198981863467987195825738387649661247465941931763941921725585396338263624915787954686875521415461114222625842849744752369778365157415474297488496791862758935735986533369925127262211186278462754197711837155699238311981299744796787369523642342539411679923643162921353626527541554188257175998922544164423168864815123153318284746112597713558785551236477125557585887958675868148133394329417243419441854761528742842346228145339732171135524361955113189334343429218858729837296855912365764562865657231235576652132164696949753515327559289563827387523833221221667482231868939993724684865132458292865687783311873746357462319429314343351445735196982294233224716191147569211348475169374689656971488291617686432956214359537331375174578536768198395487757763771921782443957269216744888348127518245918711537123993382488531423286973954116512648822758861341439229593114943545653874738864694753266245771324121811759222536828792165272414636871596879665566228947129119725758687743313557315866158689857532552515941654256438193215941648969122228671612548583956957311216199128171326935357814171479951215394176191728263528743399891211623661224866594731531238322831379743976365728277832171836311978649613185126961781861611451439982398731183163871519648331951582815139615928289222219195672786525898557279371224498149362879568669178194191828794664244623387989526951857199885432376355613571995568745386711949272474981756648523812543464736713192533787618334323256846345711555234986137456229156956687843674311691338664997225144278541938173119811697641357814573541421834281939792151198927532414912683576331417524957838585921146921731556952212698129865247345988219784934753486599482576272217731583888578153327129913334776642457962264182773742779845295972813717774841254366471966116371564683362479197679838975419449396538918132779638321232891256252864636345286248999511217257153867374582683452149525971759646572814197747761919623321356198497333328724339814837711242627373983394336623226262522531123854718944668134111221731224993737461331211516713813662452639828112629521595595636634361816697665671551323843454818383696186151677637732878163741181819432712122591884524351559257326191157376939138541356171891137331523738835851474797819432647617376642411139289399675628285453831311553623785313668394921844178433259246181551127166127819782938334385656941545497429376673837489654676787584422543131351828972133372137965743611151287787675559166158265337652988552611591373899423256415348355819298659376486674823525491741652314917712562151347823116118321571457245117656569771986156163134262377819593618996216421145253372775572618943444193864333923614361138935377783293392348767258947456415135748383565778333564436758648224237471474891119673357495179632316661771728483533943852945285443314774544449311598223574642495649586295327684745314977175236511595927765914971339718224391148329837425147577714641768214738367571649864523858838516768967922668553195517496867623737763978759993895844466741645951273729413656499463425147754341441121724353458517277812519987756951848165635212947884717435994963167848995146179932734932617115825737939699753457789561972927259916393868526326227774883321625554781338753395668876558981227475929521629488721268481295957371776127537296193594614279584442225837994443189436871355136681137979222496287363588217943281377343134449477757381832589689983732735486195712991791371965424372338371196243716333479177136111868316231893861997891857726739782526515434111973146921715412418532576215453731888192238431543588979338284732346772918738135244946914692719764381472491897676231271525526838835253513677721694768832775233329318124279334961318471545775349519656711469456574925541585117442492874261943833156617193654251735363621445939857696441838328497271774616675725974565725713362896131387171931136272868977534734393834838316115352962947986475288365288449558644591355341478119369254717865969148552566219266315528379124214732766817462893161833585445286386311336614691158747227683454624169672988322456114194173232182217359154916823824597259499583328525936153499991245554396646798286897337626797852393481763235637138644852937347731482529224612531263173124769543545422624324519269153396246657757469386663424729767264884271364521295576686983856157689766568525116895868892888866187745256336368885839577682738268679248265684157342691825623222614539456387835811414433122383686153519643635387481258143319499342739181476294822675455331631212724455514438412893494417813387815465757463694953145247616911719493568331747245516343349711192583186163162838281457361237176595497148954811147975231229617373231475295198229455511962831828839873216781789836423333651552592641136985237257143653221559762977345417227279793361569617841254744192617318787174377549714373782243565486165131749666781156639622258336485749271128656456842774785791734714748751156459468825845312743633651488761524164528573972564374494572436419148677441866968242438863244447179862447419232211188838215717586731388625433732114581916569884894762655969279246677231474213211583933271744764287651838722746355259112727694993365414828719112554366592259376394965312154199711129138213163747313598184181749484156754289499795332939413594291854543419112915417837945287528863758988482495334515161124842652217523461142656169263948189434129668959674749264519349623468826486686925624565257682687756262932613832542763417325674273843846274636382956757495158169347993975178222734196822979283651821642826412537715638421475289552467328339694495644782395535697634123444117799715681194988688853523575327619492952336651286216254587445572112413465184799195888949457861625943829959649532639552243355335139484841418146499437447532415467539723243236437161459257419151177943362162651886832198119394125269545918491395583147883457567211951334889261725513265442328857951918938645622826197174863448155493625742931178792473173144838127351348513389613193941326964473267586467999572616426982257315964856754671711279471239243674295874991818736398116661731124948523283467216623546152787437566237539537198379435325453851928799881798518466128995351945349173439995886257744763945575265275363446449148494232461565717617617566382755553178374123477527214362189237288533731468793369397983641155213337816879729466463278271966829223159745561686332562374553215283434636257542753982195764333251567692178938377836923935353429368947331599264899663577578596983993512627429995754275478841733668441534334327458351393628344622825679363253553814233624263671396979572184617633247394535916673965163654216928794411911634222381146237597799953295714919424242378455412738433264714159326391258322939218917732663853641531855236242269969538196325822813874233593732679438371786926674166674191885576971151374228822378261663672336193526846866491267792625848734716715199786282181934791415146346516142263287141456352424112983882584195755173341817837226142619333919285611635563311696616464572313949756253455541615499983944253659275885751149326246447224794363354323698681166497336961531259247472286437294224584691366416321176495516335612439855219722475133592185135121623345572267335463192277418886155768616462422417419479964537314782364295489743487847187162224419421518288791341658143333539662337868622847891153469453822164259754188388146182681575474897251183876719294821139319542993397484525836766966753299423713513292735486414412324133429696765135591396886821133299565644964987159969211424217746452816329218495349891876334657623966587318373242528866694141281538435256364282238924126831211229441382789446221352531635119618529116473655664554264925651649386964149357216667864394911213533748615768163974465279232286989922367213377178976738367221174258718861166191545237794511156684113377717781369319369735535656153396924223867865543822397867898798298311568767665531835882267127152481792891612363571171726486672617771725943262784817553597546666273386795665379791185541255574663538836374893327452369787924828394437123753289167479533922473243774896581524184597152283865351615249354472617362472527785677735826767135734648775673244932451711544271322254896242246191529756791667914692666961495122688412676552721834794952187261284851251428493565791351141311445687784187657254131221995797565199326211194992865638227982339284879131164625945541156342385585456915724424826392642267966655359174475383181348749632175195996791642888728125843542492533765813569852145244287749423455452243622215422271233913671413632294434459443812629338646849854175753551888817482813184688847426253432298676133634253812148422749154651744453296364857631559939938197549527221932651285816343682933249512597192862614864448955272782615359379121222218154157724592197231369881133747446539223349678174142339547666218579446752638542723426653713248135896771139431175881925228258728961984145465228334631752626248551888292277246963651118432925195124855645456365458349255688189352431345522319219516461423714297912427268181361459156337988845166676495142231148395117877883338437966838799728818238988644783194143418555465191232848398598482734462219339583949117699664475236499426314897128921246386413593968238526591784773837236162912269638843359813746646669585951527233841682749169727842159573244594269649939335351272132377549499877821143289242312493386535245849918438665533653545399347459224718746713267743372342941213987542783714395136748284814723871811147654414525228191383573942928133481346297116198117742742358258964879776915757149255197144237185139353592616919388519543574344231223757189116617693479832365476431192681181536695152786236137591324742441657981243416198593493475138587987341156617544331227279265816247542525253426682576866578478333194567439696238267793249933718321533991817814132179965172244749669639712534775199461593591175958562481183995245148784366245496393543194225737162264246894868992256479672966971479577171129298138463238134974165321245592882436749729118789736961893397158691836792387388351719456324174327622336558454375674735116784219892265281547146511234794962835513158533655424866535893186387513359152263692569158667812833631459716566178998728817569794332939354532551336576166568753678254393413611685616441997987951542357584523661756426556633169292349224929612967435272275886994793777764984796871432674391557811218587146391893237877219826851559797723428681237472126954765466739134664731548795417688585343796195891492617348745227216815621525573721824973651333228757111432362551854475999616475642181176312493391956275369323493161422951361728851234122829941294122225241538453973957159661215779569126684638245924738564132126815936242625484918266797313385568483288239154534887555725429411599339575485134159461358222847445756852267822586316173258448159163125354639134541627792882439539231885291572317567662657163362979436929474214319251336634934357762821517527165769773152188124174812118563615338455159656972265119526364645766449787531426635859731899755816231459458356165764896578819545512477537531367931849955286247717631534891549821828548263415968631473564813342458325549537971437417311646478776815831179113115196717738312214365228619566531164527497667621667262467425277764332392194341233924928133763321278874963443766593574491543339258594914255171943426491686757428422413277927547868231258255996631142597879125334453236872112331588331313421737188861723555883473641124342423375285263148363179368335873318218711368939629446588873563896645755248261419244381789856246332162253178818478414372643565194769436563861995239983213232852348896847893714717944884691366463829774212918133339756173656179855239144659788329529985947134966667494816179353612162278514954985499195419966792868214998468125178852418981828734142517953623927236619263364224127443774642272372166575428226317129831274279582578933121635827429739673946192852536514576494385722313241953278496127951119815463161556552291235941313174493659653923365164694569328322444228218563444718579964359652299813725282527337833884125489965229246484364632611673188982635146975152181524731618593193825427196883442517888149595139148673328527839166752631488337837634362512487137481589493541552922252462842966873691232718774526926264745711382136929121353986717563168643111149256231778226418736914215362261583621272185249246211412641451991461424465946978251152338121343323212938844445664232126638457227258269599994897962922126312842952141411789765458288256138494391199136296545189691339435255811621556762541317167469856184385911658465525945499289128382272742232693545153328195538718753848572368147143788742199478569641422591799185571629322521914651315312711235415747614687421762682262196563954492337925845941368847999924452389591953153116519514682817741961447792893419325743917128615316224796758275498325484264615477335155346433416589489221256515252316255636687976899589626396414624532733585754631733563279824687229976271389437289134324812334555746536251836443428156926925431351226969519573123874132613883429481914833723541555319577259813467347799821815511241628359152274842883467452362293251767811918832589555786819882124511151861371845468311744641348577455359114277244231925482954548954944947713111683719487931157931798864116585754956768834321115715637291259863859734783699286494723384717778412398627368965616827192937362799665248659431223471742699417122547965368822526423671383478258264723445666558962677558477856633135174471875219931354658155566216677952874245659769238624482461955664151595296315243287134841247714981297363895118591491963792863448558584418217693183729417425159183636949377862993211826675476487888717378171831757231496335492622471989411781683143612458914627439966396723992532219545669266293231632539232782997159272692751674275373392322614464112381363196814354219148312462177216731644422379373972993765679668315927592819339432581131268916177643924425538439442796122191312657646824398246912357151421326245547811637882339131398464214642161382336594658284747968744295643894295684722726929229142224882541719944527694549913467857826859134753289326137397641575439516184126426342576711613426132387424849596472284241597979315937457993548643648668124391177337136334541982891122896292581413969614776387456423544614429795519765571687893182216427854666234656356236466581899753656111435979427335725873551973694734113778758275582981263275476689427186967868272667424939612489151378381598857678846231433143959697746211661311348657886333659624623162859746165541257914665651387589296818779889252825378337143571685131671947358513297429239417218167128971163844518737537177416185949477744235491892362172121638918462994327962686381715622313745671355651351453232163387999541395772153759192129233283726162563948387235651913879942895655855352119824335621266347116691586492477415826781697626826118893156319595934291889872534918549312724242376844543866341625744429646285214363194144889113522516443224344125662283191558316381818711367752453324455512843236625654351318983751987314674724594147819418134447965741142176446611658799326183693411634712774555957154935434263786555188911615688291758626785737214469193498721147513922534942126657996382571246222392224437781472233954162224485336164959699552748348499664258847413545151835477289836237357515395173884959411712229295975488618376731823271177579175565244496738973297641254963673241771142185887989891254745221312544441441741495214363913349369152588239676843375394168627517624621234248789937546756477518575115643936596234622917321743913436681533973691635517833674732482197419162188137315914219541584925488466224852277379576725111685256242243234756214819424778933437511258451465282435571454268378846934294125889541894312993429124574991518475167194989856742527517115238939848916184138315957984269536264139247611265995161647658953742248142933611817892184262359347824169531682586694222139233139921525834983142653823742718611572685533852376155782153976871552669215464292816639422171561156495915686584468731474139855729693141458177765921712731488995788294841673513957212425691311111423148967473983937748991812754964318371487496166454221239738412786576941636552448224867153121433453245824177352363812845888255638555256542666763256743382647325265447623458794662124277749629128185865951116918931425315517283932721243656997182637262925825963275556735756916383496496787528424124789288814915826425547965852781331648282195582332216265214641725915593365931278751831158639871443989859336454274369229832633939442268331284497255628632819814913315629719871267279121775658971438226554518945228765173445278491224882435618154557285821579562184725599477763119435596561926895279137732287624834578964293478721938624897469468273155263923939665892192484145846743315183418893727144117169121119625532238717512228868678127913134583624546334335995356241917465244519642355197223386129474795793161247595883514518289617766688925547211772317894788922324699586625167875111556528476568677891783152467432275169786597263939156751864321948571423423922272518786774486268565452272596574799999997432455259449619225617428944778455469541785961475287899964739691111714881661917177865357591711552963339566321265831236734315251851223253112184846451325681545928518112531459311925293417722235558289184839225119331691872831316629565912241292169193215659732452746597159715623992382356499228163295569241247397167313553227819399817261457169246729585969272384969313345328254746546328258697839495216541914634566584262625128174475568796496113655763517697868752114222114271419422472133311151542441641857745122281662563768246478237749731162717635445759112943447261721749437344364162986191578293145281524186221452795538351919979564732253436874391645688557686225747274221116789392837682416471412292246231576882224143778129539127377925264713446513821518161648292487693619493781679723665131623658431221424494687372234144554418573975193981637244369619427811714321579522958946119612172165443568726316416554192931897649654192793892435798834426865667619266363182886126769776723951465227238247586226243455436934921515868853465438117797596342151772833358657838747533224931514483269141996865399926945481736577655342281463397124733744155921369711216288128486285154518442174843433318251328284212434761755128132191138861667248825532154788149833961346325573852468184879198651893673957574872759171445365885228942787196211953249233816712225253264686729147195769731723668559638118144173783544458679516577464546927999418273254485238826236553851111192124698778948786253348214999775259971541361347499448327965739867117516916195724768331429492316389231327576688849319572591255799876271837693755913224546597792492536745376329592796196452931936719185811741767821142691948482918145255466778737681636667994719112737543863218623947744112558797634244397216435637946264441239566587117177343137492184226758382219244399941261521763836267423825828655125474338471882649479541436611371171922424158649792663929675138289493346645731677524295477491266638878238654111563636927551416455694944822492278646743232866323131592555171162782615383755599233678952814421131374216151274398995711493188756513745715934521161381188933754633979982833632866948841196285897344581393159387529181422372296415843747234483497133414237975386357123868295652117373865894923879711786373595352585167559479321391454753337213113899423568525631967413598975157741571677935338524827986659197181292926663471993938321834243332971256726354795735773772388123537198491366799186734325585423453836679362454641821824519962591345258885685476356896369723684526777416982871279424472421181981254584598365425491927959932827991229615728245797642442796323129295253497696262151166195818391783443885458969467854165446656471269457393376454256457268731158418878189338249491933365563125198926849589562545744172738179135223969281724859392988964386139721141622758435242769616233762475123372375138771345957724237272492829898153662469352729594412779345596427835173488179813223127874942139531414539342611583542139313641346184414941535969616498618398655385143733535125667883211161926149897613117674246431755383413112922342127416139517111885545265933525984465445176325555977978191552162564614745241653857961822657279535732944269163514449943216452143924921839637598988538521677689774747916492333142598334817582113792292991812126733229912854732868775944691896165672411437654366345397618559741249778813318779919164587426832835974166293742557274258633254671485963324248715345524614961946352139562312151221452974279699381273669535787579329367529157417573377361555996458869472844581642691382113849722116286461822786594822769725947555483173679221419488354433554596483161784754234153819682529327597162415929793178254332271271481963542699684116239561147972867287339755433226838867146436861996455246733722294571117324977184899318947954535126413421254612577717928162182282986284517134123584219611294438548991432757753352444134759531536919127228146639263576513144384656543981649548289782192317612525712543968211118477639998986626313159837276412692914547227493727146954635667168347771497955774342795747751335612122969364799451562212388225784415243892153398114426715517253153279144779719528851366218817482134449169262532866154226392675123323393887923575178173922141812286272342946232497421988541724147456539774228558298259357436281431162588211772372162211993533175934235534321425354421189289134391193171757811837711861477119525541132324966111646475288242133725247128152319784556316987663381433721934989496549713778328563927561743582585268349372488381624154732124222429457187174832171947336499176445225358978862823192755751215814252192618521949111888648425543257469746319433626452984123883754339174299633919619763423871731143441121977844687563197361296227513127832421563355476248916184519267734976733365643617414727782131494542837567771325773648356527927364916399162439861443796143688284489286544738313868289284892929968486281563684781638885911757475312258987837774944811298267476622755589211184122232387537744871814511779325863386467298132831757235787217724393246321843934292885845797447539642421828158117421492511879436637659738371514552497797465695957919176772773298346541861534241192942637466818795189987669618912334338917813271141631452435936846214893183513733827135983914124571761679554383723129653431173291952236859755414788953665199849132853449182914613743143269829713391227855281125473532182166616563852846171385197292163416351711491225842445671297792164626333668244393687365835227472223943676329536321616295671461199173723937219355934494889322548125562671457374697266214883699164664215741412293859313668179957287612662356932652432225633583594674451615598154274242339211261725699268213686967119755641921896981382474725162639225229118729885117998662619799838239395714783326772691149886598738674266244829267762548735347343953113643176833689516562856361871742556294688452316474674772277437983339745373447265218162116936277798688258328322441811553572226349914392187727961565926573112797339511578864133488995318381414551663925536522868916515215916315796212912489241492734944899871831773974544479393296615488646546465561537518599671644598228196443168887267326348393396113918138226383183553968617541916229315499216934151163382474442894981952287342569213196599112419959159197957937125449792669431864256666268261928416894399954531959484321586224775338313589219547968339639592229756982424464194411577775312412737858232533417648669522428412659189784317788438866499174945964653597845973333125761551977816196693676445116612169547214759751519262864916458914629447458464952193418212793615466623715481114993937586228418164527122243541443987965676994824112641956671424719292199658926947115553127396842239822631282536479765585427449762977626289119168842226125647631373483627661728451721563576656282533884798492229549315566764888296457985739549511362138894837972332542639629184295129874897296382798117625289643197271724812218353479555953455557477116793447156284125414482611762666655972274892436748121323331667676676657828655456159311224814559375923768236781561855951988752555728152338229129793134545543446845761426352129718637947183878841215974357144263443576486644547962689825313676657235874228128149643684155925994945696574994982868987455449658528842176946899387482716941257653764137674743744684871194438736632425464896225573449555592489147619113197554887547237886243839483863519956561381786295934112837822714847593419234872873335673286559952685268719596116725927275752925565213111344243762774752859978688323113527769213333433317125766446956131716431385574437713616386966622595333243345358398829937614835687946224158551689479342863171159518191863739847553968644881529827251958343461526758896224773529631317587345937255154591572231236482379817467297877666138461133327885698978416322792191872924145626217143473432263558723175421324712615824512944778358951998518622245819521864645125455191546269341225365256314296333133125934772331348812863378962326164921716185338643414657726321511733931491963949539511864877638924497873932179449597974248127733976592695741942641548394381378327683938587246924868485927731954529221791918338359835353454854714913282253256444832443621626328467295824412939839486661518721435827531745877496571966449521361212437887115511887523762894711735549843362181768451416464218984849436157554457343245225929218724718551313851154594453353777547234263122465818224111918264156842862115766832738772251713564643265923645855984949685343462615399218464617734726158879216267682427413347136959992274913577729621162429197637926813966467738689434752319223749114253382635361437198168652959553374839895443441578138897222246266749419617516999114512655264443712856812196467928122855577382228156337814874318476496186168687648659634669893767297574586562772441156191896336817178125155465525161992688154773389253275943569577357943819168525524551448998775681555341128276537432487838645915923771888495486591638655339918182419473428347844254625161396735271679238536293596734267182136218637613846192839498317559754262867677189925161788827277642833271478279664578472131234361557843196434396556746689196279737548761337844447275269916398517818624761855717438319191234311567842535837957558332713494464725828448663643873683276753513118715351318493374297482887552711839291192782617153413356182541413794511444794922748924195366674173942618487278252759584282915633914551512461439154427423787859813941232732114693867381644173319137269416846633222648135694439648987242819748663145576814961468634679543934289885582458614235291842339131218353985991154111714841648665547797111358442434746663993979196222842935866768335887745662881977243541774434993377155921912955439346115634226682854314827353679559154872263414128832376658483784598433456276138556967143743964542836376518889155894599651345489894258577439972565384641629249518695216358569263319374239665762324433222564615721539629158891634916266211293889771592931261959613795199118946859989132763699541397813244744267928893551769517166244525492833272982636423281143387675416529999569339241848488287881287171255619512999857192281883879622518234443685359263576895635744173951125872134675223971771498562752832372983797423955432275189439315994299454496399376887695894318557591872287143818719644833196541367166591879563879532814113293321351927174456643346234618462249762859659113465334525771224675127388651229685846781462268613219112827148632411241958312629193197898779462853468364743522411993517141733621287224314158924771193484925967611688149318371251919863891443826499817238312886873147593969386917757272828429955855681722971841255137959933733222679383875817277965576364745862466754842149449891976421883582345587242139596455955634577766696526421589227349528112747613696831113761993684115297974451582646288462851583314459725734399949755122224943853731994632493954738491582985712776474937917731553216755174689272313359238748442566871337813215587394653168439492631572141878197374224565551927773956193429455747534265949511581822679216456822538555473475224451372322374252439834454474916283163632131411586921312494337616492462553397431464115532929814263954451954994198728584119312398886175245164173549145149545479653876711512161885951155936343571348752331736847545612333524643925694149559263346239586491949222959567118735666533871289891681515958344389441762452215853861763392529896474393646294211142517585767721138596356562911724347174759989569467315298662693767254277847144447413294142663431424474456227922956563597557419928537716312484722799228296668281534597422242193451634689938214449432383474186295991677844625368456967512338958245288322449484628534381913635785844449538882857627679388727893839132223424596538522474959593677386799881756182272824288116978648327356541656491593741696844813687515849112417259592355328968291656155828534653289435624228667458779639866957851352827216441135252245732828333464638253233231162594186759753389469375641331439794787672163446841237576344494844631997843928139663858574717945328622569388154468966674424751324835752142135457861343591337283748676265227416144239678617766974152489248723217187291194683299548792524957996345352124467131537912522619483864414264673616378955239293122689312373438938131735515431322215811357527891833438161752345614919832513365389154944723256188881241612522812335275366578551178338573557662753137914262945878452566118642151614351256556368366951956891775629561139838792743793582952612788563859263188354377331651159587788182637149857162382853639339364758642867723849838791935176655219923654635797544355685468784514622519912896687672569143413582835116875369133125761972745451958145878267299597196923382937722564782986851273378111119249181169369592235311133553392285657213774587619486496155585113261435743257147723525756926181363458858415572611392958617214719231953281277752576654612121242596212847231263123137161387616256412219235139252218382778911312828628229839977732673941162437994191473164949621232739415116794699164518378981866972976138463334833449931321257737849721164832515422143821162519574533521344811481984351266379413285643826665858669964175688286332359846553424921858289266438716213421113486298491479714797684679576681732426513124187211462729973779545225863599343119881126735131883626223218913354997637223759349382382681619787119891965193351323392883634557951241592422544523436936114178477112182235367194714786512283823611495357892438975251524573654598595233544822455399933524642614532641111436536255232326896945272288356987397993226462532437998926942234158723658997236241653413961435365553137614181527518946827341616158893153966955929498386454164429481723615224194184284812555854747635891924935986843318672418543625617622794979345821861439452881773748327421866385749298347924761143297927252926566592754815883651645719861439943967651312117969674318418553244716815153394632893668669326888392751369398411586263593953592897897639495141758399125739954771712468357428599875193743159228519397423988141837882611871293618149367171526772398332212294286474939328187274785812916816523983268457213735435787413615495747746713396938241987189156184423715267576516625828946549431242336715797319391354234231647625758461927983518398123292925982982758243381973369759678764614327457635881774161982587825644297337532765949536929959686275343754533747787317664625517265212181951387961469654799597238875395786519528375463237229697245337958373365763538432243636712246719167453252823781556436629496959182744672342757935639337799392178519634835283135574884134887222642214459345977524768892535499554353751476866267538651977716921339278926693393658177314656638769811222733239327932391488773332214125425359578234329243896385261719555468918297411622896147413542349253421214415212391185374793792253168859791479241857315881365248885574542989189823398336863691658461324732887334154176574278311474688282185955581886771413821335656545127622594834628565159276328188824775477882518913394915835169597327949278767833958591932311434624381897299214631357793281171719573398478676346795177477321628177171941657151522293262761712293471355946218163535312383466426514337784841522455215279644242517379211691381978581536146472155477453954233495414613932166536647828268194491122122734268224418116896929155511859241962489933131563921987385436975627299617719545795954419446268177738557272596665431612995121169613737119129513596144117666993361497163181554367498728172638418636543334752839481458956698634149664585363353941629382281264616946446151144712258517321684493685114885285931626196972137614947764255152959683474618382754128662418193582715181988326436834258466462323772925773995421293118671913771966526294497982144598639499165337228272918966586355536625557968656347249966425398135381659956688978317973239656312535949628851344162515415189782522255815256821297962414897311266366977532875312777353254461799521684196351519832749922454994738288614871173917552423252243319684813151948456891277164966894191689449724995522389661585186268719522373727563211256956458338394284463251211142835666799351557729936879451692876716141384822182928254165553938939774356854332654128764413259742565411339117716122335594934213671199942155865167662522297442639496218185145363296465381254226648719665289586263944978338312144228962953745931198793746685727715939936518841683467628468289674342434967963546115981558594416765321574334273663244927645624867122885646357554915331287288258132849871375929484445349751426441433875667519437456483933151329216512311823493685842615344128718798325253839883218855313483358951253712649958287565221481311753977739164914992645938158812828515748281828668124136987991624638997677776463585331956279955841223443829525218641926326436652475292881334936698762136322992735967488167841449743583266172731395475416935726934624161978918198282929572199815377972739293522353957765895154861115647387514433568597222489823228767647384151619357732996757771458932144539833548549925532979125247863432871533843998653168913888971136627534175775371343456686155336631818821834391848672137437314252486548199217491459813386281329534913251172556652262664624595415593224161647989849689494763461453678692842525767435679834514481882633136529677817748297324238596711234121918754813944231436932952539741536297921539222419158141723619599674539211827499127623227265826156739411773195552526721229288357649354363635882387313731939212661257643347812218527161755643534456269474938925264242828741982241939879538544918691669442654253613996623493531795247322881514548748559983225538678389989867584272988234517751831455245463143347435196886236474847496163263133329324517126258544169333274141399453967719536977957196175311261965777799252894818796736911919448136157837313684531839465236764324531943435282174218794645349952615175769463396422575411987329612977159257563349123584634599582289784945987167166791968419566179492247761647924527775526516441941711573176641135943123794714434745399791961922846687567348766491653431361966112199553254523234417523463779262379613287146219156846299541913484331339923667763813297328234151686943319456643173215138931124119169494881485331116388213176874257724681764545264828145943174576161274591321733148191711355882749926631447396328253884549153779316214231483765859279544442293416534835567972852343778194913252958856744242624853423929181596241912639486489394616112353971423657734156729342269532179941214924696875385772179758353254253479857762363898926611161548131722467185286727983423545355232326535354428469321232398285137992753583772177121538491871854632678732633759866737432365431858623523783915915128717266861345238939424541172631823874465699731999698376195322962439752351558367993565216783128438228351132617713555467458255452673932724915151232776714674784973178258438439523675532792351358569884452449164352977639393267577417935746181697981933747692262655224478812952539379736528547254111319523438756266454698147136992979267413221737442882896171663214544647179523596937363589469776584939814639797166863766745179535359955689167115132746268644353284745237263384623221346842194797457995738375215757746257367415833731525538355395528626414395975147766924392357144144181688644468614655126598886547738441433928638464657395857653766632718741559698229324926815949698466371379254627184545968922476223154714122657752295889261917877818398214218221511729967231716899763274394864477892167135476186134529648438261677987571123535925752312227419817933662232491991412574421373525656172597363433663466188673976941266217973511299232542528414182984237496496556525139131523442521494395839961616765294557532392338575726393694614422621419219268542821558313255556789569897966193119447318564353527641258377437522435226777613383618318347972457692436371534155121238531444113147911291777726637828165528517214576146816422591283929792678762598435247488433863235226972326821189875167192491185854766171513538197678654637257138486196931469858573624448942918961372181659397263561277732194398619832481299337665889955176463453136991931735832822993957184292271665385743649199616862819815515451983731676126973396437233895288431843263895686844134134836371766121487297591231164393591549822182485926198951186746856178122514691323464755283142644158339639625631168967642321283272937762321459256352625645376583897614615526931464498294478396376933495773453941411839482515665375843356361922563223332994986115826632333685231526537219293595382535142648915561322851383739191199882739227135383243258333922389298844138523932167582976449622779827245639841523613256142647915836216969473622493956273924128321785451724162638974554337227634794887763391493642261991259625398738335213971813294418273861482225779754914524185637318874728911247593477795989321941311838553482312135772156922896785343182226485282431235549228236849283612492447794226912371914485499382748947844264121155612787515716397374297773929684446266156979384428983224248238838644875499541712137964139368539355755693213933427469331336528323923489747924116922586937318959935671972894314683991898469895173689391225988418571196297485417817437527887444475547722744822411964171159465463487282219329855566814629452695175795518837468626342964576599814548913395262755421657126313227396713727887192669613962681158395698686158921291582755449341361411691952877372956775641988573466391795251211134698778173376911163171114365512154932441894832273554733593366184956597793251436129117877711522639942667184838762489928693346294541466416118779276635685294979436412914173182635661515731836311254351151843538245592896441161613251969431539466287833977853199885951649351995262217566873313199841587253313363851615447911149374185739421123929321317248833332217635721129448695191367653175725824732653722147866849216513849511586133378497244346915346263168278369117693898394816222666468696553233457635391727354297679966833838717358969971353675778555852817942277422879244488264539122723311583354399664224427472857761123799746416722262136225461117423471765553884566387849264761851854834836693914233615772898262393986835625272121253421874712794134628879971869771118437292642931619656895514611636545281616392682326683222532883933985754766936142474952752921761941857162936239143611219732759898373624195131964552836426389643629347431214829911217142231295829172517411275124351685289951751864362787658933791171481256196913386833353471291327874312569891269532725364568852241766891295459125735112824794471572797932151988192556219648518954357277765779147617229376615914351631421778979167483136795177853883818689598738645439267189738393143652886178193932863953614925877714789958321656911292524144551665112113181738138876627143434965261485752134587828923832589991783138423513842724789981447738919636923961336419292562289363812843153551482936562876239641753732387592314596715292882233333274698616771228738722666858551376962196691927963218286593757131918735648834245168243579765789187528586875598652323871819228383353133134428413974283784548649711755632582555421832293677949163593969699454612523167719187397946218467519495983136412547214468751872532615453241663348194738793882431441794516872737573959647792265817319916788247379355479579925729152952148239926142626328697662363731771722881688518496778326746896561942312313681168988823167977382666168689885481641541227475235236651667914423918624437274324796921711473937522511836673661683142277255145981189744543328365769663756324968755745328468525396878821448358365378274224196431967378327737921152421944732245682131331734147379735945158181475329462414123134465492774622837915992114891911917612571459397657659822399245127647144244624734459993382514635423469214759175363648964664415177136797822291313821867417417369538715397342166447992479668782241369963547622718551479862234468764923643438151628239914471986676352396291121334574184659639386514941962488637165375967131896921275371667911868388573798652156635647788367314212738864845439585953333546191341164656532283741467696727257571189364837461171328128971344491383264777791345219894175972237854586912298282359761126533216443666644425432472613812628363141946678116252912612375563672648658316542389751625351327911766937323631858234552641819282372445111123995492616644135471235113835249267325999165516162816334496124616668766822373625424782915829189899329142241472175794257395436147426778294597928917769184432322226939129778465372726836947142663488382627568122433523978552751988198534119166934313932491158467328426246723419439183318128264917725342652272679499919944493752685912369595545648359672424545346934757195281475597424391981437693622793636557641352726979967478259825354716974928573799125995162973816173646278626377628782551768284963524926529185636585417179362327978293377442935979275181161652363452156571881432418577154894182352959516864522386565977966189599493495455892434413358865148334836911932392379455822255336997472562251647512836217358865854137858917547362997924983286511871123671731441656514965568923216349844841451362337186852762425389886317556276322611982547413974677317351951186844485973212744243472647939383687651645316269937393243312995272777392658294123396929878514132445271137362213573553159477935349394844337616763223215331813761526928347487179161612332116125458358997211819461344538449688385611385511912944865366591869473139452547565996981622294462169529421678216718219586262592335744277138696257873889423418157732137873517194318324667514496831467285388352713425413272963554576821389385146336648767146765973915547885196239532994747897347545893147648494342829928457854192213619687162827452613589314351736127769427614742761718254964794255781433772972967559647138427726739267666151338294748539655984426645419596372228924494375969331682445239514598522322195323513883195132744316292293698922579477319215336757239995451779792979641953733857961475713461169498734935212179115693549963234368752616143558745224164992457144638362418338142421737652195137733984582937973774183458354471444522153617242198337437947734311449237182242928649299211749857468892743826538994838899136165758899772388211951654638379671269255432753491327332819692444198246183125338196139219669775826362454828457766744566767465722644629811712734198835353552238571349732697298421859752752286279594753198841164511812186167244967181139395112864697412415695989739793435933825651522171473455656317281237789682548751627272241288625145916456322431296549568762943711643433975311883746831319457567924112333461758159249933699139779433888732151742792463622362975889191715943517423994458626118883281487385834679426952119659693267414553153387144725351313899496929541212341118529353969551251556863511267341463315669422728977516632651956451838824618197892413712625542842786242774633716842994181411184542199472694246743126177275913423413379513277461437468965255822946123646241929722326635622432715635338762569746593565783779477844172197497387174998919298823925549751328338853566382553187523855211797144374216334856529714412644619558196567351518387723968313333541848236378685448336156941934132196243741626163231689293932135833334976891548499858641895466291162793481113359687654974461383461238223739875221892428658167274121389323812781677241683242914565117154573449453353865537728811612943672113328931639662314553343483226355327462192797515134421814421635921361824351593366984597245887766691519919638218484775451374183361119293958461819596543944286936246253251263577182449366855446571869651357347847144382419744485595565244575132855774186788166296751246635335378251517298849527487816318348212981692546689564875942897267337991949282438348549974438312875737978832385276265519997361173355559773312195113584331596349225259443266697539991433587283131128391794429236263235495971272454291884478218583415546454821627268963247366143627444337243292224836556517751269415167831753279527663964779423157493373271351482663333424586388548828365154827646636761373836681612411337646579575694938328237333171464993414775823162916141588615852721563186417131222173262373989278117311288611541833919118263952559652677223924318393968596344579259942897918926499671433418198794499274672199138428536543129185877781312212756695372178546296147545112238267613616516132487272561273318357163639436655815727326349194357319211217987327245756556989341563372643814471158268267558835935835442731877783249166332319865448538456232836235948344118354875421895637318362364114686614516258699755377815596434887471529649135177894761781234583558478715311898523164553545994171298565943722647413994739654228561739829481711517125981371221436139339153454948443959527222279144921523184344559338439533642835136167913927373221952574363249688725132456439124553621938617312265417139771546136165911946942434895613292138293111286556619363412144413515424786661511228235491627532761796177724717973112279779315579171126295931117687321231116294475713364237175584423194434263391625395641286671248158759518412427185418921628146349875266612828323654513411589597224491144238276986643868144338845436489414286832385975925718126745968749824528929692369714599282756354139662285134224294691994249339261961816526437216289288737358458632498713441621753586328433197943676526377611436188125967278524154118191832757511471654265261773968197427999762191321721162141725595227557461887355866392571885643217158779645446772431967136114875963359346665165172476734726959862527929117273963641347586245764797256629782368315916111961754121442159486852933641855781597776556458365927928518343654794887119135473992146461585312251744821248249734639813549974838289852728841568149661278796761843355525349166222615932672695914129431311753513112181453225256915728318511412881528137739142321992259957725441113529617358145382481867181686171266688279172567541243846767123364229261563128332778562754739199455864725445511453279346422291325288521697849221643116442796251551939119468347435365443564848785667357623996146242953585763956556731651365636692684887476365787975973497962789116796782413542522514862191214143949822593199725442349541921153262716799675379796644952129247187458737635323347762352476984577946458288863826751517814161591416233221256537422664843665258891656449699431135249266353821174591674413598238615825489224714621389916181972896291288366877731999221262633835547118644843424865686359261545831596446977479451924475664269163999346719135627459579177821567667849319815571831586653138234282945714143912415422976484412259159955817767817977692979147236837677145979785674383577665551557637849773475611138164872982239559252432629596745774282315219718314855282951837433686767125843215617495874552673161783641295442919218278125247827961765142869819536335214794468192581341444797573287463867848146896777932547247615575173277631876791545642431843397587551531957527229845778177758491141692335723416212779951922698282125349411128548712723198319182312836845346828255473954332837855346467216758579127634287662311711623142458639594999433832647916287511396675917644313431184149966516378239462594144128556872666919344813965132739492653612141371738397164549662332826698786963155293166434146964833382565112363113935431691627913583131987396668345414164884721195475758367529467514181587893754737522414225627775551383686215462642943251167458456557328661921631787284798537125281966264186323547281472431136933223942563925963493519613733112645493342784336345282994264194739831977364123812415234175457165883366448553337855697581282423199929774591356612442317511569367442748878316844586745352171564921217136355376321775928278832623886727622155823882134524573153297597612211757186541388454153352385477159262521456268711811662791443243275511112487123389513182331451378816236776742122258122348182124976662586224258946847285424935875992845199591665167373341945767544836593483644649347425171684749516125687978774455394454976662732859663216193649195737936788431138442239353559432673528971522643333331348774292592137132621715986162465647862242565878934969996116976377743462879579529134424112151575438729831616581258812921134779116292191347896367342351435486297937386256856225417183843878766544676772146258682124798369838737568656169359759475566116652193752269948979985131673776954811631657174694575684319285576222933525893654151919991368236534647448312664936238614578694646725399672731369848229715449145876567597651118364879295819927688571914111178136466957886345849994574431733879836561694943427965833569876812428113211354661844573272865329619336746271635265155526441794595812697835842341278331131522345339821275719659557194347687253578474126946347923224962883186884251664183523365338769487716915836145674636534887561351699443165287691546422548654576611991231465398823832493196129133111718688925376769556142946641219486982458656748523492718856744318998747126812745825441125547153431185571464273367673168711336936292798846916667114921624842914544781419244519276446737398171784712344442815665177842141527677957313342992196966118395383759729956746697352627335426165244579194158445945134899132553395395938177217257225941219582559353913928515258611118998979244373979185578858874755974186955582351765966686225698242999718671423859233598391348266436896268941848142565387532967192445285555599115669568141429442592657522397192755213527289329271566123379928647864595139839334183784366164916486957556237117853341168317626725525961293992552789953365383577942115414327796912549513213629725345674195144356471783377681635388459924677786312311337399931861274193216622757637735539914372713892173276861165916167224525531897947292326998629815439183279691549128986323121929265853844914372125211396866724149154115469651578422759298683889773782676195248246297839595431329994832184389169881417932353657477726982156964638715258439639176581482682333951378984432587713442134143283699992965972988584811555836619814312543162146743561865944865377287834935384239858698764276134755543239712988256687125162382531293245123559632385676967198527879557126974124613974134463989373251949268723519591133319318525526282115269337539624646644841931864722256343118547984293757135298442314133591918468611765878884941635756853144757913519219168827644253423196891579964255785554295498356451118914278397649671255284484921746127714513176348262399239522992649427428536636176748511356163455635871572296854738796812772985553811335137816678847889291427945573756666166995184484517784364962556128859937685699977494986291134437792925591917253926832125826193667278526553867946296337363759255946372456125183483328865613232713944154613851447116348895748621271151791614131565214612353793945347291559815478894231594421594369987132771972339441438943985667318985567888981822975544957473341348778749583558829759281264471867948723693369983759274773523455721748925854156619974613556531119454779357463976378165639124975736293244631687974635971342493625517258346178258454985762926287735122944439914578131431692243597349564466151522225692965859784554191749856137591348647726676365183216953157456888951789292737878998245289672541335426771317625275235591712968172943519593488132181342128763751281623168845835117493879263151731981774991626282128219354995461335949796771668455137765146189674135295358228324343883632641126569954621695575139763466521372955721574962313834631846789173445792143313812526313895172818417161412132463444464135374415369884196549517497229861366395721349829354912219152435946625217685369271631646129682792662263697672517578723466414959739615773678212626754915167952167946753721568142453133716146246762396822685128345532745914798586419788867287723741772485216592282435387525885454646287384811716652566125355939945389876331555947715568255949352492783699831867161735996647427832126176323375684559353526161124946516682569951752152115142278339227145753314769894646383724746629647948951877398383427676777896329149659812744694596777944687971664661551679493828584182331927953826415776516229246927542215186326751541392651747583465339492466572551512964614616856248256246574189476144211614832598645915581928858711527315443552698122715179191639216127355931736551338369642628817784342434567338924382551273762393565558953238334537488162166669792749252244727417259284739934251491151588873874115611618232846111672938827418161646582132353163994486424123384142116254992235851539297892375736245121742544693464196136289331429578116733944971793891569655735944365838358965146731674368559244338177534971472368624966872156177191587923944428793716474787518247451177555995996179852185312628499251384663444836632176268566386915484934611475614176689654716212832311484641352118197985523489483965511412622144182728395583987743417332155668511429792748656379963291159582773497619617343672795974538734532457895285297145153197549641589334674955158991279495833627793729574985599782155949261861946247387464181341425894398617383266639614678197349212983153516521152627111734691776124797296592269695918774674446229279646343652828529464163315526291472271533595261153372695912392561471331128552836557227245392253827422838972421796865533223474258545262285931883216395343957299672375629611768843136916495284997383946571539322831617269891637199824469767883984441911645637314733283371499219737719262716267551647455351934619593428315892941826164185929719223754946122518796943575719843278684365833656141221629393543765337198133812632382852762384642496235548437919519297914162793516756774167876385984276574222683921614815836888124443853957665959954657428113689724752147372151964544326438146647525129831449821551279821527668416757984392574462931829821826231368659645157932947627495242443764932755912494323939797553885628598853694242578348346741513481639591611199323566786478649615263139341793212883428859743275244475133172527535734292165196416359711815515284415379318316231819434342717224716729771335449245761468445941161629211214591638376651451176846354132192835645125539488523778142816928321711876529772647223586846888913272918788824376823385476271957376913687424154832488235874928834949954276948525752511939293619783484161295947876586784128821651266242946287143233726588576454751625942845871251528125786938697748524236922798542445848693261176379419294941928237983775999552155627394955264867726986393165432237917247419254646554955712442793699863333282799485922315429422566897515214355186238442222499864482636954182838753679773449143722614971295437389277262175127486745429773453678515295743958986727161448781574249811314646575732656614211777637711385853432511432682134133914455478679174234516631818218342369569451124254297281525817453465516171488697946435278476224833723946125686387318964382988341335576857831983418619312689267716512644377191371846726217269149189144351464528858949898936621269936549342987542941663893778789931388995921158163415443553533521399854429611842565124579343114979368321443699737861629568117383245842236272864654167664385785542212778555173221433333479932591455658987717962684168977986751427296234272626353326295423549631685926921535335327463325761545268698677885518992313793875157277429549869787927791219418985529754487941111439491793223379795779332526376139354668379623491234191762278484785391497124123817331976113717245214196486381349925459836737931735655188781728324589437976864627932135115356253323441953689913147248752517767211963122575458586133319691482322969618879497454276779569636713335951222131674663817134297152465629453545399537361568642531712773622848343554346884417675263539516593773844794479416222968278136613377768632352512357341767593127282996342422753611664372122885235437867724383453446235355559319853497211196572581887931998949863842442989195393611712259925552264216612816668458136446229435969155563998277842633278695174889358526461653428952169383668788823771852541397391592433211555322172915552267111257156124493149233162952251832425637954736542246433923247811176892781227334142738658544163121115888844742286961196139197572317786355645376689621855943222943743343538232244519874288916291174623237247498176881316747865131312323462923464123581376411139954659534739125312642127524327766818693832422932855114957266355486133522118952954682568315854129967973869121986638576215468611391523181173232723524459174326364997594156467867645157893727522459644375231251259765246527376221976222145197219469239383354877936796466424227447256755165873263917322232887441453566958552235383917232197884142991177545854551659647562245178713222392744959621232427381775723332693641649634659993138988445773431844615991273644282521851118194845959621294348281566354333738859318746536236819121779663671634663522766751893943467783361255393246555229313133511191469692423754724162963163589316157254799195631571839869526496246738792745873169353517214685367548717281776535237129791171818211597395934328432858592523595795362848344137134239983414129622826619767769558349117273376828157688612996363553963627426317183887154457955956751787395137865521537616311584845785761196749584651229297452271434216411667142313785275646492419367752864332581899821184522421762166558984161847798947236322236981113585973574763684195588287835221692684622587694681593568791116414497879242679712734361165732736347739692114532665154152866459142165121728697466941585866532469934952242328162282161475766757742673854167118235213356326649121945741727867441269281825773777569469464593961173571297461219784289591431465571185976367734117312331614742973477413313266355792618216799461764798631672747889229945849333531399358153392769337412545699514162364443996249815958343758877883995896943323598775531538736468453951929317562446184427276981813723918652351792877199779818156396329376636743663378871718148356157797964841492522712499429763296931831527954937559849172845989195146625369123727995432393551388299225473134342943241227187793546582136964753984412497687591861561424388214965949966592894348924829662694759341783731491591122656735587532573176882954796247526478719249575945392497535492851232139163844832995477241161947384362881437119916283519451371441126541313358126544662631351719419724483391959863196755263331631429268998542557132379675272789972444592593561845127271634354814385735566533988543758198569212767833565834561663765212359529247931498786768384956791971279214553413934213211163523966684386416421657553897748328313365781418952294565988452134652578113919332893597449191198142672793864816359674724399597144597674144318184131482515352262179839424353695312846151452214453436671233319263527255114694187542569278141167829575896353111952135257722972132362683272571116818668223197667739138569793636626611515696819973729915711555116596592549739185716467739343833111316511419847121218586633281749572372333222425527381116491341694186273699385446662566327217612214154528796272897143634929926332338883564563515519289164514415638976214719811772171766232592483129928492956816955853745197738378682551862534553182957981892699911627679181364651782174131871759825486864923486382993379273267139266291524725632982876998872642571775154496666121346259526225163677443661312375335528649569935344864667871411112612959914386269293632453673782737955421281297362432643616625142624843237821785822754638352924564934585193927398764652858543533899196352777513295422613494637924744819925995211836514815711921963333964394412152724652579756327845762523391881246376385634236421948313744194818725466969367324625993689723386626322399452786861524747558571553677567721985615495856534393219144942251247147165949663125735224416834193327181157875725657545947825362641991349886531618618481468331217925492986138519753395115327322167826479138817469557868987228578884243977339618487631178213324211182216597834958423425571914172843784988669684425271821211283861531397319369197795744644163446992926626253212591549791232711455834299623129822788213643762292474351386986649226417724883512292828573941569287417828913365217875152286356219923892184762581173451994298254889858316121159677171946522718864916787174936162397983687694731423927856945651968279233379213413144951134235978286495851766672629755442593194814852292541197559291835338361574822543564916273481566738153863316122587714685138378967399195988324141384983694552811462719411388577552844264646822633971338565417789494149388156128411831183374914183781373235554127383762868342516491843758372116198664916581644572158221447366824771293238673574568479536837826214172346397441243436362122659631675276362192794541629569112129978141896571472254837823895656276452253864573377217985195732791198699569791541263888317925729526625784923669154982457858225853973923715814923835869744342772549847493941647957171461832666765684877996783521754273247879656994539164912378762419734836524386139386322687932523866322725942211216421751215294283497227269592978725943839559434579638676227739462424469655591182877728514454663576316837913837263662466117963153699215558198225686791134424921748292533111433975187951227464888211362138677835146356642988278583575822423987562367991121847962385997136259422189779178751645191585546713914218132714743727562364612689615326523118634334451144391553274141945149255586942534545314323156184414346523249494364931531198334342491949231525529161367617454839436871661977365364623178439197375622232167336559348156914142734126415323471757513352341386353785216289335454865187113435454638776748644639627497167456763121236356936165728137265994262753612477395366613372932921387611891377613555678419374314261134138428382635757643759633961122283459421833276545418223777584223515845654451713789241438541621188383386475376113797229871194753655285443215169273741743168578524126124579192349891786498523458585923786992434938834514165526869695737946191654484592557791264494155275849552515228123433184434246441494347683266637238237378344852352678161378831215278156271123142517849345291452573471799795591418943919384672792161873315679337954154917186569989651391528656838596888676176787776199957853452691912429686382865666223613187263126116353433547919651928121413542863995958799663495976439371411249271314747782136697854699181879326524481596289834876179197271681678938584114758116387161926833171231385899622736266523245711636529985117212521577295689298134729684261693532744827675456737676449564918396592343887459674743132698968586148254333264843618747464933297835639998398525279344682684839958134659814711617294286228219212574743411677441875453843141573234791236775621731541279326597466724541841393678974666137494456251243514398744573164562391286682231123761351561686911857282637931252194339412396571484784982988481747394545276594433472462868128778595586655687845835639554232122112114963418937928624645794393176796922652686382242573998346298414478954343776539144523593629528793455548224957786765657261473691955893615331952932342334683574555813991451331177278927275822325352133699751621761414425646696999622565697575248866851849878122141711721919718118367942649738555236169475863629154994838415162518216212619998494975796491767332812148476231729621818199242363561443673991544393477817235557346268832543497575543137896862583815467562261214473869186275163141479358231324837827767731843882857127667854767839436848259233284119763927983682476131634493734877131851527258387147652237142954273249543465953477256137629982393274465545493456823839854855488469493885291315598458262537712265272942826235132545382819725646149287478146116845692919139933456996631815675168254433721927718641894217636556515318266182128133194785144955428173635676414423295167288367983733121397849456759656284198152571576517514816173556924879227122537451751959215151522987891452217243352892922121926562254517819316326176253848684563277214794189375282344449359664447953172689457691482894936318362733775265612112756688791367535599586738417921258515312856365815764981211812943817479138413447575182262941124757369194138726867591781535115664288427778419751777562786248544695996463167562544225154367916813751168449699932947548414357371894174695763976779891388959141884481399363427852939133353563134959884953442431424621184657157978277535142798661192164191245948259443737338868868853252362943919653754165351845557915624155631972656627864395967946237927525445937537467433731277886335683455542992827142194556198832212671641463538554975839296147118335389677289343774525895638945794427423436455662798576586923912741348364398945397396159714241839399612638581343474364586679657361254289372816152952564612261231322284757857317192416458783948538555226521132759892682154438382331184991192727598115357493319813271284646333252626451658433418923442451379971522963754361313693712151794894564117668938441367412165787575294437626965246587571936257447163436632853675597671728182997612432312147148382611748574966387773618677857531268695424915951523435221467961214214732562663695958669818882566125814355275417927982718832149841195872139541391513335377938592611826283256459181469652749394117182766584766984355428736975743822137946555437613728461118113437939729248382782112445722698477938243623556249471716665939917576246622289491674315283327119597321171114428826811254119293222288863375143939663132633232213964698354267324655852571339628126381216841248256482821899211418253425863725812957631746968527399125343314328966649248433326449819318474645181141258825279234812112527941295511878862115162567915154843913775512238764992751766879273296211264246277211451613986312549224162414474249981153541943391412644917675988981876539345945192537455697698994771857133189465379329744673797492686478278173818988416229326385184412557317918376332111292718151176141337564214293575725562517813916125322778796395838931155116257412852771971299261129617276165916489874712991617274887611516717234691691196194287113916831697572211414817641527865946862535571187962568954352454473732772962149176688367224166295914588544622436189413688453442355438433119925253323321986454784431459568441225975163124255183989579222279293998171883661273137438932185652611751119445842947357917361246541279623788482794393399229393259149694286131111348784715765881553335123187683714122417197628632248911273123926495488513416853521289265478927621385913376573716188556182218236157537867819445443356771957126738452251938686369617635955345677177446917374992236176789254882863229634726311639273111851287584283956731577257359967434629344933526628862527931152765658365565774294555987796921558316383473354995833173242572688282835926431111778152257412861929842595281983578195234646388733399791717251368141862832293396725468816758327737612559853363122531392111629749834117328215322966291417278164711265417755391698967448823661667844396843446139199842128377139778376445861883868858751948143562186864145587971815712885981351295825212863729543416711877333182287737312856212816952964557992455112995563963658582633755747921652619958919521786695339846132236389715146818852486845495512332365839929411893835984591491713329436564242716764325327924227963685613158947953234164395128343757345922471773629829563519657564693426442636296556186724622696642995354647611415198813953247721949785635647813763962246877198533689527553685121195481883611969172966714159435482751578985133919882531663272135462113495811351637932561619327854976884996536952913696345765647813644141164792372324347548479736799567421646756965417737568974697881796151438569826863921862946312433453176115388567137879619356281435289968454416486262462412811674178181315243365757139893581288164918479568845543234731659315543533255632922635162138539118494979985485253778825986547184762239612317848199273193437957529649571221977563115695859331662998553424349669154639317776131684115178269631258829178767824521232128947885927611776378134231664155667142545698563678958532971341294455271954572986736415546468371317356956933985223845533171461531945271234314365885917938666531867484533178235368468893146849279597578678146877262277371675673586333146443896143663357168838213163555965712832348539381428614266432289384539629535427542329441573361713745245215379944236691871146789855634447427112711865177149836233697971483643895382524551697394317641313394583539611459587643816126318649573653315757944872769852953428296797571191337379339991594161373752411248466626858215782259341284682857529921312999998469781456638594193216917858863897421278625544133416796129289872877416465528535697985446886439546951623113974851753216625593666217976351219296435125524772456288258685153769111552628693726338563737399815331749942192932362747348495595281573738516983361932771556374895449195176712823892313519947554917772775384981928553315524214153315447724767521797597233379284358138256442549682757295261566348495316788244125631699483822799156849315244984154514765444132619958582225797542759466453727871833523384417837559635249198639427598835863488897194259443911231225688484315216414727417281838443934594185964451932146257359286579926556285137711196845597226511147664577375774769266253316162434942128654178331696896281451577654364356125936422453594724117413442124153685685563295369712352937336323713652918875787371898522637636643921712298985126933957541713918315659324259252861975117254133533376717163538779379881873156949131418114146932348443254494656133158847326789682916422976832673366222713281747248154931747965581179753662194335148138724476827124981692763423368847557874591446852841157362424278112733352749653814556496199193692285396431341678749531945944566913865441938891577254225121617742121696383164126558152325499917349185135644177134416388263571522571493555294446796379848262911439866345131784162226645694455415297436776913497962388352559278565563834543812812843634559317448477219488215431983486168184861221656539241773591427175623882275261814199454343294852642317986348382493233921345234184586694944791929134333568451837533945733811468286229926776563779995179744243124817427559141252649834435223725641247774192923399698449796138539752197185342243497656391154433431173952925557735519333865332174627612928712747394692712864411169838255657841246322959621712635119265694457436355441292533134143491783417444328499182938424541945594739592157639881852943822292869937843735335588742538945582218534435185969452543263533423226274513482373173532287625371144438248586563255595122296579818546557712745524831574171714172549673826948562664918461763833783834262649281235971527794895221962191791561277988684161542695128913299145543545122974283941827938948684975381545343559168118356249124227373277434774572723721535755824728237317367899844671411419351496814829615392689788778951169199721143643739571156514173663355162722386236232729246235182216777647252224183712259453218439216542745569723534931571359887567327128291742888835382753181291719261418361927181555857611219933994981511182956335115372465128295529285475223333621356974394492253283511312481292746312363338947914366725362467427686723273443942812448612364824364712556375594886321111315371168799791571951449391185555976129519426613926937819679589245745323727665785682129135994981396553334359937653674411987872612225761987395234693229812856732323784523554718841478465572265946244945648662559979472746867716632347685627121664856743666297642915571228833729612568834957413878474337346292358528865835188148627695343412262886221457131668819337256328826898922114155389882137759259848473642674599818312726681334872135832198247714183278729294318468737889888665426812254416922944553976786332131773857962159631726419576991344949194998325864593812862578814488381129781497121724786958892658216581992173999269643755799923921692522329599898223728418372575933979816819651324938518863647528363463616521366723447825939393184929384879764452616227691198673163767837432659184515349742566523294718529392245684734211255379517139969994932896749172658127563788589913487719387477771177157747212665562976866855892176258137951414644852655897242916754352469391639678413186657718164273397377575281661236148378792978869698832137658257455159231565379437185217819869514231913664792989525352527324998821532934162331833743258169139724958817928832366329235975395518184387477562555694992357361541538917538363625531322493595527869525861212366188678865521151396776412497124894619545453749481447228317154454966633194839452869296257186279282285273736428582271168938137229988539272468172619382228245454359351332719142514291935819171692299375284951678244918917288448512956513956221661469873235886151332336986141427441621166536884115435661797197665944535341214666186627487413683943488468541824353191126933311943295559865695285221155375638468154791627535644254328625383135255953733862729171539451366695913698499929961176566142525353582219989129864333273254543836742627261284728694928192512634922351359353768836131637815681141975525368456587433794273534752768457647947431628553972665518622146462339451669161837742924647721863999573534755582982478657491922338763661442141926678113977526243698135628958297759333321184674587586546594552285776617266251861171428136398163461265981216821645335767472722642194623792724771519154881522212164678415531144452525433675823142295424417313629753113736874938635538614489139631236895874172123754118198867623113568398373214142197394938265788633699153382169113136116591214637866615939282973979416336792865614466554346546941616562558496571434117275652629647666289436923914233595683668476334376532134173974829233133695328367411956759953568849222285491779162218197413842947422328264466263333937313119635553415643819287539698234166639554267124121448883883447524789218425948934728756582968233639434885744789721814636583993176948681557158772732551429985164225571855646575792485271839158652539364696798925145365558446464712158991496481429746996468292388837363997812936796799538299888933772368976647948942441818399481513182196247897246786713242497365126331749392954427127993618827764391236946713531738171828666537991134172579632372254116436259312785646213288866712961392717198432299218172294956249733988632241974143751588889784139638743627772721464886753576769319461434459685984867811857641972892679728952136411841635618276144142752326642893528555799349953929221229688196839247594488257774432696847112799269472456272163366332469112222186784141412211334912598955647351382283543664123919327328164441165129239736837275185959638139221197315117674966944529424471492887817766882948143771681926471142455825244299326811453715145995344148227611775573614246424149477525959862867234432261234771583365991144243677876555462938435829491374978411237966362935186676921911732948846121198873392195692783463618611557391724576958465966652715787936514449851929643117848394724461722893325275716317289415962716254329698918951354923718336427177846512159918816642589188393931164428449279591445295678442527925339834772122622775813611676142241739932525165937151576639795818473991377119679793258748414294285516314241659547332859415781622673252732194191417988765979456692445481961819332485112295388154973592139977214713975491256471248358155456115955557438918421114196719577698515379179597875273294427143721494244713333396215872682892536953628816623234821535637435493943496353561622275347363548543286434163429224345399758857385274853167534743645516984584888553867323289617297541553331353776184512929337318529549471713559221384624452663238851142511472211874523577951376485774615746428191166255338661211519713635151287699728974733137915321664652526753891445584472128387312856529827856619682995489921181682461248371636167363549983223361751241592524884533724511235847396713688368159837313353177278731978952529458117819231397233817214927869553144652348447398516293883294816225492757674883119929512239791229276183547381654588362412618896923649461544845468381929137545839363759462212754661865572978731449576627557988189521299726788925789156351543552336262856149497165424296469419649293765288699718663732944361853845135252816823334539134195354551539438673899197112993911374129643285564191998564458594562916325321522732959582794692919736594712614246567112381592656925657457548176747999375444785475112261612455275434285971281543392317441156951824788411649631582775668567985616577528275821389933459564929598363374316443165162269512222955759538548928249111692483231911536831714785652991113231532434835997974232433782742533416769563266458314769141151189331443744952466785321473682149747835667126343618323541979573448563447228839423542239195622284423535147954495819838661321925419725938214912431814649921819746831474738662754212663389151176589784378699143597474693887599917797233827748743634456481495873264882685192487312367882955996552619461317169383532388314989261785861849449524962566157256561226191789792661149423982267365667533127818212244186944422324161215233676789629315692287962547575929489488773141643171613618983443179532344944462645565466726765457262814719679395676652565722755866672747379347226183471434543383447623123221561118379243668741398122663187245847563155344881759851649778929624422385417529182151913759228739387754429892413958323816532391538253613332536341247717899325597234112752969183764878272417162361143275484277758573193337722996337618675698934675228868853715618927741143819214453822238561193652652894891664912451973635217754543382722371628676622669137213875299387977311988223771578692141411356341457266236291877478379827553543513799377546458946819226875922691761361652279648427429731869162446379591935729139599973393468644312643951338814967995699777974563778862382753859965911917372576494663959311429457493194229491356319635227225127165618522594943822118837385838998758374359392768345687193198396422664851638259694275236416246497713681125452443871416681698383952236252724993839276682966535545578132211915583112748686251344377411958942677794633528381216911734386778935915698163435116743155162717153196499537985441213693168987574735919684415781216826145594153958171554699151378712852222644543121891589946986354448534668892267798448321571271714724291457364913394716245321134437928163158654183321489594915973625876713238466291261711259827466566269559182844962466941622924636492645598958133447548341798443673259363189688643441328934818288456281315628447214619878639898825713997622794129367274334521516121481998557917125893381251836441165275377514688115646259564918384551357458787239575964996327222347981377957793243879641783125945794338118929217484755583867259538721874963123273366231182169317581463775365622438211918962565374498834963933934755433396294393365915467923651795599498767393891591494382222446973262727937987274924449928222754626372236762896252948648986236288641665453967453648887746542872441529882679861675155828168397513422864853978877549786636395659391111392149637495732275739963293699989679147266436292238235516599846566648967587761533565813963679291833536389932358382574827874564532831511145178127967438596813613375922371561439465748117354119482235961465924596533192193114278219686512287559542781349769142148533587624835118644269585486198639281292164348187998111341912275337921828632556162886374132127274672823135283143944737198623741387739815615461924487228396621773537337432952533143721372855937688934615112372157554376331249244279517438654435226191782313611897822616285375945643813381649689559698474393847355432271265874579756989261747735848933948688878621233867644858588923688896955364569445251193468876533478556142749116135695759268864249441547153952516168229244725944681137263653273339229317471667557617349656519861896113324261643299113697393241555747381511664199969151463382923254153148186231918953633297965746694934897416132542771113119729187859331418612422432861166661899473763463237643832933138465387913858386865574478379341324357843796144296642794958595224111246811262262377253325212148426425513398815515788439539143983933335811867322794175928211382796183689138957141419289469528591865465986295959971378243759646396775161342624431152496936971884455743591317421447966314918844336443651443917482196397147517978419264237784961975895995163874239861249679952212426373818627974414312226919128127746511291181435227318618978116925945621429884427548116881622449462514118493425397132213693817363315947276215978714817149963243182498732678636912894912271731275538841693122398924762244768417917353695756654691133741541123889385496748112627456412373813644149193191222412155631155674817743831896387115187172379452974118997154223582627175494454819133549254814154117559484235869658647894666597257948689262638889183546332472664378832531341178684739567297617138485985824773138878575354355536746217384276117622792867121666151217627189585543887571538786345912533658468152987132218196622429343397523683231976743965411639428679898344113146839478275235452676372715482699532714687183988473981691634233468545165565726217643869449621299564729364564665512664743245651385363466798514227537194539624878829517554385735527528232442572735219727145331688781115885341341954355557578944499974845652313998288651529694111414798689614186843913867928132316616188416455789879856117652664462332772743763483463456821512224241221348236555336956768348136727555422244211195636456865298191835252235399483754745993732539938221515284418122882767295824562286576952945717236795189365479214258623934314491224652142941515163292941571782869631375437614453479164886994196528941562616357216658455817352612384655254214965196245975142157922743112724994117445434242127462342259699251943556991689156199781286216637624874311756736456937646935149767736352379317718563112742491569879759772348817291214883344814333211221984313316123545367159629256882111493794475125676454277958673946242583721882569399367494731771158827835528831657474341329498873763291333578464821856261997935634737593151647234141665492291769294859182852441598752415319874963367469979886133436971973725125695846963993291246211349737386143798816454427616985428363565691616898256168273298348782621562334511713132767416256114236135454177921868556625366482364417769457648426133627546963729615828815161196371618556943168876227312997779435132782597224222324847452295429649241299168123258635356271294198154771635635351522119951174979742818372257687187994563121139593952775437787924375471914153628524666254938532283119572465671538367621573816441124492443648335853211957313333327411422311426586543389197447647151358562763787653194195617841895959326836428953459489359929295485456989725632894976352242451425733131846157614877616961681764955628712441659298814958959953941686388447813131391357246713747294118692578217927215736294415792739933778636942118628238118269762475922647523643428641765727921195511313686865356976548159183922487517791361426683582241795699324389984792693339283735341747798694673861624783681374173212346915284835786432855248361513399626482352424656771817211373991968133287176862927429555218337968938855258467629751559895563783612927152439372863734646283829915958412811645354765589491161378145586614247869858261234523796363617488542546514284625344155317229652953112643195952983699825347733129919167658318734124389226423233964552848652682444145861343858941437229379171866625932475872532769533881411767674334211296196277156914577196879723494198565451548863913338175879566171497934644433152173312286743872946221888339359661235786723569623519779422816651352464336481627684733967921294269759817652615118449116554418533262853966556956321875393246752593512164981884142532586877281553157283428275147969428932878285183598459273393642987594663453964559464867621893492485958613157154253188379862116428683394575434831662541658567475577152673658431819174976156419818125669898888834511975324615618499578774759366738974373735812284172998866383419453437442993196854919116464581847296617691419751234135289584852522927121587256753328371148236987146215294479746313884769843848615124543812186124144875876289539477574655589436634192163184816155532891578224535114157732955245117445699152912199635525762379277359894145912221153927992525669675453722585967635989256466527823892574321658373893529219813543512785986773241622146548213792963216826998241432257276893396367543437718268397583284911221737137251616158526816793175834712277195339653634744544955589193959874213182332299694516338751411731911218693378595157192227778793643717192615635896113144426627668756122922973433411496328519892448953953735841729655426316726451113243487215686128686615457427112436424181498523839847414218253727821423421729874154116895682134245678534438358999284535875893762178632991825749238671261824254747819654854554594273334887951112752168413739523966649336276432398176473791262678489821537234264468471287311887769496773971128965869394357152234411189734231135179728683448823716666842266382187115284653931632422586917645591943291361581991551291986395472115157191854727712956828456327333744559537327611735356597937765367447657118793143713544573629465834298152715274199887298146511427422466746549693149315442186828667295745497321214615611886548419712424674448742681431617924624613125776321355599986619133951749297154313279676887725447313275849738594737254615211673279193474841263991699117648975153392438968387995328172424484293566756893342813297255474771924882742281146355533698953412182197554859134744718475678373333518345651378531353986916375134571598463722398521331623138647812146483574186858779722576638625948135967952594558642315495952739782451667134385263211277521665178727853593528546742232185496951315153555991928127721499327583119126351567335524986982211424657739956867245554347213142432533349524682737377177376414788243474666361388732483488837149468155736673167494971715863539313451266411276689874452293648523138758276948466298945334763239175239483128845151941711452772715772922153411429495521232947181255313176771532427236749631784426858141242397544879659547759873178782263837438418536289292237962572755254449163732841348356725417776919288212584626681812256159557376549126873358348562359515413793268786494178427763312269465216133418428369694868964918713357261325386681189712913722962169332817992829348654293674596767974828269535266152734644625167191759929221154737933912963223746731147881156251213625787174999184719358313753954267411968956488677138971263431377537819488649921899448474443242118753533732328626267275772113834365669253216927534882334476292611456831572265423668913739697876596188883544281453565925352698755491525219473918161321484139824895343639558939764577932956776893352814889111396154597217392233336443213149316648338792822937949668959855296834969456917475129289257814215781123836977374365251997328392612116554531264473538913566284733161346679658537766682284183366358653655424235369381594577876732319752159434125581536787479197779765887319248616589716821155777334554155863491224859311652958681768153565868997475551279916716999281925944575172792593134399443496859861694825379792113495697672283472583762382792992858973611628116486653728586492313688527335138433749497479227692619152774869979432183562575759954947846315132634397576485729318951839189368121541478321722946266556381216119681959672514663326845592317245853228583432155586356713217483686736276578922716366815249323684984838389619443382698113584946536517419112718765685338393265876998165321464393386454253519832135872547699177571117228327211797898674427395476321291239365125536686332824523992389631992394121826617993947776348827154559948478623756337443834796786883758125557545772445927137927629344731452179128431448838259614663577421843953535169973915564521218727543872986124725929261978338391515394256622316758122773164854686169382362118152232712319497911141715868491564617636636915667618841265475573378768991316932244543145575415982523272867167474977524193512256515281866626667542581891425264426467994291987451652612328544559711622889191274528157932226299523963619139442264329286495928243493952821674642923467791376722723175411965277479812761815446164592345273951768814131341429116437121656751882572423224141691716418162553659127237468991395811634642555651673688817478241426944538216514336744581917127649564364328759195129485347353668479541843434176479271417826357114475455913195281859313889977643753298534541618771617764623527984542822955155395574183342749643414315275964399289198395237222858113383694171133845137559916921344166667681218934278424747973534835588465342937433689828133355287713832555647493471481553116624254757111956431432335759986951283896731733983985145376549989399467153939429128365964363874446942855371359755329245444425386969363363966449774582763927566212922417981842353169577464114225313439693229258841322261296576756795721518251554218678223186356171979373544365698255515174192315243691539636212411224835953186649276325513366454529853761697193268216873953427473611812423779777453334535411279621924345984525967679284951545476834428227196364733159451212736529755952179149543193468682559425575514842314212862828482652227852336268521137718391919182868317149472751638771689611573283348685299586362841737951378524227581183981677993392767679634551852774968472247345468632112131879713934545853955484357714167219571597226399223184927197363485596328328977256362216189265969152485616616839311299158367238719115246578529422914531243579739523374842638111454865228212952985642511997149325145446698743413833663493713586673299874441244876155174356827697851978436648144954343493836651463242941151557361367115225454391431332194312734813397941853155232857335266246978888357546344597836263896966969242336485237282348687948529889949535634975445453232639553683464925119142178158869362581798847676834125868747369729495684356214948459774981415791595929471365311548833162979337263731162847862638336923278432656639868277316622226663893334781647855133716351985434754355662281354564713162517224883626559548314318365361817282721477736756252161942219845339755121561135794867799462955186413798657693517683711224524171322541447766211115159629958262669922691675337164737178421317423742624137138529643966338821569867741265274942653562642965536527844989553523499993386259575624384832811533325698819587659433164271742533475211181521742137567899135975919696537495663639454191199355981694524253525552332664826639582665798693388276687199575351339276394658972628563925223877149796695681547795712192479962432314712655733475697485578345951238812635181945854226866285963955859599331151345552914117932479876377139949189333394654712726594683459415322999195452963529875895863742153471466194162722685784291912469758594339216628515627526393715294756379679249666917693144734815912614566525483939928571396959795825155744885525285354715191845889788221355236257199268596534548651131594855183687194924121196952521624321336456925268947573486677948436636756711594286717631126863977599531444917946162283536164768734982429643229241938612796682247567155217449823816951687996348746489611821269797544384482263554763152657287847882221951159429546924196772959542662492534676884915977661945924422684799173165158765932393454449564289256491176968871899533725429493466935897163262311411235394825477163382788372711814992916636978566772345395965656242996631938367915753639372976994775865368261953211439276936282267973369931685438167574318832669725878892712764365353656445494297123652441645684434818986642919774574259237138971225891712617792837416426723955644548385276848326544563625511675897611655264269897274489137929872395881378471519947728445786127972697393239564429977483921356936422458228567954695493434197369176878191954383489529763612973371895191866933837687247128179334818273249971968771327749254922112565845684355681931347319842884557143567668311493114411358988997923796692164357468144784381812479527335479845145998171782461216421633342584687429611768495285697711943146238373117276833353182169614949359224433294144874472145283443353573876274416842671596221966586377895378333947876611247449883922971398123889962689693248749329343452535246948376198648818364843779781495712448416743343487233127731937153588647929682129397294683699147164573483254126535343681919798978329126941375516842681976457678629795416261597617578183619133245685518138312111343256299844521147256518518731678143649914573945543312834174151949344325828665263161787761135155433611122224172435975919631222799397286614249916453745643519593115121135222528229884434281991935342483238851764723161522252263363946461138535496291347515586847122934128697636819296277217716474518113227779546177931785924388394953637554925184515431631318277829154799475247389259687647883554529542211877318378842625533946327479514752875184381635878461419711142351276815494288265212641364926298854224941385591361934761214473475918817929771992513968723451558345387451929728516727979713216489994833118714175217263149911928689849843185735782742429964632844821277425116843153651336115392222612428865313343225172538322194237186184446476654791153331822959679784133997118162441632215556397142173644545251297243648945412863269742851288739554552988192986946376813288699827472956639555242585738189841425425785316252847949116917545438589452853669379358413825986518379683717831959123281183517834857728224141995918622451431144753466192138828262915964187443768276214425257346563465562998343233631396584445294142672127573272738343313814378628983214313822716561362656565334167246241534825214155897526917291726884941518184729772142681953155911618882816795838542137589713843758996246289691588949131278516569128593415451264366712272448989657739361663153425648688168582683735998624283618842229237298717621928242577576854771422574818548892469611646893351136498835619317628446424852244228264496744915875795145889119273325222945314967528776321284311519643417518183687281125261812673123496746198799489253345446499497668927765141776652635694667924298946425881625458168389459851545411155132965165321147743365553372768945849116241723239899148527371592561428237734261186731696713359566573626785221326394753389373419525544745182183961717591795989169165453817294933322554249968288352662474588528636343253661461347665178496716374147679711182689282374434661348193841624732824542973178428341958943863897733161576873681763464695621382368254583292357796322735233288864455931759218717833454643692544953425213166174332198315568374239743596112235434948146361283936492123122627229761498826448121293873198163566142266793297874165915439467235457152743699193126974558186465929857893634567116128669189112631653119947224343651353831242482966726721976839962334925253977754495965214148128351135581975167951118987656837384211254491641417915461245532625568891246316472754378667712799715395127494325224843367262795354553594167848957996393936381559685584765448491656251289123816819522143288694113434273351496713748322741495421627674322313422411229525488465312535446322263566575429997949134926233172395397949121356453278179923943333823212935342674631175287297191111375285321229731728365237431276188535244358448244825163263452714263983412819323257136765952331775971645693225281534881161424587576393472234442829742487171566361841274218931279987532768774358512743134359431884633455492343288589116935677397631627394293691699846521761291441731671558895221782633984165762227119352692218151637675832117515535625473727716253272816834691276367374421748156411285422793345345957544745739992132528475342417713696361224748872371853225318129956828413761779227184363113124463227125491883545983444528428378434866369473861971361556397287187528325669446296664671588144547211211531218713581383926598968273762646411212632458735919237942696153132278684638962866227347781561281612947525498477954248461561134525757662216711168658773972943626284693218638614538811843995429894145349186333367423855743483452989193783313656962815419461612373315833491494622831963169494779914512623447253151895554599552868325685114387337779292983131338249293178261621698897183832625695964388613698583521994856883156992445413697817277374478317598462486495425358574352633463264316531815683861874349962523539882541967395434378636956646624929852831216388673158456674213143565742132793859358448322866835524992868524368142642262215883676864661175495991867389425298299166484384641694191161162685255211915333726139413265298283298842382162113849185795352972333615966425297368464217338517489563876732762756645547537949639153882915575454862152988336164455113845942271576629657944865873391249826273829155827432393922813412352522964115259933653396324999194296665231317349551591271118951334759138335698456122821269143554272898329378838285798927862285652234339153739431335646382898675849256874353922453229347183377863251895222885332467172498146637298349498796562444596221135116514547537875338352413382282513371718926963429914968233184328194451163389347598415857964147462414351451598213716782226675794861771831748194485834444754559556913711334484668439463961132669138961311874134378499277462516865795987536329589768137756728341499713319518819517329366335811319732613152229447437622346676819817851618539332229754328729296622313543266191271456767827371932681916617432394288656721714526377362292888322451981375366915227494245262124798392136346816819466782772885488287694132158482975978861438227963533243657314677625695247778725166288276515362499679159653328859738226798459598922531473277195428292512544394833242651816719162377583279187588475545489631281395369277127694486783492294523635484532277251745738887317177714441418476859467795225323225949665263472422265393431735697338973342226125841521334375382278627994417497913449551198211813947686155679631583697154266214175164549319999645575462252381744144348887154311944858719181414812543679239963483757496126459792741576359132256533428195923764851294692165598468465184214175974181857359533381828686356123436177112621391748433323327732433967749633547943745176634788326514351495614495357468115262814988558144151373633351372846146271563244256392295131798944177494546291255745141113419224753342578683869571628391498555749321511143149871791878989798529851174675469833343326485195799734921218549687435835331465627459798963717965666248697252521583124359129725766531119252471564217227163758577553489625838632659928727628619646512413538186693969698674626824221873443964779718114915398865933945822174471822477411729986197724872822641854843161595769738535869548612542896476146782942653988911854645228255378377796151225477585444331598763956217666175344153923969535755711387121576692184898242118134988819532312414237681291171632227991626554392265341673461582775114325292358281138619854825332836881263246131645379264734212753921162339726571285183146514245832644538549614569536346695578332922223752185589672662288266227831417524137228312957749953272784156139489754854237362712493933551235144637323592523453479163739761976149796675181967382843824459315338828598519164432742526517516594412847367642849576776418436448587844911729195253166268869723483519214499691624118851147245495892829613414255666763244783612257312286899916575123494959741413471718151119764286479654136869941226399616122758456855664587384139761882537347935611473244514959113363586378864343334361167134996863463115139522141469116644414474172614474184375739681492945837551364451941535835126466885997517611725793554838441234982766425766642551636171228568118572828628211423113837761699317916794119849154781189436578965131985855228324684933515616394531125782226884697733319542665651637589939621589189732247692266171928748215752322237756475433812256748274852231925246324348167395941377658391552494186282125783737315112574519111475975469594153965786611797484933181577319756249419696758619521582599834919245159961983285841522519389851866255863948724437127878425513769266983882946691727812813594494866471438128954669563895463287114655968475885832518522271771773632517297287729394542784725715991198511424283777211572969152544565651715735989994428531176591129142882362611561525869632354628252213697485193565219878182675866256635952589552579324667899112368962835882935222287811137487244687481917198269611873829846757927362482136663685473766882183997922948545931611825791252229249328738522965731596622128826777166946689437162791937351549574373458955116825333453767325555338572861419653676332739121358569371841749284621661397611445484664637232121246569182724316642712998917981321858517716892433767518796383953217346972249538683636578266913696599695465415561758885248344136699453533273356814429796821139185614776536142866681215768229387136885442518392731399182265441817285648555584146633564914876623731393889458495588723474428143351111427563326567625952425442288417924756944244398826928957111376855626166615915232178552981567418578243831222436365468694838486419193541621158382356171661143895167358438367517552122214537651791596152345882947677631371367293268999892898246459227133472652363674843228658314288191571712435112252964817546112536162349644313473159139425619345193722557175952846744599339972589316495765652932511572912156973424812344699276474276795681444824466535988495748684419981225336252565144297536181914872918728336911389487152626176283762226317327367249113426918375352167239395143437474262383418494395754142637967725624798164228347798926759837978929322165941469381566678399327641885234526153421271755743528411872474671348212248119224372997245335714131319373194636722116891997954692691126897732724196694534463215926853255112662446524688553864574337814565149131512426786312524541222474714438311114758745442538299147384912569175282333877977139675741767669559399236393371922737967215251634635111568837146444729564941972935328942793344127891331554829579317537572351412592593212467632353675814817421313116532995733469525773525441671723452759768784232892975657242689987244557975615668684864371977175527595841874541951371936295926494962348324557256287413514434339524283477333889183725836323257263223552779637178588451273517946997965383758431719274373783377128642587477521772238113425926889594211241674232291461527564227817295413513813646542166667411634263522643383219316785681759665484116176793752315122687564535269738162874316387692116289364684514811645855636143591782175554299593454529575217384717212722195552664522365116846123814836176936252725575685782716762393358667181217789426656356618827916914394296563825525612624946794519119436433368316471668476737158832258228145543524428948937987418459729382359596344716597245957888487335164276951542997669811974313647532465427382443375672877898628833564799151534342126233871183957784951417674622725194286549177684945922282396731255517487525914297572322317426324653422473143716844246938554215242542418743633975734631718837287528293689857726719665317612187966331665863489194933945646111351234686488666232221729368285166542239216412571937671841476343417459186159632281233979954731495998248233327562214977266492838981859669882246462926488956628113282238422475226221539233422347116645515819486924914428146369388858983353495238796845955666981417343889224328241527278563448475675734718849338515428681698523432715366736693842998753378575458461341552786334278578377642851115966144277879131379655418242362952467812256932564539992178311176685792718783421349522725179954887767932681965141435141337327221247332598262879742349565735719462544717615326843161716761137563395989687688167541449111433533462423881338924946444855477767599422537221784641184532856652142655366173518473593665741244233269991746233153829836447223648726886423832974465315423711969285751674514281695166738767137352314777334725261229573967686649193448652118549741766171527914613578913335895963729148856896753142882724189286356398264123459525235819334326599821177637653221739724928319344199131899124615399141817523285592129361691632581911837699948161931332489574138426154269762825211449544918199711472784546587768274614883198714166419821459247977771838243785871933838745463573546641659113814657582484199159937294837983869172923863111714344497367776762329256957365853335875116471421771354848241344841269312961246471335154515599995924995563931726187121466154452741195732697498223152115713934189739779232176242435663191596422632875342414622379848144547962184569314582423729254475318861484239661859321181124459335646839546459574263265713493212243694891442527929257217362867461792427299578781966574139132664179796436795238358518995134645928687135545415732872965994433966965754493552112493674256917869592732433961384554212756576217266645922953859997738621465945383279359275822544198356425924953846139129136151429262711673187422757547814438353442354665177215857796187117365445857541792424179514551641576255172816578937733481669343557753982937628286188324991977736462671464778172488849493425151662775319352329281363666544166549133387198846364333275154984617471433228799774961484182155451211395187736789326122756489421586883775296825969614961518796671624535983261125162515585925969674356544287759774124149536977621869729266186364191791833865651831351341253459394734244415197433314631493136292279196772679156357726284143617147743214324772868724978587788415248744432885154156946989335514336196124425279576821369265573739282543946312792195376269615882161567396816911492153944359678278193956624481933662761548558234464455369843932522184159426784116316119476288462924545852829366561576121592886397154168647749599327128492376645423621624866734275447282627623332584244375175132942566161764668342319669995446173944754246252993822356368981386374127181462461739142132638414227538357733979889366699247223614396945292236125512643514928913928718253165755527993193947531677552222292165455733291555243676129665151684192749752882779995955829296941794467155114237312121497941553848659242232945447621996335246223373945478533184197362299236846773211395697285417512558226929175383272128247797135943669899378747939693652933636996221893338637517697249297581689681252256835485728273871188163362178634292672869252453988581987999614524998915157857927384225239682319763827351538324659997783385197632993323339461517264234943254462893283437355738374474363745314238634285817257939158989925626322645651294989116131439729841167456566131174798839486455817164776131633635677786488611822443981653443832516982286166428237447848282892652353212728698475416286891962172742883855715218375287469311586678669846817261797428325419857135255921158477292975223652773143435318621613531881686424324784367643111563194129867167264557327522528262447895953962815151678411182613229916384448178752792952511263997145634297591845614417373662454296447552717274359595496213629312222346849199372964334217996626124423222837369155771583313411371938681343351429189356356788644768582982744694189981243543538763854647111999672699172198964791923434856674543427766379844473398755695158125281734988726724418421879625152489318746258881225934552999897662557123573287356935812554162269584513577166796935424257486114441931776237744545845988887272662212653611825192444861496931386523429187964232482891136325935456556841316876732326193222992592812936926774484324275347414884761454244685179988657166625861119382617586171341621138736913883128114344139822876368117225317368747548545726383694877832558132557134463824344926476857766139611963988599281362792591823653537763582665286359429677837723342514461116263197332633537343249123235585272725332997156414256864528622934574583863476883322535981951185795445344789539411761261146335317443252481394336195482491569233874626328197786698814479175991255731987991389473287698695511916752898381363397132776296649359336188741995672142963416278777178881491424911612923749233129824413428197695835141462623628293114237618863857646615846216959246684565997942338422199311355437653415255789243976229158556517123114187598437188727491634167116412235581326247453626313436812858156332975212653558864385368996182856642562615687836989134845224652685213164981834742273322639442332345572146945857912577417429543235716491257888773866773138122267841158339274572628374152169423588494392778158651185244226576387816657145417414565221497237351311545329779656574754564819272699438777393255566261336693743657723168574999622613632699244168551693423336434851339856175452254225285439692693451533994368923421495192152585881343187333919785745891124687357958874177656133763495783872136362897733513328988946194234954335181268986784119591764122164382348833313134882193833832985971647934653491713827436176177915397591187295243859368646892544841822168362922453114776471313873321164384253272881136963836244854669979574348184233636731161961133478146163927443176631177565751418333417297417247321545249825366612696284935779119838135324244743943714852658114571625131323185322276288155916361177243697887153295549717273612224567458871946613885531744649723676962666863658432958454335973821232386375371246543747479147983869796153144224231438557789775317353665758493671727678719191714385232165191151863644295897565149682131713156395237183922455722944268692214642896716936227499292134912238372452986397556413316754525833141525671497565868667348481121926132265346741277988917768565443694576847289862937316953726523184954579736522837621397315723925528684919135957642573339121455984773866525569391967761664588815388222527743529227214631842321256441815551466769952925573697349413774423694113345337328528343355418922399255363583658955366171392963368923132665924882413561533519799467223334236199573153937292847253469547534432424838762457275125664759897729118325217318585489734551268677686558311357267858467753622516743983387543796813256813642823322862472572812916129896499865125862694637396982154437112219367215891647351127518227831548496442652336527657832111877115987565665133593944586767822629554845275235927253291161716779691638866178547881847364429483634644798146123931319813212253897479422611772732314883993296149282421851268697535923561433384982119139325329763368689386914536352251396742516141672425111729119837857933197263832948897986243856188885584551595565752114717395184778944744318347261744292483914891954142875456784653139864763248153954569827427947625363243771184391192339429383771455487993915775958948572117746864813497954399719535413514857542415651459384313192781931478583174948656769284778269517235718662727799216242349394977985942283195958471386437676639964347619923136835157113968712214653583996954248745567144213359473311736177663133795565135337654731659842166445758312124549446595847731894513931836666439199215344166731858516613556341791858685114119545654778889321195472918835871138596545943182849291381762695519422943623334311145963684497644552933582466165466734625822555529974932969296384256179683485949127643113566145583256518493231671637122144591548699978116435217566443485916819112487231671464352656152828926624634482617422927729276521133362357373989341531414129966562716971397162282255685243177264559566592962247356559915433395692397117971736961335542283147187566731744338246383441557546295743564488885159511312227466397165299566828931432868387824845361486144772123986919695643994477286158356793428784891689931548919751665739431978383755734132489782367538931675413713458226556727341165732791327995688878397869498959967119139192438569775745193668883177847334927143217864179997818315551732969177564927798161647591342453849156142197369346142381655871539726413451724665729456857637293454565384784783977248785944816429331542379527179939278791257497515562337225693231717775218498282542388735427226898479315831973648816499464882221955781357131478392695262619453439575414856657341237747527769565732875171392161842513957615869222314257822559823227619215198954517235334282242551729315274366342624631398764137315477847626362128134213519141329259923583133229943852679948272665642279552112238242457841184463637551262663187247123239635866937243833373736252866734426553461554141632392474937753585524364376127274216488624322794493916131916875513267681712758424328392256534934385899812167297512913238791248349482973612632289643679268617581524912569588426284745321828133815514369493321666819112193423215852873698484438866495114422339717288138843368474353496468823591585321966684357181414537145939551391572115564512637837521444177166551551664111859523546963565373685724491199659563111415122511662912546256455522356433649233561851713472619451363545661852611723113961273882267959774675629716151729552468911331985621112769747339124195174952318139789532697866789347888836443382621625651775214724246374894311619786583127319739925713494214733821677351141216262433926431635313619697889871626138754124478157388788531923522477135662659443789486428493572974248418528874118363174964979548916369536322783692537875512936329899969512526178358611481275121297166978469912983521117737439191414232511738293867358168746321643213782562592241398212729761365722463413214179136442341989483821114521169773859835971358854213476688888973433699234531826223217624282769433564143464149978414984138273494529696175443238332158689581236739544447792956846573269165219186512328994642815275782361421533814883824283145146682393633864842967838499322368755612975412282192292739595183118719574638772346754453821364265389986566175879143243847363521216634781274421822195788191432552924728833331366761277568486811238926277591451511438449749269436177153592194116617442316648235213316529786224469757512362891742824774982413623661163989458589154332999174913319928478726425388121721933655148431751313291888361914956422561471716247623755397154876968182141553334757424313131813489965361528671636921349821637937485512529688692192855998372959632891114289175339462942266528957484935916924253148735718761661535899135861247634572926281426434133228211738123558229399267333641462978782687862432766369173343716591738161569376114921694988674341623334178498312865969152551922426678982196275474724853145483134421124696672662266721375322745674736329599927177432211966652383721566543545516537759728459326142154395485415522934862621664414844991559578884173267431837956973867648222838665925114469423955247238585667255594757545932522718698422786817134323534811181839619549558454379441221478559473735255498875113739411357638455678837244753134564543865591222721921259463254213944853341216411766254776978727226159828759649845391524419754274537791746688798978923832478593965421316636642855489761114946342563141286889965394732349564499927619783165272863623715912671232529171359714816317296359769359886616942891228415783645927865825316525713481118836732442943897851735367148464188561294244493119177634239515223596162553242732642293791139153446326732855258589263817233619955891332755143829176321643998881151329591441813776649835469458699297244533423571136455533779638823648294254675645218819729693636573617728878774457979259925571226263266256862957283519584536135225296349982586244446596334735598272123837139637549388513267224554984791437326153622321845892139218145852586375614294261471622191295112551626159193115529396718868715973832652148577312662399429663549728528241427738613637849795879976484136269777696573393165572145489352781786971768835932336829231345858411845255911565527632192526296218655349784356139311958131971755351696473311357946818539633939294138852964356864829672141558351365879533442548595297322816486683719596764632791171371988881853392195526324361226376883547199497522868218696227784156459491434823396898163531311225414974497254652112558397224569174265448558694548722629582885356774548778558779974649211828343542921274932873519146391637297479143668238333827133432641161741419549111445381535185217853474532186765962628559224339519622257562246835423571454988672518418292758791472391884547332968487918354773628413552344441917382312645616554522595297583112182133298716822163399145725235976315574496435862782742158475597882891355828171491158121913641234838967171823223186573426149838952211755391948214398167569679667211535512572511182236728863726985491646533325141169733553586466129818319519567122258352467175951126522364329924744573881579661942585194255178598648932967693545182616514953143538736171839384523411163962366253383126143256244219149561431743774517626183224246499528435917234816371592521696319395165865998913415968862446899631623962646761771761756219258133265269253992836267398819258857621148677329296819638442491645961963286521962479397328736374183194568812231894928551441411722951811976178416317636313947749967897233492178678929181438287485211721644923713946354724292491838893253751635213974129668854178736497886248674194478393844283674367123519926991851266497636694512768334219597551213862231785768953753381428681285241213144597633992439418968299948858883917119576284552523488383316184573732871365895564835178453516245476425455223196519975952179342335519168131528286585178582753686618674196111737576973277924788636585825316579236413344453139693797917537347811341259798393225114776941617989434393335738973353678875287376794535489337314724554193247251137327918341734728722252587956764361959945445745441447348111137492586631747617621995328418635935314482922457121513185558584841879357192559941555774196662761287836792789619792855391236254574948722162134333385656231867553541163556838987245289516966321933942661611262475399359548369722193331669194915897943417798566167421788731776839788462668466457398882215932511199354637795662686343423152256636125712972484825118476751755147511513515235976282844313433222632889927347431724621529738122773953994913817644845514127332419354153238217313586398276891286323113195623272987392642656689589421253418557829963121737542422151449317313964848122799159228547674118553548265375815184934933971742337359349961247147913575289582544876367285848738117364757459163977378487822513998624659635238962517394228232668289118633732993111944682389412263666534249397663915235663371699145354252293964574761232223834241239784537776156524856577443922611715913733363722442666924247491269215244694562659816462178488118419523612948614746471144846621287297293331278179913659866966867682677951712532274562434366229313849796265979635417374659171843285325653658271934479278134112964542128114816445116422117122245924673591713337556733519663921137457772419951599723741618113647117313828532982378578416629486355867682212553468164578924644987717594534957615482492287812418467253151629164288843687678858317531589455134513159123121191459533312276494451875411759577193642271423853318173226154756877159447585839242681393273767763958395368268194667548962736271961929393451272149694359548845621659386754681364812228223462114173582725844216596956193232727255625425974941659932448233715822761154928494296596847554196578684876782272375743573678471323773314814284115163716723863948751698979372478717153542992645639499325823335574345469846151923176669337472861472583371918937123728136765621671637257423114224143361626778934146182423672857163252598978413454195925312252478244796751718168239596264791467824161735523418341291493275916146176286129713482298193153789469416235368459175692453569859699776676356655435421797715517527141534965918913714527294426735665617183316877345927454688714768267638243115626443961294364118986771497995853897247592495722935294113817184511145753348182273797871938553874199332945977956877336682719623185495683294187352728649861511397575269561555818666716857514258367723338365735345168862723458884958898843891331452132623822212415216566461836226769744166477718724335528362339172565932514356225299731821392185911367339319448758521218737258774548561763341433255135622722541815782644581589382771295793298435992797936725663584712316954292821376286927246893486612399716512652217946716354818711967667316152643354426378167186247612165497711461319866969577233148874578425419718149489577492996771748772219154126655373812252763156534549614559564516687991314814236347433477334773248127767813215156136531447374462531124957325383432681751148631651126234195311891277398456443765392932128735328149164248252547729585532396846655974433969775266318177287757719268425794416925257885425967522379487499814674923941386944179273361393179436782395916288772544137242552434985943832739968592581133416113939335981887529945843443715711523684169232195812415382289428876919999375831621578275548831271756489713353543494845872742335859179888728862748833162937953514268493475377149521269643745361232868543514532398156338241722573843164583487777913255694673714244925876282141944963945134832817728117614539242797413524891267174264543734413135137677958725296384674813127728992843832698592411617511129579911475668416739553621779183518477815783677811341537678729553272485153573136835878614736155615315494221241916737252186913682356971797439716791483776539128371433188177163118529524623552249227235447651369457535196626358634229482919794598398396139415917631911623694673258495935434886916938672891413898178169788663644786121629957685947784216491242181942691545264559468269163485884841124424595217343239579138431532983618336335434396874122663957688665636648732957267522787351557932474673173885325483594499362223544882962423275141168283379344361753794873375842911695149828167529453454988777151555828632526474899257256548383951729176396482499392281488223852899139524694986915332678542425211388178484626753755944483796617965271367194618995925434917971724279625654559596984873218465723555241966258581212564929557411444597929161262168561816237167219262168868759732772755584922953659726769283662358478669561513525814149789692476582426483146135384483312447924244431664246678947531931324681962468332429114852449963656153751171814132919512717732631229746464853177832329394838397479888815791792517889572928111297184241282656299699463981799519819833922131739858816713918143369812142762212547381421375954597528492978196457558273725571575323214378367751394695583777949662812563392618316833382364614849664531942578364652125592587463332775112881828292455666457528757999412723358816312646348296428893159182473473759454443377851145275946686442444124671835998965687563662346893214196198739699865679627332377692894492315238472528875897131555946811933223217248913658179132742835794344538167443155662289413141846349783148485191194165824549258524787661442181713863966378777811194524578142188854582612943226255786399447959834395446732298836571538244529828241466783839925799347778962196486967776285772785125952436672974323611587198855163961372489462138317723448657517137968433213769754935764317398416826288769892922239926497917628883349754992525234959622795279389857526853919421325966766892436474479588288153737351911785258735831367931293857774248533669478559637449812996323194827226576795882634134384135765483283247419869439214523512694576751313896381324611171996361226328286171186153748497431578256299774191694532139281124772932745383832287657313566422589751458682898475291362252541643599828393479531481643196415169564498928879617912136612211143884479135435815452891781358579411929533193557375353728132588486934969526185785913365586421644471935346935931962475949238776863182282159632475818749136229922662746667426262926436854423913584765168988931779131636424273155835864996142474457149123157862856243894813875778421255178684389274842811326641574729873116591164778448464443652431495212484119529213167857547295667446621523634799591878639768863322726849157962315253872816877113916532349369862996251119566992574581631572399263337348472934133879153759932453882155373913261613424118366977265827752393211637843943267975429217137417627972997646439354562763549782411171352547927324425668143318485451268134657529396341894936294114484775127315459694645432347988141844336989572492991564991451117183546147427236941874944518923165925799967478342142531475988629528232553833562421617931636438442918379411979826186955135218717583738346173854585944944264568868313556473582115213385752923427715195427111969293648789688689411882763394262841331524917625334679178577217596114599873449998856888517121898939712311656666362469215841723199372822151338892353696354691699553375226439111697897163221699564736134732532526352499119374988656939361947189396193721593325446264574136539342921644484856559424184645139493142222923693781181954719388787188777387889522514635932911975248495442652125321899959169971418624537287716669661659826161259279753294693772418165531481755485948962527925591294612129717477251323131652554685715242212271689229693828266923279365586876365614613655397382239848556461498791964925312576752945195158413532397914835514555625518213512643742719921287984435235234724812975294697226153381817542481364949246582497966654457132316528274819932188265317648321711562864156865184729847922762228136611884342958862552976174227433273749144831843262754284613382715722334272758974993976125121615669451453667568237724845631499399189592674695634985691527844122111895774177266775438685588238721687387172455466829793128366959171831441649166535286221475755383545118346951179172699949276369478441382267612841322584813334189552931872523464862568979423638934665868466912943162293741338433741126975711114612652385135588688936585535838179712136234594743443355551248481367282574643711541512138621266451814515136562317185732255736321373623275181356248731929319445114162234524529654999288982148167136985988693381151753635818394533643164176511745526364534743832756178573459872343269224668415449349443273754111762677282313855992762168638666325848689295216339711871465384557243154277226824544417299475135693929577623885543896761164253198426113881552588258325177939783626617624527627738213166626846985823452577869951585634963881466327864291954333938477889523143321275425828916343482449149397561254572574435557145542787914596231532455583542793149448243678371248677521471149865251573823956126233458255865721657573617122914815889516327431214244664857983276325366317218414493413948753321117965324768544195388899451826393673444665289913411296349368982348138262521332771177331489581165466134415321593236222311547427841492268222567261676213282418559684824588878532448382199925933759334152182473345433352735299972719485374461247552682862281234869621684614461268184417213781952347746195466337133173946558698991522854851138611477995951838353819263895977172522327819146519123928884571427911992338186417141914753942826248323321593793996297625518154737672479761969629682672829591156487462219777641824425356577649867885264871371354953969657533215331929623224915629287863548293842432516899835289754337639461827451141213922973982523612862397569685239798437911525174521366422166791924444397722916985483711243398725317179842321689861768316443335466356343778289651672257189619242747438325834319522364118528142146425332922979156556477113179432196272623164795126521461729242662721466137811557362415867159574494469752731119431152496261574286826369738497786332996623191233372775497771982116494142767478391679174138994339928557961876941142215442522362124195513159714969831895877796955911226612826221742359966413952741659143256345318324785857946392548366576715576145351928266256171251323532484812931763237173633478288929996953846562477112788657976211516695641743717999688994663834642615246166166535737983414997612332898853155196311364551498659176129488952351733662113213198124465683144869475244211721986867829792351224461354569685978741664655385636627142227813664814172814441256962922149835518412222189732787277521757126455869743925612258824596452596859493246274983491786885579253574281228261888795724961148992744495868328738139958249634966538293246787249112998636778293313928511194124541742989434999717794741789198734346453643141182751822152336643687716278758533917651391244787119874856769853314673692784263139145424366855579182677844451335242747696259367698763148419541272799245531372512497141817724826831125969165989131267156124551264967888711294378811936134847411514141836344534756486787246443525424532753593783858342131452274111243471922888775641474571128656982368922976799726352564792891677555791316146787151491442194364115152165369112783258376318376563261413716589875417396629178924973974182748193928673115479341557769454368518732411739226835956233234972637156734522358846683264286517973943626355492587832893518159552211711837969913536476737131294761224675293113782716211855476434537275671143345398861769318436337261594155822538599411598641696166626716943749167361655855471776878362372453883744674537419151625417832351876199852248516179455431176198229491519138976717293625726887593114922453444461891379734868817585996889152757448366199213262887441266731125443964857364494481521745976141547492939152527126284926252964214198512153246779721144579287571166856441157189756569367319445675222646113286566691522213261839134973941817474395111928966294771137428741238314495755461882987536194123857855184167596458241493737677443899649911881794188489497194828392217522118893844183823118893512554336756533236974313763983234351771949715773266976422382121998845312752552432541716512171752186349445227432472689499833482992451511821842423271678923275456155716293632489169627352747175516684561147937677155679722634299996749797571768938313125158719764711725244514753161727785453133155824127551428681961311357334566234969522513362271726275552458835641528294219257337712857173831352491899721835418518986984612841678783298531585462756245984153385872968118595886518949445773783474275474863938127184916793133744388943923317396358568453494262166766666456828383958755127358746726472294525832123252431559273515541388189282444187123413713151993529464368566953273472645171762245297724413826185174391889564537711238432984942259991736522441531151173929529133122489726546113289175918852221333552926382365858826584836161594986198351732622659161313371721913274819851264563184529862135322512972779542561194916225386795956826627787279336445936636891735372256394863821668517479949933988211857874886389119325779363728416124874527251764495941963684791389826414266977232171389433382531179388742178184927255271652585227525446214569746594235232145431328556972445323153847317366815367561284571638983565159896565771298578172726564765476139272254993473653219948277549342332415247419979467145312342818144378797151761765991497216237795334783462786217181439988591685684935553474591496649646174792976823639454733612451849342378258774484653687137375111714272838884358327522496853874417765533357577868813168413592143498611138219123133481457473139979385979358226912365255368826749514918968385474816684466423889589496241114613232463889547723683218466686321723216246566661553226688495247144474534479688896869132561254385369762274153127547375414353643742322797124256275981338351784517711618339239313592631559175263195642947899324483842458365288631971625687958892113549583988914174229977635628127559245354195573221586296184594754152432121177314422185881443976627729996574265667965762775798572327331136894934674479846958887813642134473339121626693526724711297317533673595493987155941475943899534985914962528742253969394362463497748616748855823217569152336757717852369934975899899682487619161711394648241212632866649946583324272446613944645541935345129254542197475575893311624674559492578823443813284479929323818784925326682517734817978172268998524685633362138789743661353983839456886954515969343729853782122172525746483951741892665889572514626645787953259386366431678556919259352166489571911142581754669494367442425821485618146815279812165148911524577845944572713565625133318117515889327993732823613365388563516381464874415471297858436277174318956996851336961314789696963213168123671764519168153745468781263385454649693791319346621677271996956933937237447195233293883132755833214161642381326764935521364538224251766553441952471398755913191222567458318796248347136151388753381779854292714471119311584227714347488173188174776651291113756263821832397486153125761617312236753958667645147622227751633158795521346317851253814619925823118655998631797438758264663366677669934416854728984652363123248369142569377463312255156183125297378126361312173144414274524132176758984547133525238856617648941895113368612148963494728983766767511122166675535643163117253499794522426143721982469228477825653573511222125683393727211266223124243425991453575365462523423715743218318838799991261146394414225124148485743611795372383294417644537244748643657912562573696764433251636532298976829169983927257388496614667158684959674847745442776522274563282749564596275115787183676658313761146749571342132712347519851438524539688965588333334213588735111657859695957721616132796615686266223113454371779759193948329711462667131484978337754522824227716462455741237756664846182971253618444431751921352473834426248844367995849562775287775367139395624461128834794694485669954549385285461181221955316231474382667267357221513899889123375538264177871684715696829141312212245374191954761493663774928652485868551932677146758348622915578696492672925419653397575737392198927447797528162844684627249852314947615947676195111995796711464634337413183625346183117499268859897226163478794822929746835768971198763995257821873261795152189841442218871617223796237989712279193567971853375321334758846599134374486112892464432776224641818511256245173625411921848379467313672357162937381495154262262855216336184795517613351415549317415752495753577134855335568315911386123153528174812292872561621584322196318382682668975148659888164918172891443263178368295722975679881831433171591455729992285551619214711113743147388351262638829111255876664897952938515235415487981759533234944193619718385962571314138541331941247967326397692464841374719658718554419364928349232668266276196454537597188851931713638839376747523427134963423377864248238211817517937996475214572499557793476451431988761517134949426743531547242934968242591337222573755633694471513528918783766267753158917164452213871166451821474165489845558918125924324717197697257145922688755833365543852356425985273355151645883315585997182785196416225757951519259767521387492363662985811152215446761856646641356369665615441189691867194926364865531683326278156111378663993583618366632259868375686163791417929722644947874428512474976731471356466534715521259863822364971436165876245227364191447137232652973239515719145288624634872855642892839562616531247154279187618499423366416451828955283241782751439486441785248123568967969555929173774878334914458635255283143843683659615992434815415679712817635595248861474426192452536422648231562412449961253954466919542352474299933726279395492574182428685498224849612159725644229985959265221315153647191692941489317114865116621378788716134572813395927919178163241169286554668661541765231724639172321573199438413711121127412743636235613144689783753922122355294927127764965395232165627373477171948811396216235763373765158588344692318149357126216438679934381164758226637333632814644892381786419622329929498847577354351959318892746252131719932198167577423846166716284182678525128654813925482315583486347446256783353892896815672662249527365252661577628556874552412674986213127119769275974286282683756372871486455882833413233619148619917285266542523214558716396413312245615233782483196978119696496179578492226666382176143518911181714429838916486886416666141726627138526555669834482495868546292533477228771655822764774839489144783574218943651627258414585576113653954882766625965498369367288332598336936328256656538395594693685287513754831995322412884583678896516433324434662688129647163172537415486219459287942223542963241716394966914838493856755657456142725197193574663517476323953681974555664672859161921823363764359784442692711462495925773455181947264148237333535515952574942628654528632782721169759996827264376712639214284948195261667816922633632616232826892681952797311615998456467979553851476458291966222537122534684687447781329591649249691454296155153761223169652175932996459177334268481759795364199346596868224696947413763421214663422556219683376277722212481748124281551986346626443187681962271494224113493159369476574278519757128331852338266875575229443671775317468522276452487482654246683838372641557638821111124178136892487814588637953939852697243589322895214188846193368163583364827891118137513998662317844367121569383268377499411762649767959324589384212926626687917979571379543741939326435159242884211264227343156619753152973366966684937312425517139762961231179754554387782173749249894453553484331742566124754589113794986533186399142961598664332135825699393384646765513121732427531235547486485564123364845119591121515297998687793266546358348173352274811463385243633379651438653934745158913358919432669665266816361327949665263863273131131453716931782392142978152586896223642288815397976384233686569783643982249955265871753946192324513279564192647484121392291837391283742385363598883631826653469424843384796479929549957514537349389648789861428585593913562853362116687616766949957818351396661462445613493837898439493173236524682594827753437792661882689875887955416385754622353875564444471833292595815537213485937391768251595882897662356543414265896276854658477334978677329378725342691726352377896951888475333279425322323318697941682627711385526748943914714373799337933964556726357929595232457115628187988324386411663228449616913253235518194645859245843848424458871195113936463564347692248134382222518378796515565645768454531996342572847131254313247943478255637118432871336735462389287141656214317115961855176255888886646572489979647127236528299625342545561857441349786338966732416136818532565283598622895417685276546665128492921743831652852124874626185715429239666728526548838938325424966363573886342752661352113926112759786968491969833932395727667945422384528322186539447766172588999611919664815243375116853626549391341199993477942575777275331369811539863731361369848733193741198958855918951638511424932559246914355968757352189893114652156483497261421988138737459689554125616455396197463511355588437693972771712957246321334967845695723617434156135286235434982953533279382727921758319888979162886628271245437976263577525762155163972818363282863531133471925221512636876733295593755834533587958692417144418966693647929296374617446174556487184965151344456258988492383938362861729766175322955945568481593924765534395229747255515689262179681395373777528319326633689961829622441716213221132944834542166768429726436223751364884338931758757547625713859695653578358738257935266731412643683755779881895319397356271548189975191173648356723279111351225412563623158536123737783693197922234562275875147964429842849414776471585559859517187212349914119737412558173423512667954387142418481138314114318738434525911992173271186727133838981415155321811975832347719834648192128695231796473488662165792914557685617261348377878838556616673554331546462136562358387638917185243232459644829168146856545625615514567336959587163969837466345121711232333319587552847131373316831424888513737455817161216171974311245894616315118817431256463378294278437394578368351161182421672192512576378158747288473743167741222376872265537957687992112285942469269367693793891843521736171824389669972758894354599279544512689568911616882987743126168954458995364627315985419225537596699117421548771985482556973157672622841854121122216433475459148965339378116194159862519754516963451461962787141888452746245359872476964485734119698134517958526722566794743392612659631386522245971469574732929644465471596323183847534894113481332588521372236383449537113186968474421376322897733784414789317242421172683599272344751344492222532623624149867383827733662725119755982168297828934514189462462423882316279118837115462539421695253443831942123438474696918327628712866564448313573936977121358685947952492897387297537574845837898818862579371297339832573493994693753113592189931782237787835858271241241345362484276381626786792392823624368154648375114651256123581989415271838582782522125368437375388215482496114833952915321413659519262843329122396111738857831711956381121549957386543279817848938292262643115615666358917227769195828788121213369222893316961267672991631146847777179619452937247282888717151785898921762735495968273265549299446514176253245591247819797662662749286338723234536636746576469789537512444974528886532794813553556175313984993238647114358956351973138532852596878454643223845539565225354279861454929146571374179779316545482591787412383659367727364468311194418855545165456518716514352546746677689129157412578355327937165597845232743741654975374795478454452725738833283211788255584571322892488397563545928834244412648968816849283816577448659953186416555812541598131123477351741955396165782821245874322478277998372278329756893149694516358975741796771561968875354911349242411691939183577292262414563261695967249264866793724659925487188694444486223874447817672356125612278768764118866161692899294595595536138218916865344193131451461339347527987611767916717768842316311194297252123886588642771973897895615668876664493912494521316473776462223643953768664531429982158115558212712622968522791338634199218397813564718239263572375712619613653623115761753622451385494414168583973289695488177235884249854651944241455824284285149981821789494785399126474292566718943515247496361341458581217179912127991258959651384865854678863471257147216229873273132524168185685991171481158149298948121267637784952887198662221168429357432591955749219154429639187169648428792365635742249528535562567572241739253941545832377291511196445845911735818465245595591222241641365925963295744212923693373279615255889415645992862821252293389364861462319746424343571142987132625662443333772827111786838374128576821987254681977463157459533169245543568934282421851641845515158294155534312878335322344481214219331746178629337781433171878358116979479773727868673861612725115644329472319958227879937974515633631352473377472254745855235735567786226197638587451317546249136328541151976982793715354535269251866256347252913674399839415111526184175385645791293796177676146292228812786125763533557146192696521274615943363917489227684324116922119627287775735292569854441962261772663383617156944638993891492633767735131884437414958138216799683716382479199522387641481983497318692384366462366332976178224884336465924426515822559266135226627829727911947998557724467846721954849121797549162242489321576864181633557991793853368631227759896315699371721438664757342452424435497947665275116965966359449694676857985324489791518993814161561945636461311887146175114863629346112593475471985571663726736234731273915722974796826114478616194748838839853414295935433464699723729262683371563285864831748345641932764296898424586195773674139535148632384777141378191581883892698172277997881146484823121877793172487797213341465477133967936241793299742323246375224767177362123997316459144979629397394488541281716359728593934242342552329987711345491616283258537719182892261643543716791847717199131887427232117798277692581351566949347763728596725576732754917537115741578116164624271944715624325665445319331142812242824141343421663678231232945177862259883223571743895172136533215357585583585734958466286722627581474972153288132881189756441176528439672552234878463329132679239422498265364964342874929121322719117655393287942881554718565178976729584572817381132229517863417797843663424594273767343528932477732549554429347674663786832432887897233495393149323673978942116541344459519733254691784745748187445331172366517723616462118832756835518662188231194556833128232594139671533961678176484581895927234531513776323339925972961874886141532145344691181723682376871367562646893836618835387447974845125686135189534334664733517679728175198394225642374621262824381547155678359516497928847993688378371735427156537652379497844294699268686687358519478757716716533427723481347448653518225763991852913769159617762762316542696112592594353141943664297862264638443231529134195871292695838769355312822757827732711821584595644692234783112614412572714143661185818251932785483526371244616279346797275541399271222624482645246521477942939212464263515174564317632617348167277192129753627715962893621489916471439454655259862924518581658635621177671167596951212582171644382247712616775992965446112154578477313326433656314556231937272272842673269594238543646195247975321368673464525844792116365247546852893195245424556772334231329215724234986228627317651416266223187148323862964946867157719481945427616371369997778941588451716536648967819257195473761462288876851222348827271186748791783663636756168982574515357841722189852613692632634436791292579719138697328426516237797988874334777173937213723274735667521182243347588846693137175681778593825494626152191135378281638636169114614241661156658693631828416287213547125957172767383499261123433993382221657633161916293362336424845586563848248742918812985526247935987996569885121789481141419688166458954285651615652722661717982461138521469718521711283856569935224867862329846228341823333922958966331698867244571278772915467131434924156286167655173593935246129679983811281589361733523615219216964725776178678343981952566581176486339432533644265427717319389994663887537314354562865357411462499411395922632363246281273496752476952347249143957823927176329319846983828182364844562384475636432123655686752532435717154326978225831812446943188487883691521615616543764989857582986417114992669769747735118517934167355718487969746115127864427914244414848226227315448215156438869149897547381495542675357242214187572177447513882954334259652293446829519867292595269226322597828125455113479539275163257477627481942749524179634727385615114642163441915263551155146792671554243659449799132162112493893294182275294852536222696572635257583684141855368476166391399638829232287536744912167224197512151836623572835948842483634145899223422711443978447655469651484271442641983173634579791515556842642644599171988158175156366759213168786884372396659663733334626873939498579214871653494885394488764262435973275625447233348884838931897314424122279227679676376121112484658328364552885616834462549765983251281525634726465825248643812146548427236334136571825366225128536341861614913135945694221742643741142746968654135751364652426942116114652837484789458643936332597291391469232787162281159239725366311424377572523864153694417957684357938419416667233537881815227363764854197367994335296317323676224752637639128612895876576224927913126137548797677427939716182125184788252735897312755937616366534322919268554837317992874958676597671935834527154247946347772315518118517754314478523657671466518673332199171414983535646647899644918443464891257177266432514439815493396152158167195968416999299658478538297526623727356613341492826819625942896683134337149717766898452171673169355222885124534369544225233841343115135342732931151478415571657694165229113546649691116166678643595718756991681452662976682842849415764817833733191363721674426452327241535474139958659818581473159526958918693956545886529595573186269296287234111932791319437631143899279497129443268563887722495277862292349214188617373269248968574967382984354418278487479643988383279346662214262278265854734121518896681715887971978559415113498678684492496379498737263891244988671192566416833663558367651171561625322715139156319423686275446616324898686612142849179274178118574196752727743741439569365653489345193859538224367526439466454287538511838127663292457948577392121329475842135755374949284566721124991861664321232295751311949746176664435354228499932269479313542723592426114941413159892127833351661331892514279713238281119284659299365461195119682264953542247262332557191214587355712735235982469324215695614261321764779271762944296277542628829792182388918277256136421565281835757792486519339633382348636384212547536982721251914487684762172534494591297363148327742377341333381352484891513116741318581762482648637453294819819395931341168632922954236765329981919581962965948178332435893682814693293134319166122261644611367434571514665473225471736759312316797656768878881841113316567316873769294213366948578881182188953554589982569111538317142326663729188846158627752991499941499176766121668549324554777649812371948735518182761331136971591789225168869215414233195994388655623315444542784293731472761755615558375642581787153942553778933944288128756429265782461462723396835913274658986333254384296136695742281393898575127374838271558921145162734791796722152972784277334213433499646127656129588188971778557836756515778693142449391438269426294823314449784316915526346653887127244374652964976653512874153947211639931566252224831318294315248443592481763883986882764846226896769975455156293896487735127489133383121946395457874854511611531739728252311957852288783845562679124488933145379288432796341284359647655672129578421917283637719721626292473445577884611456217432232719521473261523933757164794716697339192143426458381663553868992282948728623291656548135256633655328176941513242196894263276229323851462315259686786449385539527623344526593586311176122782186917976532266642713154455274421743731193538288321495135552648433474275916537177892934166581518415513314493124122361723897895969395715686639519987591791235245657425428278878491823975289538378144351343134393972676518839262761226426289932532561814537286642456346495982173163394621347913833942435512124651472792482137214144133888268932337984758546833972389847134722166111654979172854866811797489539756657419217947469121811195422347566398149569247846848431359984932311419424146835282829152831824119269561158624378969932158358988328689331825456729654399353845936488595154184231651541398228284318131211777378154775251689333286599578886485446417713385687923812543321546227236123161729918649148184657448214819643754149135645776918418732915991919614367876344213215492144714149641946374225864641959316844323262195531631959137748929598611386539866792425274356127452383679139932921745182684926491429147299769612369417232877216115747653886937434968355264674193266956244762613513393358549312241855788618252966586214627113583386125553227278487189881497716193921154479392396748783171469511494792331988884119736965515686732913373329633959391652451968595746874431116497437963166581458555621236739245317248549955359693414226312449979742728489569396313561855568731921949246593696386274223642827853993479367386791396564365253823338294971595912887141294749886211995336567588811146812662894627754759655718292198256934629538284771869739366597164756359353721411751369745584117324845659171431264497772169722286144247528742451182366981676727829123257621398671912347149449254569344516269358485553599152138199824765691112485896529356512198165757433934427781146395639446668287691691153845971376747626335549445949538787284429682191559859593193845973561415367349927275887865445691617432161241622138124825598322851428915414372922117532211285393275982312421472423946659381726625921322194643381159681145996357293626429628653862821711644334723478926919433765126355654341361646877281551177896624716213732874264362253681647673892241342935651794323414819795279676421342618453475741218727511196878482631835329539652993986382757693522148243654995742941694558363123344275447214234896626222582919218844874935467334764145867211527464166254394265773612193332761243267171525633966813791116116288249559615475613149796457893555916524368751662412376391675887681529621312132659156847396656549812975973497323547813281142572188283771182615222694275377626192299459851318782829656455566836364242388528443761151373548176261783476895965464371822487819665278938373236617916515549643712697163339365692267393756885383557326452515972391221173876521426646442377849333433211189736638718316858641642435455342366336325776242615985423655327513724915423239196754682838853125589127627744948336622214713112382231253534462872496412934671511334915523929521329942481382327341661536953893335868934895122331374712986344219189316663684699812739993534393931588753276161697277959593684378445433648387648279986188123366754854755364796467995662978797167513815577927422178789849485297495192288933294529577686471412766968131337354751736768375925281388568543238378963647217421445336423962965943734338382325172374683737327477932432255238567996178713612449184821721836272891616139138327667739821346985995274367343516644269851811638584938516322452587144739191249669396571583533284346555289142787585336833275383525361296528285393712377263626947464426251956153326483144458862627432658963786795243843254515115916927146783626991594934222357369361426914239837744565599221335258261187188977281636576733174842528494752584112592681152357283299966822293256748284125811237539562234973645963789686646359713656122764543883534881168573262556961343871935288135728745745176348473534545391346165698215922218837154658522869164414258461448626847197542327239941396452796778834333991425958878252596182112339595996879864774132519913464236312537111939516435793674746255212784576545783991228131897575613546454499129247252521282979858434752722392921511679226949273388144316124245596819382239465988561283387576356537124113823746888391344735119593837285667428767629255658137847152594125872225192287348835579646693465195999662369651567311844993931966588543165183923324557482129299138559451967583982963461381671436655423733466373137249395397518273115157693184494717116613552116499659926222243183916794952413113417287551556936471846496756233111228298324562324641269984713852732769823294256515254687354433572637786741783342249694681884994624461951216129189399579594193753516759531492217591743891724633936447526633573524188548757661121164816133919144819122851835314232672197111557928877621167713576882693521153477845787585657391883918467379575412269529718114846193268728712655597556162631363186233431298731491537541682533994393517527258432264314893995729433451236755632316712555951694353321514181411441881971647683516671465348772172756241923579966736116374522854117968212659362195177399869116933375831891553897913234179162254897773329247188715271514225662537871793329387613164211516388869686619448683641411712819233891671142514962297297246877135526721817236425253196134982561916888334214142365925232782654261527234362883884426416397983753451331555642562491611333736534158295695755971422811533725676212612933523163435375399589628155212866424956329827299811978538186812325847334813373813435989821215584431879854695613429818159415324737752225763329437295822916424878299163691621261699883745192534651919729267618523473846131768443133663751417396771465627547215951714145854348951645931261246914597453229197615477128447685151736935443657259878929116486486317445314665452511438414983834559491185494185596599651893187737154879264144912525549131831516572659486883961721251125714265911838347282143537278937637189252438216389615625542343774639828248452946158568427465448699643381144624738656189154414136363753341245186742226296492242886977587487993283825743422186692169882592437368229645591227648339751976356787248815669412192262228748191561295443627617731328292384175447153244752937446269395897392723543954434827113649134948257395742436779117295764998425955214543878674951796689748336992249768772743432836841854439928666932838413577393618583344612933192154476855598277723984288726952299868333918678191371194982564688219685999666725749129138255242163868759662774713829472448525426117444718812261612357288595133993369577258936197884493917696664646932622684876314976587155426148878142731261386877816594891721467985335465141387443999681932797465814144765429373875933715286419616459353754689227892643168591122483792794926556469458859529822735627338815237962324185662849961217222272639812951427768185748372291299162513198715938961768675738295456492633144452712251415352389721662416432972855366568553327226958578388488973247629997561898895227465724749651945113762137228227244975838298542443223595341275786687927615995372817289289436848118662774156967973145459618761736424234841527369811539243535637448623438559729482899576763836937237338511351158359771264872987362656556513593192691456467112843766978126512759494473622826861921313825115652896792376534168382182875377288513975449824692567598515167623518975669198778571762861186931139828645258281298413434876537261879416237115223495773119761311456577475451789886215718756777958219427375956599947798477899574478171517169543413747452145393148933674252529922579881124541189116466713861622774993648313115897213837373299451842863196155324738791592382254351678756574623479942413891166399224258931699231597875769921495759668541417544581379757861866569651664925171261672832744644372151352592564745741594698254748244833513482868188883145934294752846393634672948382439799646561125219611582532866814484271118527415287155822637194644917832112219164472613815239319818228286551953572759398849783795952298585918311676933971937771185587217337925962931432755688768264548824987649191885121948991574444529161372517785469277327537478115645286351559819282268314412228581799647574745833419656159999482481333976883155333611839949591376224785195883514276813531551464858989761158235884551544126994877638752295449426936744112276973737843877654592294962285729579794241281219281822964696121851794616779258563974663615499621
97429159759423645999837136581999313973429916869444843361219219376321541474375758784859356937358222689416188116767415477821879836962454682796518136855216547586264499591231161799541639559169445544198528741839531291549767191844569223549322675854771496287363148717572656161694167697766538655987554675668926369352525963999971237325859156417973192179798583582741736248831965813496435648479942494196185396766389773219224779371278487827127896171418428846559758597658772239469769859481339945358689993723971931576865928395614286917579217224989459361778561217881899397379224418226681972214436735165768695534388551855689993357395586511256722311674627123149241641739626712763977483215949354996754589937595373794844681347214977771621226857435784754593439264268265343783734751994486258958459576448694799775727558275399184931852812328324963842227398213966529448814449254752857598652666121754841171583651582394876433418822443828887626838262828854697474387895643478511551399729463331899269681749196178678221867695862641438595537985724125457383817869956744979297593885672677436998116419668949685359592215933866773768125828581394427119661587164288193151523585793928516852186699493818826493244825568964946815737588595441344358768286821641279648578396851748416352991583952518366373119862917219958898775752585688692768799396397188954788477998393714812459281716691939799992258361332293171988921772837735215848878994913181863564559221559493554777483181379859269465652228438928199651167831743991994128753667469165244653519223696591456984634155537512338954767885947441912765218654969192678928167796265426753461863261983771576274659434234438475227893945615293246635919644943557668435468366799823363944371232891577359555753326991186127423331541516524843456976335414861459692499437775391171846299912166197298596451358183654954846221446897229344527142212752443675379471985945918966534571947873918598236134421199457299141281412766472472181652753751843819925933725362971798954569599242575787688286852876519161377377821959413818998929572522912382661773842686289961268598296919798528526589532452241155396179775679596974816561576769538564978283656381489819234647168555663434236547535946194178933256393553212183736716588129551221188184289411211813721284637931667885962764648447637875389596338859729453333795239837953434375653537177661248924131772661518921119316489352388659348698561667215977951756458556541192859198418485389772653344995423283287925287267244131619218717856619222876936419967396217213624671944171125779331994256313725862775311882389287914593947475438515729688949267261454781212954998369328792269651844778134917174155532859388596653997481117155526179495256497372192343223917513758251731735311968336729633262895599462632838621124141746516935548957259231157612938455943774212989275137177162549939773721849247759447173949384778754317681955597999351693886523738757428477612355388599735121459793994154791331439597487854732169421992915788689217641392576297452321442355878412258888146497362248626598874589825398737622724541714135885432736273571499537311589112792333787247853158174747516645739131857433265811818315364256816471787332411434711362785656886692139129571789263756336723985495665787784398287372454272125998587993779462547515187472711557974978541211173567445126337719115979438538299567863158776145497821975394174474412785626818971498132966587847812686778273693978262725969945992693818188268289645781371539466827628227776117414512932756336639135977642836626381378279631462562713265259514776599118862918957378486417623874978716788798446698298986513929466697396136327225821382756882991981687477791132598856915333365843788963628184898241458393261252546985295427865128659759654922664794816276192744599553118595238285962844436885536894911879574387911513458516581663784633391755699317364722953686674673913199866287965167554543531339271249495154454719974815956459511694215816824819795824939183715974679986652914699242381157234476335911266656672836894691357324496445891681524371273739834985981339888818585715696894816376791599475977889829275932753726689233137373813595451367877765192191974621573825181493789747492627194795968181318989946511886499611589696769414886993575132441714459824399913841637668335947832432249662867652878997888924553391478897116163142246454593467864112272889696979982469578474338676217979366168464477353126534961974675267885891924916971724612141445411578354442899329194378715949775425299556131974227998579857531763543877398657857665329588376289889331464688535235499421839636621853198862595747371474932572132346469153457415729984479844317419641724439214882869195847353295339229722899487764614456379256653837453527261976613973533711779771721984277598896712767784353767665526447951721644277831795322213951373857628999244538391892672139297516596598787226327643498445545891847222967871848478938712535711227937256329159983788431632541379935769259511652548336637535955445774749885277752265812363857732951327115682996949666734687589341914846845133838364889813249679965944323392949862859917854634634272547148469148962829143947621575413392841654973266546733623229492394727285887112985413812412383823672289111749134597878415763311994245363922826253273629335778793836113751742365731984529116251989493658385514368967372129164796372934468194483172311816345886215653476875218677977757235287196874953811158656356945281581394553977491912999936578326694475789413664838694689643896416183955787579647414655471511171168585816669319619262713531397692584497236137955226352535481914182745179538695648943972956639844399699648122412951111812116253636371612587854698574974837231598215771242326671551513838529356818443417912184146124414615713729466365364289153574176149616557133644147574915182534783152931231234796149243633449364452139899161628196612587894852663563158466412874869949833193565314876426443555982662533855664834334254796593429523467779718112595579968128319671682974669765955718742643824946848756558913561221966873997351629495987646514978233923711287328169948992515282948832373485997718368996825752337528724158879237826467495826728548962188178375614762919271339664175758962888888885486799326583639929222436541745293549349297371986267833143265534167358226387271261945446463328333513151446866887615335984436288567739675795224591939216317361814696262598656471557445129741274793999831618499178247184615582147251841122442111642797797621439327216278691591541437649142215691296641689163579719159379887218367515923731464856297497773265478431932568964519951642228312164421617152924273761618166955264978792142135744569722151788225366127445963944291837659243717399988152441296951139718394265138945733173671697276899641681965166569117176128741141332385891262293329527988693848487578715459896839931778487813188753581978198724946985189429157748447183452868117186994148761629299244911675577573141414517681872219878424252512427182675914951654779132793588799777951559971263166211343982672169261349765767465657633759576264575634533442879662544544597586596429372428934569839798155266698414713649198327153734558555597493984199677622534186691474866971975393278941146527978765367273298364826447818365145111541145368722961359768345764753237591194257574595181994277631997955231464879463985775894283181899356739879343183484366621619138519623122366316188982188958773588866283587826789253258152797927266191482863529947396396897987679499961634656171775366622777239393398871272554798739946318125534674298489636358999615663967858565945395653775471298694731995491871177855596875953822527933534882958234819467569268598795865662867778667992483274745785894899979965142997978974592769353551689485358295786199251839512677679318964168685146538764129716464699599637527398545647184994199448624459165768257978332114914311575441974762325397367257816765183672685617136865232449396995766889929842635394755354549663876197566845386443344989589198428793778675758493584575583915216983787531852482247879747136897898363187147614499451636415188624986738985867672429581219151553628159685356143317259944352487965621613165593148389448456966623517655279311845686718435348183169932267658814329616261414834374126449779631671891831127768441157175368131844626814589969347598746955815173545938432316874914473136959213956412787157933379178146869668816711914379679892693293668548143461742951639729235488573612793691477298128254794534275594297811615721694954975917377652725366875135175632235194711458799159375475795534936781536691762425658964875634643292466786913326452687419893792165694238179436494221621593695734426829316714696975492398832436391183535688736587488877864511295782464611257823931828148171618589397873888974831333617365997392296565295225836866772496749552652376482447767675383643723685254619235629396383616714726744993192497422613923367574698647724344748492256758347811735844241549313153819715416138287714335596637823148626415389459738558665627293966971349689773666171375213277221511757473388756824386693238942556176948528792656963693219851266426497635977843365445155353748446743998848911537891816954653115727551712113882537926883451357797952498979144423328317191315761758659548379511428444745685275192797536958588287197487575539222834143536755392215722867432974274922852988137449828388569266718594448454546494367514975869883729656777419661796828544678478739617432565233998325997371377821736831795424948269419182456967451782741244857871819948785831724696275442245617919956627835279794828515288119773944827667765276896857742693835686213897856631818465732834926642298721558693843676542967295596118665387397128489147991656171722913185753516564741837639818737778367844738597845272459999544698958798164552446936732727131741921282167858239799164781433423981978855136446554849383613878592596629261756455492943547633942153892254113498861145718961216567781592238124647113611885431125731122884751692464715767458882361127225682182968399451372592899833979691478755378613386957977184688449257527726121385568356822829818389214441293261353955768117744461385772754521628725412562157276973373228619568397524486148363812256695495563169882499162946418632479483369112315823762443967596265887429138389636194496851555587181595486389955471761543968853487686649496316453189971944138498688456268775674714792299337947556168128993534896814399193935851871891181394266227475521254996393688655719175171862998859883261236764686742236416668819658796363635959835976665995586761687458842698943737627754996686158659397179618912279945768438563274275358118137369697493591134885486371339617372993626678364687585272488186891868328776173693213829757165436221436249281778138648742598419833438495258539195357549983982925461947448441876613744992544913899676665837365929984683382282195252952393576591426969942385296944664619434143122983964496173612187328181132318433477146733924369918896894671386618527943864894934259223253663343583128685196451453255465148959137783493743299878351311348759899822868949246296657365546274784572621618243869141342675263884569568252277326656599879813687726751252454892293642865577879797755857458895171241518953795192276847892342899147861834745449384256395975188317144658865212993888333923271629642696934667139176279446822852254458292299455441224647251252199332148952897768698684245992523647541899314789453241257934791145629427677116328958627588768838734217884154168477427529625411553194613949221179197915369525732687675231418656312114266617814879945919787416147671484561938663267127181889191885416946796941572925115357386663455623822289144393791455444956756339667646859829998788767386458846842355673381222189225622285791952682316926966989116222647167293319982558943483668458435465622398872765671239314622274252991876338486131836734962479379847976566895576497119214595869644785695663469193619994176991564458938485797763931743915416787233638676115938891517531813745118972244934665544858354294939383977126158791491665141171633974787769881899615578659421255523839821344615558476675934839957631971889414149196555643953886861678514428116717915438551495269832187583972412545456852279168618928497369686995778326847517478599878143628742944827714314177594338534735428183666343136485669466434469275827317961869212267993463565188519792498875339441852711441182473971316463937675737953247347198481152757179477587119378848395711852185913741747859468669142862197313821689453175381629351735561318997777438853795752944923591755152418842944956495456345773884429828811397315942869229649781237975443339677927165567465556568521765598496289998931535295616763567662767435668526584912589935112171794579776769378198732989633185178794994922593954583572945636465749331154494782354763587573577276144447256485323166282939564272112861152417759863623494123828176336637758492181923266426369897517915321945867623643139691749147213573123816192893168978262799391638333168341371995897292839371328883111166483241586995878494839344499159496397667371214923851854339718142331755875569928397113219498783396838488517187241182433628467836834396873947988349515579747634968743735565355784567528152668149589956924951679423299277227668767488565752744445332934977281576993347349597768666498811762118885559552995183673464216174842539229679152458422677761848289985797499858393983978872689218635751399732934653825272873478357314998965512335479849738786896835431137854412448417259395294116553628178154983865297117914844926133913433177796563958499738341289355258433498775469598443616711964373885618827172499429273775689376646197569869124649953975963375866768491291899157273724813929149696713114773542197413893375576428762957933781912517638156248464736986813837779944139169625912738435545795313949665661942674884714951125728325282946449657293886619246944591718227193639948315572485115137933539958244479516529613132561335485698561939812587974718888952471197759811462923966925241871476119266764547352551956131382764219556328741972193567718118686547551886816318543373415991249763753111486974559824716224834456288613548774251684873561555441434585638145779593783884777288842689914998852312386643881554784865862222665526351227125861656586577468523459559615891939495838742634979113274512782895864499423795773462952897636215952559268858795327574897268945941246314246897897938623832959239241188393817634531571188626133814895981449256778534785925334455585878151428816987988717535158419599891962123791649638364272878713311425631919835811811816712614645246977917536261462197665616986551849539623471214222995813172989277669514914246199579833411486311137428541279963122416646723577797384178999133324683754123598187875913544936753612667581169138878952387616289892271334188719331868587254983137798486323519431547652235914361789474632374815287136681814174532475691643985111492412669278282583853688338978696836128941884514278735929379529496312418152853564888797254943366858369777161267975325728939855998678485744622368562468366569178986628366251134949743841993226998451789394378485518227351122321483948732677948186714132511564817742945463621246825115323993838461233455123383952439657353611323784117268736428168911975994455953251399731869316191958746197411836913448339958121399529368145456416663113279522673173145115927712998738651464798492488915354283877611127479211448278714889526163937539615871897926932634281678289189164639729947245152748238592348878792696213465436495328271499587953862581728863155697982845553927559662261121157347446764597251443621568878117659888493229268858498388176849356372652954356149726128154961235826719722813484918959125155981931377863942231356466316581564725753459179525433169551696488386856989596474917582837166678151637567675672175111662178794219976777273197821949729411369596693271499624617366429118533684239463246167412195665142419975539457794998968427662582669373896774189512391524597598148826792282329817395387942188467973332126165178965852836994758887891119718782652146655794391882326568469633714787233956414165317621777948462143738266679111437568714898613874159768111339418511552443747233747649547925225242846447217165111922171537671335893627567927748695327794792946761435392823427164834463579989219449889629568931897843276827484155282738566979516747328926359547688438415181396177525548699744662961446422613364864186116697273764991923699696313238782215937696364482887415837595533553711515891639329564455517819658522588637682417933786817887983719187279593165167163452699984735749946478819233797576195589645561129728875953352335282273348929789797427988938465378955147766535496572597321579273234784747969155122578582337725472792367759964259633892915834733379293478843486717974855559779681613217256578393145781225627359131681396511374853839444525923136687392954659179267982688196494286484159585389495574834657555469816994238471177156994878978278494184768125339814861655967664476797675964597561777265422363235917864391622649932261431289841973935647447831995953431914483223234628687589419939559375828464193779118164153323297486637858971767152142854151146491555751819574911428417236912618516414379758724672284772184399794493283581123375491674937889636979683253656529195323961486351488191777525132914476596159856951151142538148321667428686133576333341763371991551962499614739419114745999788714774539489625684495579228879863348489543758664886588862567331425774647384155544739763544255728774692683817328261478129471992735933467262681361854314469167768996322621874539781147784214951327418744969188165115734979181855743999596854656443182498438328959514238117674635532342852937779431121474568513344864325371437911789491188372615195365591753793362173265456713296789756622575543157589346391421641664592441617576623657634942532929836644948347189732672495248714869576697316612553798357639868237197634542354894763693279954453754776882486773886384532582199649768733885317473494344738958249945358482166369171441467162385662339777236311888324454671287583432983964881462552313727736439348589153224519525586662113779763695967892438712171817318176822986638979175935324274842595428395136683977242856437617673277661142837918936154678949882441994999819728462887211592449871568453738321657857972769283375566971829915322311461259428261155728465942277196347966422279112197638333537754277226579754814581573925794611548536442969783296967558528122624393854272779511813695485285683741262852572967576861343821611672487929152267528717788396447369461535557531223242776936858949472438387321691346312522598221839243932496574994776961525966831271664879341171431391112517953777558989657559913985472155921187268967573761559328381994173844399714278123311588182589957621327997486865862523867796952211748979951967866997838411877687329229826863278111745779193488641575751518298432243565851568121392542125144745384642685298685192594775599114385499552971774917774851766369651656663739615522112377893523272787825611489989228417675184226644934312575364881331333432485486843174942778241383738882514748843592388449716846468991824998324164417284631771761182956216768737184411187339233254819212849254745482481926317896599763878196872958935595959413895846531672147277956152445266747712842239456526551435375481681389685863283499915531612895955536956881665518178786294398388566135845546432634343366216496637469477281791467694488158637764974141264726447356478325485225736634885621375117649583687848667847372799663673297828851682254528483284652832496366572594728773428718719911131815119957422954846538779872884121981987268588867435914531582286135579538198964757574881484731344468159285898143453255937879414782229398959789121283434195152235569865663576646367967817499542972825643681551235781395283363374323733873437213996597114628651687827966464766454967355987167736554356621541564471117681515656155141349897654983454483729717368692778788273787241731972746999623556352744426959266249994494678375489723114815921846962789796747688684789529332781126179346799452158548829268251659586216551643941392467773678617392875585159938755786898144938626174777234884675378578936239327561953413874523876274821977116458948477632976188152229898942965523479888954657364584171713629581399189362627598965256887896177492448583462598355388735425989327848313882331776136161438637942257955724764323372326754472872275599553946965121367898171799899516264799629274864583686961538769664416169627916461326585284812783788862484836138134656384936163355652249564742496597194469766241698121277557119783644156912898581621419347999771576519949277794357519145651979427637893223911994771124964327213365359111388696875816223269256548369718761846757679979613488935612155539972419473313683897817488589235696394885539226794478141575646362876847652917347534685373422427456667625933458126691491488246491398743821882639655881589492339116882535621532718824771232878596176638727156358838818396282277246876924644283916535874925185197888939241115439854845449771587169695116676125314474446976397996347258841472594325822689417923219739466269448194964124189882768228761664698158414861645513151395346493315337897159716868562753346611429981956336213486276445978715693548539685798438445493231762121578585883263675517121916144311333119118399798775791434995861762169833651455324287589621678643743881571911288284358363469915171833963795732619884729865158699544851678267444684455175755955632759195523927838584624862753157421143738732242387977337149791136558638227774659691326716239219266886413819918134847798772758334887393748719156564961399715665657342819337331278813894664175425233558899694427789433689789573321337355199679515588124313191698974492525181236682939462388427647311973689912663279641362963542899591465883158553421488615144647349453215134755176762215729155393348927874144797424261943273367626473845772936766959518593999841597589494472958516595285857294648667614958626897583431714112245983967216727428157958977114425397216367971159466958423167132811379829222694568246699563624873817337297213989953113986145548468181787453677342737761983288714465466663353995587867596973925163915863142858564858488612717594635162672881839197484264474339978476589522446347735948877927212931353785754657919525981258394559481458775289555844778674316688477714338383162799384989628294147862864274856144622516529924886914397763379572279342464923464977355751846225252395298225118251866698675474513195611258446888718289855673946236634136439928568693299691459399144264711596977993945887191288596553296281955169767484536682967271869856599686389151718518613425646289891174744766788593121274285142664448192455819396393715831112363692257915893467393484237723954754514333583759876444149389445942589654882189124158939463434128959619793358822138227535513469771918123999433629695996565816195122868654372159719265868134829668174185731463953983926746248524745748453933886763894564541762995483596572581758821344399348712672352431846393211387998134575329175488251874391388751748773414184848679933181991674231394965994376246743318986553971274436488291991139159582872966288235361989993535261787494154256579952994638747412893968146861854875373279749924425486877979187159942837677354118482334582522336135965356986371882171153412247796847563147997632543295478943739853184993177614551365443619376588234253723228835216649637195324145554468815537785263433663244232721741514918815677715795686776233429428311887382925824649883871971924335993396313175897811472252543349945979965975443313955863956192521752878799386518579332489723417725425589374768999956587815344652794988424332844267942827437766772912699755881779998169639712716826947836668752788526546464539793853736192595379764639648694737995947247387843949686947944347571874735436549593347745128223393838123228294178828789267583673635444468749212128197118231699652722882914369784995945765642128293374786533756385136763545394453979182843787586367931692519499781843954919421562644732232568194797977783354894845292627999621268318254141849372465337549571422787693519769458877275844793417349153533975658682124289992654899181648681741132668114733621338636426476356822744821611847728485237179852587551566947431381754894384533148638371496447416893677423323917719556222832285177972717978866489674217177192919933237332563536684123398719714827299585459826263161695465812384853747198471151474958745935232321722837596142469316715773332459525935583247715638633777751643314297344334913726774351788539679631285677218565532729474711839654545344443626748582748548815943873882383211642948476712328728885872567838546755988731595182367347856468978992971593233466647971954487358372841447933415665467874776718563959625281478899475827553894941741921769426598646526656311729589869829426736483891875687282988615382759827527983192582963688796548736339489297856957358674514983367928631363487325296879475943915382869448614257787758899991323445977722822856199774671553456464965875154323724612282655293185543111621882999927577197513375214418635285997199598785188564166819897576547338342581284346499333981951489316299455233619852673512344316716143773351552448454128654735716952952266938588943167118518995684114517849337289948914921827793571556661928383374997255665477725258341154964581537517828469714442582273679639599737899524551635815779891589683792919565757658477254396783255485233281847795477512443859936887246664643839744225685852539374756265776634682575541937665347869368687238392724928478917185216441464871538327245868452776949518858923481649521165522633839118121851357531889339265967754242997817898466922464925855148177896288183244628439995573717667776777929371353215869939162942657755939246388265856162489599771765566679159579826256494476239661966567179737422528764834155492363863754662255871273846955563137768652394865387121761619391234294457348197949393891935195391954892839483578223786168585655834282772828759395429829878252194439266462167834353544578439628591797753441266868998112159574456799746973366276688564718824171788596365694728818378342976171686447773294517361414284536156141283254982524487661798214287996251997867731819552759641443589732877152689264884158951656338949815937698741614778689519751616611496932384377491256394712486798554669299265933759169162179517679731485884485374924273733783786268498262577939858861147216916638198994732197586778756727782934628249377125243797861914874594934912645422761357243288995975651937922615679427747743627299929915811248487521944971337734178623853497391463793584929523916683959393452286944398314388113391681848658453168895624744597988889551714461849345467959575641952549547863845724777538647995494342889778379122579968526185262166821161347623584868463218521235426986776551899734972576921882773155864892983222177955456839277921198881146611431938689922589636597518755944194474816398771185454363463743618493378263662746859134654483158558514651251762677989481345549487183446346773391517151518827284335624869554686886483597771741988116727594841789587975751351751389319399591951975824646591364118889979516911379542427246844766926617649329436954799255272123946471342379469848952166539952692568695589649818297613323976151816624239435985492113229493817666493393398995517556265887791869471344217235746928599443854658162294981378842445811399675599123484144919267979942948799964767229894689673435927534736457725788859587953431611258879869562682665744144531164614847977742785174827563458347936767643197118855856424781278875661488359463626443898294298494868981267964422719996115891825885658597971751736296195677173468574134139765481422785957425494882875475874195143794248718341476436441873793473735785456685469664398847712951435577898167116511768486626955277938958722277953816489521783548431956569755877795494115364133375612669684369715887787563968284988351971922199988695482847273291192783949939833994555586255582631327763474939728382474751432139783574518799511487614587696337749469776147986684188574138659987313386322813232277825237821819832612797665385427636367745893577262942664211485179528534942178846687678584427466893166128724413585562679622968358194517396879213741769714678764163887615868765435173515312569679955579431697652159841429276745471193453698847486597761616889998922687289455235272349377188648991893752924672619356718387583525674919214343818396813643152851453423581423169476559613859273331623976651823784279848866459863513757752277126245483433919421497761342433911395645694972229243764436564629176519384114646155112359581572776141857465936654659392339494872436839176725726427837917789252884534521259792384818678985876312485339561527787114573954929638945616663192511852666856696884483676295173714118155919623733235814856858688325984729384449185285192891393238491383296858594859499853117221388485782188473384566794657267936984264721191672963638119917447661191878553453592677288863585944995516789185815429848279437473656213913823471541972335159124264788589441744475417452129119889754369774371694643554636152374691566476491354948431469767216188561735967947484228514165778593412283669787476643668981463626455985372598699146223622963546577837492116478991818314498129169376369479145836733223132193493386685915815498474768623377881539466666483419879737941267652633269648759458176562849468418412859957339273694474231914468387827191766977249466853798796218963961237945743824318464941496511954981431316196414213435471776225919345798383417694212628531859763969545971843688843479422382223326175822724972891715431714157412284782548871895969611436591147275971467795148114276431521547633219926323345625762673865551961957875469771988858247391627584474391577578844929366965182462259642361144687591523334591573833459236267244888278171386836173718259247674362943882415843626265311875395285966277955779244278484889888984146519348849924445149486814865596125471554596864519522645898797396618254572394458969673549119666148926134365197849478486594254575499982851435958239419747347744123291474633365934599594767641539979692146589131464699141655934588294217587677318328794597773831526974518173314389998998338452539638584221876811732435863941643269172991962134853379219333316919958745277937918483581572192576237339984681888364565326251941931962654317451727742486879178756179928397289611388351385331297685566912496788483474185541918943183183791987684821626529893889178763977287566672944869378554332745281964746167648859983354285495999315372453715595781747712824764968384872623835119213554329969524243394695166175447665113975336158959914699844168828826967486472794119321538329297549531949164559735586127896557739821958985892529124639795113494442582354953675634672976925933955784685819782633524789181995953691363874133679234756488431975773554791911295858222919148554621339784962196944858499436616723485328126884311542591824945649594648464225559939118999266898427276865621548311976599883747551444678415879386571734198234724346218647128699197187674568448786775244937979543546277315486745776953948957771591129426877898524978819414959581259866787123937766629559673723946771879789534746793883556937466987478154864562754785591832645122426724581218795216113757451835285383449126342857668926218425279729859495246226524583882864694177497355593853173222245766616457286561451716364577123893555121511589433883627498237964355534894192652511544857727181813477769391418953555322317461648526785352554222751861357368321446675249914496895897945618289595631233826955824445272159682867897245646358161834653147734139969394434941685791517373166899922547476837934591929766919947549215417984668113621597586741952144777153236173257612996377599515899438133229693466231862973373957576851823427578256237725594138888314995781239759777349817675699642344221312759668883643726566486182866879894586557792965426198185929414341536454586192972712978268372777261666821581416886634988171657994671838595172281386647541537141718266273549531845273594967369337984988387731728844526191265363439718116631843537814224716652561346719633382539883772847299413389251398157365489332874158652646169968273853278424719179345596834716867855349455398949587525423855911958615312559319178297651963888271327595231491983174747741863689592377753382947579931524938892691926738841982628815212913878325487431641195391171731857536827845691331675394626768186542564698985759916737248933723779198194595196928873788716876654574841848637253646545695219375244692671357929389952896263683681737668995633181269948485758842714474266134424688612972439895837718766595699665669747728233775959157631745836164393933742847976446985927985883315753367613292423119837787531774597818866133644377171137189988253488781142697574576577734298165916934885454655393215829487979374488199381672441785488193781924371153486871756494615117325253767283944499245977679353788382831831692576553393693381389164315477169286751662996588888892727631821276937344723546692846697467865571693685392519899756954984859729618215384368354481443767864662756475479467731977789691456667629561187593917484278856467438833985887594144485282348974348942124756145529682334521998223578751599532253265898166456689782943644726224738683215255916625675461715839671798336272877553296897936783562672573965485649683371954554711126595327757169147657467742466612892941336347885326466478341479872643653629512512297653145931962971552995821812685661674312659967719894858955622829356863455154565757466849756628355353194172746846424783559457497457354596618869458987235589588993861699313542746635346152934557436251767684588138742796365523949588963481888765662561612542326212419551115572693139222949271832898715675952443756527374952827284128366556416695278727145593585191648885924456573371319987482925869389936933182745917115991485277917678788518242933964744398376582817973679138376719627656386121275986722577766726431275992767856747676129978615183686339582464189958699326459443577885729457698537227691357688189976612818428951145816879775123395543821545269755685974864259625515677829719385729758372182798995953857259943398941183351893657998175658213799175537584316118219443617721912925927613766119288832446689779544848767489799839582211433187691727274988911294834883536149284751242883277335416431894632265191638221956454734778411354829393841272766618458888582299674352489185799617783585733842297867915166688239844562294523265189343375631193611639415736537243634795816736142743389784338377515148499255842976569688889149518387748362879936565545941578341862859148978698984366675881188775452128993676693311661863155494112468672514829834135849947111825995532139545553536683899497449279441894442837731212157499423387387152164953586415624291478449161515956999357168657955922273862968976618327371743216435812494899865823321462668735678182216646919867927394516176853822487358922996898596718462614951276483966858716975531358888473393472185979484364579166855373597797737518399463245467158484128661565839269873537712731853835958744863721962514477486168731583337819374474895933361816749491619363719585461478846685855778185845272898445819489979128982169419688345158989428927719853732177953382429973241126262364395155268824782289967871754745386148159786228549376239457442485424516477751815194752937296552768774114594385781456998817984448325774958943136463813958849885167883888654569765221556465172142796148518411672211514384187883173478257968799887752295925155194847997143821754377391663882274933872995988781282988442747449944586233293825677744932273829659341924591463221824348263952125335499937124225169537329585773419881444199186674541972166683668619617534636148247268293681184732683683341913114856458935281156484334469983573593984516877277396949383697625493721581857469364216912672465425889546519486773535996578278581956629782967629173787675769376993113122849813769687766324953232281829798562126357596486137465838139454868395153554264985745552669397489753133497176386883424258772743676315657585517529569916965698614485925949199985219946866945156813281477358889661879913698484934367343955173956752147513111152932427319593984482782639544564148821822471429999724498488787795958867154361975133295788934943831161834231644447853251378727599565668573667874461115757519861823662375262692435991219752657239149565942821461555711731736349812919948492649317714169679967212899447552536399479679184818259116654999349194915824478229295615643494487935135577932411849989247625975284659458973474131268152354256667576398496219291134413687446584418359828259369183593198157575785492421436616959676352962586783728353396916292746597455956479663844213347549675484746243487481882695532656468156954612975278475169689234668771633724214898732395364212181786926588188642697896812128592351321881737412913545994823481467858839533119269373418983265412851555887825149383293578817225823284486929712259832876117258365447413793451297713761518198359669648233366997846284566418517313837112888843862478243315487882432437136555313356888557142949597576829128217123626848977692172775269815922866528298215248148137871591255839159694842536893142514226676958644737327153472141731499588288158828883799737829259118476465684584953277858754492475269591968254194859657395335876895362372441579435279794982495518482628773248195888381288163286453335589524485136579751214649944926433655376284546876364317987557286681617872173246916735412787968383585511514635193425932666339982948545351256931916192842139677458686917297134379379578643435874675861889716348215996344683772529673496837169242525452363581242598388977179288891637339113815635222957494666314936458831172678498376497788288835522662352923319826566792974974435966894174115178849957366129782857869219391936635796545847387351771292215287692615219867458511816684819437784627213811239585568398475923365435893799351671596329323581693421219192293535449842914836288911896128563185776998275995458621385864981423788199211951451265288896666262762583967819842687865279313258313237639889179498329445831898318854825621269315325177727784474528716817753147259235336861369771894391153819895665576636158636655517827615245415162114787263827358133971776831818636216417211186642438954931669736254749715973958695339232966764915787393817838858716575594476376183325636856337432484613737138492878946184546724131751433996662246595949131732987751877222785397586374271275538372952896533488554694648985224396562192427825487717827929976669861998751261943198556833739197465871864362854224456854119678861522386438222365866255395262149547481351363894693527383878856832548966342681352297313813348628576328432556649652631745115843757824669987511129278195571511853774848841582585318945976284414965273424476265917665685758579558848989264357388168627516593945798293744594871828458767916859863712579384587641689524353548914187611993539922986524957246867554987599354999471999518322484975894773252272127621828581527554829342163581151693769119521829629245191577554393839991887538847888117439675931813618658587262919642141246944113299172671625574663968186883967294968161948232913874484731373981841714562345136742613826253428926321336729447854887399761346889842776164478877484574493578842154787651728936748156535934919871218686757347575633439972898921828848337455359782618872947554425814888914293138285589289392234127775868785229375392349967954254622386422973161823951783535235349124275357742614334369232258144926432312844443358461883568995171669949112558554436169364714535646426128666833232157159145289971731525362933697545788316847591943418581393326823479225886798844848928446795862722189214274723629347458438438831486877125365895695599958594653796745197362955946238564744251394399523389996641746487832949562644316944323852447339148249482787917329184764238283375971369291724556692459848429567695976536294475133366881587932373823712488365552141334872381434449732837438358989749389529461119837948837947742954912557287751774689191685622767372751956958887378357952154567345586642188993989315226377323828822892188137973859265316757493784291999955459615189165166288542788338455812144526497439765944111381965367955679258829441167858181848656674936699497462248318643822351248623432621326181473939678379176366536366114649617524152955773252985725522554395945919722677132417534791332379487985989416434515221718432219495661979733579351888155188361113945944866628415175857268584453397635757619464337617724934192534621741575436133461981666554539855937995439918715911873859567521424274289651148356659134755537699962536972165265735866332915241188896824938416976851218764893958835597184993937241665175228852882729163814437852657415836614855933429743958542183578597588445137839264729454996749392259732144646211724778853125845764483588239637656989616549554328856596771423814894413474523418765489719789122335328972188713917158748656113886773563347379715719263496984268796989174955191326996217617874876716459621296411672847911797815423874553381898129346979257648817176789166596295589236299776492536285737399138669182154474933371821395846472953376925141526371786539694198179326983948464384699211995469645994669235175194712746392274467343818425787864991913527779766233218131455925226623216595463639754513884788337271749949435954463681194185588128444728228834386656488591144667132928889949676366126962976492913957817713512671435869629789744799553322319512449729861783656122972788222995313815773587828772264599851435159954624635422537296465614157729536118994249524181474137823451117627643783258543424711173487849537654669713995477915571545372993737249671798551133239448251477337587926244677464378768299598941446735699286498536344553396812144218377971939846329212394766787723587167928112597355863175688663426584544894646862852933668728295798867953529731629397577742258579647653289217866248352115162995155381572687188626961656569687198279152685925585887427161642231195281833214561259664979847659218545677674158465297818299165229931814697671354795124179935287748242546529642339652839111151516539623747312754126171638441222883323245779996938647894753215873887931647312317925912752554199562848378982661971466375552527772796585431391328441197552218396993142794864167144971962739768491847981954186421944123718459947269965478991731729584343474462636627369791867812836876671936344371234839693146478335651223577575474689716872352483198815188629147614344741241664182229789825522696367835363894751384913197875857116791418348448421768471116858382668618747356854185894173153771564479837418952387188959842679874712733915576962278337436536567881774792848784658943796243712596665353725785446956229317762158753916638652768946926981714796345774849622761158589448699943953534485471887893861222733392397779834174723458137773493529386923792168681379246895887896855713154451588662171273342619777771262786122561888297148293426326493127266445469552835942191766462935241786596461538464723932685589648268574511857589481356785211718578887932642395951974486599282918188463847458442123715259391747787318549896959869275726235788249733648385784183472728645128288677981995286676713375388789226279871271621614899895426994966713214937642533785326894715968886923359791583651196667765842276991498392448137682826568914473717165914523743877537328924826674595246455396785742922564845693291768949852611845889777333367662577246695592892848978959313739166295547459544877876817648789555469839423126562229247615833487793566999858329433758785233334443322541632473475889735164853662144783644674898839768982539926991919316445449417267237552173458573412917516781744723178517828127253537828712678362338686812468515818964867133147662797395237481457473887175749275884617768961512772363599416762843748735681371529459747599956149313145169893577446828437512531682652972617569489782349759164199731515635519298134529426399764797732895197655368692533548578974159763438853236777593386741624974221736453819736382436971423861989758377114427316367937113543626414424383197365445169685596345167129463555226828417364588448674747131183971424574172361854297972817895745431692545754465654825928144618996381444694752262364398239998483123878179863121866838162294485155698218174894212884469487526874737948387551964532225377294397269668688462515586869358291967333797377956918674118654112916464882563259993315742747934154669847949384662118876997247626935849541951567729988383397392361691456559514715423261573439131739474411644655217487972739377798866373545751118613834227364447271164174131272255664166824945674461342415814212832447522592275587328752613858743521218845947396357744413995278552687988932714555164846758194554744778554254223518979916445249793863496789236498975645894795698762553426772898928187875849266354264143446187173925753598127194229111244215214784139638473789271346761815756998158762858754747745631452921199942222313168882492145214149173273271196581826952897836157645337855152322429984329936647926491986929892246988587275997411698757619981197637297995794698348713727123953463171668941487674773891261998866841755141893192388817661227854995426516142938242689615266535617523648646881441475629956161423247738639624389253633599798133384886351732444327393635888391888644593222447391119299911926285744168615298669224822917543123946983181948988759551855865913913183434739435725479782735694332727179468627841294475833432653964935126192656757469394868978267575587159685613873987678893112187245587653249882145253853676921738958851148319698416713346154373367496932875748125989236586584174856377786553783562635764374588934328395619563353214144761296571249455725321659193284117784839597187188872894173436442131749145758319368699583346272482868646861679549731997735817319748931545518779733523891757934729332692461115341166529597475176585551152578731399889678648731748598425967948451667225482438744618593993372659434694533514753954467319343142989787842287619917575959982469957388351724437721396656374867169851986456532281526959929659958385979781998595588971262519688344795857951539524331937531454432526592281367172665371474959448821163526453584992429445439575963695294486635273919977862412671597734526951855727634367971491256654294443689471842934387167922367994229527364651425746332316466112255619761948298899443861248134846987299192244549794368927147631311547883679198692972298632265272136111842979797576335221681177278575632653159347688983137775871417184972275545549967614236755947961268843267614689287499926387936365532862363547566178571164689456147478634381134437492225219214793812253719144937367883665619553519944588914718178295387652619318367597763887836786618977261241222467147788365131695443671546524643647486683294372773862638854769967138712337545436619648295942449766876386845765288797732148463673563727321211218996664892949862169717885523378951856883451364654972587419319888888754851414971999844545156722152294385124968782839896563149475949473121174238626576753289433797721167884477611562928755647421933149198652315926774488186447413453595193699955945784296212752564811917264323847326616685687421798898128627249834667714396539985956728336693935941539877485145323714758686216556863913511877689313625871283881426534534164595249729948781366591972763357155598676369621992835916571335348236476885381471745441685291696939269788673349192551136136475695887483668731838298156929255383243159173733337833588968684917443829296788886586368569689366518376291569161444966114872842686433383532826113338326828136916251953679339122357546397935426298171569996535689667465891471911711122751781667672578715283316456861491383197127273264426451951291697563556764833226914429986269189418917832839536263297216367383691964935683817891471435567362785517696524314279848416649658126583329436463925317733856953648396858421332523253595875746832498744948465568516463471215868597336948615699854521529714892815183297771461865268823777357888157661674242973765565126348187282863943852932845771852579532762271171661798347566679225931377314731271348183888618393699871958246538127156387614385632669936864627916751537568591834582547868854159911179538245459587712126727197638342129536936628565421878122922976718753929255139361575746615125151833278752747214769468359646956154443838647452785996798794949784583986282154698218236867468712866296384958457859963191577672965348587981295987469812357791938191896933429959546548697421459891544931195998849167895291896711475445241988735473962997498697534363891559141422515121399299284846757862575291495792544134134641933225898375352684294232193441146658574279465366281635938429264894637811179623243262152874529713455459127197652463171929716986515436824852928268231222873618842365946336295746741623282952953676643124921267931478873713225431477177828792468419351592337694584271694591196816637593687257599348924247485658136149821615674278381659783451899429659912858533789699314477744696256553899674124776945234638623614223346213385411651378858864879883749331135763115544781719257682598194427369461672652697451674993474556148791818435323231138632435193646498822139528478414629746825546624569515999633946792845263959827389592676874983939899567933833566161519357948837142373268797846248695329744852517358476725789224958697975984418563738239495453436491379317539129352464747198951744386297646122622936999677231648832554883452667472358128812822954844596344418179874688452776678958732794717483134579739352226478371793383467997977616235837944131247393799196625728462838465557435749579869994613759643427939632425569284577993282717877799955899352837512321613633364966866935292466578488173515386883156779188314456619265733926971314455818973855676564426749631783177119574129343334819723562659596953944427324561844686349719289112294878668263476245398324463831576889488263628892916981931653316335262758919232675716678483138721854367447956198926646399761343574448913567181826284287289336666132482428971114363165763468562237468711178939131525556889622114451669117343365339249935839257996892635124649713493884941145593818281419659822979992689788786849116225967951154793524827699547821289351683714973844689739213892167299979932835416126293122994532859226448937221398287257946557342958965894779438356538351831697712516962542173475129839872492755514294189271315745825285281933483756847292956777148331775451944634875721326711529487762461348816673731417991395594469258259726555767172846229113127676287699592824583589797652127895137346345368977176675474617178965572596645861543189992978247498838987844771511128949229244793348725768337992888596686693318975521639499878735154162994775761647618271791192725997325369685675264126936326467667867965324394315954386912545574923412476816744839865952638756376636646814568173881821513573821595696321391331984368486686433689374978428369666625869171458136476712384698281157622932197859533876243679848154816171884673823141884654466631887183164833512917928973792214829921832323943963235348529811936768747976497242747742246634972119247877497864855858956393719713196492582671142697573523278896889788917611655436457336484885321886756459938987419637928363957342946657623869195556465946535268162386928997861279853427831867496197182842987837173321827417118498774684275888543224366566212677365639981417282392686764354979187495128792782735875251917385379518231288528235639949234125355759829731797897698888615447931648797765511146568785379967562795154919489597429491229435337866194117415499424979719986346843472921195694425524232965399477748876613183258488834398573392259774891956716638731298484915559799178629216869744976174924837954699199332828954794969742191865698665428514449945535837792592892533119669941527197671458548218837894789416513779862553351895173318515282973111549416622647884728945761269872927885615562613814977748387198227853324755557993377952842718981938586617195126866648929546532882662367262218929645293777852859985851279968853425823384182882211462882331388388245753318759551593195735598976721984834474938636152738681266548395156167481793215864812618273549119596629995933884227775724532555756383123995286244777127925843772147959358971523492856718639829885272564545753693532435679378635239645284813636847451986995366944533168727578538835483883222866532716172785119612779256799258352193382215666599666766423828575547853839384988331664634887882668549285629319724535979193847871645624689278584194325157786175575652487118715868711641994415721281478865876348169178531994957548388129213524878186876515369869311537621365942894891973919226576422376499611289263624895273847221459293637346173158296368448379685327598633979796795383535593927397797344669592687885663837391876283492876972326845595951487978892118585478512248136681484894484226883227472919238895297911847219231719354958824633157292176529782883131678288698761439513579547319534425677968485418588437453681737762137394991635169523745681851791285186815873968613727899678697196888713846339574969648325437693781358294568182311992818597299438899211144763364236996224672269422518144486124957529312877694538663462938443881911585616731358182649982328315346146414593291863576627958561567634176624636984624581181612335953295979474311915845565684215574461494975117137815559221856741545645852287159981925663491747967869393221168811328389297914223114669626217828548129652779674944496168761351577239815754581113153167269537417794765895796814754265821546416258366381385475717523898613724928815595966943859993468684886281666831528332112427828194885999139476772439871359849592518929668981247753273663853269821929514463641659693937121184979665954579227767828861274139859779591882666349342176718517563297352517357245689449578551725864651671233917688871312987383688957241382278195688965247593455711215928256387286957743629463865212264868393761715739328367936743779194623561125273728612976619681735799741251622256713776649379654714194632611517956391939673659532396476133796461736385271134596244481497964985191588476227326714862696326578784697795178429366231996674637996178144723946573716795847127815271436825637193756617585821786314967447648658512446982789773986924188342745744777127542143764661311686894637845275335924971461397391795517115897673939855183771671319566677296487469813933114164813972127383644385363519696713889995987354863429421636719812178248769142492758965766992594765927672299193521686436892759792636327184532228992184482584667173486223597474573532589867474869756717732696769962571836991374659162665872172773338779237462986343529682819223191644867181824261915744517411798721122374266486315885943628462932173178739567693442238792441658563194777951122799132994888496228561197561156968366423438758937852871389513657182127715576655578475285649978181648933698993935628831324934958296678637315412341178235274581466755241441421957996497877995187588625539467999691476581155588763963735246988683891473399624853519225491714993871377416273471761293447833832415742397298559255769419118725119617153993429331478223179514124884144161141146867527895844542743876976812767242721568792797498678557271952749867297554427385687673521625311921155991684917741489434214658394147232162965976625767916379288749978993576298667486778596669237433181666753698929717913478933689217746655413758217235248172722169447744825216383786874542935823746774522481255552557423385116616785117642368699673376975821978971561736958735712639554587236811973476471456316524343862984741166354611366456446191578229758996236413689763156725586237827797176274338495895665249449169423462463325448713859999975731797496847875746256519941375743293181446786152382369758999896866742359897989181227165154567721141359665764941538329146899246773194565512958428764756544495956918849449964246298117474382591318122753323727236998849918854975964628858227438626322137289646142129684312936433369544513539116535714818139715886539888261952439798511892758258679457722898313384753297233945375151665724228699287741837755275959536482157755144842684898925662843946795685335698773487458297538355824731713271792262788891951899184912148686931443767858565318565186515613368495197588458368993698795239537545698538675884513363296824316445614768813697726935145812531616175611224737536181595372681419529369659458193397926999658336919868367553528592246381673489711844343799856934318727226766864376648274349289631355723754917779543594643535777724319443778734677227288114118141313956875827785836625426949237987665447368334517142365991659366842774523473554933269233596754752231499775161127317328184866382889746953177442799854972962468955679647922597874656556219944223658782778768222333431997882468319562558445557162297912811463775239988475166257664385438769561861561311963586999738631411929994874749535262715729957384251632361853883771131214629291576511854179415536478284795724563581135169491758368995883185835869237715231488876447395616723349893392978744549336852247482538681979651478724277551596621914131368619513345612157447722541962173262873818495362523863185574374822185413475871519243256823989973426861371837759216796176785142618614223871848335777984462568672445757231974493974265625428258845378658325745599713963648597579868827726265387957745397588789864484785767511478888256255367232918448684759754748564895142676722696932618345172695156736731957535555541317742694972279947989442745795742425763522482542377414754762741749753952865339998931337681879623857437421864546652249994474866675792662264269145446266328195418718992426525535485785383291459149573586872294867316699783752819885998336165175115892621378271267446982678487212278128665677966539931296899811485899917947782965478652774191679296631329348246421817882869646454218146188373448185696339944533675182225385666516562278488641683373333982768592729585649797541457973411392469647699647622745996437238944512431961868382617197984288687979497375339632722138681647255892884923723387837762246441485764981481678243548343852428462849945136828816926526877941778746729713948296866458165287217831745711593633514879876278425915276938884416347249867492116635965286875366671846835329733113376231956316575435618611611261237363375968645659962419894635211483896157811451898989666639714777432722169973662799885242413352347999734668386538186847431483268183463439218571223978255183832427733321511789214675424654175298459116755393126124275172236662331597727248762419582686711969734781423567281393499423553593462781415863278585784781736184798312249696538632388323875924771537473712782496258753931769998261137414728489526898678952864116138619495374345677637489184769495718237997341463211575123623587987267658411469335554416616953935193381647823239852446326885941161649762966722797235989738472629117613219726666782226333517666743339582717318884731187182824317834116812446458153676427589224522696596423372843365948687116693213153595281411159456821694857323557927442688616576956642517539775756724749637482745982385279696696288965395154918582837459438445235424235193328617189726343739414653835178385254884865887632964988637419245525463178426232144666349982772163977395164985259976788734579938666438985812112227179569537614191718999432683859871722589641698199453179117872657158164853565283344783417645698972348394592596822861568975864838781459294526189397681661813561648669836871439224978997583914383327227526112516813535318327227426422956161974357658261443169937214362683159976318664469817181111961793913883797461165144514753761733714951776528425362538341394891361597566489672288818845633766192684564696577945248143394519186413252715565819838745827752859361842652191937545385768588843152562966985619352819381772324212299497138988325858447153745134965653711783711371218981756786979836233718832446723711397555944482952756551685256542898641946644955987685393186551357716167947961673873965919465632891582927582192675331773221922579361954989578327792545292949829557956679879334416427195126623832218996899226767114267638949456711696773721958313452884235494484849734376811267431151783272627261657999431645611578682387373886773538794543782948369747585561452561237989488881986958933284841641233927619444776343256473389292114638878171257339536361717446291478677991415742989864175316189757397715235981294194611981184675458771545839226678279966972598399259379254846177441159864659353558997175715196349987778228255698399998818686984626472532268917243157813458567692628812922195847984556246558586658836644691484512219874129171267557873168521255454227856312933465778827516389642433365335493791568698126576219888312551291766268775316656188438596167475476844191793129561252379515568641928894222821445124431324832192855845538646351947311814573792832167297364653987794129971929867535664474488842958285223995328647835457416678655948881263947324234848568655575918288171643264793838563373189955989514419571977282288624792351195632566811669953521837989279877957411991629676473734669442316768921187999291821697289482355346538181639699299166338433382967244687278924829637157943281217819621623477177992731657846562433294779213937478528385158553215857542834188974325389413665588269263697284996617773313141671582678249111918158756591566674328211891585866421922529674525329774578894661434297955419417615173688187881882664799248688971848517321998762846863718639992869318812118597891494486886999185924759383482995259867839722544483238597193836169638275691354259671963975497169122168868758875866863224298558195811497297765683695185145933241156854929665541571189683926257348356183942699919656332581695977842672192922584887873767324863764899973676825141977593461515627492929655831219131493129155786854534788754396434228159983233742174366695538795459814721753794689249925276185353766619285691831383456326642262652869992774663437427491525727991835114463542838221219758437932273521231135695281287233223486125792977252683846926163833512875913323697126254344139577979493722748619523745647928727844958149767173378994427311962969631288198974976991721174676511518158664889444474189338699252433771845672614533593885137747755594296479745993931939789357612182711972397171598283483758376586827196531817381953873742376995944116685586831873634792626395669917664117931797959917769858265726965926278136667323914575743162159483873974169335487871183811164646289991492471839248496982788668898881661913812137357423743128667577453622918766565183371498563445741884389725335523196139912189699347186498542524119199152931592434595647852793395444611868421668131747143647137913697629137998534734849979974886335974599383224528486512338748417375296744385526188165883328439267795736966248454478752849962584284442366986424268596828878987137563223935127559361678712168514226618364619443389769716193573686944957518226713999728349386664591966591893758881185531313138433188396555864672335328934647444194645774665353831189324928486911545914724521427512442483143237254251477736748785426757715936622198662191828863899918165871844458954883767861476353425172629219137877629714636364191483775499923811255862539983549871576269228927978225643818944688179989691649994736245542873715918842447655967668849366633957361488653441791878232134276231958929229725527117982733189232312978753368918627539856455884721749172675947873122339722717237522179876739835851182668856858572237852675167455526283444949371387266591155755942428873362726876331683431136294383116994442933241298866598934659356513945875217734696544762783117288698886174221764412737957923364326117615723688785325245162891466188269565922497288413214889384776618238191765912239883859711928399395758257883141197958945671753991626287875862864777146269821493366873821535714948258197328911338697567548325528682719735898548217488987591269627597411627816779898324371688163574887285515927147164791492519159951821126855516614381864562355532397514958234331783786879238712985764999165929496423491436616295431179769431655835685281684987281548158899354163631363847831958158967187645384974433294396939239217454376155311836585896987923212644597184843575495762713815321377859899577646981885686336725264246838934579468419468698736239862486543495426339869181873737991878299791627577317285178996931372857666521531866114666222675114732346973599823572874872692484555946218235224514865263379875345355981244671166574264848811823698825658198999521671497938224272698341494676627884892678818853447529956818589856843231781749418662782973893898889116868777284638539659678888486894969731335822261672425415818618252978322768828916479263891273166425323819519976839498891216376921112181753554458923382175525559831478822796626596537474951237899381957567219275385746831988423319718387675827779367719895391416847467583168891257951862943521935663243689591253169485321248836141518939875266687434168354366423736857494895746625961737989427497535654723157976813667874328796865422242624972876667584659227471833989199927735949792286927423984263148965328237651157674118767754448193498785192225964617146797375727985675799712347728519797946739169486143686516547516417741598379938854823975965783224459716742449541143846349152633954798293813232893641815834276263237471385729135971883113413572931319773777923214536951596664176339977156347255944631255777953684193727846758417424228474726638478316279231574578148741939551398596234757361446641463615316995438675181717177874714422766599825854286844976365242537814358959966925575972272926935313278464237727862746562769952656182823261672958388983969325393135785465926648437582565961677889746799518586299327236853455464981529261635636837696588961593785925395774196181215867487999618964515913732167578151532721883384183778831229495164294728479119767273536463886869629589555214259585968958416589153438359812868875692186423654171327131733223723663424943972814834999216767142396291956398443711367329614526784718319138646165478646825957139977564432763481533676568484657496755977897239323836914396158163611137852576726356419297729784531382878161411356395433899285766579184597569735826218346428484341344167233988175315468952853367115376155155758719646262592287714498569472458284394863967616289418956669746515573825754783594373481822379521226983369265959563762272822523575478164869558613838324867716164352766831516527664174581739299512987638865245427163797629997173493556135164157593529653679286431434439343743682762876362911661754922338233833762298712646952334174436359445679141537784244154273113235836568795824536938752376518373559872513383584495654786179134696616718175226188324679127246321777417798565199818688975548532678536298365733438911513532911158521184621692269247158124555296978422873799439961172845158345864499571459474823978586545787145946789184736292182882933977335617341937329631883412995924412895953166398841316175499253977856769782291268137643671798985429457633381388425647473119758396643377855895291642686388339551312782596549251963543952265997383572334186191227922636919549696421826813694224512835588147212279362495945161226997486828291947614278635979572195541779615919987579489231725941267338479155489736272943712632814885545685351872935193882152777348766247686966597348818295887445598755416553911644292413175257453197998287471783996463713261262581883338945346156686119721456474426948976978825516954751356438486743991384723488721924253815516511482832725868812411751351372537338458397561271545289818757188582266313688456785892181188638815897952581951163774368234719359112791657193836475823466665199671769134686111915136137866613388516869167815653943317455578514382546748962261124815294491214362832959711625495349741989177759195281258859696688283452673973489942532766668951436997237499885371787269366647755564595927979789214252387126241898919734919468278966826843678355769283772544583322841531364386167837363336932627552258666368173395394977921396394216292925987921312728585477814232345882118484751862758949249459979732723438595842236386439759742258235541777868444688321976479959559272485539296233574386818687234753174626559924398469348139358369665993437251591198797365868853864898258339227658571629964896864992765652426479855954613377871566597663939837629479628763762965218981992551957494434462739699227147147968435884458487525764915718768252241824132998553594449186374589175346447682913647227777324743364635698289495656359398782819946321345155612583532939564714462679616641832116287984367144215423875317155864565158544998656742428454658412322296197446277824928513243135238487862821153755258764967799693559525299747496168836721683491388555419999412642712675794259773367818442735486566494891159113225547766832775687457448576259181885236799274832396489595996123144953657393529314666677417747386729419468461434286967831726951973685812359612735993912117771798454745833935499857782139883799188764784828882662929586535475787957985691289232758744431265937958146786625482214795376567841766837756936246329861142383155918648773353576613989241855754645823177877289189733759658781899742743121847495462251579616976987329897934172366893384615619719169658425765568823229817847758183868357864433294597419329418895276573284692175789543121939466567746745458589578244753411158632156711198318655471797735652845267276941499591638556866344893975274624891975178584949937956838994987714311319954348761151131966291467757449397771256356142597748466326665675636646472494826665641146167647775185799214938339249961845728937418428961759357335921985594356181558954513689316827997964968146281978593675446112151975732127389948837265588995745439942217258734471761688349774735698466627779814644164839872778493235536561912748219583991918676531843798932642499729469466164581891976543937646229987167917583649699313743592253693549838624713115799546181392217673693515631556241523718532953988684796375943441943991828752264984998243287855812939819741541974312234824925759177497643349483494352639726564223231335274395963191826478851191951371773769847494653238889414561973557999235381218643556589456294317776997841794759875631983121139628866552281498533741957422896898554853613218825999327151114176897817991456837216629531456677215255396975665996666233781423283791887327615259475925175594972441727925973117667796966581717665638313562234878478848181946365313857242287956639753783878582499865925494586841297259549977584439163779335696715874489176441883278698747622971675925326931598753837143759415618322759118136769155284678978759582547949674939462615357874693895131872616864386923121454987458889337284396464946685969556935269661392458664937736383883379831837982165782359911724252616153189687275355615413782773597452157476447243747565358237662524217193155849763875955566397438294233289345582968617511139256623738567396558615315679296781999591699727464889785593759596999166279895546378877642391838567538678641567993634919895286518179895727893731725629516832153891497456536665389471992258197834346739268324994517463142777474894157763721322522776135442264264972552941982236274969978437382135763499929938495782993348526879257139919621315411925261989895473819935185546944512587924847857791482567787677335787994447922791118992873135678382766728683665499659635731715795947779389765741674171295618534859713974646581667571781192244691613957343991754123543657679875473756746947869543418267619476254432866129479291136971726466439754888771385568266559718287281627797113647161182692155437722982662866877214245427757591667499458722786463495599612195666812188688668422622318352743973775285453366317149364116647634134248317539653169543463523847999448792832984423141897345768936357234225315926672715954879146165817696862547423575675547677146984975255667866755898869171618155886919816222682799319612586859475161966634516149535142726615926627933867861326733515965389625475451959791936424927686644718358947583846464971986551766844819993946972266739537948933339179271711848762641464375538464959196966416543294389261856299624769119337173976753181761297656563855316995213628423418379495885927357745243369692938846498467384655932628768574398288447281922338681872469912811265833567579293789245378626582652988261388382169255565513458171229979359678236997164981649921643691777777839695722733372355692496313879524731747153742247431639521629311347577957237383752675628737351142295875974927798823636373641947236286479711459271763838886781367327998337223415159486384679366948772654844199851493556149326992815295537134942554553816426216481276177646114156193229658143792478613298597931271737576191739236657714487113914778685867934267565325763541456382265792878551688785187634163572841178383495193797418592912783393936823174494796146444167567724388574466198234945666627311243941955661729663279488575731554227652171742835629199437487362227776737485718891941517753295857461141965996769468969673998338155431113164286283874367628398867348836497336844785672244875865693646727777948254254795748129848841294861781375564219548887597918652797835739864596293426276162371434113686999665185221689798697479713153857365775768167316642673198265962898693592492465611684575928714714999738728682531655997319378861925977951944727981882429395195312212332749779146375529815871838155425148111132667191974829683454177996588142698287295881157482633842567385726514225965877718886926686139742143467529534795687541198886398583983741946127623827138247895698868464953482117929325274925974511629425158981574259398748991456989853783567876755877751422457191786521585646714338617577165743727215818524412122671779496566588395642978684524133791825111759336176798835617666715665142863187181758233537981579564755284999969347622941728914289766867361835834549223869268695938937331731147577943376162257511626957225938652115424647998216869776187614985768786131931584772193999586443533326675336659988377822338519116365222343276952544823126939917188287557221452772743637521462836433679661412968851373699329574466566663141216811759252142447139117593543769826779779178114349929347996418959177418896241146499575775384187371396397579945146797163387667629367741968513394699763974859652254968393136618981677951245114861468561565651992276376779326877917529527989983859294242451538995261787885981123851271186722385311926421445734479345444751249833471711117742376721178129292392488295852465197294371994975939846695631594593478532199696155839926535745519283137712795677993772683658647936387582632193115555679877877447359428541435822973255813821646286491343151215595752198382217997861635297789917687583997981516946199827986992292986997638373299182587687826539913748566127876532693659945533626797693293692784861732197666821864419468734282271441697761957246146378483389767897967792631819159862155822621599799774497747685672415688461758785327858228684892454371857738978963964285691238631577333673278793463639446545944384652849972822183631962221844139716975964951283647329118743866548459399597315626977355789546191654475476334519279271968148675652846118631476679617464332191488917895411528495178167323524195586922455157116422786744252994394391562727481895328975489984418527277334258532866956484697398723288649294887821816587598918268373843926841915778112122966784197796991572575848595419766636375169622356482766776989619874327686149328934972164573643651457683986849686199369534948638499896172756351385337884679587486662123692588629823857784974879316545655482596878471546514967444649956559586789751697697638524264861443463825492386165927248755669699528962988475293866751544128397344681735374856168877997685659578292871872587236254899767831961424463899952353459263976925275843146439174147532185465192183286937538312511251685993273188494622169844252791395478872825932858797882149247861513542494848722677979623591658485666771534718761192681657845442424327947545847481919259659415986816396119846169845265536814453684811979976421799284475956336273491644197372893215949483471179473656546453345277195978638995246578494467991988241464484473517967892995851524923795457483952612927776189132689923346322279526297269332657573227715498935687116819682783996668692792169528129423956877399271324524816153516217477156664654276647419847237575898187713794143597182618473171553245654137835384587125945717419882569926386996295174966641315941286161495475872938849936143156477848791969851338723493478575274852673847644418298396234644675913544941853185598222415176215745587193156713469773964669229759641499779569581495998219475696761861785437986618293724136916564429989824469353445378316836481252356333748232631217897859444885195632358612467623985556581511598535267422645124747651856869938268293573672234699794289316953573722511966341615798795244153761626669725894943171965661187966193958992947946479291686926927777484557311546513364227771395117897245754689892633351847774965388111632974151638831371484675869616361158145912515396837387839897734122413128648774821273185299793638118362299796858965175839869547824586153699225963978113417775562636329824789964751791763159267551516194476397631427393522711945984266399275524778113293831963363967274994796984732443297447497835177949454685799873254497959572841832635973585698332375268411254681539995982545379326616156325487879536334619284672379173693953719821161439844356372624858293893898982878283955184222541678668349952571346253445476118518849395694797919773264687785154211136636968768965931243568615658355685357926836538671836568328336735459854191923492858453154127485913756525358787228251877697719691855973655552523664591547615438728639385326926236583732375366882853583134865952286724333934453139847787663737633269792915811254543281628629248168833588892173493695155377635432566745861944437588499868226954586249326873282521431624472267383485674147567264844219975618734991643596754683311158127555321218944924482516566931477294347281521928769259186728593131298353622747831957394253925445746517146261424375492269742971696236121533945822515945917956925433889213986388111862369219218264965277123145869247331839918284945563388854997396538171739983553961899395563972666913581824825354468431163779139763439828525358265838676822142253588992121575573853652953411466521254559995451473291964495368398565545958228961367649424798382862344334675257429737683927679358929916326224253426652951821994623823493794453318824157588886192383964976594692659459743445468332465838615634884751443148928748279537324187687367986153963986922491338238384495843974585981445286849899822441612446422654817672475799637951359375291161619374195851627293169382258474524947641681917452389938839381389814188616811598414154323145593786915757746628933931633575175274866299887441289387182553518773755983764969796647935783846573481631387312523499185344889116288656514891419514137993279966993478159916379133778612981353883524769756556578775623411866528849233344943478839159915199359183796385937631884782433584935717381471454979814722125758948495366925773753186168324379585747437878816828667163741517282578645956469117931562321288815879792533892255864822874833329973454749668797168444218237228613533212543991611678674544217255971844628568166946866989181786734871698934913695554825813848575363443861426113182598939529582442499442476993181515597744152427881177219542828966817353278141616865367627937365569933279848626418861546512759296687251314931497749544646294187323559748798934464849376787632537122197329726757191938434855748799467628789837651434349448942217551953332932353124513165889376621344365238135392871914646787164159959239343768177146129217686636174749243276396259462893487912459893621417419348577263668256555865978174618344387558865957757986466932169587194958841218339485142874697875511449786155366595166312893599691188465473616357344493953748125245929964811984611693878893122887868685365993393686422362246845155964978318853868445925252312941915266529471685999222453832489413889591568368199187393782996881472852822981933868487155655986686948218236667833739785911849261678875234925186366381318354673735135919689711984178654517184236215646199891965591368948611859448472982323294335677853647471258155961899725287869919527837759199929985842421291174262466133976398467718649724728472729343754237919717387423311388166644611352856538194235921676139551598973567861656149559216478466197583888721615792373279857367299426539867896347739389981351656914337858229885285661821113337735117428486339147438233682264362378586297336256687715922535962578718141389674955415218856882194916467611258186919582142658593577634777995127983486324748114799399628824486259788852756285536851995732479781888991466143971183659799983886916532585926913853945818132888912263244561529388948466327246973966182499365441164536934449166358672516113869663248794413682119285447668538651497348382186344734269316787558974323994555941397338438211624399914958897774134636999394556949184676616889517423189315379785144559165979165926753424713521996187591169423926725489193214392346536796542463552879545691946685858422161637158731231855739816928233349663719777261258354214297582178319137594387248766561625459734133332716941746993586253327581726485337437525233229784858646794246157341398961562694258588324582147739492694568491392847697728287367364745886993132987777574849453774257251227164441675996997938545137519953382358815968435684254222454499735856552178814396214495326679713883667733769217864151459979297487362787181846148434176138155457769117753461627474945488247924939254851289687112429893555962411447318524721555144212749524485521682199545625767122339251331381523292651746685775345416993994423813834222423794449425367778518186449132514156397355386761584778473187928468896749699181672116137671226748855167954617782977243829376293252895191591653112321367694995773869223184481842557796145512612939698139912931474935183946535765166921239181726441588687918931976821429189355451295312578932492452912484433833225715766849415847645354665135539983491327888543141456523968236881381534932996111918219648713473195752859878462375345594162685373792978541365495673849823174982765827836934818594699662234632874774916862436432482134863235993866887281689979321247324488966514626139481715647268291818567133138589844241911575661339956114921836457442593887347654674856788349139633741696957264482542432315995742864866694577619844464648497845296977851631588337366695364783818985281649549341699714469957281446934783166952176645164422676561345548358766354346576852813441499658672877731336881846193413662823587731572831859784125877518748768171726495677746978861286452951247857179147646722995962175468859294511235384151226681974634421818913868662271656872355474917422589922478696579899589157789276539116695778783236478248645165946356614672679394548962726179638118693285259922698355767864638114564843699429983631194364684172463643325938117798357521126613326578415848398392652127841938133286399391999932259713716413515978397397335737757212934163679788687717895558626112839651578196858559787373337847889248643533925828213846597656944138754527695491958533179892688446483141754997262784995766328172175779349177686758461169818339323337259568624947586942315558215395161553379157635369671834791742885351181165959137178728855414138861336169842114346187987191787353573132977151146766359747288434457935381718949896296449248572379748937624165844779765849285968759278669985774487142259897861834836778968186518715874979636869264371115978985873352334141599922956359439895664574484154957593563529593565765885831399966316579994752414699577736274214734276345895985144475517852158378266949368551376967973764894134568896739443286741438411131824611257741299467595843585416823817549897678754565199587896482129736678885891654825195658298216855789557614967632623799185546159323813532731419579719314256833728237171712396853836451324851148354898919988639474692696568833532824819868993514786544564449134874388752677159642157768825998769584666449492669817984626954278343295995946682772493419634283529778334346361576234385427162385388764549332145724813579719693838245638561526222797361375646367924956253246111564558161119825938636866559787771983493167894973456818424813582614955831658723781318887499134171356749342633542836942648143911272593292231347422844634265968795554163259945179763787889961316124534531194181786926475915738631556335789968451358365226695617633611779539416732944781462781681995315998729127599874845967262566733695332978352535449641166728494594333769653771969116148571232158774484516737596223276219479952866347248387256168253579265898188727829126175772967369483823356664448613428786789385574652631546374424537312587598525664436854116278287473193416447518963382793337258788848218966824373919469344297246626885485719774461399676986219254984799811637753476483432897815698993314966585928284321654649864684496338648574251478641287466211569861175184814542424745298572314238971345686311711214566926469733913668628514857258152843568758155958341254553143691991223692181545873715191362699718447279326299848969639629837595116766187831498916892947363562959448686972759966915674587798943867462629832269955424211397919997179595639427131588995488827568614625578471462544897922561514572345839258173676463976655727572561713153997567621552374495281524533712399164233345763714776255376649713182168433766959521759961388745687626446295693231869465357424874587291186154727473911639981277999827928281994715144199828951781479634596433839279158552572769242153177189213177418481865965646282565284776399572847115899921473278858549383774177642637872621892491393867853917248158531424835319222227111188879687143997443349861746284525499134791679863691288487434557281599366326437624862118544958435325391768682913877167228837543534591571841524677194355858655937243636523945865469457922249157914729268178315963433993835471487131345921275487563739565641862731554512937819797433479559612471281793382926679432797882316984195557638291876818593912966438947648832719592533839369781914917356722983668784958372161197897349325485479686878483993483438593321917343681457476767159984487278758428952263842585592358846625679143831798914917745591188382187699945648893636334427476389966343354939311979379216468983271782542157697882989125868399797699877733838449196358121431956938147994724699557261528583536998192678926326548426544582265143382712647298568345241577422355229167934292655431568751793685444979818861536817712183444217655459837958689682276177731366995256733162691959731742463422821715816399563459195514425771589738837679598462435789489222971762414128368196678445589993377347612626824711625734887797149726314674217564967254639273136594875423192425278834961221922369557497846999798986844274351697749284981476824934493274738837151776393452767494567349929154347761757737447684328814931913575642861934453913114824389476132313599657611486952262428193853259977729493977695416651469786215497373835717487674318885439671596453142718789766911383946392781764127491524872653794555518584967797155361396968764361273749165499171798719188833847266437446972982815945359396287598126883794876569288296395638837179199973398438794294892993471635233474747723381759559898713921592436372811265144314324191395996312791725569582196963811987435442114845443431465774464667148513613525773895698623459952498692847811343551232467691213711844445518885191281226184769143822546137337849842864359847582332482145941765162672293727252487941647283873263445177595996779661574798776996299516495967693776498471564865348436112995475888139944241969885955363811128459663496539314986993763715714612429484639758711962871225148829974515951929428236484595576291733214653844255432777594161884932567278292445289932187839884744613791528343457528276546685394971424622641955487195527781352433541568829351981482467882685884637814962334992219963567969711657754878373664889865326928652122958553755466718375318422417795362488334947238336646543988623363672833312998346759187461828929146813514915145818891791231324563422451587657748355734372495725627616231286615289896839992529576732614418883693256653114427779191667761895759548376529912419756934577959673256683122239281455868562343894692369832857283491691822851982976292977952486516893839315291412192387373694279412457417299438672252996178994536861657696989665594431949985435617637231781491457887187649882775358224456128339812996544834322211951966582593472762892557679326266583889592618983216675515755656793625613419283781789652784477156912989977362322227288175951654637497687772995379529339356344367461482458542927945327292963682334483443685629687671199636381476588394956631756673617393966271153435653116125925959724539598472511116884952962937937813649395857626814382859757482584627398212385578852332568592171111433936257626599819792884967398265535866414628141996922972672156841647489246778512847963619259626481794117562528751481443933536789417556235942558968862393437849779749848244417543912338732856526589933729129891937464651571182538989551753753511716496217668176975999594795479933573823232428795428154982512935652949855662666266794376265279581488714298345734242844311987483981881732632437125551286874754172452838372891341248742953576916896369764184418988435387714263796526827442793591539342483471292427976695725568759925471751222278374674418796118811459748778694614962465247836119289566333219311863725116568953898971911728821388799373994912877292965669459215957783598652359395879323954818471395229268828341425751389271953219928319357642973364777814336956263215125527285595746461876722167569561244665761238188912418723431656726462519988642239888861536671691258839965839597696416843766687345915727984962565629477839518755145162721499538158414374971935852672255867569491969178454831874159536381287356659841834616745633659358525142665357978363338889987189796644943116255842795365138141799963957692869979859941772295787357655761469277552991519759285117676914582286169694165112918463323262696176212647116325194843519731841741648122595544318958788773584919428338227622161794483125486941294468837888738353922894571849689491771219444551741975532951942814418277645338895791634591581528157537877424112282158421192571295116128453584588248726549539492224794121478467873681853896588128885741947339425416168198914891739658291741377388259696969551267382972511388989238136429917676599396548455266764997373599742191325721638147341959945834497171229358227573712375258135525569998812263643596857558729229268186116191853757173742843772763579999117754262845977488771295135329486863645464277446616418691699359276549363176723194453557945367777593768913149315783936771215878417768386426195959274914913417294694546591714778993947966794259579426395558262537386924735316242672574587897785474747449863577728477622523799239227275789383143336922796699326241193697952892639468167838498824179965416842831177438255783898438384892635688745531653776457145555484755771267629685129257812631977168554874426869784454183597799357996453653629311293951738737115563926746366267116589745988853739985518859969478972975977229792643474842277386712219767489996863291393717455745779918473812255286156926546834758464984874822794995376873722627437756485635534864294431817786752896967789854468715436649668373373869838239411918487189984923484335255965534552751271223987382242742217479871589242314451557169944645858982788912848972976715989864825478419485442892934963176987445531357739254911298469335779972273855726293888555369448591877439567498686415617818567353698869787648772855667193868943297151877993642635896367682479798238669914732263589544793713985482757548572218666683753567167147213975469338814434557395746534793726944747178274818547812591814356993627395692523355138755814875664498984767979284853785635317912917495665685357741851258243662245737229989967597391769799221844917177874844155235699824186428386316588684864947918312879667171222733863716754962459386873783892418817613325233251118632234913382545161717648421251445935438625821188223513823238469599986344143388263347195436597334446614621417973329793893832938442646214164246178917643549919834534548589689947688196281414137122983181481312141224437691948926621478295953361648585788197518689868242855685368359588666475963497733425218342154633261252464179358144118394425618729993862679945498954169735493914176166216853945281648133337139495863722773485829491367828687895512134542315533895495566537276827829944831517492729747673764113415144591113433696252948285379819551756188622229358899899922592166741228719137914929863586765923552576955648639719998342898531834343335715261634535195879172817366268659665941118232419763995177141678348434993666183328699521473541557719926149297282477683432616533552768949153499956524963567494588929946982727534135479174922334576227995458476398466328662878812353338442383141178199712734964738624813914295461598589673881364269921534219186568318113287847422544518681813618397958942983111914282682248383815818162359497195161289494447938284832825694279433197586371692947175575636786682412538775683785168815438372597619512431868591325751853355213931172682249648927494196959617185817165269465758364241475653443313866188918547851285365131359289635485449611736891922521196524681195164181589775725398311866486352758618487528792438728628677385729957931523211994259942743872836361679892159727618112797711742158644255881183294719556579637644225785778628174114963356167618139173639319738139376983642468566241744867248384331546851883118153457675434229123117225769276465369933968642661673892349636928227511564699327534848443932773828716815598985665154728717772659146815992537989298689857922314827216677317426458641332549297154545919178446873393776938565759195318689645758124351186546159384468315234412977979736516973421799978695857429868235373869468362859928169286146273729465399416434378523993317279349179175563755286129116191662825897679662315989821677686855622776536898879433835998236245885368152762532996378854278599888242167428119498542651828717894755176699249498778843776919419977245557442221724932125873859375223228966858532534913367787559983976832965418913533886114643451819163857869842351734961131515615551154957184331595298217776878178169199455592947719713356593583974176926571424375839999445836168815875634397899319939822834864782464722643772914686993332241313373378459374786956239577839129616311619417571848789517152682922645439298477797125751378981386696112959926894418224797531979947911227685397753555128976199929342227257318917795767392136327862714825141258533654364239964742239299933568274118363556619663854968278387788764438694696455394273718255439887567411549918621471426261783651926983292968868587262448529972847159493991139998911535892913918314452914956797847529712491338489531241292761224287577217239215146782932858576979129554968735416286252464425635137553541567765193958365688554439934358255364559216826183464894782977835661764412555247342637739223447436657224759858213615928377363396392226718644469725569863279393489347681283527719775888877877655536377144541976396291593672365192521869386928948286549261613676462913394556377272371974448346151656739146817454757891762394467781121635679648474794417989913567458823671369458563189357914178481129755995437781587412622179688418966144679517568227178719648553194983372967843515217899534472491744621814987688552411236643628912879383912484337423974752347392536785371778912635835894344674528592147571614292456432735452847295236194736566878832669625793884385297559235976587323751192613554245532599186528757313592387136456795143522752893578949319391594939697823947486657365241923618611942478986856794725667246216346332158396848873812242792245364646394615642497349445879992279951284839747241551653584298932712592711524765237624488645179382381254411321849668574462765418791188378383637258941975286146631387217856948866376744437282171832686862642495967393872713817996189224241565393735699931529495793782784329764475483686757595798754489229772325876451862564978298247533728868948137647283954349134882378459428756393735235385697813975658947993858727892527358289959667618588384869754442893737145598694953823177492716919562517178673631851455355472285178386792633849774912449865788688785864884659448356285925585388199785793894788685932355623866364788967851155161769642273768686272532368427535492293888716456518827688656571465358666556637589975751331391534219753632448273949581549558985889464467856545189642321439222319143416293821556963421599811965447782816335257156292738935679997171335627355116831272217625318896357944342478924234247717932776799755262892875871192118622588418451476391859134691274513894841296381616321114535697431776943546977521576519328314963837857475412418613284146982622663819138897382347837528994148389646855748215694316621869375116997272244261789613499845478827434644664815295357485792221828466536744224631297961577745544583786685986355762892459587776549416563288425586692631688248755664925521957979238485484554895711217512759879722977988852541764676162184775598834465785325567399285874828552895696292599169595389394311467516149675751286352652856688715189165223955475943493626997769995571296888912192649958475975957658456112983677168722955159856814873695797423352181466924564823784894639493568834981512965912899454746435776244123289617456151445434857366452571888569591214315837547169886925246842396736644573374799349358641481113452866441349192613496422317265534815596579679443634578163884286731172666755887828455185286158126938723445586467311946528231937268691369717245199724395781631178125371331544779517561688245871578687734177576998331354854887973677166411537781539276862685455954971335537315756683182922641637142138463456543665355686134769875798882187574175613626397672644968584945492369213685478552266626225977992196875774585947563317823856955589489399714577377985251953941178717779755488872938412847264891583531155591953821697636759895252739961183594186959515788984976543287686776643698664117991944938664287172622237663734958136249334964458954289383968438732462794998382772655517888375676297414149187666199732439498239177614492897266167854672722736337613212118383344525152751431879137596774388999561873569941169739287499381137523566269413195259741126196795327618337559376785396669472191563485814663129334478245932251929139384393438394271871734535767798313491492568679661185956861775942196424314556551474993955314756897933346496533575841934487431444926189988946758345562584926862345228445135145416468669417115465768637765494995685924653559866911817633955659137531241233648412319728294188872582774423532642366862971417488679985834752356668519779795358849534492915654151745937389384998979182758641712813973541127793895286166913835488518483649594261542149767687386211457512357477859888347299627498177973836699437961556512221783395198845415991664847681798719557991656534485129963865564598467212887788649269513658721891559264946622658539728555379714932783936742834375546495971439898572669585962355499991541283343288967683839276637971425315363731858472783693466325837274375774477442381944947556189917569427688128193885691665318971991241944785293498244976311168986799968322537589438757253685368214775496976869979628882944585573996253393154285627458763483995536817285835838566945978498659289865639618524869777687614767918713851951764862976485293591147977988167619256646892129884149433521782773349786396689684245233451157367864661191587774893747879685673447257585713747483945147933364635279429274868544962516135939475672995594645266764845817429394736218782671139757822264747777775448111686111838355167984698848929747456931588928862498861868918982514195999393847678235858196772461496952676559741148698747652677971939743171198797695117147567133136283881978222613648797353669535526469358486358679518862341917974194435863394318516477962455296272317433583357954789332845374691783345693655911825979993595655932476863391686263264314729168316156661763656143558679559976737691399668665785492165155555293597139793648691671181886125563249612288913615948963971586912772473375463713566785158894647875824745886855843149549684557944197262681934454784978892389634125126968961622627361554698321483182267918563313486692916658651175623376921558871999837874415853582813766835416984144551859495141851517299322821395891861873615515743395738631634546888719197513672758584421629259465138755763427583496713244211263739735412846673887194793974326489485839798822732483612964964269369817634151179665955858842991977722395615769799651575473591313127313838488513365569227815411225282287179981946872969951281385979797915853678312496448729248724947185997596255764574615971557475147215371448496412923697192183173515623156582217929455583331987675587825935487332412369495484618799661966381251929498677497554294874796155689464681934716395762191559867968631399772735376164918476814144581281287797834865947818478543962239879178559894431916195886926314958147789222254911189546655622959342567184816919718969722488271926931443967752953265888129974143489986822952289936297865799626734457868543675916863432138985989284778579148258794583899745174989683941529737949862464762428538582698477487879618154586486348979836684958639631612749573285658345929457935829336124598485133153596565361236145923441181795521531324281242796299496127827122327333627576747657753897168762896631351574136816276917464836669191139354398631186894327665231562389488279584826483637597977633792477448178941519824175955863295995734819779146411635197379159232695894186964397545915773511768741813578652479459892577456629673998981837849341627875422578996534726762267611452952549233511616512411563975794993318127565942781367514864762941816113737263679949447557296796835466484851872391945196259736979183974723134149728969324175991579944344534178984931848912232649172695327657777273995618394354859954321468762211963381744462345414598465923994285798982391137297112323255814481388624829477293284358318732275913944291618276725999586917343938591745296749126554277992623199611498873511638113396334118182855129824531597497246775623761252937666662533425281299319937638683214654769746697163729853191868941565525136996321295847339115144898274244293663151266951248174619534595631464857898264891761212168213394822883759976167933294992433812962235257771486956187546339115267929683347964489326514854484499391892495547835224962949532959727931548765984878618159478635751256588833429678614429687772112854377417761983377953796145384633324456459956915489815535193557454378856291999271251969532655572628269273379249774115835511935983333653384824722885581931577785514965893593527229114273496226575978471949848164772969561368758319288823219865965362371619344771168497783213953976615779647497465477896674777822162274371685316531265739219735661884797392695646436949492225819358742919432572262948669191972689383726796984726514366975374991778269975473284489391519248291651659468126418463738453749684459749877618899334187519278997823959178813655481745994578258898676965669728935368385187488748447897517953622269643873554136487965789938635339523572734173962463825917587452537994682219938472993734919352459435759151218444939919722193881881883133661876857699668196355648119146393695527116573584788363469157716781396282694915772469334222182738372591298899296522282918754563544947339247573133233142186476577818498333669625834383271162576447583176178132358187236711821233519133157736813896154195979796434296566932427483939589686111969947381729426373243143122785322365519477633479512733947793285851674329745162917439368255872516215122776379722274278749242925873274524695595176142964781936243928857115456318146569441526777689584657849832839124956184447954281624398961911338499839674561384911178464311918618287896183218551237555351387611537155271895265773175491686313695798617276364311495711939854999798975659122768884234332224273438728599955935291732827842336895116151791836715136643119853632657351988229986692176824874241899868976522184379322898185173358956811913683519196266216928278981925471498523173925148818957225299475686983494639276692989567693137272715977524997691427412276184213644785159861841843654252957183884992183518841148535868233392671818622281731415462787833874596886518979411585319659911649818895382539528279462358566133524378886991375453885762729917149773988221353617332679614561973745773858829489665669641372384735895156749977181484611749465375647917919132398714629869693768893449429913366243399617489378591941797674363444899977661317131475325627637179347333646926323216844295955622798831586391883628363975386584986193596381284367373795196325848498548565748856917595467815947918372353217195987622629596417256446579249878663163342262355921812387966383222988963424415248268265136532768883766652766663125392958493526543735862454885294641156845151192915543784758232139115992145168798629892779883284824899569748991472673567341272393625787571529285319145798448361488271987464657677247171587739314675511439958287686638125254679665943759131765662288822399416788636366392897731729959273631549943984321656816374235919636388666225971592161496942841386995996535579453861854988646841943487682969895495475845425322164294255661126237157495563784155746968976647871341618866515797482642872947675755719466324842439995643561539489681573853988243581986216246679239754318917347747852815489787698696334596992673944383954418237269862673197671481497192717958116797928428987883295469273858731238685545828625294793491859685243565747768457395318188845844651997622659895652212464774934145156489472654443841985798964643172461127144161992851573272519897293148213317875595657941944668293594517663478293821676636272989653133974858881834882389911922926113133192669375935372542398451884723669212291157917482242754339138476477642557176829171467772892761794226338471129743949661537861277776149379746539517529926916894226624936119271841362758731532588665854759738999841888427315367532181878353281998379856879881848938359316225352311967373648786835886364518782446199697921123484689667568831983615591124441892727573767987394884788368979573261986314564943887623178852138616669264963717694417914625861146458434427116828431597552426334859216629799359399866661381317572198644154237562424385572149826682436953425566289118629841781673974982392371919245346599788548326388241974988281793115749412877932487355759752667674535985933854624937576146491558167389995657143899655762429329968342229883457138311935617746634271928684368184674792621565529676561913284523286311757412545958365126332611131848868323926717899337881452673499586531456728366473937988979394919734863418291814581844275415195795967421487895287231595616285577436416722968813676929571623891991577615228676816778589493335699944895926167624367683493741961687897734935697345562485461854588199239797998356126619362633835538294724177774743932367938445435589239522259815625446484868347596365633997853197821457849191658849624966469196754835865732559441414598474519168963129445633856328919225168483656613139181557248823718139246997797637859243764849433965824681679283984536819353312113891391764225891354477156458448762342439953771969972327625217989726841948698153599934978541489345995886446884594738539981387348454483228893979956194927243867991694845434571855832456861454117557729919838544187175526389699583291159734113862829858958298255721225537384151886748327222945681434667391536915811192886442822896522418669984468145945883974222536259144811226613689996163716623473798617621838443793513361717175533857748956843439525873372785571411227618762723583837594763515567753248833377246149617239118567491552413226888784953937532866658598847589728175365737983597948777723479245462339517796178281753745726161969498974294411991117865224892929184837658342673216886643969716599691892621989596611916695919596615463827477758924746133441221772586696632418381618751457987892962198164875182416398675244585519537475457749594918361135397312318215368419754799626545376491267259197561962424552841514874632769295365316789642938589156688524747612496133439151765495897498953473357781393397959149516615968835763331398923337875769973982529614178838449949681342661741793637619167526794757968459333756337468385989315147583516962946432625752819448995613867921885333259472989875569518513997865963537139171556192923391986144166415636255942752857678898367859531761219825791224576337887771687881866717945428721964995492397552732877118627994587877319388488341499835432593544769456676377876887669848425894989899612542212475179666272181845265485965183461854226428893188973212513647526765161213138425379123211977751374766811288947484773936953725736854328841576219976762695431248846625429515822738541244897968377856188511662552743124491479931941518957839497689246594265779536262729741751387537854127567397786881677249324972215981447438859318499857148796233165984448967841574843578742323796144661244919781765794999236739377613239239424682658261645578853526615974899223236253352689267379846844315311942271584419982982619882451491585522145584456128277983563385113413475678938348812896628894126369548314561417597239561338353831718643892966325542616379829464382486746978836988785149411756452937489133441619217963622166738531614589826991169476899391799969319648875443232639382739445658542737697562863578289935759816897668288825421461639218681594694788528952244817258768887235777497179718911186256877898168758823629328636185263519526976783294633866227932511292789137939177749376236677242224291999822718155622999663887382856939824221154994826347744326194117165843176811928737286718433717124919798691865165415239734917873832686864831352133439496667522638588853751213699154273168554919281375296818171298149773455191731399362844232115686877138667411286193873761586578236359446687621683875763132627498893582755845988282471738954474422744117495829351578465548596816567211144427549356578511239341641683498821774754916655931592265696948679738278177463648117678765628328675778154694318176858341629339971619367849893394362354468999659799269857322537131226971336762534279298462213444817759276939196345215187891549741685476767144167815434854187211399492699246911555581248368989943193782529688697953991751224946531717775611873885849934719815363532373898615552871553956595687984926317312557697875148373484643343736842549384918847648224716287472348641518948399361358646587151353674869156381194981721949158716993956748298212662988645336489132679968786495198244133793628785549596673153268529316995824219639596187251288347346744159163551527274947665181374719996258569972391364484126998215523382787513756592399285495216489584167166878668319861824585412313641426894149115728297167899172293915176217761239718821983778624551173799289215513715264446432968817632518247993896346315842226644482476937846788999513827821876944248827989235116868372514591233678782879882991541937752271271289977792956334764174697558875517569594453445989297761951394239589813658966453817684871313756967615751168915885674832443297782797391154369924396643397135216636894712265918982877934945938977886553199198568973417128841947645695273875842335771139486978776935715181126598988314196619738339397721526914765512139914725324299568495881187358258367826395981581636838639996289842917754166629218884672639891839727216751448185139653497677412722785642176258738929274742945223465982574932515223918141229446479968131836159592872937745559456299669274495466927897119813477564559568918459938728327578635223762453165315574684826961951837725818895458316511926854585817648188318936735886571737292984591883499162759998726869237844442159178852518715876193578554938774927795947511973876927798599584953195268843641749341173259459287283516474429293439622149544253345149717754713493288894524468699276249599127256874539751499887883642763883321844552487499323786333656217277226519396663118949645311149977697485923971215112567797836678536411857656153764153799953669637551923798295842535226918376264422147358598348347532932263657645767979881159518275359266931135927622538471468416143647155571921756567354947971987139176415913441468128168324556997492614895897296592139393385834613647674845353834845562789497546889775454889863526926657147711793541184114957457495563752473299938829324444545916696399652513991351957351923967741784458444129628673391783893891847757597239267617543483696538465766413812456341774472985777297978593663319659218872595155652176568785156135669763749941619943746149353918816177486293268279792698677156672293853926431143484386914249682912898811415964849888555926462886768526523153326652112242911212525611957697733427633197673899912284667711937528351237625535551411613561654877369664949192448418316437918869141491737672551779692319958157326665874776595181748815167973664991562548692458292436328259765184671272785256418554112916954433944447726652468861581244516695452483176442797175313229834647842917783448157831169925491843888477775785378273516899461841877592792664456451819587738738474395973773124468531651658949136818725547915696614696395652362319727524486645639217974279589384426288888544693627325825648814387431548897569946989151342517772789132521963341166111776595855973387651229369153133628217171473573293797878295569267496279689281283223319768668778152965867174636454732358466663499567236665629618237971795723255713486455313747787728142551599252415537821484899623788356717574138599653339214338135736849889155411988215459727488642171948551193934467285695245287955315889498915821891489623873889374385862288224169914918956762621388975781388384844117982241299414215315255791179592751517431275366525392998834844555187521256732385174412887541342849657467473297258499928985278475225797423319296718865999921887359984873148487355623424665964191799359525452399146591256454323257137623493538157661911723852238982871287788619855831421386354949923878539877417644732587194793948367884863652916595626743494574644674685567918925929331799494112261414634597238919411822387151217594357216195624813956962136721469357429638169988114699897674266443477354447497478572374359936864627586387597428756981499756817539658596296983137728857126636979479528384339871662669796714462623865477846295444637372325896652885561576826639647758693452883994586766687699973561518119536452154644681198558228132129734148378932212771527976528447556828286784619725698397536864237788362594876599541351851511579692112891545238671815871535147866858166253181321825239975337242847379128548418918966138346291615214987275129531942163895368245828646882386126582853483732244481949128738614941862553894863264466299653727598416553345312227441266966125612133762927239843741175991895889756661464252237973559257299297629454596617693841986436798883449711463363659611596654632798151595798968844634832913234987785176717216635171753281319637981648285741421953797841195785383184747354341312133283986485226714913112266468213512837227685928962217451484122735462839777191911268485473436411356349515862169464446974693733583119214614878678818497716963593835363448798278868461933868643993454169429474796988738669875799372288242649133315499557782212992531214214666217935354994826397669428779481658792733916373568474328765776971415887755163716238598943443415927966697135693232631869891131155888268274878841345354655967247552741752151876766434866814762463357474565877222168777455697247888781443257397343123797378788532193947547899682526826974232897728235972937429631713158789987198882575329951513359664755679368998463692918939417516823712462534265749397843264822957466686277576599539626917284912796645183253746496562393739123984485736696954971869177882153774565125798499262214427269757987516354846596369896284924645763168698316656535333261882886565198462197681787499895876736751423531898179662374969138356663466476123381294591683865727876714629274395527139994261395313784941925167773452596377394938699791737197335327939638467542216665643847433814914824454527931213718679527582346334714894172121932482945848271699343664731994239884139852668216257987718337347915253814449284439418848266652561744145328593247468457543214551467253346184274319943141848141295716729839316599236416889783849467993352558737259887887218815759364916475496556313471538295438727774582669523756253662287596328839415577497122665942997148968399518782223722327288869258746945773613697187377936468952692157275982461548438465973545845782424148917283221696198844178263957364874919387478976327916492852334452886447457572778625425339768894673663621585391698843269663468985985324575311797614985378483388971285145487355883612245323361718223697749419657658362568349762855735514881788969191766746538625894232279783355518181339971688859456413174991812786372656629431618735733625842752171949657657745417721157699977276981866756721698898934593582222189474173882197417153628749831326138645321253424327854773942767541249769629134484362156781547667913514169141479767266169464249928518826973324199644578353336875961761784327229746845356659756633646296759213415695727985822675649573288581224421183359748181799743238265317836589947121773374651942489435259153511591967528891494775731329584895173315318948835371414619437545972319767263674464288132598225468635589839784877555547381719919768965149525847574191158182877927673577392823849773398399666188932976287645542596614533585182568271492227575937559459233499694394754619821218172191741826994352112397612472259118622212689759436451912168911549756874437914219535911888885636843679147784753675161837468861893935993937812512146182659136614899724571758749224595513295685614165887855587982276668897937152478678551787236116943687368125841145432792973438116778488321616758394341965658519784662293692646382333815947815678211262219386983384994437617478571834972722933949421782379543762656878179513562311497632543525494968745198466781724796382216939655624582753972453336675565663344973434876856983625777698258776721377262841681128955572795698644682868643575596698627291484889255646213826644296981463798151146577159858582725927472145718479678569895925482632918829317224451347686567888819226141744775672486743753998622882749139838172846911713679873344913982175866228423742546153858829195278754898243375455316575199398922268527295712933876566185461113851466595267371463493498831566332581416484271486413677479746884674347986755273779458596845381457348295192331266372681481846416533597687481652687675467538854562895937291758445656645997514136997774496599788291448597194857555666371474622434426898523313372839258687378924534984821397432435452543912768797499356628299617791397417377727385951188381869851455999591252671159715394173825539598385216755829888944298471659879366499744789813728391713758225569675121722553736777297257936154889761546783133416127978242486718149679327443339928916589372366744981611963743358379726912844224658352793818216442593385492817282282288139422356775566733245226628764748653515397499376228873265598578982328748318856379689992565387674658472367163454461815877372445253559995553825256292829631116694489348814686979897838475746675379927998913466963345755225989218612967771937512294553127679496216542538973388699267295555287756563889895225245579967886244893762912297172148636381475854831884238894719138493867773729931981258868263377419379488821787431859588995132578125185999349443469857619154387335811998891269833223494247943286165385849854352497278558529875294167257753789863169836469264248732654567263469855445535982827474729497832113884621933622992545553879137284122884716742133959223631358468889689542889661391299427244366299511619389461313445262279976776326924929121184747859891786574661381682896775329318655683414927172989517638287819643921996855662168727112536253236717762484492697847737659686966862595179596441641171883414195218138835471539643848665572422559932524391761819999862145384973112429784778154888995452325449161246735718848417532232779714131994614864683336948986411867936896214891466769676752156789787998359223848473731562938972829517792472111439616882978291973827593163689425964845329182784189717223817581283566181741773992933678753357946925498365966816774769469255474183517974257227863511598773912678581837778659832841589874142462265882249758268114196863795114731241532764229479174262797267321466346817194513248296842317349126963633541739151674743492484258937163559572648114887274241222455282954646816918552148184692935266888385794161519395879931316491724514456877162477781196128318434962642871434374958825282715919315895326393596385172229951444191281995119917939276878322627797914113152919487333954695838619331996953449512168627655336497497791786578174546425182595736887386819769376768271586861857569813521346483484946722616285752625291284197594116764559132767836667848471652826274922447133218587445582777517964187466871118865436173381757388966574351647599625973717166216314841383145265788297319784688156421148788677984659191497442939565124785419834664588278735843676566469442433179668384991597266442642358476517535495482818478972495425583737991384286549812673383199166969661472752924658829817951578138595874124545565962745815355924486177845363378739183879644177815276199168616484763411979515921715185463753961295337593299422882214431944365311475949929115665658591732752911797319668141296717781914159475766565846688348593391737395566115997736753776619599439231727267697695257342446191766961638997882889482663958997768976938193966114745658439237194619693912224347728157188921257841949293315799367726396965369334197824877894444274782824375174645948595329154795153781813883886555839132863852566516962466896639739613356645727821698343919595543176577993612156839469749517929776765325511294648849476849921272581348294649323521389396135975966269289179699952973891712793218944727424242869418651744269411167251394569895356963185652676327586131955446169527387349672327197798765337847657644327467311648641533377182651349366666775228572484414925222236519448752716679797574151931834955248166965945357853137545459268598162948869397986647245881599928942745696225829697136951231325262879913666418235497383597937438842837669734634191548846987186744283424749931635352277947451665691531294366497597249892528783352894493722596196559419785862823583169533638269228319465952526738687487739434274292967217935844742193949728527284127282673798673239744874521938774229757566691375299786487921725338952768697984996645336398641241847216872666859978245925793221414974326719567762673645935789725587977873449118789644971756194799959255477833161276264479273374781153487333597711533864811763564735776199358393487286923332852819466657453314261395595346444365879638754918898892749629949452331625376676854276876787767236738592687537983486844197724672999814277477384779955817577363182129722366856629799469396297316468978292951575589632648119918731564783488358177686996923215392355754716151647936323985182198832141258496949911889682647771975995819531485382781451871863834693126729133699692519395781568883756287267353569555882585987242677949754589458625692667988389158124465646244899539547398675166938182827917538496574226485458217631742399878197132832252953495412944989517726938489544742187392754612318352342828468467496195927571119989852931311765848929731233953971444139361119788587439392632897696493796471878125487125626349572149928696967377589696119192798398591689447771839628288148294214334721137396249294421733976833759829751928199452994814742847866295277178485919262838391559287939273434421274353377449787772678542157348189261562472554216794184876283791781419675338757284616885618691749136797646439695394371228743511765233486594518557799211423562889292918685361592392476114252844487284522924136487667298836747257722187815262999527277187288763247989694593988936624555222144878496729445897473866665274884817416844466393851533996571378784976656752539761595155494477291478252516749914647528116894817877849181355151668226474742662854854649394927574351735219642666795517141569218823445284349769636175195294827146785337929615546371743878189737913415766561964287776632672533677496259331187476877951961856835638277217474899535545728579766317976123743418551687258474512394574479978719361398533384748117914386861377371231579851197433816482493528128771964464811118574468579361627667466987656192576147529947468689135322978939811489218646918852231853848495484851937441191358397762738117455858771171486773713458461693692153714771256869897374728136298688245361283142778465216798395448847166485181289441582963698142858124882715282233882679318152828812383283291468685378818596577969685942478499281196742848967642576955187529885773595492422695477716992898616526666966538816497433916748923662393682741172662576199783399369939578398895528663545169344744221241896891246629715461538923899959486476953994178638195826746845998961377291837152853519826629963772377561492312379812375612743462443121227452995616877313453253138871539678187517381553363466957714651522917479293899196249211257185859675858961882762226832281327634137436339993125819228499268443167229975571822667614453682853394926563866834656588898851567971489953539833932485366193493788397228827153194869764391834595421868847649499516412459327268267651964663788912514325548355864487558589889511111832591775911768475942847791564497288836187951767235297746435181723541799421134864721429896951258242984635965299771879146589212645413238823851243551991287275533495637697411498318947587329867772454142143849463733735862461926754992576795729196874671545116654135248736362311866787394394955647672255819466459258596317966887432345744386826726997914181953291678668695863712444373787976761595511724978599976577118469128687619437747419132118619882489673856861681856774945421673163255441161837234272996732757924645478886251845194775379523393449444444115749513211884229325619944454931671941699565687772558873119851312994238455658958137217234292788317887364925536971267964638947839445644629473282249981125595652786623581878461673271596371451487139434253734978666671871921521995166538467812628295665749279148958339521524979549244666126492659382867189534127799654648669842433533766985948245889396934299562737448938431891798756276248721559382968248757955415868287194978694497852999532726166796979982388754926931897534655218898551456817323372447273862998156575157773157561846341453871791619578228289244977737628436731372776617655866398214557658537175961492789891268797377974154356844571626439999783619641441472882139312848971594279439942377453438975595952916393236182944354333818284338437175849591756493968451965362979728386625362398795727387379643472215584182564466553467286319939557945672917836434169914777495542488568927655913334636715142974773956877379677995826992834663986165247557516358284854845866566928347976839275811128838333617286961481748919892417857923925992612466631525446533141859644174139338793969256124252998972838759997798895126116152746522593288615465659877978761484325248646393221223249358439452581659516882993421999464488115957142268116681683573552929442392561154132252299323155136416788255347943593184733989354999529127688853142781924999129443362265481799218141189379743863966473567396279815774272751754396638838171857951747121888894343545852123596859834539377215545558149137545698159343461455867488852741598789827273651342227829834839281159125819415798327938485914411339898242411791173317173399843452698469457575274165159661982297957144569873962867864285162867454259212237767212675531639678881947533363296382997888781241628954918259341147422866521746585243753786489784396678585785188573866386993582155411489236291821294214878311919738823835591358425215769613567417623161862911169239152918171357594529868996437953534119893659853713947833689217473654163676426498793571155696469715792651911975724589656663164676983885887658415534428589357464466818279234273933199984835591289438838893584665821563672187582443487512569632764667654386856693824746824642156577579884927778765127938287799942824498259769884466849532148212143233537996134876759575596989791189673965492754866595149618441246933986761153331995898344548275997393597558847491323316225925216323451857722124817222699985392672764672238733563981735249951645884726721746722788189577296766759938984156851839287689456584534432315824959337379524795199772852593547618224725235161489187363166751816561653686384244937725271843626957762875626247431882139921883322628698621578981558992746887311341583739843992476915744281389482536823826684974141711845174169135698855986319287244264899767337786713355843958489197259784141466578182867973214486333121535869432893737798649855899677588961391559696367568867335891294175166875953576596349644322914487216945138548712992439562337361843349972655963596751843783626592946412769796146115738442812514969263918414883235656652968878469931868434982281183785388693425635743357167748926684765944413136575231957355975925677274556237432485479392789838554572934919395871317929349397857163728191154956225444741835835764364126766824176391257866489772864745136185686693529793174286187594946674756233487252933224211569384192789967885544875937889451691518228233199997473655344969799443695353928736463244523748335667134976552619189853494983431715435437389328995155668771682525487624825494589827735714193541599755995416461657752746733641746255619735673953746543573579842564125918425224247363961454842914152597465323349745966187595312797163242312114857423869167572886119541463383862745328799932971869814999859557572186595834444817485317419464558856359433812856291222212357697744755934188778118494732788528132387653279647817774664111358192787896747986778424857625891919956579924118928583371733824938762621774331494574495656279257957616921924537968863668561143158518125127177451575987615347541721958854472977596118248477731137484148583156697194317268488573611134373756343982332343349264484589862269558264721266581684865536941538498461959196768229651648216467889158744484919411967943847628849389416351834177368747958251418177747948171545399298121633729781838386362662198769668941459732314816959697413575763731728262883362989412988494223133247663516888495946812499485981121218682952678678325879748742782256786928827759776482669283786338198395915956189466497617139264368861727982453415967825937962445419989942941362488711591136973374791567971367471989338393791188724352783671712579639898971682591256945334518719866574667177779876373888398867799948647373177857951468924259513118356754754538345695868817642293964441928249579914348983533256739213662235851751295742111999555328776945879281148554771498899452498787717585278338912446672545162198135677392449974695842793585434544196436815225627298168355212928369439292797539691964229142751133175193153833583959147229348685945455252166529684383444675636681927386615574554647296444741796974432991732892167738358434162787435315953933653666938644993744335374991391368573978286824516138652677996663331222692236837172349479872825974153714743478486777674221995283599286258615733842823726723388255344798986858326789339872743699828487434275191791852844828823959744139728624879175299852741736128975169136932335746238656591793987726693487686413493782912565458955468115495326141688828345717932927856456716781589461825665657529918636864528261429235921378616688358176874954687769922595124999795876194498313188931554793987298198256846868215317893286745815983642366238182988948489978474178218578871859793212544368941618325184888118923255449173726657622687339926845914776933488447543255626282121578771734615735396922443437273519623762568839126695434186587891265892745699167557789113568592781478689217646561879176865751258969921613577286787512771676367378178565333759146171564262458427838488227876178295948594914677341622325758613822712141848756343926399756244794695296166883786965341263817933167975958956332726467496635157468285595863811871878793925964263429836832759828142245685475398727236868448233459759415451367892474825956655187873594715888659351291259991392971169116885517324969978588714136437128918422143994394189652782329448925524166782661224432644822512539989769285122165896279789683335215851223168176962141344272589522993846724769149741429859917771197313835981238146978325641989974789723284627422619975599546344378554885355394636367324646645868439132261446543329513219797373179792659318448975549775632618373539321113398753381762738568987716717378284679827888462499658192865423764978867954562586582149122623562959679927789769156864387591341933646293188511799746942933837974667996717512282253561786224439913122354341167357892397492319623389482859823362561965536934288976155654255418862654382966992247462176984448482542131621477425937993597141427592553835659119889457959577699366435862954184583226899317445999412563595488679845351587797492915543618948886653193786678314231161222291829442277867249193264181767311962933531925343474679189393662843478474397232537773224519791675749992318558583224666814721812193613412429261751836548283615181896293689433415162315942262643269562866833374176988482616592829581368598362173887996436435357957825752884712377552651885948486726495248119863984666968125719612181864742921455254714976367867693213891414492761115433974684469942393538195692651813411221725174675714859597177433345739632213589315443828394475868857372322214336468817417686977854568593896789962379751188112921432898625384551565844495895517863392779589211358659831849786773655165977745488996555882348167265225975332456724411282992136739966958144111625161992366328475638367887117217191878453268778625944118318714953111948777855299546298858685849362472458666594562915475535339817347942563154595265786794447263298136861191332112895386686838952149367539837646729133274445989641874862117899776718799333514469752251114462893956846968151942893838628466911618818548537526892245761962646243388691361559679719321549563944719645495841661166469648479758731759922935136639812826889341876452129961883259756187816945925754558987193894998779339273182361276265544818343218896653242962733567284922569763147941725728459688457352785547397185479468164898864458298756772339279296668262551882158242443283547419768975445223949123586176341631183953557393478546254553572575349554847815822349481897879213178463935257559887995857855575535249652548996776676338621946645986996675588574527979687481262439864256715283841375939641277798346924792834526399648547843188952655597989573623675996769814586948173359321478756595356931632585496827365586645115353226439578934819896732751797188698347427134799974966869463465914877891862955888742851977775822545819547818388147834749551189556225598795644912892567346438951267842656984896542255549459456428489476698848576762542632636137843889829429286677413752668753382281218774699827731388289476264131911944827356627563718626628457763843192915966848864592621717492243451972881388525954419348888883544458875826246171176379328856189793699175268817724752649838689141336868679542819288495973197569635961487176336269638748416427142485771519745655479281961458279249177926946261825345689621715148522613668814286631599548479285291691722843696871378789529493314499311997462884421318388486884897583252449679652411562192798859396295686279678786849432195689588536973136685157998266652922876169677777477598159553959355541564373991992339622991867797379383772514194146854381346261296821517431937389829231272882491548865221257885371851181784383131184244629192776924934977976124745564898536126437928862599833361657349477191636914314156159688479522878482596911287986426682784819874557639556614864373624489936173638527558234679666255135622186151368535225377333618584268427854696496612891978764159676749591859655991863863184787381197857939963915645598271369796681761738884192775436821386465732345517426196365283865495255896857228924977225274498514656184487372959961987197824421265933749438896699312557593799112782176967827876996153737314524145689925445953888915146733167818515382977277375997271695664741985756286295817541926877993869352861922877177662463898566558525987396957355514612675554658778517585653993316116898779781727939857622579852212779818876144996658329286789685548438448191951149622768227859981239669314841299312238237119294787941844552381328684856223686271981854845619385215433425579894838885465147563213352495998316534963318994699497829751312489348587677593937511272772834377695965954349795792861452624967412391667986492391424121994499279555871364792868439669999675986831624145464557156392429997395247691827425459214733338295233449534823745276945295382963732592631345881158456465894976934877928719278689186944338195774568485931442982287233313788729841763197172846579187964155941612487997239429854921432598958271697272195562182392469652354871272546212353499752473155663372543125366316469618121352266953674917642286142119684532719459742434749787839453147665798295234155953224775467546699647139469856241852294116566862599292957723627897346262362958635497467472965347282587167624635342838213141221946982595587113569957189945519177923765699729882927857116664619582372797731932238978875686571771766462931884678583693325656874348137183764479384598473544486431857124563847527889269824188279271848119763693364614277963748192998784945525741143173283612455866923885743885789482662187734891783315325114489567283685366916477791951869319418218394232736497465244616182163441191576439737162173573788272521625658488277551127464293555672455255732743778556433755928421315777738178155434655941787952841669428699554599248267314695217585193744575844117511186919663856326878542434623612719566564782983392192332987627211169551578951329714131197229886448113752849185897159716535338527184259452521984613279181134645299637535334932696329468519825416377694762813171231478836772876357623771728786465618742792981424688692995547492262896477586252659198645379183545949781685815822864186139771742663852385968264253753384242389686939852616321688591855944584345632251739155798932746467245477176547858498374471332157773149638578676335693635324667166758816247346115669771524969975783723152648549669981698224637226552814197788847838494549144488666114825916279393875372958566499318866686522978236863554217928999927288661965192495464334828233168387139497696989859156898954852998887869631353176765246493231646687974999718443769376916871643644219985756721676214659884559194858823435781881362169578766767637693629747865665476624693483587765647417376489848416336818627759788793547191389821494773956588579817759447549147125628268478854311898473944319147477553623988589873539589978196354635598191849911635374999497298249454237525985774478471858749199663351534971781667439816329881849489466249192216263727962515694689248688347659787338489664899199487555641393983728255722498472396288781982921495219988652322426788915644297994961666578796435444975667617884182938948487739622974599932949658168954186288731482629741478563291831259542466818882668626677231878499951374834181657468673883161586336268991543872871993265896764225898725934487617581657393939643892567384416959137564139224955786127657891512524578743588755277124741895273939534135157755185319524532723597388828838831548923471675611179936882819485132572493734447428753443943376898524851311862683525627187695981671921386161916145925961694649988756295762398156263651163597943711552848256332543722625767937314435721658273961398615653351739924978977294342555641469827733558778478269688978977986168628423922829462719299898642282923963262854389816725826887841923686396798545864596443498388244235716258174341974996683353648488241824716851791947373957529433247982273537386259566545746254287619284564382192339158281669485552142688988719888675518289561969858514886735692979971256258391665597662897472933113833187936399579393956733119897958776875798269569611549417261516462767698296428265956786963899687539997431767282998321922426458186299318528338424313413959419898541545481344313179795186996616428287616524992945192464558455477255281321159595173312424673134929167579636345113719571155999644776365321393295735775388322239548894986739595793352681812615878142175752744537297366118869593711899796516786754175153966749946999143436517782646138626673685635539711476242652119959713461168521255894189258152995582268681714183294816598362987232829692772816984691616949185328236543183432935587541826227772829757819267759844423857651537212679788777532375528356788639978735995673363917393775145626438414578667651252991989889346834968675294713826115265864862474952913123786385579427275119227919755278925632878998913844253273271848692798351941722389587396678631429967716933987396963883321377565182596659929918613784949771735299187763744698338145816459653233242559639319862963343851883832648535292649652625656532669551599921179526291424975284574295345756711676916762765819329267324418588347613783819976376998389598197742117899152737176376958682835231623714288649732381543249993392841225719813494173623155841195184399913319513151156787652338362815826837579963152993174516926449919974246565383572999394321713663988267999738344997342491689614755788253235549422578646529316697725393572766314544811539757623111993824857551516141774743368853212596869935585629979665535319847953565374831472768989451588913988996992737793948481995765687854746199728569835138477893545193943995714219791637955431715747946159736172279974918537596655476958712382363749313279689642616597157255459897629999271155383497739185249652176265336581397761658916269859917436624127281913279782451148482727699788699993965812719816517427238641489657851369529466147197899579861953988965453664841288126414227134414317119896978547944141753374398152541897634551827749533674852432636372799211953845152565114556358186566549994619676121272184527647213672613793783993954258729874593577659542732635645991117457227484939736695917259179832582635712711379211944667393571192578971274948698398381628241976429942991652674534677962418313168296376361327365613335217553451684292648971212115633865948997358589171385862567153333375985518347955243814986255992166669264982685289538692653384197887612231479236416166526455225413192339864515853711859367221476578484771255659984688949338478161711469419539845691668517773954499734676737847621294684643124213776291199764972574179639214884756669963736876491626556741611414969878471251174575741769387263845812415834837468975791688979958725711964951771193973163535176725762612676243978572848947145942984377642223863988497497293548433358992256148197195528557495529565682566414696938949517529493547858549177238857798418866676427543968849964971426663647429286154459471636692956999527835921937956393976374896386725537753626643153283137667426199131135564384375687629828146514554649919862248687193984813739995947332291445985518716593646874798816149852267991756349972216818559787364899345598335632239395976264225815167381174955918666462636188948399779931186234853668273318539218658844456183413992471417889182347839357149889689846319449875863383946672468693791615172515766377351271936388477226777542523621124873667941774759849959137138881759942252174647442642789455794285524583664167645991465411166883651412975695548596736916351358851973245178115856151611188431612263324678824458666918257481781881132326918743759917819425684753712811441969142296732459391458328781887532783737194865325177641399635681742965786988423314454643812379917495314484988761892726388753561145987672767449338576855998469298864477894538476356694377977437888597817896415933894565756974515453655354846375582569511872252449329988865542876442517973697388679247174124589725591527744875578133225943971447758845737989579924765792522279356651298994994249757918898848468211982885727559354959641269947696185323166864276396436168619752813441694516357477766432832328488144828666375112819736741211665829415631161349553968761782744623822957898293382716262371311154811135968682738447769447594829464914957257825182164929573198454586543469898643955443892749663687264546684571111861935554884533433311542997164714814845513528358753676917839951218639893555988589162439448971222192545165768287785523563836857945283322933467985894872341449845961497187189495687121852137371227326567896166417113115922469864917553719439913961237734567391577213866968392934168925963181988723958272745885845748131635923935549355236921436448542158684744154662889691579519431655735654739388916729513234424498396925932988967893811575278844594724449989599168254316166583442648539296652533391523118598342813382323298359396431972329534692787745995346782357884852871377975464778742927816142649985962671997498822743857935415689122335687788219175296993464979595933922682222117795496838166574571381734252622186428617757611798545354656532332499378469573373297619383116611686377394611269536185358986778867738844686487891496749511146649641162412515617844976932779712236611386743561816423757423631158552813971642894554442892459859314198895546691561116653214377327551933123277619797949157615898456917455548911521523446196986782517759978523188958859417573989676277222968757651782624847544394873364434246484477759386439269269516933927642911491141787318358963951893342784446265978227666421955152382621579718351632744293267789273285766355576413515863921829497934368394629943628635831359526381482755363877579825732628778879869243988555662396746262876273769397413785415842812532189331121643571436226755139364937541651319935951984988817796953338635559852491492849962133685736778692363918895639918621171981553139894457895543962984468525756767652334696876521414562542188885515899757193594381774749789732179649776691667654229685695538925698796824794193738193322487738781676991936742324683874131191967754967385964618873977998868578154367632326963381828878869813896546556949782659695711414986644635642678446617758824391497698351286157186853281484557149326934961284327695478266352287584362123291835687591322145549953499269967734378556915524794692786498665641793492747192371162591627332669218879165838718643492548959751738835433777948414711837372113136565156886485975416624144387885963541645267117578196432789492532125491637634868636195993987559432396525995293539381544364529221474844978371181782926743129954888883391936111826569879372675628412192616963643317259836254435615171172828173992326178512384662485262425421183476332495262177658647193256726576317475675426156853746426816188618872194486864194457432845793751264929216144885546416492893453743335489449548396252716462953986693561854693635757292997767567598314868336331712566252856524367953356758223227586295142867788616786241527267894394359961784295481325128446353424114439647885198199636892664531476784196689971777197496213947989927693453742342688177864646414439171437375977122115794361614384797497688218716294877434654725751363776847525183842679598855348716519348169849161218589677836819867752287451441123582563113992759537728266745965157898937553595884348372935424921997266649318716985824296677415451349779219711791427318999818798582128846177747754248789493854687782199915149971924864673586914465923369467188661522178291489352534539581979442991592873936976954484852892972694165945192219416413933678856762863175751793897945324478351541695934412782493332851894397318419989154525243563969638141335613266261578138771369167456791735629812745229477693824953242496785587939295786722665816565576215418575884988886566446225364694928373336273549346831287564974954735364645745684776594951533593199898698566286143917731135388941852352113927799913787827832193522375468921471558333214964892396988159789677686154124593478779171238266211751568836619848683683694973224898369955654656157633816683584428831997194713949553831194941794731894544889781457669914987118123578127481456341639227682441463487767645855669838632717638784519542658295256529741512467618246978597914823293637641362375894369315142758427547553316155464593869692879874638696881389587628748494268729349228929319665125928825436628747922265136832349963421983914921625981476619235739828476948622337777685768942562881774745254552274386772811387757519417253599836317811888717864439115185886881997497743529988657264661988848245723675923495211228613253695164552819626351796172398654521294347462232226616761388177768958699559449826352715142517187211583149337647686665642166782179732566847789895355727919995969485399832189135853865212213981626784955497923838964711226929639559654425972545171627486459544531772166197782827992741594766472469168311439396354959938451574184183993457137987219643232387822115776929829816169155351397138879769941655884938889862614933238392911733189388232427818937741131956232685811527458785295744552451784134525726625318681585757814625624644587127819649131821914984998368559428746551928512273798136287519644888443681524381148617531841799475953111991681888457795665942539787853597311595985359289317687684423218135585522744481673539849256793835626789399457476778194811282257526416634419912213761419866537233418526495592239118676523483813858537625742832991291863736284177684122468489741384124349736562196526828256879682985949676618518231629663252796777577486195245427811818862764524893162533457928788811827754643924227827164892884966452594329852768867253835126349619127289696269975159694361585195914487199823452617285487783341539494249765193685872244678397615771232472351545699596731293247486328865999369934871861265356896355396327661159577741983947658576561388538236567412462641718411389897355348939591344495223381347143175588619188659428696185784582156432173131326264674193696867924299592994734783232421536679884633697734345635415675888783888615682399364679428384725921966449679787432737321474263117422143233763629478476557551618351919344821988367889623231433584262523273191832722228762964552953777428883781422286941218794822695888439744882733391154555267738349177212557287796998946286798421981678843154531148297567945461858724834531613583827192795668948765668156762297862926479993449367551993899967975515377921767389856139869458227511355815298435659793422496924634761581458593413585418399812755676888878669766456755732411837987261541886574993645771976136913582892891523715343659669988623236619577337858856464927674745579846733496496911296398628176473551585672323688933627163695238566998722553267687231314858934946979397781867184499749583136882184287649378868394198495767513276731612195245111556318232792375783683455628798756954584485374648224271978776876266555647579817896478611774499133881659876488947386833182454491379999135665797238566162712967243375555612495345563838353947498934184421836386352937621576166253748512714693893299918174345734893696613452769356892434282418779899747729921798924518885898494139943535347562883475245762451439345545697653114249487823363731849379338746949578372296811144296688761269476149274228747915351883498668214898178817417135152496915597588458485399949267182488572552395713926137912425484925469679863635757961491645879266177896124728425396638794312945117647898575887528896273723751995773749413329886118345418638171398923687914891162425699751177791195365679979978257239289925842151384941563567533286183796448482534939285682313954599876485756831613957745812836998849499415747499393162417628457248258651669954935395958391363478949628948418747733716923132629472755618519573998799427871472495274151327317644935798261251164826538977747378426336767398181766323618489533537983598457435679133623675673736953693479922833542721715881929185948813594455544874495776311349998239567167756653358322228633614534995829149399717359193361159588892684468224768383638499618227745858571673594524868485871787966216998644745323988886837223936759244979934977468684961982853876382636399579497418521695972388692574763557321572989135871813917443711874279873569627832221727539516717136664661394216694564448189441974315656859572346165911665662216559291785848335794292818986917798497917175249546824922933576719911519667949767783364465326975965867122825454679766593585674728692411968576299863685125357786338156417455491164847345113154778928278957127868383499816234639541311711224319943114871148745432269185514537922474445234458531496289579175647969214177815912341947377299496413884351689843557425483783252417238178895732347621976118683269986617571782648575211846457118876714572886926868324252592878674433862535169931391341393865746452565411499997574659361988299385967836422873448565377384491329169757778276938286765579837639538729271862977674825676718992776731668395897641929432712876421926591186179812622777917786354175595418268118978161995761222596382886178325687859761585533453183153926774737993127233651555311437354557821794682822841377464174815443461493882268614326712642316171941386695677884119937289421447993997266965621113397143356394616151623518261428393266836565278449867851886526931263135264465371329557641122811422328571311231484594293166329272119977696243521892136898528282247549886744119683634512179436477666624742947389281359787398998648596623332915775471311343388846489297829281849936575749132686473145883966799694299552979421879843456896381146619128471426799587546294342212697897845617518216184882948287686685831444473559713576714397422845917297563974647879644393248235775547912356846328913897693495142719963755259617364244366714256275495367369457559833714969277498883274115751891532278475143977368938726145394173829311663175131446825725424225386177556148863354443693371169691617173956677527692773764774373384493451382361935645851392515392671589639269495227448828112444789421894426559555615438729829766718792158131714495192567824957753833745769973525924933465958247352498198285951654952676616661185863453631685586746415758787164162862327997753631164762835895454994159255369948587461822345784946469789756949638897594364186578958272859134781827877298774426658348247513271533914946913534465214339891928995319942719698666961614921164349172665156264776139124246145717156335961163646466518347913365523991268936951678582898353592918718362959837187239468323259323267468619373951343587969144583786349145347865763213583197654119175914235659314477678394527894799216198355899441478377961384299777179794671177348588489712263315954239488933852212917952723539258533626888814431483178815187275437175475778832836299528288172517298517493188819583486413634366562156277139629597887269687149987868869387838188349587775465546817326416898993915293151554371633386578632493275563578926219913515676663851262538639349388586133864953819969644689294452191165139753132259432276393388896732756586789598175566534954838128146858371143646895129151532342866452619326466346678472253679918111624876998917735118114374193675312644216753365948548419377696813515786337279759845655528272627561345625315181561617592637565979381721846372788176182472722881962361347714283189652256823561841928179669343497655512581351933859669374457418612892174319569683119326997564378382534418385898364979562716366271423225922899716896314222399322437863154168838371632488488947445188645392485399249678921896423772693945752176952782791944483396777953992415416741827361963514786518319137346839245777698485896682243884648137731949584628931193661342654971166947285519252911558894822262499548285112833719118154523265526376584449947478187119135474688312116774447386252849186522989862923691697645748999749639196635498963717446958573341318393128542484472854861544115548211653961796349172659321572458593986182557389159331866795562993885646858866717797672229959443979249226229642476723886395833888477717936995265456693737746727261951994423338599132576823874518126518156359462199249945495896244568521552794236165898335241871694215166537766299618192846484337764886968922912846484263425348584984623837417345138311976431998358833888857862861191216512431665517214433864989294817444664535148922592418939497726389258818176678185645268481917358657683897971967182835211299387189184681228682581746535597899397816933261514599784684534185344161573865165994137295549891399124312685499624238331327579785314881794852654172661783958394378686866135239724289782217994359954747132957882953469315665163977394792295337242353519866353399749119131936396414772119612764345927816834531222122411129822346296681586476459258965241479655266355143569862929252815169624127195712471837664479969477782559767352253627877125634848617851789847674366642765672843285361122468977622937499753873545128941689218279984156578149325351469772454769915189611954998993713976974236133671817847657357587368414291547242823543228692379584847357914172657462216799289649115613845595358447994484135959451195235782468447787262832793285257346184168292869539877749565695253179385963797696488681638732622219866147515662716971615693614761918371946148714298348989988973486126152111891754426456635266488825727851889966732852976994868787678515862896159528714421722112113497183495286747982398676684413732448583989438263573155757648989914819997484989929881523989574767931689333649654262941834811684768495246994944846622476145294912272661668916889647534387292819423769159445747511682181877951777866396114513611298885413145318222698295295862433162689962797786424896275868464925867797236984897422529812667268998345184363629224276689765228273459828962377992542312359462391883156226915344977655896315423268169926659584121367452117893238218289785781371664467455354944352841778438351248737372453828487668614974292139166743417538779956519487499218993249844916356733653826916644846135666613728488448552578557531276538731619471463531154291764847477392144929311774734425711954823927911377835726856391341389377948127282165698679986823739859376579912417443555357436618927475355325896573718414668686822866236756915614731997715285786949739556257599289213415845344388325772654689597533886932891892632455619357534698697622564696189649428169128616459853579684695229284757714963949925594571268786554764298978196237294677133778946986764173214636183856639365433879649346937799526296624354795298992853121561893927978719788953411391519484997857657973655437849462942624119816596638963851985548598545751932573336234175416657269653643719836619812686351666126365624437661796914295199428548845833378719473848882872924177979918527884184599329572845724217784151113844779815666164639779848274957275881325255668766856294475559796257292595124327911558771634459794469716979935955976844293232683424786584968751448952163523112926269452948726471626984731413328755254354195255959686749175292234826325892438588129559558794437964731317919637644797683237228152118847346958657836968917485655682985873376184652822269674353716278533574925871826937275868352944935156737754262858563425339717519328553895698469499848776154128844778814235289737357287866299164676882185519566871635188848176261672797751486439498873186844737655745341775128691872578986877887652753238891811358713979698419113715777382557994849526681954982912188711976565948447584499396499719932869439787811748665914547468767661268517596833774879937999263888464185267965877194968983582953389415841525794867899355328829685937852725279227496687732691871456823269648216495993733288468554278385415834236561694268387171993365154923318694326977221358772479745271253192697199876717738681865349647414384937968736691556349976387276319749425314183671562992319634915686365969229855648569339737795195348489868636227775227137217719342416479361651684868719379781366761255425663334946677832424886563691441941718584994994685114655199721292917995668134291222715157839539658797399939138573489527863572871826788251745421286256722237331348644973635548987122654242969378178947928236799147851936934655899524441972369712689897672298194497966121472842737865734777977288643811528822142646734461789532783375844645943424661791785887724834961579525289982721946948978254168698888956819145211368496168161868885781453753643779897416564815947553496895288487897926578892637185463556477371535369994284698896482512274625979435398788317384424287935771887657681942624226444352814826667544353974986567479923798721598728569446258966796978953822149695624871394932171545976849387686683489723394779492589816253491753359899323413855736283514176271287529619396162992518279287946933283891575459883491446858263744928258167541754389357374155866113277992316482169111324949121733988428518431124968395734985981892977268767922857778221737349616539587582358845174956589299782954651176996793739198684572997982269847214893735843426378958597744793453427231619311874955191612578439287877898864881453915774876136881384279154244299672692145419247146534213544786375418417525795527292218548262367712558167137261147846314916863447923416336334899157149695721355955852126982537641157363418148714345599988851674811197429717863429175384979265163181346239689449776831721864152389177226826687266997947148973697976879912997359369556643657999543946957661279991774211339888457286582418297946525863292625554854282634162727757584958679345875498227974153999251645318636415428725946988946859681625447891343119244444767638358166147432885419771792874992825741495298776736622526797184118153711575971356185511682838718835199299769696948876417869784868658898411799198114355934526768323978635153341453623864485523983291156712956795455667545122699314683459943947266547963592621457933668362728284464154896367261162867175665198337859296518581268984136779614271238673392376489383123287869982994231958987544417871876737859933777877255939897397226334249753854424874242161441111899981628438212598319313254738981835252877236669827366724738877376981793217732761525184178929449787791451595823479624273978451496514118134672365135433898192553558564727675769447521865355661513457749288126516786845958877541153768311188754267589599735783591463371426199683556878521688472926519267543955448656215462867729285397787817676542698138386384615832512612377296358748448831792575159923788142749257748983195277314211751824351688612857321171556191535623193389227587628916725678122849141728786731582582465815657997957658419775787668164814592977993517931987853586551655774133343795486694135411772195175988534789991398522143729844165352244637833162163534146593851923372219566955796918432374884357721263354659458685597166319758421327951313561737728683389677289932116353345294512761925455623997518534626771576988159579924172161926523845422912715894254744751312338146696887342495447149782111697311884987978431311217327927498952942399125549892911559135431788328593855861128596897766837225868934324353757424522434115499239157365659648661237296794839438162637617667927824129388997431811518882571298925124587639877973563777217726419892448666961578247486499548596647191653126674898451775445995129447391152253294799164116625658642142325761749941394247722362412851946758284559363777187342722455323441262251597897216513681875798266349588747396966131143378655398969519672716799542811496556274365345642422122462837883623896519155569294959911873565135672323822889798868212297619214269378124159935627668359691846271488172748394693442374197768758797287187569655739614754669823931572999294369964197568778821596528131896719883411179473725693216728797276933977145513939678611379535217351818631382578812461319969481149826321681455919896319716141647219844478497151277537425874543738828825466565767738151798387593777362249915988355542225962947837945934696959741425267799212516792561698918111527288599887288439814798182362987985986976156289267388618687263614316585795523798646658582935752821522899364663864255247976559477197164119242666411289986748338234963519137522854576232184393319267984864413856822316664742443551512846226266725623541652918579131965184557799955289268647772825796251171646455739944651978218581874688989958688144275566552383324839952574288935875614288872534386216544734676359127715162384185144986512669193949377181224115132125821628177523837491865458742183546579777648525118666299571547435952191816691525521783753969278278889616262688969868848652763186821418963279939532794978713883569438825472567489447974683564694592271262998139717566141485479577344156874547981475278679664487656842156313837894556784893714144159658777957617549936921111987649617664312422581917941394971171866327967174785155278945314838754994211676916145239449514849686213958883118322532451835784746461777434547252146368252854286835451591854293198787268148666641748439592691634267261832988876243554443525949359886781752477373832865369979763267864298471361958974476367319424664553173798589342472841685624858547145981358674555669232198134948941691127642992944814319779428155795777812622489827449482268113489317454781689919842128875996283575966555665562688444886648656559653878497192541188512386579122668249957712182222866677548123298843778413144252342127646293227584748162887696611178741515545897871523534594369141472628645651986548968932386794592877387629775896742466525372131836631296112476175224596395851858968834518692918657753121387195581845663251691166837875788889119762438527386395862521522143191799588455369481877431313962778189339164336666496696714585236275317869619561747113396864576182562959493447838895979774476387777938955759353278227376849945923658282267247395313175735936752945593231898697297144573689585776579333528937468358258954725726357132144824455645491276578894558287175158617876667547693924259899668628946992587189595197669796753991424137929991662938981245793911812546248562524618575515645275988155749429698728443278749313629918221215184118627786652536698994978955245352632642297395935992252422693887929592316369493463818348259897237648215567765944553595297956984615966361926181342997141279535961583885564439635971468139877759338737759518378636117437279257557672748845167773715746664585176199751218442965667366524476174136198882744383976578781414179832188777253588615147554479358844559791146672713686227167848199369994549539624475392461954241673988133947893682142539143813454353868782914613193483816542169482822667381987283867348198696322791995127967773976795667882648639468643966529794122667922972613683329151244388399942198932685327164496691342759949737893389949767132348889389447686171778846231841668735758738272379395633543217694112755294114463537428593347256739846683953483528825125138185779123587631996481691891976262885687248739341676738393316878852211538556882345788581654826955915161849651177356664547565887312885994274555992482819576715564254498152118689763661649595179979811416649668357158264619138171776857814858457763176677546954486144484991563377679617898956886653641617868148781391746447337645885677918511652477128385669343985794822158488357844749621135488954532534571989527571348954612889219511815473131274123929446792545644219582234961489853528516426671669228865755338639444195975468576857836311968549525544788915184265631541435626539963213159152978974798768731664673541593241718855731964951828433581319766314635956598726758414531565768161653997768971845966447525836542145492256766929991879838966923917317395463952365689471333541758489186491121227969727259497891228365849733714384419956752333868533983452835119628922899717265344641961958143356574476999492439199177997572243244855578125654644413382877488548694299778932791799349594588755519553795566584869262886895782247294381267533813383524731416877911631823487325858579523797181268669546646544351411956222853986771852713895192563939547631391287733252232355237699944693228579678846385466754768534699189346127867612393522167691515784817654536245726485633867975146139234664116799578518119153318357495817455545675722474899625961959594587418625517194159415395383578147979383745449686214275469996799768964819137586823171461288392356294453877547345254174589456323173826896311147749136118427582548992495435928859327596693657462339684667234547473761347412472416128633794231694742163985886298475996331273158779375167194417715721449529735778881624294627364855595617276232368983144848829742797881445876457664635626311291267938924682767672187236871833863558297427997429258171739345616572928477633749679614995826898542141321247761484577765291365212145254281143229132699997198657127334494442166853345114137133579353535396177112952916874614654987135255575997693816689112899259199381522819682356213593621259725536313998242818667866174845691187676518365126435152491395816841626212546982832134447965787314798317262869516725141157658625623994468752815982966339738662575133148999798769951275835259215457544797121683666789629698355927972483448388563738592877374994645486717254278673754991485884619885133197748494968476726947499599444557984776691535228968836365687524313373357454165612826813677299471967238335371593267956949393782168471175774845165711888646635289331958531645736526911968438615617925957332914468984325225542415228199822328159829954856755738565767468118465149814691631459129768585224357113145731793232376996638574819912631734449796383968682412227365554781694126229984591115417589913578981779779371271627193399416642816498443567619748993382489558524857231925386463349554745993719456948147379645561794913762311411318476191883938819456571485335698467779672299592311917896915869392769545863984331714726148684446815219225485887926215895628734779684919784819913185263128935971862517643334878464848733162944567635257746979617758163464924797143585693139268339334421555659967912274972387348596921428215165921179657486431372514358762828246783629226599145835533246798419971871747663827286528169814789558163282188274153471743693173645363819372675998242927128857458784813482561419463178275398984475535934374337579734888129446483558535532171341991339777658687524982865497515573558625188628779312365243892854647948667426494139829118977795969849887297791281682498816788946852698145814935299952188887894386192299813644465396672841667928499475422938625665363661473347265322624356325487582744159279872881758188279844612655885756588632627744886118821658766648218881756834659128115184318137956589977428723747663693885255234449495917567832221897318159914741461194357898167342222979624679143471116242156521432271889948834374844275768588193989236798266792418669725345165477993369911385784299993935139898579646633234465195647959983584625894458261826998458698371168623958356268476113154624246375163787993669811422698535189774576516342242756616868938331642477227346869149591598967677951322952692381546776877151178517333285179293113577197832798495982552827348794316724914893779337497727884943778298168153536829523145698311556944199888883229473945564373675686185339515397228349113477598378864937985367743339111868957394585973396277562664919536497831112917683421997258857833568411387856712683771399767347741382617794433598624453549839318282467467931717564421388666745235134993371473859933295444368548148469668692285691535344622364355881184729989691179554326557536475564367675675726972999129446673946153569643559412789156759471939623148759972986735811458634977118327683515647897899948813781765372718865556849151392368176788377566695389383541876154563421819186196677978851721858686896879138471869737784934892616855745196414365354644583233175867688426567885541517588286841556851663425451775582287716173393623596568482427597748984217219986931533416818867285657547961566723532776918238389732657487769177343634757524932186933751352797167499495431243656489658114892973589369311472694343778267216612565891819697314927923977497843811122552331599574774857159445365665681369767871257545298556928561125356421595597141819732694713828978497988361299356652699271737766364669844764384317122324748343915251688722857356596755769444146967734217149945588425595548173575997468294147728895128338561851841712137674661119363457888636491496229165745363821237366878467818157443496941476558157114264815326274969163112364327972955734541841498288917758615663227383735671755933336274784213866755626959986929581268357474188336581827747611826111148745833228793641737979898662164718692164458863229844339625433641982211787838986351849399778834755764871483817445452769266788595454793193384235737482644385573626335417155926931872698723791116276854413871836574969373653845761767222813289724443454962694382369917953581189779895991982794829423796725325775595923417672433193847991241773857819341422986148854886374743148731366482729864363126625373365269867161385594839674631478993785463419931624956444597135277397166115858261128478673721422927745516999518873731577315974551646421432295825213687617646634142995398649955442954436292178979433228211231774838886861127756756926818881747627296125886937979477798533863756887655244252791325226714368276936929516559692871664215283971921992239872519184755235853395214533969497393688374723886567579559399811363993376511936178163132935796657511382636266983339929171318112591379185549378198899216491666428722433694981246427327393389837639124316999627641651426135187438987994268988439385942986744278515442787385142861518123982145387921762791367478688951288692778581258219654529961834485767246531934936871675854898496255687988285259596568684698869741635438776958275658429497241287156852478781784916536535124789466176367853497529823941792541244169172732874392872648324292246482742361532716419888966889481547246787486298854459911962463994785191441575143153734284217596938716831469299724335588656172188877167886327411295154874195358372179122861165174466659828261646584524495645127733469821323734357753381127699425583736255925624228689552174515643853693782278363763619239638682248149735887656834434624171262661723977491638997981286856853696249217727549821253627674764676749717827641914255729632859147477447232442636285929517145232572521319782439859777743843167551739697569877156527161983478741927159389563384858527321748111741899998622816124216258589147995119965923247752699252787228996841791121929486534217279445467615899413443338647753896847842631272982137461955247299765792486576367475391239887325478797885714689394391989131995866819441272157896758482977747755394967484543829933998142499879575563625214525446336633132448351653776926415256396553281988855654697534847377423374991358967882138326837654331457851347443482219543594912332697268644829917198427587267262256254959246568345957926361661278156742133127922276535449584965837173823495322671366676872863669728317934698915629488283835273172743397889333812748797719683561916975735553798918974667244929978965648386394894416473736853997242329815222818451919442221484847953691548829943629699723684997525119743174499841856781743557296336849773634944251788116774262597127284529567896566995639535192372753193362998728336966628789145127745183869154398225761419167312169983726238827488675171156989345647236333219675721394487659347475857654215665577986441557821852817921672163733898848976844641258381499584164533798295571859648529221429536353763355288911142631627273189919231558358991197163224716596199336471867316688319275194534852799197652426373151322962551868645652441476572314172422618934852161717735413262992552925227759318979439671894874597888674972677478341919829615853989728663189239383393657725666158669139844733282956141248746673673286323119754993718731261889721184112846672143188414382258767234726697958677574384654938743691137494866881493147775397296166569157678948449411976579723493127538231924394138672241941215831982695394857571366419828836111292986844427427675955935171328873288319977372742887577724185947921176969956165113748778755465674959749966928116715839669614964172467151553136445545472128876593743746255579336195249415394794245952476282983965723411452778433145426524683931496146633173225522567347533281774983955694963839982858844637293489558632572329285991889785972474793285876218792118959745738726195893827237377574813223888645216561433615223545367574343961944624328368989495328361686425788915323772693685499947366557745455416667366258436658613961526485379757672429898918872667378692979835151777719657612992164141335489677514399732618999849731567788518917758228498822794641642563733214991179141479476883342944269636192928374728948777271695932188584321286692677954334171275677487511591765857319373346747157545398741884375832811939415952517425286939655976838644889168321991526232413896157446881683278587674247648225899344439342198331692466338539341469786596736929736652318571918516651363741888883485584838778562927256283926795434817163966749729624172372649964662691475332346274611729334569632849163392963999114633495794855366625894727837627412646886811793956929588449763488989534826572838449894342789893121636647384633823292242944598131599734169328758797812172867823389147338254374765141256639868821344929967121178759959957881949467645611493499997462483718139986867324889547787965197473879685672935519587858488821386425175487461167628193919988347322563825415792749441551613425491656724133557828618329985275759365589241694482797278936826199975963352865792493823158857325334122628495753944366931231757197853585465894939852244777167333127319727711343919738551838361958737563498527634329951285245658394363998875232965378785167226757217622424549488574612947567521428385214282139235818494865415463789991448666287542146362364362925994829166918576719415413596368768459266929881124199576535588556219137548767445342636763179343973585695294943879589175988938632285839374655265466567666361872468932973871913313999529535219118933653227783892589487758611296464435789646869366637681849551248743568566155767399226964841219831434622792762969316252214566134938869965515316549239237197697766168935515729873549744353452649374846357712127295867497921679144871458858268965979854519388237567974558691981998489278856169818552145939191439357732829862548553161676284156164563136789437416285177671283736828171296443268773833135267384913548346699884911161285764372324459337857944397775869676827249958836763334413154223671467788375715918684238257356777434993163665539767777389562195715728486671684413871464829971893163757316561417977389957476799512615382995186412716969943187958842955988247152299489786218484739882424492122774355141512239599347665189127678585634949728151979988738232198164163646275324297484867929568523976367566974191896829599778723911787474332882192239823418819138699451987558243415249783779443566931499724933995514546992571457218477634267697462836345519465652594885116877168552323529851438377669529362272649595189235897612649563325558871737952462978674936255241389728685352659576436776114298596512183478678339159166339877287576123911356311332681868428998511767886165439414385961613387563951696714595655474581245853398584713878199597565893765925756315934491419237586924121373372328479878243268721364787839511322995892619126465365446762581183926224192895618475111629929939897399799532662381571293572765794633268838744143588658114149386523561736881161523197886171962585821555243964829129579879431457513498533214679629189972298734821824819535794529176996164367298949323129395561518827669372214243981278619444891279337519177643843866357244469385287251776574369649332298534295542895973772579298448583316888257927685229436988923758922376194876966999494656758922243587484488338334651753265614366669717373153174971174618427556424382235726788566297211871261253717464349368456239585634767969863836665694991621654696238375142921587699822161679232272839885613858549949454435237413387849614158138152767462596141197623881715822416537432364956836829375891267759436949954453265917187531351934326336147369883764268975581331753244598255159334327456735232496869683735475394626624778167575175138164268414298569778863456675747217749624257888135174371431646279392293429735741941365965579738279539685786789852359641461799855684845424837677379332625738126429673785729627993849756763458264961479528635733812488663729999463877156681781541983978393372933686742576785238869669378823472457447757169284886737845243726849944249637599983262346853371829782875716627334534449423626465745921937677552946847793868465239895968663581497751282285416827685383524379816668716137346512463121413797934196465569389441997693841799656582451695925128362686233987782636841847493842756898871973891814278526771977462236699623378841484183856878816192298399825439767364995846375948548185195885226152739184621395378495815315315195663788881316115259659419346822466866645496747533245563767149515796884694732358473293157897519826497691177512147591584676422189259276145348129827465583768354822592749917893585196433439865679737736582657784868898143343756248996981775176645341283848532961254442124432959231427252656629489259694885945461937648697865785771845926991324418678826228388887595965249527189186643766797734911314614656729698945934626686826697347498211976176453398779268664377796352817682821638952682887517429219261381444178499717698354771815887513515189144997477567691984262374148941583392496133671291759547263323779284621319113729828398846283151864959298978415874533338253957642675859228873121965963619338926615574645865328844152284863136612358517613546998324721916737144472563571149447888854835599566764897834564281113345374398437485585511811341362318738919548594755725231593467146122144586942973241583845597718358756571585328155775647157299975922259825472777295295865611528897989624475468843452713661686132738744911918292227884555529127635442881988912959297177543469681484314189582451517624536175227174711686651615986298212331819565881938825441656215623221239661541441616568894691656938188277935649226879897782349662719574718171248838493184298895135954465774699672981942621975661993943477825463919817995562716152525259476361569267296355372669381967922413823458744137883279868866524125321735678384724898749178912331214736961851493843847179574328212246154483679433593716198447141228774971215895379319813387435495167447243754836773632798133271199287146394313899558238386144747582341924193989361275143353868538573888367229267684837551931181337862211771113613582661271655547817746632273225828514726849231147847728268665738112895565462211672818789124379982334678446514574428871557934499325348263197826718148525513161778121725918877497746174949544123352737285657972593452877296881956615416345577417638275484573333951226174994434364716627679736938276596389516185931963428469669564957128722577833972827973672278466251916932654572162897724915646847464994613136511194231361997533496577892487215484727526342329767122451593495487986271921741719187775998877818869449864746214467156256622449526668661745983113329463699752846476864928825232193147448291813796627172425139216768498657396199325877648933249855892831841837129864911827966345724995489679268792874569218397188792612961895817885968117484826685299785669798752379175677917653397156477824616512543148554829437565148656345756597246694472344367689866822367875285357822638643742848664878484961519994221199811679186842819839311871541126469669147738359579823435699828172249555365269613179585585757834983464197126519435982464312797837534419569613998396868185889594274138987421881852111517927548482985249239116859877213829488221846518877552572488638945663916665181372722262641795498218621544196943287854716389137472858846333116997615793639579279478156437527353779328521872863618466517649261126541629175399961139643822176269466922244786829783166597628271248946345879475898838751586553473659441298584842578975746279177883714598387179158575581677214687391491872535219826954458558299828461243776926519688473869971274943615449565315295914935821292989988599441142885598868462419827982971436872961877688174595726777995828588734139757434626779163251353791453552584137631668946422412339124145358652853954712464955879496895368228857575811858269181187598578233716948799162954579832552942567318991151699536765131138387679654896747817926697377611546272826522644559977919174391655323918568737927448341537787885828183147193195764664558163429128312618452342124468257679239232651369913846696733683786526959243154588178773198875355699461211479889891394295755671322366899193762865421872218795532864855861959992113139476111311958134955735761838562817381671587789965154883174164456489916185735593936883559685436567846686644219318666669594813269575198716224787674868246721452468771853885537894198194468683557782214973633157645382657827533992622237575522418184856911649829826214521998979392952972956472743183561156287725251549939234436946534835836756386127373914635876424854591858718853928863851135875879518338425544175687355349919511856833772489169218418767259715375494743962489398947682267737938736896677263733588434968787797656224196698735654496157317197853888486151585846927343263218449583269848483769938826455827628448149631321182695823222677685289118183716947334397515195536698531278472716423475412643479662845146891927268932525413554829945844893155357153138182477756892168868276456758829669833168685954961886284412563649535923574258627342559568892286415848766256241964512865371664665369726738142948787126429868916885492794599616698524868325456288985564675158922662986592778591746998851898935272226162894572277981969736666924149974183581917917197466146787972835286768374652553938324136495287354512738365274764871566117349319788374575164166835695468649213861527229513857521266234753744965158232815192757818978748177859896682363426266944571468525511652925977556355291564496347258787941494182351123288415737227679329968277191185391773319967891339726923123291176688649778429691931516781228991489581392226787243386554951276737831184534636266611783374441667221438547981948684173639398635452895499552675297769139214355289894936214171857352974685712933385191755489722643992479372921896599455857185364718512735631154352214124995184275665868772436399438747874842425639219555447247328888764616899962472853621263851535917886594953647694994147447542216941387322481195355895727714674887284421383891681194874936915474467338353999446685531286748538616774333451983816928312967122466793881577191959778175957982343574365916778932656429261197578222554188767399736954466486996516434543317498847677184972314348844842968661522986182113596249647896354658565662335574493445729414953366293937591215246281717532237148943844538727847871918712695416596458352648611631439979385759348899169454593148119652855283192782627457812351327635833529387524657215739875178439559695685714498541449159232491173687187922887998589852963358853558415975578949538989541854614469269657779989226469199775877814115596841476818735644494426633796618827458545963924694532321542949197295494967471385748661995761389744855937256114886334416469995875553529517159595552254275949943148565636536474686675348189814369357731566863883629434762612723127559898455143933989196656235892172283217596271623469717783242455389682426485653141573118637831469514366633895372791824986695162116665762559255794798626636271264353239222381562851781296882426958269827786274496257273834282224832397196774691158213889341844539975673851195844145555826759698947537986288862566983712158614499955776994967711529961147644251846171972537411576129334976584552716467152144297418857813821932499726553325471813885485463278948618217558956221932546747668443795774339835566249194889988464586736174133778347216373325964881687396516888296287694522529311736886346485774974878765586599934748994975328991881766399964429225892718755259368414658946181485895242386877352339158896238571332158248174751664293526858421649985631277319863562197485266771444477179787995565718753719837351588117196922954316499172774313859914846539271482988918871277657659864366283293583958719996485822885841778638544691644469393778682436168275442942964719966317996789921179778685799747512311835644674376548767187797881841357462398955242699687985658816486614812892175398444133119392755213165854626977999741821847959946619129617929973911795277916389457484624354128954319976994171798688237828975593729779481551944994956555838511586884311495784215267198295636386775538692573799655137537589975965172467943248114796757227741195861967997185938397447878845274852579636418523691761215622376286863418857564436975595514643446812558553311483277362492869958115689914795532115566316362865437738183766536663756168698761621813718484749864577545377472376642858986233159619422281663538576692277446657992724828539269594294468745792641195944698216681949236397689936815737814333234614898859919153556272158842545287687221342129694149421289843679439169628611955932741361939611356187515717911122499817749846368669918613431353676149982488541984372642964879328464927683269884255312386545467695584562219225675434721394557987488232632772462856581312287524251416177355141743673187824593382751556274916328747966983993214753834346271323487721777782594843663867258877791732766883422779935581281622666861748871683669562368519313723345371617466238244932227816378469764139339294117942623217798186673699769134823443825279776285296929539788412949733417921333481848992313288799559977841535925356954362647672427878779354114188227566547376837711167841593585498859514656563419465796425733967921538761956565381236962362949458726468878827464157975467372326121912747973982249357586125492268937578959475389511829254326549262462821993475386314841832172549329254634669718332712495549549379885783616928414862145839421959379634763368595268862148154123768767342848883617729579667585957813166769185456491695772962398644527978678994569764184743697235711774775551126237963555483726164258549249596951472848631129953999123993545878115414277477959245789876754446638768841585621191478413853413171425419772737521564925134399579765642492618752322693135816579861882335574177436759782532844392124225196828435959476733926182655995774665296518625334727841981476717638334284252552738335898453542736992844416491837649879262784671758588735495988978486399728294811341595282316438775469579176878782449931897125442813121295893594862758696122164819466989358669476816849339447788982698214475739494364299265557853874667378281835997438559729193613432429469393687775616317258836823696742356428462118661115417221859685476889613844296177773259154887423358682886198347519877952746737587998636322189745589928898864799254916957717994414891277178514462126846925656168558791989173418714459975971954833255454979162626249484969549958647993463781841677619692743199739944496943613395962166384486343565125363787186762284515952687714286358381955521571171994729159516898641979837347766779556578813476927482845349372717286779931935764936736445936839492564418588962194379525446676125825323294129274565483884949979391898582873273585914143711715116882178851428286537139399394733791896998134776994279561713358923682342566574285632116679786324571498896818758691637395199457271796442845352657999757342699324881978554195287287766971995291221316994181737845894153774546179221469992498953966564746739594952965167795971928968542615854552127726166799285543364193739289237691573365192384236533658927835232643653332259441615584444939881157789974166156174132415376625657254796357656185476876426355973545147995426466432554826743136624182129371842393816395526365469927439691174516415486322859525559775547445334792678747141614319286856938934592636543468167797753277886256242891467742368677694554954261544286665665719529958531937421865185799451899172244986597457629237228592589582264343531117593584144227798651339981288327133398927231361196793954855384765418846859134559443888778763189544595526981182199689257845452782521786287787623945422231825976164915975333495351787696972936924349984176711144268243412576661719941955376499232636514779823465144777569426738883855137635958586131242895155992618952526836825359937499812985799839178151693439744119535168928619458454825513894127278581479989767588837693118225885799859418996521435691622749212378347874829164149326743945557361386943325821961638591793138843925496229981172363266841567546223111641951991261859558682932988552667889671612359897832284471973418186824939868789519214837221969734259554844596983514369748329496626647651611825197952648377324391717849484556278838518138347485467624377896652481418588398383744434677612949147575131793544918425866113635429619148565898765854542857958515226919261843841429116569713475993627937243116668839268983574625459524753397665946272161819541735724298275482732797757364667198381894857526211834156998299965915553463583194178324517131211392925471271847519324822923474795392794163641853671819177316147721691185622624482177541612168523562364564263697942615978792293662588742819486264885678179459478665412212695938155471996375613614821361487368565335996935372918658189917987832824164481332483928282856965598768544295319547473989456821411292565689383986721314191243472598618716536342899965482847294898952753855856834414222625398522585758165596291874642575886825762887198231253962599586582284666684671432812798196676796549889741158931552389543969962781896766448655754566934531678559765976933782881268931528644454233644433794993424817762415837376196427892483865585767942692326258356822392916336714196858923298653193512242843976438913626628513662127985454115758958476785339993776288947297191238631582663759961779288669625929513385123781192129632518128619726956792758189829496657946521178371913279295969973258325854786431451188527983542327477841534918347349821288664952969569987185889929134812291949581475715447639296629457522738975558449694855949339786775931471469439217733857645883985721917553476976117729476911142569469777956426388815437382355636427995891782394891724859954249842697641152257211463467748159784732696632925682575818257564598494884538728962996522466498194698138945276873137596992948223324138824173126385524926661863797549535745674661842687596285332513562291376958124222276528468252455682752979944696648834899212215926551362846942579666232759877273767559178255467799621685188482179181482389682215417642624193966312722361487885633768481172218254619461166928862544887689574735961597657488379654335194626653646693467483692787318575773974573436225741248143538641146753441332478472983898587385856568492954957511434898931813234393697851456164549561829234358318997345679356948617262649884861942558867738155839283471314465872623321991278226661885523242934362456561222943657286159832632555259825966293614924884784279238992443574889163426847758845979186937288956743875235762175552164267678427351748846839342394223169352384841325372883831561244546118554938263747818646468878182795197399998122654997952621294638839821613216246723117553396152159369456599694568523346429518445477982214143485464683498233135254574563372475462534915389376725923471541137819692132182238716237986869151974561894544816674838649419647659922329323795189895494287732827236127813828577561472328857227846868779776493619681933775319741481577917437657283345174938213664535988819438398958534448484537242855731112255443746663787439587525916518568319632288759581277273815135488856756198336195294741739363333516235228583691792483376291748841139769489878326687323541912973191655388978789788876368249373668546878826867748139266783368234957775739131897491919641575147899531925117942878465656788937653466677769867347756688348662981499682453445792539323338992699768857987567236257944388283846697385928564844747848841426845468893536821792783797337683594811624532993337419997888382412389875594633375519361321465916378594469884329415138451214749997489577918569578291955359919314143321728951776837892513657388811451631359448893523246314197913994466775141848734552715236816348486993684511747985155863378899369915959948933269483572669622811868639789864253617751258537247525142342837957544525372553783664493714161333687798434848379327427617114367627489866982398334373113623455816215972316385934561229755798784724671837745997556149682589717795859291629796681868656493962526295762726874582768136872153544686577259945336635197146916747251493951765182952196741421672298349566274914767299141452796856874582667615531874939887813881778143124317173287463842359885133327491756484883456673966691382392618523568969374564771314477934683374565254965283732755675392628359198819352823838824974821724289865267239973814865162247175161327998399462854623647646911933952296376212916277587565667365698599423876147514854276296757725417765364976263234271353966261383485662941564428419686919929735617148948484789634284788739712456169826735791794767188933898956942316546237787233964621551874692595447211186859848899139159887513194889747566959275585778974626619395993965924449477786616752422349988511483348521772168249635355737753598865997535275225971813614726774459384974649447142343851928781568519933558122233978339486934672185321888932758349337955681274167895621295223997686445855163397775935182231912962831757344161926855592671731268944796895559175615117837523632636615727824784693464726164394944135924147866363362234188826933586414683688373232742212817596589333661597915494623493827992778553847981567195297949771141678851429879523391363614499624952177647435438473619496119574758589354263269837774975884196634245965332711742563257748192338317814349891358188621124497943747864562299511493565655661716659589579897832886648432376374398749798937323215298284625919145946262734447436281338595488362385148689917971552758947183384997859296714889935276369839575825762829681728451364775669361729844546998517724118842113132627349278875458486363528136232993612118276719548217684487576876414174551329558886582638483993356849297169756854813111498397755659365143384491258585956219994655869944989169869832227594367271767624629294292823154488943637647945741566444266378966589581245914398965345412599348148977824784677611132962883649734796448282198512746747941248914562488969899688564337932764554885439356599848775945179372612758588428488393227226835863972598612939385447892186941736795151893686431641463953261764479948766279635865734779529289788659911477447568641593476451327946999139497921491422835951174193639376141118941871638626761311786398846547764363124396839189719821224794176856418112516635469526332469937468999429798776642311314789726123747913189815749299256826669518497246329926846696657158651516955494462768493193814384698696834268667151932472175691522236638379385267452479943165369729593378462913698867974985796567118118375836258976924263333714956957466261317851843614174169771764688156329967787722343872579566529497474714664383756998527518898645825558562515396771527389417183524627679195145895755117262995664852327461185397181272666872198147527133483591779468819442398892928739132495249817118824968314477158363318394946988739493564575123298446374867126887394365448596732484599716795686656472618878628587493138975952588833254821128124295224495486865881312935291744651615152486619394629516273776182747382166278751283392272489729617264845258448362772298333266795114633166347458974398326336877867843357895887967338818434859286266217413381412796998197819789314932127841447462395481981348685898384933143891782219631534852875951261789543452729154566586489666987133721967683375819417361377852328168729395924864922818458938149795815883592291864387631615618681521143324254884893192188659146987667832535534698172451979749641314589477596826841477192853424951189654535979588438226428642487424997593889517344716612979679837243289845183774214854182863924214913164851171122397278245765261557428696541681271778296674746187971561766676824413933152756424492688548539723871442335791667446792539954629338743372999296268793943317487289125787221394435655638311755998733177849446546572519427356645578292227235812679592315444923998253447633774452422816428235522542799783374482887696352488561556523253413988699823346184635618149269189675871444265867783647289842775181612197919925132241214761645296669133259229364769637681561581671645598877424549139367926491784147426959952397642863273661231189735997352224872233779856915122785111868171196463853257819929486623776221394556328189149757219941575581426779471969888763318368975591171168587838633569827588496176725111382973162951494252636565757259295779688712246173561211997935384128339659756849651665187869679888198923766454353514575329956991716612898484715269423717938829252645621629917264725859261478772716435527647998135368919873799912477353976259913791675976456619288439914682353889559377339916876961943674962225489724875643796542926972714852919198422985745293529613621856532832716998828913558786975694495615856755199445513447516984678899466524786526587548896624778395225359543786977887674873984881794153463341275493944312115533881281266268243752539621635799654591535979198462622694717781717156728818796117588814898566664651138319892393685595299645915535688156926863658965566539437293743427841968133693235789495473438493786861643587498364669164798994991681692952676163793979394857586974418944396373483671397792366197916689348659397312437168765693146413414762564287841244853295539416573485779759575396114161788879489135753972451475999253641656811994416838817565953636359396797594944624419763737685837149997536299165458939683962283689989167485335182442391975632569276746119481116364573879139189828197934728588812557771646498392744951855423575435528839872931128487966698587514393798132958474738761875445346458773581783711647298714375555283576523131251189128536819975199368364593889665361565696763512782493962276379849871213977659234555726369917539429144764678688987432536129535446836963625731479559813894431279551491179352875296164381547681137637554532354536412576833544883438475165485173481632673738873565629721668221951767774255616598249172849953452959719947989476872586386711393167981612582597212292996126573171761532849841945241167646374467917215951345544266595987814185687536971377486765621221692784134142218626476287737776313828555279175757981432787161987881337454427118966779771779941486266424356264884675934616224656839249633715375428384981681446268836338826599324331588989464585525471458369597788355165858913112225563258917135465656557144256551328763625957587318198891667718984997741868476912898235612529151278686568187881824618677932619897879378784612295288247995746249586697758817881312619627849879161278488223495618643819135619415361414532937687433263771365916236356218131564973348845825588355543599229333897225816841978324823574112381391358286591187539359186627351824683988119634645662728924627765679368517883721834652939699433442822639118454561177666256977579962424515924277192643592968553455883269251782753835336567615714497735439868438832164973587258585581482159559363153281212988965448656347775179874223996853582871676676419745698415454986488852362595363738552431225826222656724797297385257546727656479784861421773744763233146556622972792582417465724583492828547365332139495742369547786849889798681746948869647995371919635274329712136493168124531747574711643516194116838185832992376362227348576991452238718646346218324327772672356353189799459512379478898472554668276855897439884438661762846393915254779376929485922789376792516723244356713783639367458421167613838654769428725193145387994956517198241241488825274888895498339132542919337181426186964929436837661452557366181776687716399219619923241319555597944677584922662862953572744847864718259962381556876472962759138576959576426824937472838313255567597113461521666565914324927441577317979291338887332269167972385886186394417419693756877717428154729482492726325183542997757162988164822148846347284137383949187528366971337732527439941293595163547248375319476477299794438277358188885978327769527595679738974942318596499736813697579116721361657659126633413833265325782565999768354141554239332917313848665383648821382591166127896634853185829914819644695583721524516119627778713333244612123629237757435674417
