PREME/G/MU765031

037176137255859960618973706076627508679592027002832680576386137956001046768377501820238600369053927182421378809008555576061938985482421686432041607539371779905587945482624268246300361084097856806986616965614075711888625196574262478590940643303881423362996402053789497152175365355953795021790344955011005770609193999518711523564249109992989756164656540254954199297377404722851283617873247761765546261083080629879065427371040184117718852843762909948284487826506024889637671672455536495996811619450381552723453834377198886850333393653718727353090175063244864520817250386427238223285645247783651136103751898604486134187805205777865149611344197514647039011523804657449807634890435722436842929049923602713167124227221155874360122501981288713495628633005998750795707067527585061719661743426463807518045147535840307742718078924996238835974408155321805322404460524476062146642670872211507437796899104347072285992866875044987745558800210517708448936501677039836467749779078037122754544541276752146631873881338665466913507797545637857220437010065912335322829103924334871979436001527173394290224150894727907803476338019576184883941794501979591669372430305578112554034118515138213451981848828503514775406613677661976513464813082014715160905580531553579544335839101696662490355140430447561409077750449562032284662795052747628480225204893546349079444114356340810925012112140514683551254078193918167547991091971856428570267026706166285175176494169196564558619288293598466930821518712432300832291054519559510860271457211368289056125358901565883487997313046406482558496872437580875071273880017598144144492644889650759106728215177541924973776755085568715094292719037239697825590962849621043918842620149576194952375189603384061690264237114888446888233322331159340078244263440542109529070774603228885071926954262415912043762060561833711179850300580491990264609760471414209995284098078446599554329756042146615498043620619199988966759005227252691057137825172630605172425528400790881499905548940585767362053365470228509300128568872228051033295798516171518928178021337895496021022975542191469515378042870624311918295692403705629195043478543634295612800493416089998132660081346522168406017525992216071805364274240460812837634851220354941398389879787564545855762534351681591437162549287067019430728211267130700205980747319885706120954304495859391139748749017300433218597313438310360593794182634997584562669997582048241413733533968488081673886479044248709859458404862507999215256169804802800188225087730111458013886386609001915720264521360315819695642231830025592658950620505306521172557552512697150774172418282981455507693038675968483786565966209210344810350101018869072310687291150756642783352020303751520827283827790580885629072181500681921261604467898685545812834382533029739068678049960667057242154813169637833536963967296435787895075458743956437081130831638721364069013339024498465852496327979517773070097946926800513974196314182560620989009094477869693770255025562704142633571166373033333577669751168913146881183161390227178546668112859817797858438580435523022781274005420260205429426172851764708611709380854326248223059688535512784812623877382129113665216726771261917004140748926204597036564586420085133223689281634969503610275665152700915774139272578378019447557946721314678776493809483229527900879560164384257911858682865621832925978083867387552032990093574821693591240855409189743626172722256635431855811538417161975794269310503314108771218046613122141299148381967096343376450143733672277152115583369904646476718490961590389022730002641596015706797529951698761996847957852155082262761766829159153939627902646421824476430709843585763187574095347877423923031026385606966071518868464630860900883597217705473984951248787013827204621090834056947245790282920979782427369195225102580467292203996442255172473765569212699140527659559557370614742941436214454267039305618163058457665973236040072092683165715861935045474125162690991501938303283117661853260869081307626849273044419449888356500573949652986014429783849647933399009942229476761271873477016970663326312767314823057766718459073149824456866669976338701750215346717916405612692419649517896428462652147651697529813279097499627511123157218668747709379571198683949168992504183915143034395837577484993538707692594916306458835956554636344344147369334442412887390975867280533532049632203495882189527496466261767831132017494345089385408814594902167255448505745338597980532599661685959421462184449348889716492854055032061236798039920321235114429239027955210916456058760649256688352007732468421259891217193241280347129956755330330256804363317549065864044490983187155727522587370866963403684261918265674012898620849831899852467012187575596214259831675138985900894203740951374002634337417784222133268449995945260276270730872462993583491918848166659035749746391441449353713385093987616488513684909150421032829294606658790144447957019562749164685221816279385619736861875292363612884739217228026765557371950515449151732039721050055246325442236625700278163367392880871792650673777581193146472092252300038866896210166065474804425769578129024930159057490610589294831943510284845882770763176444791782550040076546148492574836274432601019042496322775163792871793593689109750943417256567796636561390617426016101509720595340039792229182682998330237739197587490232350966014113001174449065250660624548867416531097553837837507871454800999502410108003486094148153378865229032317190528582016722790132279860585686357828814312611881248500659155126185581135087062911673487031623473431283054452298347179800522244612444298295792618511253504117252712438581845564142141092461838608686280682058879762757083718997513428356920280120755763624275976936910881191401635475409610488215106009301143828451321405266673182325968504413480106581157307948870030565493000342048775145173319507694256392721908826915175707885740567247467424956249231308831062808477752819779040406599323190718400032629413842445256733189117242007693569000417215843372791271772276746012005276013507038349124395907409767447370659347019881352951303447313759621365333237458313894306891921943302275361810206482976832527493500499727077581900945656899607329923151395443371826231692627682934891238139186859140300854786153025836783346473371413377562124246323354540214770400457391628079452363179845265434592715356685828171051948060314851358457926021267475823545416794690113060530618543854630163662794272806011965504866985171597351872073725140240345264814749519359447036166459586107220387664056929676417888364733304497102201738046849950515158291481011110615896764003281162529753605387314943760328373854255429091435170444591277525109730318492956843526189380192785522017435663778763960259993380639865582277614546789196952775086981872294221236022991276561774141102536153106955564935627898583433154592384018649063301201999513437310447278093035261624047603755379108970778941232293852650491936059708697038189807829830522822643903973238955309643761261347250734989098741836194215627366290807696655182876666394994716029677517215621319495224860543597927024228920719635729364905052389753138842601202771677289062464401254399356562681474869568452314360500445208131220340446828040127847939463448743564542131104369931222071383637336190163294663869508088439362867260581952626805334061329879220699540450744573297086634265214411607116697759625707613631217887098237048489252003968829654189855368175249596024412188303978201731968496202140989524021887020434274786172250615200099868071206966206166782413522411224883442033904883171910793508076449538480510043074117488251911810948686762245664280208816549767904834999177241996760992151938346802864465587274804769001402832445485697721212865019318007280197500001055643556929714745710918583872732638610116050303780749955116361230542381079536532051545281411066409538980113500778060891961972158192785717777723498886184607736061106770369852806709419840828904832192930468887388107930385124946839431446564294666113472432711540665348102037549746938233726991422930697219772812498866170214446988998547892661143160728449502561579205040703796626923346946306147241546646566808222964216311867691610625991266715222544582453902069937529486583333052460214989664235393264292434158080941068884283270107816003790735117363657680456142016626874780840275221470455032717787656962440060854534696915684789885758815905036498820299803201001769838012897829441688505479599809548573782985435093417235311245320159101871458823973521570969732782401019935991155863098997856684410975213955661185305201686252311999559986799981227763942782527312634675123197388209734240197949997798018536983915860837164532722889439795275609716084415508585503960495587554597870678850291040309726582081621148606367102104758737067717386582805669540721319971694822775659087258948922079313071267558820487819182280154597193915507797908818365638195565676239733069628355902278697628228241489671812889596167908920227577464520643748480110178962667564652257965668922536239864001421313112834658780367727306184296383607636393838106388710967049340885648023437944713774249770216119659718065390158177178958052572850557648871985316072524730708198739225525522781670788907688205686171875177281859120320992861226628971070669741006649296533252165541045868405258914843867141098319505200952229461034996943904541950769189121552930309926094203986049287778618668434498932207886109459836286013142578509460615057609015375382766803657723395413442767942578898428800817128429036748600087740812865672428425742976076847094750500126753676739691397778119656160044736691298058115589135378824057985820435297604937295542154356489279451820293579126537142297592401588269877870278386119598691064024135412512612666097071619784912016242775764167227506495735550519119151390588444877277247484747426554332675804525580242748603870828727456689407480873705455565936340564538943610463111103996224637434095250634643623857685272207757549366950709669729857509025334989097807444921370515316623165181984237732841643452722688387492301860529441602755248585277874597397683752954247576265471597866301917533375479855429733147044327073859118998712749377764775733129335607815648615616625312183432874830255133308875098860079398816110460316258851125683468326576389181627621834608026291154808610371832033881346111150676518527788376659251530677196284613749718691733687486990935485550431561090796785780444039439616227647978030383284012205687699631948618520887284450109925265662467940054005959997036450480732133196542320581222748482002610540867188379388551909899644250988214438090139742208938923319641273835245054843186249276884039751480006925412491024305968463786398517487145082491420512980133360803606720699192376517871388200143890985585740316543080738657052195475179768314418996282256059092890240159649447906291369920477388017300530580088199698542751603070807940239998790359573444146980272254781390278674404807758888483904820982183010557738785775676321473432787977669146739075631753230359252894144564602942780970881446423765963831472955137944828257273236272482025385011948401573547404992041241739137122447581588027125816048767657008044166745288786893556970428173945327942485719124123298426872721052601935308647575389758255886864938263435382153244385141615554734514772283889316087023481847695252102217833713098614923967589706250253823550833214648317550357216132052767736694579667548489186925349360555291785027841674971379008378395841423472198589379831352601051471181021165923222497470539225994219125224141563824712649541993041841843552496134541207348791739614473096326833645693585452306740634645370933535797909906423555176889189102164947088009623291389297569735598894328443587370513359844090018385445735696760503895161043600735797093336401704626648771738254791379877055651631201106598016686010770578446209882904598032963361264547608609530222373499915690605756394422958320964577926852519147299666392151832573615231469573831994867254137654783574020826218979655840363756868082810483526679248587167001976566906294007663761794130206724319014103058446085378428372385716729645149057606924856369586617398888787331240787818886598909157833250287592770559704269143923167461717515958024225508609150237972304177617102464941383736764861137145558160427924395987352961640124143857140925849021863641504997716106331056148216078319980412507663338341409320717922045442053169536071749417535206478473922497406029227118861152748217766068856035161627878741094059691991138180683040950590168928655238307588488261517828679141215744832707855692429646766849513637168327759949116475523419852059403765822532283147013570503100598691051445079757789754433320329982044145042901221275100587747821991516048956175005175171137217698311882923140179707935682396210752048155433326974610176270602051898266700930929968853442322838482678849034728253703366668031977779774982093469879118766804882659115775529613809194145809214532866158787891332619357129047375331158576182023567977828635095835584603582883519679065646842846625934352421158454979351223607060147929083782999829859407316234871503134357116875167061638067490431507878117620958339298588064501832812594158613966198074877373679656829977288796720241622474226189597450346074903996146878903137954109369370200940857011531090929213999363625047962386718337355859623163941118516222633946483683764191522795390119039522199777602007411899298274217045709092278896682709669321913370558997427149181083470697377979936588584117556389134332616325768684653266855628070168270585838882960299622670588593883415860450836170968557225732765703804475495487053665428296698419694210355955990417917091116971214268324319958431860450364023509890415185254909302634687441991117228478273921943911062725885273554254251667633060065602411221093699666971884341916501776125171151829879642869606428701003609667716696163487810589526465216155108408716601929905038008347669511192662887656767953749046005670985693479365380252142482968262950838395035922642760050041540661355368049538054098962964224680750285944555922314803411402331426006985072898629155118410244413919305433428399540224864501550264091931762062290389545702807779922758704164644181999765429941520532611393811859078521656945535109055830383243353915899447635234111021757513199999738177991649712193566431035905306362098136660796605317086136755751980803720441746673167349206648033007976610661270346366814879667832985796499036912459072719961574700972710421298488732810595206944572054277932269097918213995287192004447813891920453963903843011793949674899846570829091556086673893006629492886345505880172921541120748076836702656419691769148357518076481471230979522472181687888969845859491766194523347235042964138173187394333869740108418826579882300957779641200444050917260939174167423576498300041642350033188650660992134509248804279888922083032968007776468569174058180057978144819519390675611396522460400902454060359060357413883820662320516313259015650474251082490785079595355566276361855568342326179676960507109704770804419414695617518540738978439281981213992020027888040133397008409497817644137413609861534842965764624812000442321399210841483590830506773192149897957590206649573731067823849667547834205090332167497970741544435479911416025538760023856994706299509360153349503355468742320325292705184712048250156170101058620690159234027488366088912034362111749586672765470657038586530444955633042005780534093265604096788915604018314798785465897679317003378429084941817930366496965061600498979529582896434633441069916389674920369519033897620933470480562719765391699989446533623915421741984603454665193849176789661096879215276039646434075959147367996912286585132505109844354272146201372892463684234748554505860252720403392937144511818620986377892653267609992659127913376461161666199313528803286239906814895753561800328578960337543756601193227472115659479781630695923664194853211872153806322868969430780188328129837931648534553912173599444631015560190906081533033396576008573369787666158078779925754736076241748705485596771695329369871814381640290216956740570003689812196371726191623690870936447446308131688466406000082744014072784374452008194775701726864594145725411852689851751350748702562300202864344304164406437542681710109862922005370193785053612788459175639357260055338012785051695743027889528466131397072069926207982400936306749543738302340551517082586992704638424282131663642488201108127909407019080321802747536422741665463690011705483358110609221604068538430885189754481410472437880587811402003586186229784964194824611486842422752621206132857073352845109660588085391999795080937344021165263930328192822925303078443498386488374098626094490479909259938844609226578689758480663398595640256158229537162648956966773426703018060110234477270214077414186850054176145705510059904101294616474103143379151021933129504747996560794690110686387259917646656540795702329908850845295701168863217526042722902927757261545340457063752716286292068016696831359423655946190435727727909312241869509857395548721913722797647833388770150577512160157401228165607527812797569150141642538324649904708864727081575649010561241565211523078980735888142625633614397796319250394099396844506412431486274145684840878277664532965798740036740463299539872382401661462465349582503377402229823713334800835883915111729492529728650853173615641078917536917907479997062455675419520547243145348946929200446987355042539550170209469450956589571746252046540581730122915875100739428728995581716801234424365942506078304421991212797886117697590277096049404137292268255673073595359435886590766280033417732130338240194678064442576983153622612271534020573298752582364666573517734151664817521600343960127817262223659398209762875318820350175173645710863638773682628850254958667810404699785029987582030503120776695227499570942555648235489722803090870249549281039751383610934523066158607635483070181224684105407930720934351697490164485690556198334489712441039487111516982219719253358556556816088176832077653591732023111514037899106822332434476339170922469544111841088862594204664830727284903520931519394613670429676864964573848761567417055727704613057782177786263931036059916186483188635876696665471877885827710384837129101699295806055579745868821992491640174185226199741425061205470463892883963222509898513427275250301377871634495593031524005281032484599228842204998749860911619440901659745524423205482630714491984240255030999979167842026893979847400816116927926542303200047903579472253677608059037392959171524022477363528003351747187834609413311775025962662896610620382320726438850777470162341082508615348835852073847372988167414395751865372772686146602867897853218176121775936582295498345635689073996583602551815894660397627343908869467819763476180118239999642987651289359796663103514315572972191068990064037452146328349823278527791363727847721182595243232824640784856956986612677695966376915648979036053084925298959975201074255509659285506790907496982775922844582871361355200102346310342143437326790414950917500420997578058409723383671290403600770182268393079105653094068237900642121611480326813605049680471357748546974131273467079401082060764985490864842948576121855496575186382294788078210886665906339439260796525586783114954081739412849515572989813463692576160342008022532435100783204943880875811681974359428282832393394297996903193072898351281387281647438706720321878807382233008073152597467063522678818378397604774696470593748441016756414379519028944095337995241398811869058459876999903320400162371214131321001378326366611043681950120492763700762492719681830760336799827777128063822105628895488976486354503792072397906262475163271770198943134645712462138821854030191036683993737696934753602069673374219027883020378391637434072012828088025769916460273174987336178352235153513962830765166096795596879723712489251649231734425150479941707972503945067452731302314999894947303803399675125687351774081463550923621958778690235860042984378693050224194529663102094113350625147653582192538636827071479347135356155028106082110856803840392017304277209611921983992109224349245403505557834585480245614345703320341869844745211813617986072646523994211959888235363597974766743700506738795537507169385997545641695624115818307604686140894845362520210479718500987305522058487786624805533046243718919734070959814244071103055170492177657239533248164478637609163404428065268484824094031696396035270663826963500274624254097756977175493567078862672232589925913703609138681731151437735582990606620528532358479066276952611901959966423527207051548611025799057917467429374215724112050168658177734079697291476570801329016194348038809491983235762606603775820036872016676883591131678280164358315250105174877448935258371150565261558637265909218088947887669522841878436262182492745377910399383815027620874543138244359272642853511901225253849557984364013116687111985617608108865667161148230184625802451765169714841134649040219658622264245866445876463775830824810817477916763964591754725938815123513780954453911953392512840621900235431204924976125861889504023039149667006538283167898482820608354753525605800028324234489710700541826204172841510905188890287659099814312988392332507740219508402028145050878301599184875341767050693198335419342062148795478033670864998602837776505388764238350325739987877672688089685517570277771145957468961853369349712493713285382339669252499615589797912204052411121815617223054757528880305078195403307143835691047134537594313938196830237524656768828122891191107365279941184533530960233645451108751457418460804468906000538822695934162796305280316131143656729453628479510371355708299500186548412672380584013912093166462577926441136503949353581160184660414740246833620851864800646767943831627281918384875385852289486098999154673491197595716510383537290886882952750445484295626495203989577517353027459799517145479445184498421478409510829409409912927722793049467874745082980648877207460747506516598334131729102882957069928530288073505016138810526130231687548787850477610090023240017492463381099169103211170344487168866665487367021531466088191285558147848938926573428610485744940599470031861076223717821022695308342733178180398397604064604199741760924101853710891293548270205957708544293974491071349369931578769039247657877039353138255867845251195428746127749389779773361495673179400100306633629904645723271071254878630259694826791387671764285457155177806074283480114509294858474865607050115911323815848544562439294893704409512753097313381563435666426705204158044478872093060078646412832177595174801101922469241903990369927961960753130702918875917207926000786475873106103089652167385840917396536671538138111333190167061524500354078253339632742028800254884720914264577346387462284322678415503670184916236022938193283466064545756327541933161575969291145654091709201003804368266677316880972615963732799738219264601910720008774104448155698842211745778079169889883708696987351776791248177871751918834154940139032142256900298852663457333792163867207291143452375830387629474421952865718382269251575653488596983113333295035718251784261667522535541271030074163798391991160469181433545285147484261797709602661546753964551159389081172985807364786190232019940027257479577743236948040439404148714770041824650338833960528579542514307925414666372601287695597101649760025754139480895096903426090730009620261531540933634843784437045070952298120613751976850074082679202774910822577884562544721881538424824572257446807442614490321131396013628717965883080089116918598093473305579235188100457325356100869758782996056931942822419405655599870535230760859105261746795025044352506755772573562986961707887225303664440096287680325928200148204515192757180931004679657684295933456356189347315483205176909999905120827170474355994373630718000913277206536094766364253120700471141248504670808355052517626276699563748524748534750984699404355330918307917300555242984964802540238119804259619792276499204787644838608614192098215676332753553508321852202164469887423775423688193885743602842331545751630905312397382062276288497834428291685577382315116926192524903148369913110512880612218471060652789050682824792728539726232007827584372200585857850384740282462032781486536423686052913620705709572941211023734917850049222913725821748263765176370188097574921292956721464768829956764212705097124495970459868384389240352467319084524299083610722418917601816919479514052895013141880176402270416232218642932727526206067087314078824977017844559037563899907083930078686296482718715188810276057325189739165803007422106812417339218711868424242096643116254075795390640287748881354158750534623456039715622345944476688635517323949178895253638697133130401944209981563390131073700216255322119988069526166297135539129937718656990610223462336660149921626684680807070772833885224638389644882021929124781861082314786963838556662279226286075293481658960606627263990096423783555506255988092269666840597156523438584720684699684306195433801490662842050917941269241192641228095716117514352066989357445845646513856062682894625753583403284130023118387493620757973064204711627041199044971888021376586094340029417658845307823766183592952600349580052111157289128074706165140919425553408715295795730454166515942770938150239599188080304730056887776294639043106484117140338348100559785756839833904393680393016513931272468037888642152272547748570460973933817580846000105359353452985641262662726880925665761473494682671417233207919455781095465639648205008044208369867052929523365888487492701388085381861796952520999313365546184683901257400633110137700777500344755045322050664024360405617389302548084487786962436487087239107713338430197940040074138824937895588623299204676353758213135663448207495608869824776122804583475824617387304632506082077649180086847929385490776814936395037259717139685411435692139832103153567672208888259892409658380855050136862509068790901008819680005906270616421764397080162321688367570654591555912687241957451911144555140683394862086669547647007600099597265743566223053025936384437122923707660471428187000890384881046110591083216458072576379252734841819586809033157537688760750106044255611210424383446835019160114928485002958315765327102360075025524926490165571143459031911855835319433737860387830554424775031520826715931097056961466127436063869123531190468492133773386940940036176375231220626352764875025372036564391392632932059639883406927146067399707625477601431659925597037790215452115416055604396397607579296875025556390048504532445673967820631156611312057805700039352276940981744832992139841147078576010365623647488039623338504781978623401254073599717116583252884395086556182299564557622610766963306304178196760706511712625748916613683089816705650117893832195468908107169260209946986957942752503098994581365357792743854895634685261498715220426940324950536537168563497677608198781678753676073532429549864836751676152096659422627623652941807231635253347295847880153174301152025479130656644351671706809689763143008630565971486867064404769086935460614523507987479690102971348734319678232469646113534485621561685176799345836788494195626782047969416096043487975152967590633460790333754144051797395398617782450443359128739052538219572895993883795236167986149550292307611365047399374567892116303810779773581616025308398655872658868546185247573036048730557300990756644927883344169992041004094755433546647631756730657447099646743014545578203779005528232856387331141927638456158335000476472030767975490252559980875523933344980197096695784440027492251321084530001818175706512404524801861396922580735993862906668250412091969576285465137404021118386406346094639753385647730089025954489418087840291688491402589303268906777482897854602830222020599884427623931020291623784098543674705319065849441002328729667822697415283408386913509737516578773823860447836124609885905079401308722116173405150937373342404676549637493496503843741403061385040557928749425882742286281151899609734557897502367152399665078002564770333983745069973052954759596524015839983945630293455219624379846444374238594814327023326936255591930962359273442204208259734245301176562906668702792449291415696437072047464550693505148901210125007697796038128972745489598508370558940700141922735015175296989675492675220070239126977676819730343927062551665655243662254019779828844775552296972435735932234829200365422888837793621711745705713960573648853014256365058442357118696335168855972754964184765282486401874672793325461182347297489954067632402100006152885249862174088268886553379226654256209861683843159696279118247059763005739073799866643480342814516437106916618861728871125363248200519159106225967655288181971829647760382517839957052025117778589849472251729398906552181630516503511366440641921671799368021536174773426262853438230001207229846875430951027571564941053579314954788224143924963782348923339974594242794830758853709326682975318874420816103943605663930789319541692644446873109099307540924556692804402459373133069993090011574762388083150357563537835375138036051028191892498596974931543675623587782718756364714336683218551751472120378092182520439208407435243483070271643687885733580689694256374318192720010083849395582149919574979334482985218197096167731135641208230936309582390299146884866894118029122613220327477694186305889402607784830689312247829148154936520142337215689111643448717533211059183352930806760421812198913413412897623262941612726897738330104648983955023077101723466477064761886120995367755691156321161592525472519156251633304771714718943875541053988213970850211938981900683003709821746297821541772896822962497263996736356813454467756510688881727134047296201027147059985919313088023937862584581658682349892557954206090855372523112098040001645787229873568040290774814272080312088501017408205757130808000653327158246640180051939330731375703556772457490960939200743175823418581529798940578054212226516203528607385432238286580908718669620165846981961285303157676104291842854858767220826936861825864153409107429987114930025999565810880766688618035292251972192894225376665085379430709403809431699196430819900417742551319935762852035143050811952460734449640791006492863954558532627411637669558980611812574489827065623794078171044070505824942267341347248628535097548468520259210120968879517525526912576437116620052509492222882609913585760399250437364642142872154058994330718535175317250440887365592641657369453400874924127297945258912658337153724340037366950725859075864185357981905940090101258617008810394517967617519998612784291309625889609866267435410527856451740991367556131368137761022214783874442545956191849839385847345633151905493600750764446041899206887693026059926211004592549586607276813651754098897534139788544973144331790497803520511038362819089114001512654817958777682297643020407887687930869912048986041151665302138701701697004142977017390369501841009157718251023254635859598701672049091824273981485406766278631609915126396218100096180157711056333642495685650691988665512482652668067822054278319853236690476209069345604990549037625636090307713766115962111567293075860390070573343516940744225352825754295548397200203914659980534121643633341538050456802924466795926918651627619366208067036425588296637568745097299757519862615573782452286266309375646017657331822816693855820144170801332565554864592328499149905218758839472336262856999183616816495057977480114684038112132180035573045149728831004686678502695007200224792282874125032127325745469784792942567440277499075684089765780780066382125668042406230836305321212292118562811905418492812680783112779206533397968541184168077880400029716944579805425173799341503543286535458245679034749716114481617752482946095106602799902685575706477357627098513853475880240306190742579009468247752116121538627030505563944957665737870834932272264568755404787315103249396333208566320501275905673808759511533740648916993118289676832683896607838770832554016830433055830103322985676488105985669601986398523056055921193782171881299977037729239673695272447228602619647273198738298242629435544818276081169017795870230762398563759681405821836332661278834326375025635623627203102881738497788311472246923019386576970691968201526720676011520309296705744646245382302650573224593701445133273675870754529006829627291673196409877735900867229376488966338054156825904508741379940435748820211391671683707403724578956967786177049863959301483054776960096963053840434163036988617628630035776187798572904006395787813772914971519888200925703878073837933611959914130077944850941013978549171465009055150164959709581046949633619265807597357032483894306495501382264172893184565574050815705610764277105241518805890068209468666156630978854551324520788591215619720684086418636381604950323734571586861215366577101631248845922399331014990692107727931812860534626313793940982130982884406134351249729411748209597662415933832854330463057183245418290496567533630281542795504519504178088411864030243856759808105456583608335874133233761774325549855393709003854894122749257341879384886707612466424671031987254745970171384687352059397126411743807907990942282497229298544063487935913439789463969673877106980847759174649509011722026578022762800962096274181831956995579964994942266630345570499084038808207886510148910982213486266028485650223433805825584446932809852191681812439706083335156573351354595699579597766857257173100154045067264242961351228457109419467172962658545150112527369210967285692944014423476516314820934737366715382941718921596738803916722515091802112707129158355309074161827693751381245052497520251527541795244456574768060354626423349182145945801413993749713400561099867019710617930698235279524257334786417535475161231086025070077867541826091136532518685522041665693487895964106652920811680590118853916709845489692889268962150352019335591048265418442590781405455810038746310523334288029323896100301151248061626156079395481898971912990623128661188738493625846714898459925700626601345684243479916924786437468586422104819920955935155737063120103926245394776878094836727197014028592585758606642456726815039083605383706141130999279394501901709432192060753400555578700944489381220428765809239135146707257576546787722778740788252389372607577155032906971821854081636022567384744366758660495604241171644647950170900735626958183250127805167365316865187466314590006449290359676950881059401819199438902307820049419768917310175902855546788570784568204924444749412946447318251863313366394705374212128544767231846906334576268792625005692292306461766314016005391096698598946129878536880192564840702825572063324234061315308350446530119295373294326784750212045937567884492913846443808526285495020983546476594735740735280987499826679744513913320916909197248886608588945279829277339265890118948839703229487510291863577136014424090548034261399762885081147961653694886375176388699934210984473730924142157762219350530922630097502062652540458172046928107092902258334918400504332021276687401806177195093403994689391789939338458485438313171975762776562727025495448540316050841061231543631090027938746332368334351860638717801110779194654689070053680220548837806682959595453093843466449060642500175530574281766526898553477542770967110242636275830376101607930085026542220426616931827474789890024353773392957490408998522984581935600517908683955744828900706438070196869539607382741611600006732548231777543277059022528404960042959036240170652950194088656194189705948784087583358511117505426073485833639485763610707637093811479157518426439908635565801287120114428351581958008061301126416084283621404888387220673350475237537421742375365639859719904916949554588711027560753039300974399795727827439613304425409303367498675400211211883003653060794352898147942926304949092984672853082657073689040100798188929405161938505229735887202852795344851271581323422426583344458558410422816917128367676085123421152811066490389851825388958585652086752923357633072680744037615999494797471101958922039605910323528065398537705063117137804055854753933114443213174484881622002327376776255502861780533521073199711675482006488300673424200988388876610365016882196318285478335255505235940007287121871682257074197142326657800228033466127651469434890240667659872784955269038727090448101319245270834591090063158070753620532348254623879727645456643492072532340050629852009306939916450410653803312423677355805968759705111233478793571036235486239868572826961278714578093889642964260879408010904966195874722773482257099144232773065203935397951463861049173082637097310791512772527047781477030991160526451890605974997873970353230490040988158657262258689250962202458563729918512873669109328719099324101136467585114486722222631664243568779239647653795705041406883806376763061072090727951916763628354895561116746204686410468746653022785420530399643765653955845580879212180273335397966976789913974593632221279954062486217250290576443244365493780595355731940825235816209098534813804540470315480941554992884751920938819962737655667057720695851739674309944312189364099557397271483137031570050333709074842314933993573218508494159540990624903576891921623084682161497362331341451538406288974594260790253629816227160026088151458075148494154444842659485386603949448156981153514623979303598229766992645343057658539097732673684606933215057135270142774499851397393198873077087698149895617672470030092808238660771852765479339965015268809246338215239238433063504490981770763550106623402633684788434848642633149442774649927280654658599511057723569636632434884604267187067546301131639502425895066784383995183161231546404092650765700959034512636625166451053050744481093261012474005331684499475796808367759353360051225340405211450492438723854808682370215988722564581723787564527784456720242895253898439372534005305842766327632154513964159936867654089914282071625512243658373659944187252589042318452217410292095458697639175787888530036130790077500463514339189911569193686504867637615808919491845331060875614324570549221025557015072049957477857794593264637164867561319147367211056724637622809659339907750915758147782240105154047231798745339791720725529238346243236338147205452671418877847105352797794571121660839249315461398746294719464056991038534858285599813688862764990255164332377556791583375168499997021418976762385142045131713155042842632266903155928239420362356005222132514661325235185089666775065375883749715040465864016597558459532828265459241138327819992273563801449010892623183099016729036550780506664508786507736010232320600801968513704867342305483871251153854576464208518657544139873959264912611173859739183060016666898753066380704762920491370512629661946052719046780211413320311523789021183369984156785094453047086001254706782150588669977811623082538619642010901534063271961093088701367902781391822181472676882045315249928033516936221270639588080330578111196319830880089336603737059662343517509993511278810132994907506875943468251022982131914337333119294413538935759840983380310288490425591336540296646102953778405768290970481498820797022900507813603526697182452026235173619684479316566948325036847657350740284530800519816754853165421575233032743458265194947435018952605681888620693599725377621141614829010699618828385505685914054639228293711453020937555296141456339922500749420251828558560107321625749864491020237344892757197461602350258117673835314096845586308747545875367435501085361508856119697972259155646476160483917897298728478593464538571415816059223465066625821625411518820221073494417591044967198023869249839030480744031213848203919541292029508541921208130628035768085941576626735959260938455549159313073133181669335235199748755838174280321692631976871711936414876955425789573103046035793369203422076545944147164057894375042393720680543548520848890701246293702467764576951183954789900234153109732045001538960590426266741115975978844740118805774906672199278632689227922223061189496881221533838801921438067886852166304024968911025258862157584045318121126778196151303587522978676054047262078191796864621204579093103721618954416150578749406533621949317331573774708787857997487276977311592672615189598964075429175898566308540293170600381250011101924830990846122252390069705619364914470153588933656413670608200118919963588641140202455642959979497895274180617310251572470028964045601443070296114540835318808442964785654727801856203269194587805091872450944106226026692019714030624982943553649143848783736492071035546671560286041315835683305071000471607029877868651727333051682108113559849066411918522922746533206230070336716360507041941856769742996859228075959638138060049879223830207932098654023783757747519892282387825655828656852009291664588904803092933724134331360772040110925016728679465726341720381036697236570903656139087647749008305401747349433142938427647561512114085140908927498922465553802186273544090686844509276246207600868112849439030754575250755609418609297168097956276386536396892931354260921112949750650091441397651339752805091902706221157827950218511316472180308536551882555605949861480271551361713336111851560102555760534213703720381694554798852986173383180253708937731505806558635697110714303848510563169900710523828426666356794104206097988628523254537824582693958777621872873169583141828582964851908374859385744706653270446834051363731641342801960315725885754578470364632415644417085159911600424363983652921759492290198593278512581248584390518224083747510140126616169130717556141793952942232734190238567174102400754818295714739112221193521171857995820894691762648556631067640381560997834632138115378513088109048528038919395776823113252356879156762544786472498524535972816646299723026847693346277841487656712693986175401616419578842504758638557123950552675485331789314482999454048212400400746977081019342409390935822962336648432623715012152571111183330935771111492942404663498389613584240551471287171581505233895192338052710067624732610360634804294639065340673720319215409794245160248838772542109080717950134712656406026888157709841321217318715873523289159123851178890042910963785439845137956993268403511304880272052441701527253942055748143310361726212483883995970760316501213009968441893909757230471121648697239684362052422239257054642809681031662263527783770132545115215916234144777410769155514617413624255640559397959355547233906187930294622398862540264841269510835452652849151588153538450350258211741448540538805433645181614368587732798518395605958528095196197447519101125725938253689685049976568201937265232577596644430573010398676909301786729292113421090419242585623634371027605125159164101640425841041887448625738896726489301570988661360603769747383691168072993506160185916452846556477869993541217893687098202101373862430764906569680232224767280778911503394491200597164997526566499146117958818978019865815418183299887272171423854129263528942869039521828877798007862820970370569669364458197816728924949444642020631440230458804491349785582875668176745102564290761269487194880954529442295823451737057324443760937949491755525742066012814213795921314489298978469243734029374547107757104575530758881909859903034517799519886117782229772468334949943611414357845007303541258011146310265825660491555778327245029649313301587801962987293267897416563750862193175909489756186130529794483275497856111744008373418278061239393611619979607952927901491340728642896900402336931618794333638467403438620843973162116299904820514547811059650337622742585447902786930951455427379221124354016054852245787831599368168807046866933394894842060247968707187664332173576092369997655069083131865753478818679482761712974029104230211922865487735324831006976985515323862597837106760262949405448869581784291202676284123134141201502596842538115826740393003524693962490182244141994581598509470014391476308689409589703384278345763683716667790052392695387503554740621647625570225474772199796781227510215956460583858625708805423493380616791633987381492251012583120045706979979222694332198042224107348304991555371758275918213305632143854852259279440971161957802624322062565431659141309390961326414904631201836259594003515237378177738318064058360630065847348011065227367171751797756163421007050853206984419798491215930961216789405663240285822409845094292019126333678855625240993177347379934962609002669891151404583708348701551861507837972273372185049461146569974908305725257348108096462784134499915519175468602284036444036969322337050581475253127516247053867796049656132363226567993781858526289080483909815754501652180354954410328071838688673679305608376177075459577040499338706212523250762400995086947599463631915157576028310659104034968322320691295726456780705610183109849991839023242907681884934793552588500090159396145851325082338289887215357191177826865485434123615073775596831706411189028197472229465901870378376925313019884029053880646097689659206214099511825972997632807859891827161663367310306595123336658311940438254004379425008570434821755735377916266330245350198739051604997299170524545731439542177667225687022092856913402129614653575754074970865909764678682522068780808019581111906148359396987516878543297804225921593305747759536302427702531389049642762626475844508664681593424634635247372559238357819813971281950843272901835934914582611304423904750355043914237346129358903547979614957794132232054804112451538992388371562145371748770319386508319349626041930985051549120359445006494386627871009949878055646619625237274252738261687935950109581764242483646545166717390404014355635948040236183783116919983238898348460002160737979668154290396774370890523290342263298280365882747717662045839035995264511473944306714206486214268448588076460550551369326933477551408311184226972922164318046302822867045371507402137814474932886607326326819525472853534254005780185013544934336814224074292824637852359764249240183725347274260297008847565864155038345732743730611289335370290733140847623535122366434878839665128348365230854998633547367772680135576426455190778593547278774396951560442703811828176357097194110047008221450057912854225529003693401148673783402832847054395951350099486189615452227562630297468013135384945033704289881484470773902758059257073215600237131577854022608311032299844111965681480734366985981431790325782836239582448203543960477535170445200092200579709745168529469858645337010722601668791810065047684785927304809231821921286951237591603360925688324858570058671198972343871560614322830607404796171226099279523667945864212930368841287627230945285259969952419380365941583880485016060917549787733327841659111449487068329823233434576284081526716335003230199335652820104718810386432340848093274823741984510743538037058427030150809003039372074606770770293936425995693625983357765467325079753598157608326056747870623033330389075389720632104821043740497723578465703773588287611841550831311393926202105436279643932243891818212702504440294616301185746779343375073314882465255622110814772845758533482235764497989495061328665875677868102269277650870248590355024572931343075838438093472792976928327455175414556007288952350073697531655431420602072724322893658915476850115142179089213404046905697845117428850706990747559914423852231840557419230960733852224549757339047042228724742840600327494834250711470959932282234397383163158126001581096456306794553482276085729340454154200878481574753420595406151752329168241893123681506835881136486464571221157960681409742833788359712264802037374772054547879526011151245924226145808135177942763142134420640840935103298555910804053397576527879821331349625864638493697447135470612398767687245033663606264389685477055988011926210799130600352100534800210322652874753185750560250039531132443586808668664202593453844253324726927787982269035901055972157356141027906164935653154623703411219431171419456064418371716106807101758918614577583005480939945037471186982166250364686950502007288766525580192774589609881284432980788443197498286528768000503666815388777791600281391682227383818396379193635375987263823281765592621172870376622585759734471466452832487486529899175531362591627215378703898935378548904974909394025094170936577290058589713506134027027704358505586747589061477140253000300058372402160482108403818343434988242174873975880151646544476076423388201325370332913719095616419753561286607212167011716757107568153469732327431638177633911165987660619002974797238531174772285665940507391492150758772753501679634781099471338225770366429635747525159104166941989125622672210275909907860521296595136212047385804101026021493536829132812046644620860826157221830221951233434446175296678404788241620337106094518431145198053917506679195306544903073192064851493641048343761791125184640356302650418166804400924475400978762185256528702394646308260521377639805818660749455978091588405091066536495509731407035407091455268869159193480796067478677685308151685753202439639172223211065276171557086579461747419455288728852911223856516525381985978007741277350882911284929318974951742804220967136179294488564145122465924009679545851006565675957638303278328691227505560070029438965721054627335979633057320841688490038621794514482178667354085958951517435148536185863065613094684437246845422920865966431794495909837555377442438999484506327218763444334343444814442736950818693535234801027802421949806331836822988230467404223470655363866749115415015784388498868916780521446541446676999395548525976970943929609614160100367360900189906834432674139417592937939457910126945605279836582590153829675898150385589590770764344818243810760184263136336753165635381849746076315664728502817767458733668972168929810791886861024130534860345248200104923764468127791491642712779157229528309215755190110991212369518087358706588860595022873074573782716473452135226524824020315089809371922763421990129822157519383721186157880388130763193734977516142604582382073469263480494023866775514738904002752570038444795049427131860330783784042228622489126379344502749781237951398618138128393879313694076728603182279736827632919623420253075020350940691679762803859953163626806922254248879307778838677191460521468587395842960162233607077019808692132818595090968539159229697387020198628907115700102578108634904689518377875621912062181200083169948608634523886565827594933735720809345753216039162049156238488258863334991113773862804770415713641427687305925860909391983498858874907712818487502883275196975225310431948201162858343531536986141079391307211119918156834334242478465630502826609511966732747184107440063058512683803028581107603824642663839015238748304668758116180279979212046559928636948052370056369386765959598118803062028736926133215336363657213962138923919406745253455920112965299660372344196549322950630253746226069633917467387560884540551581807525187638648401925618764337406346676592530233269302758120909481839124813261425376682138690939758279546606177891998194524169417573980855254224216326271948441671583484470703964618464617516116536581550859972498945817452138989146219142935263176020791499076916220340347016157057218019095140272551989076999170061871910469498855402546608523753375597802544519919789953599020679949838839973930744715069916839082698876402192661912637708763502041095813582979610180701293980144023697487429796770786313090896032616248382079450540142900252517538869208648574661850288687695508494048753581227111026484005326541831164414028288058912424790502381772790983451983212695690369972673031066825017375402473255282944848075641716789548668117494639522198043498145026786361293166050399058632248673529266683394777179628099083948973095567202508230296284702853726835706291701004901812161183691203822566828051126020297028996302582000121333645920557886883405697718573540883650272760722710340936424579583373941858701945854678260588517184814295477906068356829671128891708224804203587060416308238446900982689846694580346078193139467516266847313984280555582253699125379293030585688788857557491670682976641056313563191906609838850151469739382577178737140703506013610773475929791421538770511709594381629096839403600912123546539267321507873927242218242366502272963285662622526631276440132095295993537100909694787099404322591155279947363328163228128847731590557002475536475402835726776589762265161309971818184569015537332115462617472680170323909403728709853019467334422520564862068751916638503464190651886390810058335926844388212946934182392640829817769180271113793046903602191982981660439088622199331071646044938203536059222215677959557794596248804759301698565168907720795797581596327647361943769862816425060834211089947208057498971170840944439415464754119739975097570723341729197420546568015202753312065968904456606018582219015646372151258786184397392554532839819312276838791742851321082887484787851921334320380617786215937235758995875365654412138657829350794477462356436476393882004131639155169985484126644281462087190491808045408737641963169344841233264850550377857648097151215911066006013774017895196995473596752543281188260983451747283131249035423850124611033235879533160492668447115826317784721331858852738004231722309798296260121024017394398594093164737413087831543697246958653174132695125576494012966127699009704398675322460214338392247658079361102574220424807755653131981040572353125074219791879255388024748615699951826969673179328563618127780554299285092425250065705899802155833677092002069434229746366301684994331822563024980771517990915925939277731378828408184585712616905981220469607922445432413996829110304197613032667922465805725812871218679140775721044190584979341302163061739063387721888936660365695894114324729283689749104817986256882534901614911562507211670433869406173633539401711004966724852923240702866695081513425515991029662783119164448648184469102613100500158226507630797461081553529027414678996196948332865135897056676821546094051081780202606540774240214344525156903476646400320962290154522982905634826739180035663034314337711558450128773575954509377306841513742620163425490303390308160302321968012239533664981668589471456062357272356811287702108081086148369608413642714211009398128899500890454048439796854758320902062781401279101367416794481920474829232233596813802490549659349730937082497481234037553883987161185503729651295387992667662954973227275670157845257227557659507504544296628892615245558611560433381390420295018579284892197763959971206972961580867800274552003468671080614940780129879207571309937403919194410776184400693621977882906773376718969567768080138184037630658491076019447326136808744342294476917222213540215193821291388378611966604476846722221925494206154056887059965416668325094237167827844599449549052773536281462280866584213388957808177843909018002463833369208522004027849620202844187125107397320293050551633051111977351148647781010121695827256732150050313199121570175476945441026487921061185656003517664329623756668387260423016520158919420869041803852223544047193336158804994067877146789105922137906970848671075858627263030619286430334089247097248232903024603714594820516376227682144188382567754178304096694506762069472415745733827582815924376171818052640248817187932139913409943119838999815812294605767652725833510831289466152380629669684246356849462792749992855994955473493884983818280836194384215997574325765516049429172081117493485561952713187879734143675791489906111016137148109802058263889664677224344033799421366232744897541208185517339488464872892168731245566072082731237065498758454268309275678947049613349112947419765469289637174972241976329055309131635407620369679489781760057726259165632754275309592094870687411340478969066579085640861373004744890972271778336717730129614936984769920947625627553519840021503361889821331168161151446471984580330479011184284173614709852584361127090065421921902884808540965101770629301939862706966099749346896813180083593503918603424064852011169883376456223555907691172797796465751799031385657938424767846167122416010071625688458151277030435806821834581759477755286363306308213015842659360427352261614496666656655807468228336226559973364683154188545515058698968065788414173814257625766775493893347264849354807001354498312085718159608359939026162298680148681245875685866419426148525191062288189495758238507254099049400617236667523606866750324665060947425512826175850135470756954794796345579095768067104159117785472789302841342418736906123085370030983091679466168880702640315491299260011311433546606266782648671425876955571992401636898794971699591287914786522409832296324596295959184373757930515802641535108915839472313376006317064288787092341741872277329108304978073853829418496594536048670140309388803956736769305046335458155194548966120139916364479763739189297440669778058058421862264365747572137293210852761101861037037050910579437243396395508368655731209909257784414680968620451720841860959740182511407661319121871902005477865996219981108581653576813430113800563941743256514459831650133463436120395093594436103647185289599936421830221451365246796482605630415935430440461981511049195009995065541515866097090522150920034001299906876382819528187867007315392887300902840127457206899737454672962875669169199401139744325287285843578510571039657205959106719334262565185381669060204905917955696892561904223387253806892807139864693383150411651391024999249115011293237513580513791665978822630737633298941820931439725243867835614379688075216311211361555207614082424839899007215239345551000513561808553484651820791805339770472415439904860466232462724914699422840893789608816221077832907589459520549524406489444592138591967616653984426799032669301872252427978827849311849661228889663743213682729695776214722422208621403404208996777285238419972512215221909032468565362739664723556135673523076329289686028721187663322545821218554828321821374222187079095924166360952971095958684066423137289632499336129084353740562267004995582372476635316660644871648809427259876203955392572529574121853818245312981386059953753845995167234192264142535749584737591236756881745362986586758462439779417597967619052701183186679348097875166153953784396296840055198647132371166924380577461044258323738525100172190617459806352823715335914705028651696366368394366798747686019083958766522053547302253752049436756453383579172622919584961871951632717711269117178308770710801235265001549613220327387411213338607410640167184525132894573594984069603120810406496828465273270326315673115952418687199776018470375804462318127703979608603459980220137643620685138207198308508512127999451822162647822867308421861893619976778369565192691486808854862663235732320496407263946529609102423417497362019411015462858517845536551200504814758726246836749757243059272907775707594933830882937879980445130672706040542345442263435635493472378203728630210690843115757128686530145027651843432358814442470337890783228890999905770582843254638186117896845288011113121370069172531985085033846607123175548038248846536563047153157835187065680310498195432662511755930809131413547541061046375546307905163039443111349947576268897448512785749036549909668842494168782531721457780956438837037813046176030095767943032283856313088559880256553666960728867051445785120612741497776034682649028282030376367541374741047918364850527718273650811129223640676388400721484611606584273214201186412843458491268734600525530766405166766745080844772009817307642322982431871703906429204789002462833389178414071423953753463208102438284166240287920491418520372309288679531383670773375019945338192780282252018544644055383965670327603969951720105828164346957679972258444893967712825558633547297220137311024020326298521722725017872003822200351033494542160753673162747796392875012431124422113855635364822240936263797432295070708261664404885184197846717577430159208812080446236800719581442918237424257650536298893415647828127080496524392361278345148985053523351264312487359438368412283287525780628941829118767902829365130701103718428158798796799369849382243057768961591713936614946746384124449486278266310242212972365880290758225159817000606402060452710074584809638857933902029586558098314532350188614115693560912417455083585884748450348524779852076728308589979282902048391719144342843489334105661496831186172008182728709344704433279780259381165264062235740723912690378888045600473164592107961936076103315387120286762685871233230822640479434246305455936952564868157433120266672696341520221120130194149655283382345578928184768405247557847942889973297596176516377145578602263432572277896321518294645018421383100196151660809055904105351811217870319893093014561744507489819972789219863050980078961014281449367054079361611630831070485374518206185304961802238142165720982931180368450901524654070690166722145812926275496867101323801448822175787312662884481768198050706167514961706323520048646661185803213771467022690060377010138171821306348772921823877681723703046739015716388060917297454611174370972800485672818108829637178373313515548523521262566564593057170918101996231534092785253251270746403026030176264403353871671479145158257208272058271612780730799716513444361865625126823295475752589890210446105016839910999870276927435154175780591180961226625768455213960129010161548197930685205043921436206983607618195640324657386823338340172530854016705323552519967856649064245692762426015276095382223558191574833848317684240735396683878220509484134550572647979002436231781821192443585008410531741137177499592438906660654909162563013677786501067625843660478244036095853110228308377615607507140604938928062907514419854380635122632443473288323424741932104520831875536791820220374356390873375118904661641083744580733651106550119625954313703546904553609920014741636410825007662897771017188350294187921995524548626946141451723992604747899634958463503590097509000720920005417568283675652526891149526834809907442554226545356479118707454856886731122449747415866979832957861052004975433934362958412726074599955990320853326344768681693293580842257200956531743851291489760578215475747276900911964871408059776737330640914436623668925456735264596615859340095422661099556443672966787047667465270961234490814908793667124913547696208142603122709949224075672347728699181179768090431348194358724017284994831213484421147164328451495567212891143454884956456065368084925046137501907315615948175980746114704011314232344755367248588275042595044043511533060743444143792761187222278756384605357872821809894701494896679405497359300541452091698439956807116429850485130829035552664075093108066934624854820026578963391721007037282759284765989958154305246166640118377012747949665783068332300048697166685103853612522197253417590066262345446390038886423963750718111967403701032614077565903885471181089209913358134729228081022327289736318847590836911950666015588465354080332799116097313053802445098407671017603629054399618684062187857830247768250915838270352763147302439442870434569237508670494692600449134348149149145493136339959303099792690372079686906045262590328174129616947510335664429075455955130981085609131240344819985502904331628049025380634859819242881835330589122899841309852879841577939086700535027127357606257861028423758183442663319636202465364687348929276965922820639045035654294786617418097814109083578758881361648486994595400732658923890911132887538044863318323927275275096570432868828354581949868143116845998497945930811904455683788050596307735963687513178406535793277460104507869722047098857005919333240115668130601572660626530956799543017182851404514899639698440835219521371893702675463328641955497086394148539239784952513624271214609110703423382528133683362093191582141015838531031796330115259658020191817046742087412750664181933306519757772370087996755109820755360769900622685951203367857352284041123844538996865647634571865537078941892169160761237499939184096733234660835252168322612576452704331203817118231096552216283060433185002734961859683404762997866145098361921956589080025082305303664715678926313776008935728436055476017818260000097840062336814967388363718332341381260213076987260465300532656837176362773206354780932978867179971991141753226251148564793064829584845624170174193528077956311415374942687656123173070715956534708124115228364881735481194094276372087211026464692457795739453476041058283307082749377579761896153058666260996332241968249633609254506507998335646087688900552730905856674800317310118204129196491860599871573972310756586845121864036372060052915664514523396024957376192650326370661810792769414206348482944209370624808506286864535355724341554029085951851717078282887537902151628396681667873315126395377136055165822173809745812271514903404537003205497668628221065729729966985470564042197569261026973605014343328068428671540702393035845236362845499568871463785718686544850128594141225678612156157196368620333434609576834617205701358820225508420767480020792071162842642363064151913871882405063868124373347661257811159599740483149520700534189925716707917387622853108296093969738863431022607801155026148993777998141340561640756005279414054875452335744927637540502399370174204307634892884047337723669861461263174022734670939969934895673442788137780184960874515329114908008275539934807010728108865565869610237986713008790221613504449810187997735665242669689820791841258938896523185447800081425013706440530633876439998389561334440904259455972691664491146294769011727656914192549082028261561456557459355059518976927467327629180258244325464121898574770206690954222939884481318518614759068239265726980697129954463406347882228643614083569662177690703289449179431853520737024175039471988520679959908083697435085044219871183937257045674747378373490794981931430080467380535848654702177095727937193707433944270349221275848763368213363266369482282279631725911479539687083221169875585816291827816867241752208354641664530170069221281299090814360648126144845845128023380468086872876136058104150810118110784260959533078551247447229876634629913931120832821527387244746175801895090815190929427955876446815346813278520537899145116498121281005486998018711044502186062189252548148447465049940566947919753752743551775173059710018415996779969740873215341218800186575305719632742948961846738725566684139090642518239360998108059227738287409734933687078367933474126289065664495514989922247458244753917201128007302599788055443097073976628657894066817538364794921100906415279681351700086630937701215551938015381634366266785644697071143129526605829113442880767555325986584783350419803867554584705675976172997140499749765901141450542977719544726487582612833494963053165529608489768053392459670957222967390235311530138165262216536707173483060710338160498780757660796094121959568428286822272764842701440809351419038979672557205071824296994818028342104233130445554279975192166067243685689797119235619439082801351727542443492124083892882446739752353410561361399882969653354361320716404383380293578986744317006125529186325779906949022308026056576965462566730437149617823696803530167632371985320642504263202901536110184339711466424046521569162282156048966587062529919615091630054327609436829445337583500341555644257435661142574006755025564362851971010057193050935148172707236732678524628434290959118587302148218412322458982136265038297773979029918297132980531417461304280688306306041452524285877737220508652262144000642130347247664988194229027327271092471490083195894376895666924592985491882242904689643724745394804564688180704914410456120751931605836951774045289497004048242733020766771963930063327702535403231239722821439112938216983719119954419538337264169977997375954830114640010718123395900108315486093700140149103176176244358355511114589625984215614549510278532403656859464002146641576333125935582279964593189562996082533280147482442199626014065185395128246909768900273167764468165215978773517631982676060191861514102383770141714320754182674451225172725251256507210592268739137352689242687580380389195034688205942009391064110926411530270477609882755946867777206046931977186678382347243945362284340090878954747530837354382211282292367444519592579652346644206673082209360424327231251267667772548553110124887074786100932855129509435318632676427687168022492473519912598968050945690357579835857895237939116113788990714681755497275000540959409267348205400855292287358283728318425668583006313099385386137371477765452747760613586176979327024135352683171958241007679192905564362337033698667258650803033423787567125982636240675068360745165910009645854886110895574987946084826010905347351850481809721516158703590556041421142898991072457792932472184315096185640923004424001826471248141027716528531241017286670402022745078331570434521373697994016462636234840870844640569423780885110795565167448190062273846817339393073301293670667205422369161300024703505085959886764940635093428158815971367834444099268325008930443898729099304037990344312478441773264672607616934517047115218663621220365424171519817737149785684729191043773404412649135840442851279290418439640441035552398029991697819555740179194024944647957563029955108122427375246131947904999925509675055464381681870761855999938314322118202980575385031049187261871229512812733756591521002164751529135772947195902740799108365106265975346244272660845606221997786823798980525235992598114460344957907460772491573409076340431748643838676621144451261921564895233765638138404405845552969545525160023172845068049448436871418666863435523267160066947751047394732475589885328982157309155524085955395931575846007416019315006398883680856873504494264501232142053771197315669981369755141040571238284767985856330227493889545733405622518186272952928264371778076499633884912052887474421616894689347886002612272069271995318047365185153002423129892304149695022937276817223199128482302077125844720486006408489844940974863219308574767763008920658679291879340868784588192272399724791320577667235499652328672671266790138809738226926097716815024251255324749826481168780968846778615998863342249221585978124561335787040723621545133816612785424712506135521398101177592947131676748774917604587580422817773733487442225667667951579882305522969454805621593684312319319799484662542563008539392723273273243338746087435033407260805686095678571394985375716650729292750484275731441080326686424964427465749546454690215044597191167716330918646583485690014667558009153372648162139429942153867767464075555528618853258850190285247197960013380469254224198999703205222266760939650846998547647868507020255028929902990360596815355901443866460277648623589025784369387227603637794327376101055474745711186088365777875144232952429784161443185314218039816474000231527388361499738353806506086015863895664943304356056839549017736266406206484782150767804566302547265115530257149254752527694196181596896386140018290447696281142372050503897116080214219714385137349954040584200061484023925468846397682350407122033464263731804138617499916303239545961802819724466553068158611644587592912941843484795699945907280945965709516903812046707762476073905564749231701121942347842955798295475217052221037282921385522610326477683244848450699964621435758962258436453553949213587345986143264298666088116852652235760172426946110453253211800837419617298439285845549082188527341190429066635052479161054409862057981039671515132019772017901308503035956389303273822323028264818085148158776249469675352538701152108988640133703536711233583410351287481509394770328449369079688629642750876777145567999963938532441720964777507088465368822006714980670686298322965548698529694628775976454002038460150601769466519993740790921215341541334584242828068441539978438865789198969676089116252254172795832786209617104119414746406433412429722745572936648276224125594401348314517537599298043598541210277208196822406336971239679033220661364681081613209733580871114039246845014592829824962315441292232398076244457065022715006771149263343878367798105854956502040538070538627600146047567623116415259325126201189964683685793516390027363425923296650159873036835051655478247742647132696696410280190673824030772930090261233694828094992488871482134507271828312619131309636427422781093832233100694866973023089073199765165905193039777870838730174517916269261963651814167693670227483446210977362095402879408808528748726119730844951576717217964268976936348624377790723293100345682542691437690541714866404738031393475903002005581988917901465403539360695593850060973717979074557610860989580897830725903798230953891902235500475779394754700737474467558724066746064111390060541069292685060820075686305815407952358708661967645620172687909145463545753812324807435241596450837250774056419722850190843817301670848294628160938737788226191722447827812709561093356970438394886520782268054130550102218725300100990845578670929554091507654982416814135809788212571193088912598020262954813556876136428830786564236266803489357693383203999624239138310670723922993607771241273077205858725028484768945309447945328928158445221134705183582955363379957361128053919001752394843675998273297747139949477078684014015671081016974673743829941922033618477620898891956277473319615114872949418817235062354699790721298144998620907110859130235080313140986519602256319527544679496015775700979726277913919199222469117699605578306281168275412593648991403477938425425428353107130173925709301066931085499519627990227712291198256536994745543831424797310727532062404236617990385299285152601526622119359669618613454265682339151700430268140323376779857599376551042785994702270733284700967426871477562161070999313466704510540722799573130698693432607953859805031723622494444399395912896312515661837962350458549779800498640206473068605587093379145653574677469984326741674013609036430053824346506216138957333737288635628137628469707416710088340701856103396359745631219631333853591651344028370798748221182315249065716100616218049953565981875497128324968361303032447639260907738321100447173635451720863842783784721579644645995188989303433861571738916511741178452272437565056329514129326014267548576486604760874476120347297226446612239750905389080416168940993374235010113997952554593876914738363625761413836311842564398835339247860995110857094983658592973491211395888204921094580997623726241059082935359990057055697460453353747453968123779590120200868300747165256092790914547836841180287511527572079985021092744622559351391701787720149147834405345967815543467663199747672647760721609860385723948928186602036214320676221584745545321736748594574340906096668650092671719524465397845967812143696349241994428700087228789896673113973701955497717919254021146968417629323824091881281746827362836687698077536475036469976805674054837010714976886584637353446312999882491192854012551547430620834258989346682377856145707373003844559250640539006123963579088365029548408409475947340769415673907590952009230295704868358553288455095440558130104335603104525490032071311652695498038574477907487669895555347697133164247737492708952987476539368466356206079817534929997334584477163039969124555803276339037628336248805926419863093653237704353874883421344467943097205844113625188305521736857064260188036009732197476585884147952952258947900576323030891232856290015649299076432400725897242413347972738231431071714885775927297247650242289304943000115503622374266780282249497571584354149236628739348667650899096808469035144439946743161716678930569337704767639637488222289551312849279557529928922391088662322498428124824801993362708292827482718415238890986822388541577062899909966361524416526197887791245720689601665837080064771275108354602818809565779499001719529847753050386114144198655489240582105733541973694945637752164062992761798040136038582395768335804875206051645446319150380313088001733263561792274454941336014673456546193841921787276458677995750601726160214716479640012704058133289716495129469934634889488647063068471094709344723863226097212268111265511675364442898814657390583188578183626690302437685573952900901996087915356022956085420908394643503643563878592219334919983715595825540292357571973199125207768804890918027613062205958412416488577597854859087176574535987396677162176176587155546102609240989037498550423296178146622832730758487201005252959113174155664261596660630590152862793206560723166079807230274935376724023143951061492339434974910482602256104783020501385222789331019283095013030746305012229246851618591375081898101195538810507842274316547360658806840431217958277393924247832370063491233099109273760976287042197537670126994774705549525419319689014473868511021483098283680474024752507193829984093231509601002957689006493652259804535858167158334921414840480626560730586284876604158582708925886982648513021277175772746492787526013536127633004651136328196879600578352803732527532994001172300878666659707895323768856570790494009162760076428592080069287652081298883726340660833337693172979635939827999952918748436000402056715884701507404468892098789749318574247399863554056158233850295728599352105407623517942834779003512052660648948341244643931264312527009091899694265462711742434810085410740235873275095849616321296887060675440827069273025335652680410527139185738949600112756232641477449514776829020348418242998228870329025412044135199749055656232474510833895297508626151678771621675868607240185428193662195931323855018517875944941589949942476999930303307826625875352700459815425536010851540949622130278882536814628535810743796606085558917872374313134392424659218738202508764025124620136238133085521365605739556041210473325423229641423250806147110140036116159341168352886743714900723104158365650030382525533563238007137110814611639104371091002502481329699247850927971623301424807099666164732035195389344674504939247897322038495159057608197881827652641122645960472828982127216059903949344467509260136237064914249047118090308635686721434051283688746398650116599164862811518416540306233759787176225210651533681098047345078507789325306555797838694672317953895985897266251646302393677462109672606822484647253664037373651738130832757409528191199072195407114475416548527956011470830255265454838268000511600347762009824113047367338740949052385978442678149842720341187489759835215909580473262237485264016502475367030657769770341954384196250599898208764260326039718351052307977936239880055914831622632151023440959519257202516533865742699142725228333790435524382904981883489672304395621667396788820281314269854311842121397448398489537366546939904395761829446389673187713628343159641707657937600138488216996849433975295131992144989507970054946623324391109633662610624639816164649898746060297141281766120484457073934485487325046788265108083338582954153370514821459846801465118203154292643119448680739845257376004473282569856172368477988712874379449560239388347604647854808334430620963392452849299386155246596224295770147774402858667419956540307403008880502494985839427246671749865511804657700007400988455684725527195013232049842507353823474270841809938042705085298178008392711591456316058691979628612437391188532366229009699256695742900239385329273547010281117227943057703356422415114846544854170071512873358180986088482252416119201996460802448593765776894142189915532087849858144191825185625864122202874825693018035619581251848453547679066313960854212174063350373289606903478426735943709150455513845031388459914693060468236597098313439678268381890924055994270071233071988650906922901065676624357657317820907303387683318639282728064259761396262512844466493969024021080815688171039044202669819724116429919596566484909329110643089330773140133971249095822155415202595082836407017541266969506105491381499678630068753283648634185344086886859858608981009593221543384664283956011319699621107432133592415407887148925108128199449565526725111207504001275313638353315812264466942970539492005389362781826616821193616474987546215129407474254133457378093493742579941826944073692409190368095437234741688207591405022672079869611832302763348730797778382006950364614241495830186773623897905982902914209103056433019750790541056309462793987186648260408221744075880523427720538334799600371705887026417071051622422635888447276062734564718322574571289899524711992138242845162287244341438932558465691138425276161278050178959777590706987025703289605122085620223435171638666380801104128065199230697800544071430250353157327901276092044346370832540129310038618625456244998834610033737377243411877126972420540533902209496728380282785874412017371792650461114785162096919037239208620882225780889517164122844768027486646886806467833113527354014956844248786403461589629843987103754988096286855345592910302032212169592689569338144317293354389602321896661187165635929072566533453996581604769346028129091784703133890934198417485477237157065655492090103288631699174449835785860928342778062826457358297945326861402661988513411916808001182419535094936099723828864925264028423268821968377018002280530897519084567877445727505580843227966994988398578435179785552039114996250430958228736917723748126244332984144949318748486032715397984240009436159961472218007160654480057405952088286875744948951907675710663435755643122528680434495436958687798752946205073571516858673843836674109530328723312825408155548027846751835589918552365126259788558356836072367021514922133404482241428794650886931755954705534835196408695430034289770967984702853490774960030682190846534440203792508476531189737160857470764671120006451452598850517499669643256406919963312965654341996394195854752222514755354410633275037174288558160598413973521687945540873171685578394905651850150023719508289068680004541991224155536088818940350847716057553405475790907908435013652348206131104551064481958202594171133353785990565323348632911953981612411495039875873100860635370235919033147573846245536597236001280206903889715858484728107105531802521109889471616518015300494903052599055153846057779008393799521354109272905405509857710940632249758859656267831201390300352779306302888322705462032238080581101817868659773784748896317439878088964714539909839394680305878427083967240683818806471544767589096818869268136833880166543734160107757391611233095730569283844661655643459331559563294861285216943647632773292682861989261908248005543087671443403933461485913137499976886827609945263201005330925597151344992044597043145259123272559729221129836060126724479337718596286572113602629956009368205373016120307522760258278928656158254252655482972708399409419553877863082565439006615482696742305022212951889200059476748958951185080214321031624965218179198425104704691809005753673437025377153337683339842464118184323808496988066831760904523032521145592975131740959263691068922238864417266893756285614753643341678860479489356739000285494767556201136606854073482612151388936315368154497944840716166965013554180845564155940788294287385087851415996568720450824209792262763676388657839836360517105831723786792939826909222255944468357269550915254521308582727241569343649296101573122062011585758730310833337712781101690783874482681095093363547929111105566010037275256543282644032039851989124211386654986424739460497780525275657613443056369216739022774744821120849007216286683276834689793198990065006133605323049175778929309229835979901471875025752868993458781335034475011909790338886284358093321887235183949789872939342855018122008802110335596973517065561548879335885688984551588562038259920604699682171942771258469400606003586715403725609949831072630223119410220228516467338095283515910863041979679208275001050683016243747786921543125498482262246383198027328014441598590066708398206028539135181209653262099916223532904392683099829804483395758210409127885423399977778918407594286656462423253879040161677073212556623561922829484576838242260349701113433253607475093473844090135563644612466033780791306553372398691877139556940944235894823558343236123462237253531981722455021493722662900656158399939847383585705685583777095068294359554293127050546871878866555652424824610840294616030738446291675880766584623982791277251836230568695538769440780193174737081138332537980204426573767130823212659864510952627640987269602861381049320630703017199754827288876755003864699667961581795184525924758334347815409390849241068742326514518673080095315941697020199138949715798055045392242520995473167021854653676352178126624699428693385829465492858343453684333003895093744556987335345975692757051206671453330334235796347319129747310275663212436007727168515557386270597274621950016049116567541260767787008694754863315738721713763276176498093461432785919474521703757239800970010625594682276411141198337277732066078761989753169696852172462741830151507333054401809474973745904948863774711832646197721742481757842772654025630057421428434464275017609818103723477828875115173688139942702565421107613159059969652181379747985893292669248953768930068602421834849133690682723650620664914979443284667771328479570371619194218059114304355957207601950528880299458241295565771559663866077834540282745962323920742425857019668922407313804889392534689713214621540404528273166851968748073631930452239039222421708565857786130782652109200002178809338969215781918355084270442880191695086497795319448213818387144628103679746900886004100194901624761160244573484820876833356860304415211346605555170444383910024069376931536082252635748035855013532172424442628558764289618813141131248917280489886500450284346526703998131653953010171061755571516179421903603334187288898548398213056696885554989318854902557060017044636016925395647196347996965450897921724521962146036880965799169141978030910510713995385136872951344942763776835682569106044310176739327033828456778714915484203419758109297705212937798705147456180379781042665220350381057709198195478985705748934111422883117750425410116505847989569627680107431001816630993373106934239493079024207171433322806429350948610287221495384906662648624626229815147241453462345995855767544748675352037073347365676908614493959448331422214641955281716088494488136080182153141724743107172520230786930604703196142309889791030204410549632889599692611837912987622939096981150672764904394940574136163916991445896346041510291511116406458655475384738718085209559180050484871650011249602192182091181313913476771126806006168424951316226638990310787725415259823631640548981534902842245555306621200411718902303259034593123509060482058009128113522600564943267051661936427823158400745816708771987155224187460064734382513981451246702338011537684123067580274870472077065744595869836976923311365640026458469559844578126593049990851570709424415506317902766481404681915516225878775833817408435871899312828817561278976705666410182326954124389176164911642810342577238215446467895493526054577886595374820763360261071577254143938124364646726655137102768212590862022222175519789797306376449280664923382552738576841398476831273256539202614164422575916545892015958268057271259778641411841727328615223560891820856795279328879866917838968407742835769949038545585038748667792591147489359591071392884162183702011905539953470699453748606776024786186751032967851078805662771224499806479795586328795389851414202558982671654992641457493656214165601200231659987334740667545349744139347656464135146828963626632562982856177968730181584393125306582975539784966672615396467210904060731056419443953148032484422259004997011541249085277435915551689474408629451550364936382503321514201199867552345570821450638091783877004836360768035619563992659339048766922930100671948018502563848640212227663485669105664072101264519490034565171541915142836401396290734795128537658405953113259800350198157823060877301239146562000274250720910084751443792117952467371563430830680720387006672866649266635808281562055697460139189831701267833766052295824914200637527987718697508986094353210549105637016995147071994759616633405006743561046112924482263913269344393350346704133481636718868794131657389086426848300864237208930013351565308944016077343170847376810747918877678399011216963881782915716502505757436560114453661847026823094289379863302396135722823621358158841538912352578254811826526826070831142696103222667755813225448015089770526937116095699652470213666127477940626601582848155454810479320375747226177691172320243877920031364005347635012745650818438358679222108847450447392348569155882943824400528885117704521879855311632210036633548188250937194741661056940154811587394763408488929911185893514191203353918038517901758180842378488614439247742708534307925410712843921524044564764393181806111889420392807717553806053079492824031611196570626608215069793840479846034390698278340731434698927213120763145723857641296214821769296177617450226813814077748467664052266977425795920288916891035058980831555112897104324972297698761873835008093090876507201548151193071678682583495999224201211161923674591303325082824602189538278414355172039719235973798208181175229655642384142601005201144604839152664080496887233757173825375975267412610158098121021532068066890428481052941598419984790232226741577054103659391064972780139022313021854734572081953442753276394559135466492618612449469399058929682026435887460592917479192134563535644484954093606207013323108208446237647309803672291419543139440089953321505691418022931319368823313474536646296133508531614408444541215190041522171463193534761500209272663064602578491139994651031662061497867682578376941873059231612655560244772669728677978537936621252878033318336693927766533251690520503379410364118090621929140366505285884730739512897649695094925980855287164595848699967302534990754448471478979743609601981938737467684174162639194681579010276744982787672510062447350433882764282059184387249963983155660825925835533941404614020309245486033946988066661923982181250907946840942345234456438052113086080104246494263391668800265158158246010606476344044361278560007855899865485827509805772139252122295032265749270888461719821247978245917302915672344742210885361599936159785184265260127570791304085173237147489193014412117335752910044361529678761114705647981057714314760130204161347486039495383573713400742858827982533278526816135008642605726305113538588909114838646328531279369539774578827747332887630385006205397441082581009122330029849665947808333703547538143436911738552539307594134693164980077954876366448487745515640770145174000617919519024196489379606378808655943639377515292513357157153796365412562746853761063026436791929418278436523940950408091480579923417750639556030940889561050314366974168176466414338582172088682023969585572222732249803623928862565579162971181935564852741030970372036577643989677477713604896175681906512245957928428652771977190374057268256689985774643303242235414746541707433941638748456950476982460318215467826249611151368357727155995037145930701526807561847142640118627301301035192940446303294553636245336405166137116094431789349314504188527376798231201485230077688270590005269170178773566071311173557960833210053123498806118607314726684435474906875118616171968760686037808194975995625514981755938730558875508150500629954919886947329304093287250337983982089167080368630181394552936266325749455659577958345490949386992346998351888587100322043375453907322106372690513613553871986547425426257850554518229130474231112241744380313538582166156525273194189528936395817808690436863429737257826213972025702740996164735158258399255030189971932757571299964664101278942460417405029704199501214040850852634699623456151307798314243012445560068656728588034251431535438903929323827685984471162619881509593086318049792953009846208627343422961134092331954296483141471763004038768462665997440591561223940102888181215394658527668828091568057901080669248465380009369082916360182185027301510473422084168641974551660436416862825975344290804736319976798213213850731928849396171304863386124292021272298309880850340407668376102828892675153451641258110402423729610646200550489690001366830876241382975432724716293551969888969727380174034367632484847975875544153168598767188075373481670668827915314620215845255155210038032693154031160172545975978357800114618185880848583660989266895542193195567081699108982441496863165815300960094972891011776860776511576488822568713048354548164193464718746376982820199651291570938962178503805686834228069146937092423400257982731307461172666232549631504179250827304651409020435633934616204174384349345957516381880216896596779386196290027296601903137338194691134656224196871756127204730791211726045829655047879599656906608953950453534530920590052030954824410251660914176815282719675253242410826681414276206680237695794762852807602089874220516693161777098575090177993933556669807344190272134175575531854573479803212783443567532959674677243699630671269447902965621879450940451193953682399676157713124440116415947044541118048888065548526335952929977580935231674098362546846367342740749557946541669199966359040982192376786297049958194221461048097839339265100026743204175886448452761746225364454922154297988351303002012770575046176403148125574881591446206601530292470009316542981077166603494613423545725675283795950459211821351089162821619795841755365128625862936570712693799192337182801820415175517020080004408056461549728380910816710370639994677096740203473028701537349453765906985404316201235244355063506977579719651677465485187419501547519747154622906946798473666534492212370861714478222016270367553589071774799938608769233604663783517913714142878781343305126787298581964291699098693640597443184674941372530640689550601387936126833450405123262079655248690952817159836592282991799396459483075860285423971140829439606822049847211240803226358153842218955212298764611181306337822342816906414770685436764748819983591971529774421869398085491299144933948686988662739549672091926495252882114436126730064165292350798003455625533844066838488527124240755752121454453507655031519320257729794745395972180802397567608397540951953832265272864031895053772267760708889752317584873052236904685793516640502004398177608499317469371300358528343430483324301664897669204733666601383801302619642136981287023982285614916033191939314101648340604671217608188828235613327300150433324253896298889628955852982654987533717126110449382720569274435243929243278911634944563231657011332199716722910449391505023668246993818396330258654019687127894769541214111264982857017880377337300429186867028151200288046767661418065813629984965538806172297335119553480783405211046784025269185755958512034207044816126553527520185168660278426334514720544688596655721751331868385736974254832034934850812721519375666919865386905254722011280068116369315260143299043807461156328606629103405290068644565804723918855206353983271662829724732804020519218002154513339523520186437105737621762576947024234476747008809241333589562692457025969803878442252249635807848845675714455722219349415582258450322966058641593476296342589343386667048124270922521286881789470444934787704010279310140380185904712894040320574533576610320846590656982532605133236242653918409727108821042484103199712200555970174939337351146700097604123088175925107475314901403552830455899585102494476986769960601651827851269850259006904251375262901117008371595095449472527587624209212719533378490388039407853686101735082931828681709707259557741208753905889977555478555593453135928114364305153974597157312140163229705295939748928008509786822449877712194099541600609592554149151473971629971691347959149983856798681658674541555745900887082339735765166442913490555505892222147866096322526306159524642554546361411362827435495800428067564277612752821785638125751471043242358050689933597538677922002144208586304554082638714596833667740393360927826159406494030187341816862205791815653521189426582097638478997729396772862428850074461425541725166979239138288905741170381008177371920641526071724269361490176842617060688587891408922382887579676099074225138367062845328112584545837200687833448727949708486581778888252988895775262366219611234661792048559711326046359010963125407748529205965399512626750318313007095076715098623889768261897409650135687098528584362304791061307192266796500742926543540464561865988988125097440610757280928391326404705072779430512355479404130001975680026767375679995870853995558076238750231704664674324566140749398153713333904049133894172118326727831222715599853005619822159896638668921313414871312707754213537412753533974058110073059893408145235032682859554364785124158121660472379819531294801443224278024043702380377286347341133175932947985659695168647575845319582109674682641691321830275596455035805081507877308018708977054487493845378587236834393422950357164622683590646658493743601611627091034586077565362193846103409891677955833167885668672985938621490022127335634273129357596384434687460184945184542009366465815626566033268854498184748381655467338333402474153943072556444799585498087580312920609023906641439544330535997659868279621141944247888534563790348266751573985709256149233673447071535988611502381134321771917408122973684038235085054031562243467450158043835079004421667925129215443777604505263895958012903019543291538112730954096690961609806897407006879207234320461277619362836558670300933350508907834725979666064583814182475214233757544902362817455526133283715466958659391677338428485347085744416996048934237846539974046707082169347582336635479675421066224485129775032800901011239111684893448434752955175687064494754211509627779318067860158685991117732305748026161016332584094764645510174840648057084351903688081496050572343408483393239679869575145878165516096219100071518882471203729094933933964655055661166509770531190019058504752525391864558884217120930071700669240669480650674474367227373213790940881336748851087589923005698643632825650463854014472539554635824113555630934103892077870873200912228793985321567481894613289709735487921348727430296477851582429627109566437282335115392754222052944686180140535614217132974364972711543455045013123291947608666747768180126335345915809957944744948483381043298389816090183781393958054872916120474911423799245337851331674444970106438990646916585650363223671502886441247579471606202190190088935275827946415379561132741218205182871168503574365219466970274729679111462670293124555970453144714459239290774377014438655862678706599428944902839906466114311941831648606145290333697525542564383511230433059514665889566854791983809135599348175412165815794631210401786744712285773745636147959516019780536101552795202510501778391841235109347905403388344854851060805696003613193408381548156734137225179749196440489360672940022946176249574160205806807370394848661961115075961525480131941294142980443145884942499943082765118329607540732109916622041689697825883170069131841855246051543430382095418183192014255040011120851093053914245830276743632549370491722993574657205788763844488710647309291255938363672868374528735689021263085634194649756554893656918178846978859337283006000077030161068842892154369900972204564701288811422407781499129096126572098731567786921728019852350540242307130369446875733445244194458627685852853562907382446510279554221601430698226483564257843351417172354727899815799438371933659509980500143319523711484056132529910657537778061028794986953530990926007916924622832949658008114244057780000648848838500844919923230458894562833764996383078006732978948279204806546812316655379805604995135626974867769976791490649061557179439464013686666994559159234465244236490249330314522019651939943764667983698111872047818902026829618889659469795333497288908124894946168008424598724389156567197998556202082505285950612594591782284884232238936471447639105429907532940028696537034018569844577943715823169739167637212129593681870879262365576618515647885814279791145272481749321387128832448293634658883604675659469615887052391229977998540607040809495215966571184557868246786733242329399147030383356423610030074325873108788141842475331383530868064169659729376124125932560172941096137244778609373880033745793809275038488138303340294006118174149937030355587668492110067904572992558057149037978375422967835864686734220548793455143258956256678401116792158887854399676268719977702119683555548879441328097697389961984389126115694353827969155191070565636364066531844151302403832561326291378504931815030925639349295361095429200316206100101595213760373553108015143539955561443416283698752856825461566053939346866180877516122011542521069740861578009777132204811399186064891749881182495043096126452363958732166317309386948215341726824043430172350482424105529126946815369525505895551717466448655281923289205136239853493295088745396492974808243625851719383049351937321033436889453303455397315403861880025040265242446095876440420420387498703606935614490957083354734559338302365021435979377369575907622828400611153724757416907006693454144051783646913250310444810445010088020796267784669838580309476241519193823192060204569136812699915045398140158667149089708668131062370198154406004017872045583053245382791472534849560271552092094925917035064305855843862627126361287925048150024081918919120418066049994612019590125192330417389012921346810958526681335738306546303358042400666651752970805482422809483172188763033001970942667844625281102704927984768145083469948582724726143749823090379428712541505783863552169962151324974172933076232154959993564102779622677461027702949420367176271127578415537128374137359309305571683466836002621638891715686552240148501305499417644245246783876887052546691969354698228965931980290527438143003459559423802670975679977450743086067745282933171100276551257074862719565931342681259130354446554297637738403669223573048583812050675538288095531393755875037323902711962974817811661376003491602173521328404631428973098692258007272799319976254633878921002859653745821503854911389890945446111295367411903040452386109042516660779155286294815338092341080614595429738243422649828394966452307886845132421397368048100039920254401501460356918348927150775250073827408508154558071439487713231320346607589305539053090737669645695856657447754482093576680916744465300616647718547736768154439782907038078611203329465276701332284315566021692519229056486110226499804878555722163281061306144715494648601201352987243130246141694357138432166998049645017718386738091636210583031048982123667154002089663890656477969344605176188155622955458198763592050888265902867134912387224179103745868732011996199813886020825187634461145309966240317907750220487663092748002428083493959490476690365020184122281139475460592236972593390971343491746785912464736922945120057583814904036909655980921687630006806928539605899570743919636703916035757760625538595242723841694472146422291976608114869787948271963948024307887200354205556148565694888771848854615999401770826523428370233347332257732680006093963447909221571660646867158769094135522176483839816616592881638610827140751660289338308134507385074098859407769200846782711373170417353469097146757660437398398110094186321988030179516072009854195732566625526665658480358525496939158470975446303180959085459444123777717567715582061924392646740131570958118471669059353227540643537627546302231403499867815961806634625654822002641364626988227621605084520171360835319044154098869281002485211708224959400701099491325107899810806261862456428455587373086296567506871528904094599018794214676009559480416284279255948207731289690194093683376453640300636478182897448473214677860808117069318313108856127858161112607553976812743692755014913213081901407464688843075351884760970063632276834801327720950288950561948068889332518834347846307474772761594861231632100549293485414207654598014798871883307333668521375011629104326308751975259064422831819529406816841377899225677229609700608729501093206402574086099391234178469060570031936102235639502583305139626659592516649554386973599817735062829716156141744365559811639023704838343256859552296528182541521276456084543181502058797525163224949937350008493104520403631284812502839397940506292282495135317614154193921619920276891747049984094835087116537710215680559303685310258997444265827781173936939369323514208419200857742651064659519078744374948231687443942633876351247363411431581495357277043768876876096678885809731582026869783442081558181022167843108266795151240254871657847604203866185704704979741860680800963640816953752857896417569957994508606117929617192640795631463449691812534579760085620540127285907472491237158753591257472346099042905496754714469455675108611733931448596935965010738075288285192548620385110651322109402808067601427572448865586947195663373521104471456473480118053366278257017400254316252813808521589963424056284447189862411252531466621834004525666159498684461438013943587186971596654677665620589539365956197698220495135736752388780907245026138162800259536563867609332699217188108072924724653986759901357590574003055490914423152392190521089969519063812786568672257183075351659222796720123725079143916957933142859868198902654892190292980841693089356429298541283853959005911227193278786401608191251976013441668985811358370658054573864709321780304245023180203628686024843017262449029036111154352487074776621909838758730857116785785271697518142216304533425902085956765441650450025576628387881580785920420808571772657880840289223548084186075897223586509032319279660380231826428043133286297038047978583653840996473841269498647595227477858492307847466701600816187135832032851342479257140557384884376640397058524362069603882946717773479896532440846602659699898178141607362150374518052447964904427622207328676086544511970387733049419255194407534777387067944191694876354595389230178605909242298338190379052250096254138240289463075403827645295293320609889320625454219322921396286411017934110660526689682532490309384187837183580607633491157984167865045458651878509748528066694536958289641885424874327845586702600193793824532509355476928356443428745351375249909260467891365978896684134915384088908051426883669416134843139215905071507614974917617028997758466448060346133695952439103557320305730070404980960335565919061723648498120720255522730633972828679046024250526388419397149427291488771125710860400180359512648984929932602998846484542520089157443325483476793965628680580909753227415415008113853173857113835330399880750980264447319200866643833605117544302281173631546443460829980672230536658726430817241934625628511338865717868251608962610183993568803024152629012441174392238869810395585657186473316947209573121704160312095438050022636759044758784102422086427781917157002606901535606751986287638308376297343253188691119667416975073358926807654113906012987589174571313716192518924784784844424377789259639178617930255902178818512345008423800939247776358201583955037985671858396330215373202598403762879219312821784535265992060752380861072124091839680294625342320400004939182129826174511607640820017349529978382047030898236380581556134885427673533549298402261549340251669272019991846592080893995468320638935600841251140378937179237706244365892192498645078478120577525326887574980841053683928634093745309696179813869897244276265338486960446697020158856042517830726640431224764603365191391844786203713040141345459519345521488287295236869287439257412181902289147781009212002865971573470284084337955211584141461008237389414589181926306895586158523084539895784362954881980689909617678632144005865018117958953001284661044696404090662760534960245235979838939420947298708262673393515639367577223365447229828685919367960409978592132548933513586274991251598460357354250762342352931121345849901270612762166730888932108478841593057442637329191576401905046865215970475238423405170029862666943802114482120928345948083983990639721094834596092748867905571330762976219164295627050565368045251836109883394196363916631924154573160468464393792896984032662662611034510439183712963499869400911319457666136079233374275626337027560971094585855273089431834022828329250344123030751967230567533797585300363842744155699795885101840254969713457739660293474270071336035280780293688321506087693370789672796679219706252210370538131216437072094345408218916832621864836398813226926132560166616953128796868759760097254854098422263439392962801077261508964254105339130960493212350923704355028779776116850907470202901508337418839828087839031516487696016385425463467650052831895220710073485861800975672014270205041169916659358921472007452537376660537677858351139398030298750371660438780481327240597377821641703168899403642584766520981377353701944247387556909599743443877192802982574080769209246239342451287116393478488422287193688319406879589560774728192651822633199623784997774919725627203488462934877653569875504362298423029074025447234889197171634933767383509003681155332114704582602041296042383171383390661494986327835202508318138215972255228455291670523376979505790763113051862322860259554823904355363515446419951141910305251988568537952282483967467705128392784274082402996275680616392816964401559039849060877886923342029663780116695909498843485589340269909822824607534989996446251426274088229918533016898647112371594037366570350112785534814284253700217043616830570088659430098344052161217521207908112480299111186136709864144334426436077239767924651466457680300375131724795348518185984650361865939536957932767200397531281634657314899350574925934848846762918497382303625386652221338487908037779303016573977161028282901465909064724096404368200758992439251496651666928021281533415418279535768117276649993050723215909507109281814481072686889808924633638335590537542615725303195135600885563323939901987771808279669546413945111560841420569095795865011727903144790578079960446493317800101752914113168910984734206844920055529248373812781008647831810286416481506596441322354324786068733277806980906722869813962526577970469200642777737305465430954779913998846162215583912548826136582789795600956452238510055818898906592220320862387044352982433163874339888603767910650529522968921150443411453548859503915628344197344744758528032358302883956012548011369255273936592179944548191147080907494769225296242122396093208542214779335418621063566159664243345083888021528109003176725680855401229316747177923711714309725999341451301012604081676788270256971646538695547710504271510612808410524241385393795411039709471267220966719661595864362382943097439403779484373796302567590054211507865192079824243192583066101167328393269416021110670295716793772900337254279857460981021105349776205854630875576355514638549081939443502095100623196469409904480710176798870061973246219388731108201056505632362281924263942667586963134687827722469444423735953123531422553398694483178227616080427452033156425012031728493116644891159672126938336699636716404044968775806018342187686031349133439413906602533653117815516517143501883371986351504162854157627244700458891245165196193869534859647250979630615775424859639578147048747237148423051175166510624061515718971761709189497408757737294365076537560893579233959469460701094538212365602088108854663891103158381970577383899657130925896641901456986488291440269821905232916041505530380887014948167033437750678117938431655717296655306908776881966697942908581141077037588090011996617625182690723722284973372440502590610643056402237531778726490149231761127789655713359432924373687096480334015200681377597707487725118669881900135006296442279958166682647980038444422759794706556768560658301199981897175002563377325868385410330827479063971386115903624529188426613402255184636934982977849034273890991151275142911181864394545512882251762078261322428678440979512091104613846332827571807098631199684723057729701885576059585257582860103478993838023868023743841415945821814458573709828120036045839588413501287123458055774855836656415025464416007542136992535681025697691526527142530698376460118054103523877206718239397902497150791026516665442027523680918773559961183966754943229460957759472782450863108333627633102767404030329829795649316681426411883896660389849764172759894008564755910610398808336208362462741208531799249668924954865148629681228388076704702322219313161099356669985434725098545917690982313717402957604581882448652106610798826416218359715747199497030240901878726212276345294602879659535868127338155746275885895669730347797459479296098075721390922087734600059330531980565971103726427465218241272391166608319444893250588408849161087565085783261395706121028246961715982019876923151460838093340615050500264232390083172452049605090619058945370245094342797128288692057236842251877696034393057442336344117606434643386739546619323031979420679906196760142847366622635052919760675346929764765962012068661150891810739405105986053606410884201062978761675261612092589239761562614583622078124623482495395845143103510694342418453240533057882937693102212307384355367188196545696597821439391933282399897948293136276763697099954880340806447909463019354606649390299919502311249824520264421171456272997451153142242867015676137872220263559652962362507849757674197468851785908319409882029617814198020620647508677832703805616242530952288080247956937377943455637066738757082901975562272158326858689063265846906255095082499977778068281410636874939521844138336730992459540845110165367521776583244391010492155427120610058370053212910513007686559013152033336443198877756331205548083864349168865267128443577368586067922417999072985001864746031593732911337926651445760092272808969994899989623542409234241034959069467558473299258881141381744100628455321690131550425784814217328276858450655108688071320200837813938207898374089542492145714332399005133133443205314864413852631631970467476187340394402316528674873069062124775610810931974092959402019653373906144019017335996241519032525931979497308197980058471444477229863489556952526131910286754616061852470166246387645733378231444095486301007409643392164718536600354100912542491579726599948001329137750871880902197288758299851824774351969360998233511492650932880047027031251850886915750169604337455220447455076805697230075460275214129136944413498199352347094974812872058879617372764099079822543435362261566759076931888476872364914274255714901220684548110763086852367747339813768431018354166659634806203100217168791120872634676701467890692454197098690299236282259987796143042233120788933690128594574429760001207846840366718745843457386564823483579473270868977210428336925017718913369352853952131016647295082692203216699999124746756185273672942887930191704999834918940755330389477589858276464478329062831422771909351518180094632655749757383633456549982265086054045690521723923222823940797908743469650722772549243492923347514539121449046057591683228492502355840739485700106243814078299788516602176794198928048171095268213985965613709008100640463623113423749714555772743536048011344779981990783890127274588952750906207820968206879140620989538093598508319353978953038819172944374591899434490443260090848698498010294144175904865112613792521328351071132833981944900474275868152197987449203513344087291845695629530142095101058047957926524578760636391073695882553100356816463542604015908624514176481378091543497172756776199587649851763242431342516645232193026518549785994503010331737310292396070809389729080516704622492741824177320417533200120166763232259564060906631022744217350860625868612196249758332250193774908153902042200915467027224118745445841075535310097419073436088118224261332183409428260089505921704111756062732851917022640008036504941762731935531621066574727634072365624420389959928178389781046901912859980113039300239777088374170583497377341619084777495531733721608443225653641503331242991409647814431633812826798022165357873774415419402728452757328756604277607407918242075090722070658787276210838920916314964830606945325122480282388131891537275269108661320519754713470707857403741458970253778444993142435225979069259523707311430393954282364211451100268335900313519475791906237270313191010038176313646824956166228644567760680273425711298350338596609854081310603196583142168908221187247811113717562664180449806293033434802377437558446570362543840634237733000890069332950620578683345546817020275375635881662244050520160307415748634140637821313283294532967232454654310148792564928430689994092267746028378010375154304373832712047645615587777048915556231458371787743846407322732553723356542900089403556461920518604734637070818291116721264660912865460962831746939735890621409739784362005329988847019640819218348449934667243585617817502769498696595779533593153447528011198014391764921176906519974775417964246184611690171772648906307099040939949630436076110895500789641976009537096012085793970740272648624183013832736356034944728025008934335638343272482522927040057020941732105014249534850357259654057821627139706009411361742129941461018978342119209820850389473783113134172303497178312608222045432683522148194259013911382160753085496093578060972496934880854024784596107645791183792736510072440254060464811851920916973275424458978443249459743641835273002310388744119953481118893457854084379097047468745934486900160116702087294165388805674907646227187539575028574705742501647134466088608131709540493042531260566466117246265070223706219668166321750580981772303109974973508509326138472021203757704227049219410242054924764591704624581145222837216304729038263633961866433424699240783213357616768102575513295726543054159958988961794222337006786244795190324009684889031024066045497161182114494021919242910656374435601936427429102863352434210037671497491828360955412475881224876576987618063535576921374701469565662254168839414468554140000123203855417229254577596825475920429079345984832563498441103416493016339544015050318730132195984505040136607239021320643787318655488000275933405331470981870671378440231741468407091200157336814678492292163882526305411724078202586481149860687340324355788850311264808426823839475235786638763152581534148999672951137579712431403733327233206002194715844983281890074200392249898351622750364761897758977428717806010590749873093008132674520337732752487931239022151140658749073459180185379347657132457670619300100568057350766571889719793828736511664155871577164005283520319579613879175407127977312971210551482299728535805243871214804921141753133586664031735686407514474035843634444409901140330798637734699340705223530319103499851171888609216932890288147455796482030203753496392760555024011024946096475775145928861387653972519147142054841151146011799956700601056554124334064845150805466377853977932035907461638816318884816429124894104754855943671105332726215120616852892973866793760147734934775825845259653435585161548178449244353238467034217068543897734587444298689441912614088897050748767946257685940806398864260147955434400835273806295035163008423747835689517364448682719747255947980344569594776587248628469783446062662145869397115237076380097603016953150380320671391018566242431503801740403664238566778677319756383212955017719064050721772640253929549268678370693200395762477408508656928872665876357914037409450153380185269549762472903385612117886996924423887277349177975767173028591854199945267072100707265535312929065318820458113407543649395777584309701434226100463973470886026421369116631465857392710657209449813857248487024822236903733669362345874155826044737966345619243219917838061989178280434663639590432112822211323369815610140335333895513329047875904710008700031620753255223794075579686335801204381940327126468089292971331406147506936020164669933688969984030166288211996331298181988963053994615456225323437734664977904201789293810737263698384196937396252139734989623474198927539686687207979565008680113493882614433124554449845412517991270661944829157719631562117875511349143740446874936976197340982126187417442168813298448103483883622557733829992147476468596875105583972232586783829047903454475334049189824395052727152335085708768979439124171904989659480024904057187843935900927538522455154274755804757150152625903563759587996610348791809998154243127391682263348627616042135527688979772936332872785142947117726196828178978442025942329782836882467687663433602871665992731202105745656290030269433219708031498487780550229276415454115766250067838633389442400650058929491327051313862586244721979546466041988845352924996838307131315942038052778871856125835669033683726521553599478625283916638816275260982426302154151251698679472314651076607539056210923898755248824192664186662477804373757030956758924653751183970648020396799083553555140544633075571819526254275027134456815926220537176938318434863089607362042704175670345332845885005973140686879482396964982525451284816709092294225588169759271427131790259135640231552066215016882601015736255292006850176191673128922915441074384337910771918555342408445269655572942335873038522457348710229934513889891018971620008825974452441018309631365940588394700769438306774646425910200942188606130348866071712237272354244684281414772373336509087651413713271695443879413983795049941347781708194978783218454431904886777481353346953756558045311718583933738396079395160543983630116912473783597749499363872508714710870665756201427434601883112454416528218010582133814260707131125644664044200358908012619786867959689898574501365104332709788323878000535166363773643747153875296611062396874661405230963803976631033338935467762970550722145293318049908216538352130338829918251422286100975442442390121274866073015731274496758672252278762943633169259034182102486836419431283444285616731587869126289641909611914237254193436287316623960078202846077658647425153448747509469644929119252199592709678461056720520861245244986073660096134733265898179917930957495790896976187889189145645584614770685994016056479624684915662906770815052052208354464901692832084936923511023625856213144844506315849807224454322849871881908981234665938858569131228164699157058293196537224040658958206436136118930497525287022344084969535884330510743477461738907481658142999737821425633587864962492031988971765880238448301320478993777298304264673407947518422956316842042639521829357115654129936224544326939030702040168320522668013402798103097646640592130003209961436655392662756417149052910110527166240071311536221053897017332277794980961867396137198852148398887587597386169051708761641019045209488820580824450385019666709950083772239370894304153581298662197400837924872411256318286998856839467436588011751233271466681500412533280524110204364653099848373395775188677570225653756503939376510409016727172015322199685737593812190113163746588801814481121088528319466230422065647519933547938376111081998488156339128011775746615186937612917220660055612313690419799416665190643585300405848695158924729654624685843287493017893636544598472124834930281706097248709355987161239597420022218793389879033238269369307814890347526790474048957355491761573609682848129378732094611859141470621680359144472727460166478540007431530424364932087233788532354547727656442849706053744795294811429311339691687314351933064595402348493686212255046514062298931904024049612930494505940906217835353497135567531902761302261012766257641361077909064358642747428473644308446993038392207030684625992604400931493656495265459436466161747934062233989688588935011537053894529585678979908364669602426465131793250837890378797773621634551247621968605999749406926135340876650450812887175344972343944382979370930242781652082269850787650545663099836455380807734399141517407006028648270180274052896243667856195808240130221953617152953128975740531053539980391659511211021812344774682371121906393886552099152722651522143800742327932792313213584559876142894932968492218409641058897108386509698924918338586199890422990487670311201524515202688706763227249182184496646005468096549858591959387936930345907073891085991080154359257571730316725463255741567963029934616163510671948913961262597144369331261798499287161128993406241845322700745396080876563077487795087190754227344991358738919808538440181140624233850006388969511677939313365773143669992789190677162669758041063708660050416834208778524368594343754935264016091452275199745127768473268174248118273866460205539401307124269685780403463182501412646287064756820142141784122853046489251228012577541342766682798361176322062803769129629524001140034309476782263517089681581987972412617502573649751342004691831292075113563347997607483955986680843646828305068211794263855923791715196980618729336719285518136918805001466252032295563726979388761347416658526491167358967228050136670019405674194498786347193600940522174537932371891264860134927485031935095990972526146801229149875433860433872091216785251686567201551965883714459504363865050103533041294469178455933844081140740369984285073286930467183068510347936609791801032283848948378581826852838072995058732625762178818549067123246797017726534355682726903089772132166523251777304612160819157966029186276850416225074951218756920036197190210732179533629784043927867298130505607704871738388213374173689722388899416578958016810160910018161312999795398528657024442379388556607712405982825971197041608929768337753508338094206537397727486941046538450658252868679340878605943227939414421658582802243990600875022443068912675946930643116482562580672865772469346492012625739102336637960955249742247870548312879529016352753085807156971367935728070089121651454228343734026949476722451806367137529042327879424878682105026175772556778475770063613380424068566993546440301589778486658757645470586644942461609849918067354878046537737059399804447965560709928759204773981703705218817564371694251473512039853493347569200691773458354532527875907407979532332679292788568105384382515494836873992722868635846721196987285006374242751278198607938877721345807877506437791180093286206198060599016947873911050887514824889038577461358008865105258117178086816461171096331238813192490866153119128226759753952944635900940541070406811770408688155560469886996982547418655626271863612588323936266479920076002901645824540808186110913476925063623508122991168188983658436232433533897368039046918971276249965117107330140355937356869820979332570679321417642842933057132164554697732843340346622848742229979639001762201994107230998732911321378168303806840285966326009019341612761665983148756637852120058621406517607743666407951671544441442462376780291541521888345725954229169523179684675014808601346525672301627454922033035319057921645747630119910966014304648283756399894097789390707372566624245245171958588123086053923215337903785746081910343033878305591059658679777442180926533289465922608793679778788478796715257301344305366822778555751890275812154702494344960046686032187061345114747328435329319169092136934747778914940805256277571270574666929339970467106199106894299778829848101817315724950720527658557747705475782163767157753962877644983102414603562629899221694219323693411601736769612185772317919813848015510477753181094482157616571373388942726250184381329894525040405526521828503956424008367996206408672716459141874073194564930528927914657294277804638125891217290757138713056633494540582260970432213025486107716802113548399506526450774117880048736819906065210864967709111808327987196744364741646868301809502240293831314845520012775105651545210201232942779217523676732266227520732830522457757248622647069179452159360538249229526129675320618617356002316774550604456657454757436535888550942735683853374282801050633980015720903088330101083663248879494899046296755378510716232064585737192073264856596106850094637264489961538986507828239191468835173214601549627580061706823935302819288441541189596399636459929037795298219525833955534827252152335194028568085816828889202818792319939789092082533476022818652138826200049454518226115973016021992019089888504830210998912273789033323286376802246664747259741703849145607379291710852484384244587876492512807430071591179661197029030993515328550378939661547854303945620917867596472628169978323372439982344199768073900639844868805031632729204686615616164925232671072677976383776853496212062819301260561389372998004128500061747591839690765921595328674712906189282433782928412645326461889986250740480612393321769783540609853152865626334738954182746039510555755399726185760311557074278741098683785739655020751302039311795131388524822575878796215681785428238554958679182855598612046665332606241095526841530274143938411087409838521860163312661366553898885877577009400331359227745024700723601927774668103432909879538306569892688573907548808923546507293406450310443651454893109764969893366676060020646208746095255319928757142715588819103567499990618006069701125372334202966531373424521676511335943593021578911169809437900185410053627379320624893336602988404930259169929685371007449007302297105101069648659725350665475077364306763256454095664941007692476378636022951989924900827071953854757779341561766241338397863457800427275074510922543277587032683516441110247629353358973796613717225873563698681743790922552718761930728019853434387911769802698234981116620370078490530205749400450523744820811586301552100353744455944968498086397268858000558122366133520009467671433095376211695827878840040189755043507788533285416877329057886403316954622666071643485450046822997577980044466446546027910972161739095601610304269318974245054782683417541523658920567815983112837721442053907600062095306608947727743672387416416621276852195138133708575674499458800275509449857753906521812225081223347867615730272947879904969799352162023836619330859532565026607756659603658873464301344545226889803743165877552267683795526673820744223692882697487611522650339783171836783744617283016283641350665744892452302431550762013694429629514451382555295327146951390431851841114148683873359839513732837967952648939284345969877382538661286200243791682407995426892289879275974068668529337022690982419336922202247338719375629379376962805433240458780564153227627407323546026922099512200322570885531566829070713828618111436398695717310116785042034461326231591440303699436949208392074267755982319041227891010524101099053165412621473057452594488204881664151197345761290194561471587956485835185474935653979378097966595954599608100763478291218871225042914486542199840348044746221623148954887347324036886888464551394714411769102589129777555746605960617113441735718015439248680275913747177588056150101517642598768675855031682302391747201511150485565422208166929444157498739298510840827244346621728552810828961353054910352297155095644661689063684213486270076090947906068602234566825422017612078439355969641968881148482150277839187433648064609893604137064459365024690004841276677777320896720628899720575904259528519664305828627108737316944477578018097645087657126687114796763374039043531221530951925085417986225709277939223683411406346041245796913303853792508692061492135793073814144235975336440601087978194525111577151286338361415232389324064424199428421423930388760734027222356019020788464366876963344189268200583963590392669220398454757303955680002638049549638089289812699225080071534018139064035970670369591811876661821760706367736349429268155962721888009176582887057275193254409893805194191019752068624205679837533147049227074915193208517948688144571412488880298905859747907223717166429572957590998543578893114032316974375159782759177898186916150218626591566477071427508432783222024909670008564089673747391730825735632911333546619334707417514645639983531135000345086124819280401370010685394354530139315652459740714656575093441593604341532242198913977052774435188211737719091066648308801733513205152923017142053862949570407360536020063636945486993277039329226533869921782275651372191415898959919003203935573562332260476638808992915367138985920493429940284980427908163308454155684289004922670562096081806079162376690037112332788703881345255465911606116247548960256609600914405922235360536268996604342183728862126667520711318517985103897724993124315069821748879312543511033070920196689409842891966429573020517456666411732422051501896812273204128999064232541919482713472799485158465585285174268218722727652792091795771037332858078094112826343707753420203721496333590844026368564680449962719388778976478340434727555047210440592428238096351195999968558019797292699100281233773659775524278213452744105355736226389097890406677647472226551659890959249640438466193416019655547677050950846281570848799370805833929922994012166391504790689782427500569141847528467606461039921820259719364571524389654634716909897074668488030627339640086001349058787269418119158752345240953581716298591036486476329843154405428282146437309481509186849189407116958654782529731105332259942798568962636155861137546186207451215808714367657398970998598776945490222408613047048340828279387166963492926268864614537764275442874626424608846365687179747473003539347851249357042983870227007495538508179429657387254674017348754641665697908617275139026225151160770575866139470908780083200433455717552902555652101218286090251107793448236812573665913290212038455116251001668032478378957699714250804083396786454378224176778860537175403544034493609243685965611363540453312955663140811094537708793132220512619781493263832352393353652738448698603393822007704930124342564823712293595675669768879185194619820428048953268656019443742155853129419648545375962467898631376737926700492623925968272772092556070264982712818108642188402017785519635634622696630395829745880654116688061186625135704768345121344310274702810482435579783634738083594939322582998378085917544443406248257926175085762406174776098490132334871515285993687240416988595666102188935104138497565602967471323626976374751837332784550330836948358100013645174187784075209501775158297253568313297508153111184757697108266773413912926011621620806221078083643926073063600021310938849310346907084378480432328257857249492973029614041508296124340362335386688880442486773568483179303954022152964231899998973940522627878901159414688439760197813780697843756699378729856509651545803500087766576318479691457498939085524224927144832263608049511688653704125299926987619541289517017269627493606228314983023292224160212661701964461210189048888650814830510098070458557451656510805184955697784239057165936866964960602269579422824916789095334999914098256098714657043951788576692778121313574145846049167633909127836389914777150150788691030262642722845623687941350397729238655059011099643954607664450938406709975535949211928626686038322030936877559779814300037531664068861285557453567975881839935069215433739819724873269426162635480819216450657775775360460089756904756231330385023979617053975466653792090397186067325942345383258121306394578080109681822737188894148718665200845004519135179722817363463608200901363626754021854784778079386967310687919418347073054433410958810616167755374722397291551250406959444900279242943002604618617103049102690155943882783818609993689057941072598848869843007407205550854585157476982270444874373591069698260801689003644947436012126066142303899876633252565786131408097043908474241254549260470215796018433391933613820591185792249496302411453150578851303382728034018372106568926502623209595841534661456265354847127812364160725322987024072308233512720547734425047488379519948601548189936960319972114640075196343819200648616796563318554853745687397231595935695467727978142711013606528021035947930462528363409348275172386469450558803119374459419869360214027234512719370108574186153494832744523331896284144835766359311442431137262232361879534308613451112550652763663544841818999134239439702555731129935602049136414006688209841391299343109506754472409065200606010564553069334604640156926407099032291276970239042096607889337489407166803828287279002338702203138562597701756958789940611149551871578104221029267406419684435275770202936774049241668584006104725811283505839438558885394073368093347010759104710313844496604203592422603494245003521742982404169212475339100108886431043273243704782702359478027026304034006012601317012840930574306163981636698194063380983263949649490909655439918138501166312433755741849678453042116120641750742467460581624955050771084213693313912193749077592085780259788662243786910704773734730030528340404791036383178904546844840067877703476626877600936342298420325490078259308051945264456074392314096280204296133361521191453062888947335171348353494175997149848644360829342505292476290738860326819084401165307709114482588951725623004093294344472234859537883518444145471772191210707644266015518617382023844326330057603880220845385701900434432256611100593323443378373157288041251104830914474029291368487508000825335084486782303455844975062683849326474772064507152376543227915050176748066126977636435316441608287385063285488905989241743727749266295146558413322447280454736833371900173483758158630266916364065129909936886332443255568215401902066538872342650946564335746598900903550129603918120381385520123908444092762686964245089848491311519368050889316024169861939707883598291810862745292130210112622759327190015511179277389627499252426921487869762744223811446939334612284149903534071873296311142756099527697497594358223697099865117392796754044250063620000872769856491672040481779145495939747223207353228774320904854061751482991045617075540165708404490218029736768643968852552542058237769781746640056013515553745263541073867452437728077233081619475071768111011442283002203841449577438007910831689800769361097925047257517540574153205681439966234229031356053495225901083001873754838863915861195698009869630418277517908182672308779419178241161939825790530637768808780703118443185435852049265217850673983507259879499947700924023690940447909528496709508530937248742974552768610263574279770762909284519317075706534543987598798071163213978356258232079045312508814826011441785828924443443045503098135958382772181331371318230896852609694010930821325681487138417926468155156086368236259041280024600062367490524304341327295168764956345892408190855907648789746524547924871910745647794699598285736026832055731505018277514367371032099168758174219795645633499261491788373750977730115311166426361353616810982126052456105996998678270120944651701482394550353591205312625012736988539219688032991539721443100875850748708483112575366815677755061599970217355769721214232007009314539181981672482814217400993144115988818686528403247912315944806966135558334375003413985577492748790730678083339352201648153997642922851851685684010486265428931052288007495175348077749035769270631460907580888555513432696672439127126237866174682382076804064410942131330911160899216423028140513314598079937549850523913410121501374412513434741971987580920891022939066637687442483441755075324957088071793271886481534311684242766033163667676084499315551566254375490106210034772195521721801681835382474734110691550444868754423580897673874486238469417140205650728490759113707566059129905836846571636937590719672259421842681872155862236964145888449799191254610300372622840868743817842534765330693181674682460812904907697845100123282754068974595701923754140013091657273366245380432962182955059214459810659688841427897830863822369320408886711355837004309419122237927775741796735653321526256534571145218644460546627132155296003281037668822927548165173109843813673889243353058674686112236730893703340703363221335036552285763134373141993789007633182126856442481940775545739122972332128763657143201101169297752459391504932696644980229736584278522185623552937336340538164856927108141784781767746227851378490562272047050515860565414771323075332027779934232788105493183768327763778036278959690435696081526174437631740543354801441963759967920036664512836965352993390603150851133581775616922426172276708478787591696410757531105960369495789069645055315575311272475022836632792148464165510792727497198623605698962854388239062308340776499053574555596633297526804228159964537246861029310322800054785104960378700172380510722551717344506185659394989656771932917251798053104011589605571014372204411744150380211776509264580096639073219396843961817489831528064435370767280886922018738486610835830526581333727917587530352615380739130816691346099647760950138624560697410883021863814254885821372628286806767509022747565627542802075096203277284623408333652935192384079257541497985689946882691170177772784841803477983476003874618450004549938635901798182719170689746587832418651260051652502928129971710810639812444532842043642992935385800887261313400986093831850064037044215806103412690896008002180070669104079495233513430863306554277086095985882652089973018969403428685476607138429577288540220130303631591791028285803049596784709981151406660193666252614606056471424693853749254167688528645793423383487824008917596267776034134664847004177934431791505986441865720266358770445511007096018842173876055664499908037404110423226051771171425725356914115002006487911788876956542249396181982231207317901581199877081982594295101071784938643900012544270953289416299733765804867951371645038571431561691458807172290973455832612383747320120331571499816580889559843424576292097733659523499837461221660130296540516906924174636766581276339094959788767772500303012895064999958151322082612126686081952965645183307956047329788291140072083805334822978783533652213377618623199193931805125437214655510588876788412613159063810591096737431095401176104063201361578200108574702096422261048012328813487298082524330145085519024126110724379486383504794057989897689230773404724061544344251786525131384909634399756336609753689738862403558472659410589105723913792345031894032629870433380572032239261285430158077891548742705025177595698873322572053786647514116964543522279611265150851291633907919667126151458762698710839448814996658674767720991862289211213903969103464574457932800524111185754020044231528226078150112929949722124815936232104131971097517927340279559645953629061223256025609451727993298612407505986343100226456928899866138605173317220884647074263583205867130800971806593435511477891342335015495985763864488096092310913168401122065257491724729420900746647744155931360254341016154787380022954007433953213905319566770385896892843520526646897581157962195287675351813320646801169853481408475271139807632647672404051240656663497741754997116688132790626127001625709476372925728587427881416677944435860176670563436125006555923170417522099952843959379264202486868532479696118749621629574935037604630584782789327519613116495949667898990549280388714617548581190677074018153232568698345786106426262018282315892086063789532565799496081582126693867980922368876082085948259960065699334848014775216178139517293825985518104534576953391655123051900166004108693037802936168013522949341891726529719262793167715751552872539417987438862664921925358256816215567639082456909144241299247687306603235649365062980000467676687722504198087760828311826851245794425465657490218839045501234524420923052796382367544069817474630969279875442434318155716535481581655902579448026010635381658963379295283368676816145188767929878815384229718759191480807794065655496573952193464525561252240884523138799063245440606354285273154048570743993003917882165068870929496481542181155613358773400220595962620968961843584924625672537176215150937884851017493071082297990700408626068319190372165026415280685137002564609001257626220916840484489307534234277536757619112047315512835248129394372983034802008616553158250086015548295325206165030790804192754023971077793856758068369826261539010412861230595937860278074937772721734050537955694293004182087032211934164663955594242670218077459965485136040348637708053427885209364921926593213603225320823329123631380119349130347892905845234868471497135589247199716350114584395352833032409099757195299265774928042755905773665196589254953776707908626944071209658407801806357349929481118256684732412690890584309112078777936446935134361556656263658527778675205394164976196383027670777593586400154691112985651929798985248087149564682437137387265121617843043392359192773166081353080403076807330168366558891617255207519196749389161098308642888050659227056923091595434774436223013460891223741111162325719231966941549078819531414830786253694054084848423736560540853444114904038057691323574747635998377998731517419815870199121006892735957196135019969681116347589799203684886971329021034780913870500737750150057952296675082426183112248989185380941695523647782546151154792600526143413393545032695087755814024722345150485324150207369596647540931799959263603899495036994182710319429057402940697554841770026885000213893363408633720519772340086751275776535263295195378103799794533297628404345302417141232626179009379298304460326730968363544141078060650576352848385200392394716138459686002306802682157654003040505211620862846438471779419229879558995898528527178969868935903549880253924344612172079208894906315031029198739916945046910648836520351745890330975782475266293077799379520752321126797351147462837076054334515373166779271986974400701122604412934471436352818871588611603913750865172041436572066272980863104156523358526530327864664421785278819354712941051736317686996636068922626467059601447988016890820890111308444570774862117096084113524671583843223577517165797904206635311574974992820562618080412685659553374381937584751707674935720059883586195696851937768929561793684845409179035445410466118365054416941431414941063517947519388867819655668230223069240270450098521872947366495688027894333612259265961596795573472055095319476524141041642560833562617971932227235219473706998714581175316099439541371513196971291528441492505437704081541624427873210017542575716781362387172827921551287764182256703221479952823638517588448112876237133366901510570697593570066555995537385631923252134057078919320636426695088610641912239707143077857238473413802254871596579023817662904039366815199670412763987849949656373281850462959005716481847593039856800336156775547903447373569337168782815702341332110901984928843445004220294686372049118905047389318044030053301532657103169797912302026659513218838226626940588160700448360911349081811132206439722959153106987512285076599528802555703287787882452120516893029131141474378647244148658314344502476972012737087076304204991931632678864717858391447387755721424891554027402730608014038296862586760843749269643306459331448116569969264811177575923034155196278341628971791500489306827152560173057692496200875247748378402045209161431799798384183781113721099338763478497766658456889230288418243487747725219457695542409327422904059688227245724761327007462629570623681339226658425137352639949895313430483246657619388715534085098922903466562130612325034896038954809427530754040795936695747372356671212635830962864860910941495619786674303267194156118399969384003225990698827456038091535046852735318421573725435744676380811237986469049313577395258140391471877264946230993979334331614583499182207201729369829576038462864850161837490674210286479486533791957926425494757689567985279110350368371303097158075853824111462176427431999171068498651310297303031375572970084264483937151370413036419610366616250859606232401583528253340676263963438617620256778853711707371374008504755247074473295516340036344276333309750273647607509749562688627410572983346804837245404229871176126578764393348831804878006571442451894028328469515423411774724284386201055667796860291953602131857426476739926499067922574986538261131576852256744914537669004621959964356176317878370321996944683981132885022793782341365102854462171103451259745338702279744349838940005217084679990177936061135590211583161438933147360827502292571300903953307753789754810816498298620042720433729524068095873317634587724924266065420229257087512312062777658975570885981027060291225775413217255227744608647700527455146250597484530437466937785836159071977909243519242069517479937731744083975822266455072926644220107250225911596754562865009987603921256790416160345560331740717814188064061465276087384369561288495427409152804029951816089147180039298331119559150892626481894634102831333307888501724221868543246713821425017764502884383202828715810723568592833120616080669315008824497739906652064774514892585255565932542568568821022235244638160223190176237239739173670709882319847556381906721749002390871558783907122701990602046111625588836592782916337640000642435575464714465976261748044582075785798199013041015987671177890764923637435978899257060496911564561512196974505565410440434019215840935484569747303518605544834174665474747156168299859835220707937953919509768223091010805175454030183014543759101817295744930120390216887645807843843051043085003184924753887619015214427446062781571059269563168795333610596130985580052776559180027191086641391742596286215407498441522452079828035880200751172059327143374153814491483114035761540831337561251869185266773654557492192729272700949407293984488153518325874375481863096417887520354457116032102561329336681073145419654128052923799580474841967576806774507247897981697547345349416800593898916177006771305945636005684574606517670883855177727794859441398853234831195117621765638423955494651174525544034346571527483210374616797707429092168725522261751772585898420773510349401210729963339544528324298540155047365490725353616414071319738705216522120016170123174674097942650568449672967567594997214620205592574287853788198268359572791117534823320671024610151906340295163318356389470160360762518859966040457482011455952666559423134654340287885622481356921941475443934260220433541445335338211182557337837621625403522745730042952874059759811089856539005018782348562026341622134194884761673648224589515531265909542013689126530588259906606901579085943889579181747887362688274601257769648016675218029151075823240908738322452087660993953800519752358170633904003662893486912971630696608341895278942188914731951731813402643207578552938823854025268279277751978752781683229123344412982350947683281244053126134112968053553675923668527356217343401025654449469691250922106471333283443327286336773612313989822849536676960604008827810748695736218383546913587828809083846402315372177188951712355580665699721432015374792108967816076451995368357162529493001129157784671494530085028366651347053304180849445035633893739679863921456420520290232893702431838709607274364830157402383241274702017133968711532772809146186577461961276071700621564502029446197158167958072881632893190119911708935317135807481712213457531196400477633220571551334888721699257339959471616049012793188223900744941150391833996792232538159847635623292175854125301632769828805554826902034942239922370299031387163205834049222122082224064582313709109089852050919217556073117444253379541656992618752341439034768169934260940036118484020518846727164900336922172026671816555742802104840731702527186230767065277896665026479788938763975119376805318764969560454784144746399717709669728845645041933370073741336709102426019695891092292139079113756540996085345259879829097400421458877684269655999642206974487735009077879093663655212083799258933050706954263166760424911401663747349444721975887225154064809213318082625758304161373447722648670381045779025103746693614552393630122948444676464427665621945866386869979905175510130799303711597531836328454536778164183884095108133609620464432299304133294151810415923807803117850345917787246709021548811708871299366849452977218017596222083963359426964943026173915150932069931935254743737823292465097988473734650513838849082325894380202546828789313802166039348918079914979321506900940083279544717186802338968381318555303638485612135191015520086038585430250643752553533725249778524266085520436072405141054438117859527706116537391926091510877908844853031960388289325728779989009558982267164873268907029136095439070867015502259187127873130067225618084158761121632661840425984582350777459632112369703780175962778115107820008076893299254671314412817803568750772912015731747994134827424030738597610590421904928736699913567905105950424594000155429730506133073992935383656140722569602615168612024023700522063978649781010559333027722983630387503011889857781481182208312197478424235705274554471611290857062779487164667421644234475451767357139367991984353002609394151004080496777012492512879071318095823687827047187926536859294961924051615603528719681911731686198656356657617333377684606608119486350095765041252450006573561853070744163336201177660632275529571612594277742538999956456411860488704939950786900744539788475512785090223820542930276214475084104000276089691461154441225937560277136610587381523879084683334723547718138027027913981588333965710025071050902913178011560888591915919044731078146074735721224254898910235093517382203169298597590716606176697213899854676188231462363920529628077064641543546078821736784360290417627771781493112172551697364220134833741702565873982841300255248207147298780460147085393021799076331384220810264924347223730808247116216072142573390771272224288410827230863276883472815473425625178924325040781131276689237063952385546796159891959145856506051689381743764100164086607308877895349658931843374809186120976657037702470722316339887581850960031582128020827035594363927121129386272078080241349016867816521773954886040066301088766006499878876921519738168859582547240004508161222732405523574161118944543403070178108900995414419403576391494088881440702164619180238202926148959933159983240895660482346120185295757219765494212287667424013647607910639929934684977862482576546184640571509657522149622150828652430397759472945249574071506711877368880930626281945480721527061451843686919560406640645442165423577959634576814870098931240405920100908160951139100749960110552055912231664485002266977678413525206723867387832475782422306171084424041435943456699168189289590513747947647683388220252630142727057135564264908379263414298348615832279639512647124392735274774878411878678562160463967788069760842175222295142513031636213532631466339960186706847719033672644361250005151133890125397423296637769847209154347781804792834447971688923747166028359279116136240042710370536836748872950690197963749284454165098913951555428636677092845536168335340157186826837890360791506698049372910452336072894721876510272557735788466118184443114361127641653088009318952039945911275142606278593780102995518072905103609975948756895073286358472814865699773862957851507682528498397216595146171938458942926355396069388540775529695557032987426342449021644743318996916202830167849533337728908574949159048741205768664364944029865930666147048219845207410031809969420354318380719448086079492920764772246338094508337055399723731517600083460954970452977484559054824021361249297403096117631405456531255687640339771840815570962640167766891880062881955501772916028081381571767813494905400083699517611940480936295346818230115546175986026285354504007051653966385139320978411872456233637834412768991259363707189869738522070253826329432413147311973989020434256259428543990586078827400802072780492726310659719953586083530468781283977346330524071065485347796186402012986804255391533925502706725735558032957815366414657671409665050640114344927414086387065476879441148392176131593255767541355278591974807865808326420237604529233484178240473064636420935300433071959546773177825388368057545316631754447164160714818493878942234252039346660979743803825190842312404932015458571235737120485124356984496981073890478944297727952229699432814748174038546137983472866003890408455898039225739972393682418569184843824666348095655873054142225193183473770927347669478966102083943076970871365610658998838567094437948357430787764363046628242147227480003237823423033916553268573584450097768546639775787271139509033191149354587308119309262017463682874871617699587188782103422622391037710879990991103329842655518241229184749395580933935283147626460230542616949659647766075838777063534632258782583552043364707614756878146027041370534224708983779347535384203872559669604065780020478573321590356213657885117313541282628179223730783966265319728927319755478534378215307869350678182974218364208120789613620924239541257555722594726064273357204168416460473068953895565945212564832344653371653087311959921555973107721290553172851681040416174438427826136789784432179057688743765934042717588525467968076954575727304977942696507564868835846005255199976958552118129417947948509120455088371050566445914188577736618333471023518917660010554069863826320932316168965401326465515705774315691270475857000195985410534827538469461425478502761224837577075409724908372556668951619209207518587813276330421905159258474755845546649350911156489766306340668929703518898976382388898051426958808396243843181376628655991927623267092085807342631886324184284521131066195323083400179111265286786146634308523206443729371342773696301552960474760725076173045338569339579673212620768347523753923690680971401879402996263180291126644127430409421865995954737233020866524787791753588874043593044093581543193851561723161534205196609227707166886468953895221531849928120943946579255856916090628126170549039782509892096509709450321742617302599362245442932423545699677328945083460453442051846621944701232208015935554898382930368104353350921237267272482615107081384591519430157941936800885906642444319813608219639122035523157637274661089376131111635437446508163029831729484901527089232135562385156142227394033692820667971904119379948746061342326755592298530877827218461042623857309010405668301567114432073002761223671994484932256397776559763601381052570813405112546659523573375043684328570588454084132268743286245567889396331322457722797985966990901367379574986920873753584199412657625993038001590266710250099447961281688312546628979777830514733963881452162523825115791439349023964605282663940156042057342928010462022163663077745532908127460339899939456026756433137839110485638076132703451169634688245652856460720654078720816856328808682388479085119109668931063013458644658700486191976502444939488614868982009256650558768552320058160250776795835042528712605156939147082643470179443663795115843546698502493022525349485907839157720962991551713073396132504911955111506084525764822603227288194646544454859273491526910587279612147226614222365583812043760832921559780341528297556117898051644705403195235315576317523245385158562571977657388799201922469708425841923130299318247702249479861289571445624680920949544039666679715214872560627181176542752549946317605416507999055979701633727067073723057486355635160283927206126164797522014952934150590298810801531418480657494381880071087707118107069373660222813944975482911314932824373689553656055735356371903830354689816354399404269798918257236986672376597972288904967913222246516263743535621654673905070137288634966139415287939514857892550663162534449185135677472042158848918592687852910993262770172401900934901962550060762844904382806996023187683185387389062422431268154073214940962576228567377048100736697733322342899844423524941672731870189925208275381504285346986776369606896738462710490132363122035827365291011768068029560014868517330483828603862578745900994403095670370614719621308710931167861702378537129238207938794488538660110131342120546456265525951188417151306252403465534331889867861983568394776003458933802264623433824688956495346605738508972501989759266239121806581505589667477512544351115188929922431297001318919960732175770507765313361163684131365087333296543845988997720398829308423361004742223463353715677687105632891234281203658093049246527517032751385000962401947581684289144119112035288943503555046802000891017611978212312139236009545778303093473857238296968825141051234255857340134925377574871310089328831820943900012805426762975078159229231824886149783014944275908152823083259058548682812287393911026693144748493783899990569327513668214359640005065169124842017981613913654547948257215022807104303648074179245730412486303701011123054200353018633494165798662544479527132280264709563104009789708247309090648310365227269271212083011241291965334118250330896385535464407032154525319081092298735912203281200684873961233234302129338808800545403487747075078690702506095966353200409540746639468587510968047818159111652977361039666104885490769446710376976059301270913409548605124660091062704697728641658503462711760087941521603300509655429852670779687746227275529198435967457128011584467977476247699734647782455652043648205283566759233577979843386541686186402665989798973550141056771277322825243937709380485345107197696068700568485892241956060835573563829208905435587081671912782761412455798152765579102477527278119758153543313867491844070302809412888004833054675081048542072090464942932766922869799504145467449658045700479260549858727085617626391864012580621571996359986113785234247463927241902236353868348554707273806674326931016273310677251666720591774287094212592853516594138573947108553391604831737458860775994135468072420967796943048543050004733688740751276241450566254220242379032729610972820750003849407116110438229230780034981637279969794337017807144698680721754253243838030202901625068606670142688317281796686092895966206057103055871291348979991046202005849695825533529815194500566527584713053588953175616898561207077405478643525783149567396139287216165858696341269488197328464370620000205990379367105142289185838313512274872012338491445785818662425543812898331347494827853389988930833328769961340735217921679317533805918253917693561240597114490782368193140252654640997433107408928875199065930153767676774784387274058218342663241875022639861080164929999713372092566058607406221864383075967406852795604186842761403587320286190446342295590564820951024818691757451719534754296008776500251546903052784320749293999274582889371596713198122835040482722758195390772536703378428509200911774668804555899182262662418542336916584486119603042069710244944191564682693737756452693411358846679695924053188945127203799870052398602012473970751670265567559024016628942709696261728315126224579047003652661415514011083843628524376349749421475492022488123465963918068469917525355860405088901378711747951307632188889287751880899164705843214347257652582801793497315987821528121609680370481130975761778376989415460708486803224405583173215965837558073183543250588730834940062662459819393665451182009477264324721036430194574188918146284742451228698967631616636431170635114262930432583102814175484158284473041514433234781752493977200778717609636115148004872351037958279396435568174241406993050222095343580273881149514934613779297663826721145980616152983774401614050509991927657614606035458859802264990631038343408656383371604169496925076604015274200321888021326305316965294032592901311403664916991242176376880497232419244721348876339766031679817832276099240127126293348239139495967795963746410997177224414823219638368233477963317255103350338639121796281317280003320302956317042626909818674272404658482392307616393518997241250833811119312694587302882464654257246697928258755698866392625266149877839095101484829855953972401340960953654739059669759541320040727279492244386103624087406383658176233567818227445588475875869499181341355885892610112602825471523558689272090726633249558096330207308357159816929792806660919803538849496060132720672596511524071802226774963267158125654168355592849217878427395342851649179358931548028651445832990726461403060256872104531550182250766869791158028397651313281154662036507384211599324416996044235241671055663486328436478981914973027853890485267399383115623641185337584440403532372116406376388091369371543559948549981211565904030484376209228861586500683496658006758174691627144206696064065109013278200452259579530108645059192779523127851292646173631667549836464814939990155213304151440810131524190241426409442681604436111511326037544051135327586549353817482298790018801799063674664076433496283372662714906806479332055063198145547771592945779170638554321692229039949308299538468667479218111825523229737768836725981239660597242913160827909267493370220602701853298712730424435542844937220700842979127406193805326603697613093745081014550824975504676401416033773445570309430843155646363327413087016214308365627292845244603873813623424842628358124343497745499472053918722032561472552591582904886239243310099040977465026144907179676627052178063873470656316129389458581126346440045337102737513345402018073280688553345932719023222959165402055398807957218467817052578028795149913941005939828226299068039604738468651276122323753858914522477479367403018735530110068449332152400225508526157616871704974377010877459031125244401336232351877645301519396295144139333220801814554544912028298777904457282363241106706794518230760493618128450724095664311755380658531576372377245277120921208788304681544432535441723193586018606242888958273551478095334384526423417405444273969135267813282564550498560439274846460309910038686181295903082329454239923508827745008010435667536375289128776144089099452131680061275712553309852119725319419771463812656299073174054949049365237678881394084537256117747524574931081239660374743071664593265313190062095076529833611175670981080868108174207969716472173012603154017782601245403900161809341581009846498422025078716297781772106325754677416181329777319840293168092545007625474217152425583832045090063571287367245084227938817738577357761490929639783498288532613205516565195663823057184623716795630430744315115689719350196956873908995697946509594982565506644645059208663654545608443680496649381132970877720630692971357630389004542989634122668877641949084220609791100853118305873158941489880727625692681277624821162307686348902135422876442376771148486555764293084157748444510249463862980069078415520763158857492304830830698992515054583162145976025226763466438036687497850203989718835463856176412961340488256706724734963954151609826355802778508851080507894947683386078713154773208240243707507418028200235033026009772983985256770204896589151054182108446194002015953042386807965513386484602679861011338175697378559456457940699651656187606322167596005839357887711064675891472044367807286754329589648781883507691820616855592437633131815084806637931240741007874968457717899605844376226220338707523057044228365490161681609990775285262192347885465458397588692437400986313865600081427835782348857468089417228002271410097846200489266459758379046194676188203834400806614937116129838444420243236602943570167329612622157458423880304950014083315358586824680346008299433771080446223903480914223541289691394800771940836919866713573600970507000009790613281442446501451967543626031547948733605276743024061260426395985032611189830947283890089264646417293649128972177897204121592473640183978478222681588126540719089030824106207874299772120011095974954956298128036533988447191577956706201264905304214659200009567307520206837168384624987748256641589226250047836242525839003199803416289396915865807749701940296437030871819249080409855896846887170339132386180690723623891541497208643676503870497621655058647303948725117037869129451956320287352537609681883987094642150970158947457100398134026299158840702353743145608377874830061799638172810830726136494706740655740047721923441045393155744038620852842420019648230160909762808769936640072792382141933952021637190761935541721781365607043611126041626524952595119612455700223061608725029046836277911477176220454809110948083873801610145566737769070568724989586239044552961131048837467849844413646881770898245125290565234601175201427443704450808520215813817361682377206953171590461551679949252917189542227725879596758554866713403644575269327789639634935284523037307857978162836867149881020510629790946645501809560796277084039212957647607484323771578821719822780105381579715437090837489675461711190266164711999714357436895635535472767552488311842135944926654495041925444884750797135895746892641530387172917438354184678607629543562286754927909691897256618473091299161862201000705826803636402735870041430685788848848092285563820566284270618341561669205474148106510791181668453701697366428473974423743336903877059564529070195802952772212413877344100894299538522145153610601391283367454317386785977490603306407613655299051161648911877198097283589611114349057993895277328821837045974963937069775890585821700813145502040001908262926377062052752316877213508085159925653009507018452268109496933024937480383671745339079782276016944473475648566476806683355814437240430428016286138963616015181872537686832076513250514172525804938650029695534228141204901974817429917247041576071018931584292895451367032332611640048597361440987201067014342905074235045322562200273601836415174853751508985404307139888771792634692952949542616855635383233463081751610067562612049827450355157952073499617139350051236436591888712861781681344231828410755692990609023872921820396663191934103915174894910772382054355359989286833416302183550964983062032655866583478483700490216517143408598694790116887738820252586407446474495377456426936316112004977064344432750813803159416283722120417919413776593124139675118296806219079903115010624706884416970859882407211499383122974300563055685320310914980557088461191013436445328289745552210159093929147667283418018192891600024336628264015999657876288638710239669271315252551672813284783478217991165515619516024460580639982709989728974194527908920533041133864381618958787916014877240661040656005632542383026079936256171982956142022137743776740902078080528715903824673257295606562334896827616195116908059807362609872812697850814058858753189532470797830376382317461362299942394098216563630161459033815843853334693393048806367790286021437836181526243382280598350854222711447373899803993615501588586880731123851199900907250195434678319233666669738775960753791777597021087758489385688879283994581836616256281915170205223512990098216428839701301075027635328293971778021483378120534581670361262306906752999265992512711360633648583664862663508182369671509783536563096799906239893948261423418231621207527001598151052665591008480866284147253640120898493930646762291793677205240347272528325060179217298199914685133473168849548060697122822755460543947315991693128849826083436440433431467974266338322783791865049719147119755081927393672659111157138741937955930171831089241677229004648229383331566116491317347088720815998531262127203196644635278921072096448502438887296909821296191271783899433623660025733716737379248805293709752639835128457511589733250228018013484366118061449761912353327327561402353620172704661243350725527037584074903228006591765165094526676187881417841722160021741989084626696695781556598771383930457755763755658067149640972703609156812674885499827940858698906244042409413133022340779264267643736875329186371602659617046111254826790308227708410898262588806478084619686483540935090759527412691541047203078499712187131744661620050420717855334458609300307666982083909704782039240643510488649640129136658300924016050081291213114414556594950543614073811022394797688755209970924118713485234610432279070611978760982366874103576970361732349432096817251560744668277966975251939904444309273452695680207017624809640690246481798797028100343425663130784308734908115748529442301525686856030617983881499958441857989783172328497538359071302568938067653406437253339279099333446251346562356910223746725886740154839973966026525474636455216089835581484771409837402876759606530983380106692549974418273933703646823855416884146262792955027583681511061432001265593883168927703428036565726616488410731393011680570846410591952092283985486581824998994854184810352870363980233549946431228134320878851929661675041903072096513152966066315837549796622385173167455191321690704618356975376819067782405207306322732703586729893951973791817094931040439729247510793662131368265313196260861448984066473056789283114171022026280985110349330030978762330753309893367622537999677507755866668519024653587633148386158092243335720902221714746676120392820460924158911933314559541049946319512337153224322251255689192189935042550308748784685023622648963642483369672495393442239235305041314425479331409651769836252142130622293285817892501384409970369458869927173784762398531171796685938297547330875242337674368125219662542043597165475896585888117910177556574692607103417828838991439756754385035617131957144135579184479139190060909450227050562921897927232581358709334302479253880824609729830890650698104768105718434945361471272878491331436522769624585135810399011480886639998889009921110114062617562574599590983080458578005277563611989528053212584939131634577310509969583680597157293910708819266578073063633356413748824101051309918768000641889086084696642997344250212795697623871204746735191775716496277338597571597026618116738746686012461945719140810095853822790191662245166613423731476987615577134863921756250172894940298335266650993399895539681065479637668429248512765278367601937394447682147196608119079268691002092129252027325126372680516047853528069026006264769122451735631619664226422794810785169388756292414427152699860925385537514759997934586480959264487375084575644222541057526908090206020231965328346090981496953902088286629491232901784281505713554277482781531420475536853521295992039391144938568202947338777599462632727329556457214827523891368148712951979748901722480456679220111127597537882292677927576949935566634991443115476938109233017664425376605604146993258339936672273415140442121236097760529130977157429273424573846908158526363225356986659553579815350374489835197981379306032741048296344938496152797230263973330833401294566300854000220802684076969553239493643100655348533881489500259061998020642538910434529440349917929631244843317530175961609186792278304720128267975583868280287843494752121982171681521790175659923819548857705315109299064261633170098062961588933747980986688638913948197105120601584752961286250778730431452662318605897597442108278351217019221844532573048803355370520494520597773369274419667070206596364590590769354531257597502995141820482946169747534282583621856965117206656020920661107298344533695657115842949121866231208895921490875892270826519385496677712654349111868523172033404328250115015421606153560461296409416925402096045632563900375613369230467268432241183873092695225654106338470626136053941983386680995397381879167610411421828400865147370344153457665512211373135704154747182724085473102758690722523623834987639294784055643235188754415566801251526175514694071241727834369007029103092961754995388031076993554282080044773343499506372973697824535743634577732947205001183189618165943408264619071896619753773446399752460562216020480446059192416996719727943820743612355735457769919086259653745232351622350308514853376328349432298093549878325221739546224797816903721234735161873964489126985316699473688783944129555660323340780814220247547545803018733322665737321640325059819909680488936867447774166651163579615970268188276751172165417225044022066525267266015095431588430540620355455116240557328120129983236716979237987782643181367071545022513746421225247748978589452022288527643665100391652199539466392571696032131722433900845767207803411555489014153776602030154150792553855128180757725651502755422417477085360369197016263011036710635391948604306914195248405899009138339343049324044596261146808479760581599265264736541924190685106701500241854129657394096410821815126376053341152470823726928532954966782767818324961092798006381180389392075958187183321334651352003130390619683327351463074030026324439557493869008323960568308383280395834291527525603443673823948169872353051472599814502802461832992541651361896538712222064366120429940478771710814719398122981640944644101520287895007464199545087511960492344007666135554321938808255732202268832600817682810581609992046425613656156260531430607033287466230891902808384140543931974642895303593240294323131136436490851754797311425442692504862577042957582132167569490725758807959050475793110216294245613629232665980661556264610449010220100912218509851621335079447833828817479612392484368412604668697330454700517144671065144373231112218963364087494662648685798282201945127597339501532727847727702034740581053274016764844265598049585902925749648622770634684300581951899077400715169045083813598226593178701359793670175676363064130540855015151238032783420238183532447130922652309009371016720813989545430580789861437717144996984574563574100851120955001468308623952876484270293365638136429868568405022313172662470932055571435230715485347051616737340627697476733413442408990440623647152507109499138405795997043592308630138491585407419744375042833708952478399972729050732639177533026652333540437681810672090400661127022055220808887002353076847313073055242697076702765881552845237025718260526463362753534289733836685843349800823678543060525731853877854560730985643927903499846177002993434449670948067785195755734822321130850363747662038239550243639625421144516883563659454116579523236929424767245207744512373366428094223332231025576341997915927586456787913440317925044194804258288563089117745131926903222187530411798282354841508802608766436435786462834130661629036536400108878143951698826382202197686003608441626289271118369633666050004832189486465250450128236625894287904799387210630937698185751879419969681832007559805775949385463495627263507686244499709192194898036090846827611193842890709416027178323073609500093144843222618580029785846063351322769001542373540890275845606774967781881229120195686987943072446741037979201219842648547230792712998940688155970836668366863180102393829529135359922194886105022282448006224186306136893352710689266704056373160093676697998827954413465195959684607153572720453057392449014851797250303422284986013692125597883370133748627961973189287788312573511814033799150143261465344463738435284885638147569473746311777004858222965308485867364259195606584661107769022453951748402498109205948237360196503767658418434017020321934725133277720051825430463473354266419540397812714682192800632156523168654869087193036877918616559040115124050731338996370024647786032305530966969004496625105992734325372083818555650996457254365694917431725409261773855700925418528225474788007663865891865448481352620229540059794607154500353375138441677946268586152123542781075752726443250448945794052468563511828606511214745843470548140203336242090188609835675588017096259627190836063249674748467919119703782906834286632035657165538188477762218688535665834929940441062290353202935958254384866627935054786906772082612843665957688767660560474366833529325229112327850073519605292912763802214558960565505810201283787616011843858493276543014342244075339711646331812205435414914758294936774409454661020757705080733500417918347825109537187769220896391410968011609064895318861227671175873247260129925129946196485640428429052288480908848009851751252321836056826664632205985328411190900976200236431458754385628199390427494699977641420945431593729176671258028214961203604021558398339464017561987022053725209991779569475006088597772513729124210741542948114267760050617986175164454375556551705679699918655678161680858110221424008477209610939129663113107642476264757164771956062763404258341306926200772665503941577527599569080393564321951193872980195414348611472884166629791297730583906864837425837147668992558961924184503726835993143562426760065172481133043766501087123792670755132317245168006077309832214526259392499529792538525704513160465905800110398935470799841003071033016372722610823659356063660356063878924990275369055366632460403223066745960726227518895839014500840770408143086731777981050121280307879344792401573996294683005553726464192506207915635791686073342852479441138712324778512427172082973175105165321982796983280674315910061281220486537031460067727369277593003882229732328180698001381862571809724086350904568237905674222029862573145930946944013380764376540423192115074807662917751739908062452457808755768135536318723966269068076009291892817001211060782329289589634399782550554680896112257423439384336267013645704001071341433388696894329153774966674702466952912947427209133646323983680586917395018369110847630199036262470354393176323730156975101487605770251113730129907991493322387448903040386271263733339453226318437524939694148160491465089043241979301576477774706190664064271370939278020910572717540412453576275081094079446381340736583166890351963446798908583313998640298889181303530593503055856619853614535854223241152878195370936687253539904716626013082929931063318119080710451939235082010517148618936683017843292132791950363166805523262105701703193175444389967847984013184633600749186422085109989969154109415742103496991485962714088809174133273448178392246494405091617435079867818770629335097927206362130889267185391519066128949495619669679416801775280991271733518473698420521333906926734077376846012849789016008397699881287279305057490731326416893972588935958365219684842394571750021735056522687053164341488674074542818656680136297914483106054360066829186652532612559072396900022713138443172026070094791104327661422412808962846176892589842528288201099215213796066095226675102063918561182403780155324605434377762290967106394854968172920184747294713594651447002732223273016937760847372215519080496242886450785137287423342441670208953017259363765214729298917799970270823322312782257316949035482387231364598843511818091010757873894687732156074862464120096529262931682069252358583123761969116685195858538118485316693492501272367491716053249730891508177320348398333901871091886721181190163191633932735956855438743997320705248926905454311322357263295927377631584059984784887582943262412696064723101017070988037111967813571727487064031790467793273851960634908563374572603890003254953920840893411845773571834050478154082325181510965187315930469606777008861214821909492465228726873493970629618465159413116728208090618216676838855054545270601570378535939973780083517268622510861476166285948216520823582453329679639561399328095137387323921523271853950321116165252735989257548764915440727641208406298740005998208575006686312878652802462720098754614484176754605230023577559694362023711300518658136271540823745252631144095679116971935168357729570408490766858311289892714445348536727703935599814781067598450090981209992618742051120979170184790696805973336642995090861409194027255901220474659635963723046193273279893358725185801419965647213767643147343104633294636127845209396936234535733415031819823044698081025806536219900655315338599510519060658490800455912819647333811624262351310874499907678381504065958432710775990349887194421669114799511739518072059854810937536951698429723281290775046833033828875931935613069960916230240099594756638099796113852942232385580100283364010579743705114712103496103169552637904030916711801074419338515956543654656283640502414428589732395631369584902653242636431187787867580766571543668205922488901986209951523583841165931291816437209226980923145643777345957555225792328409213870894216484824145748278530536621022339077283751833945904557250924224035978937474283815554512835639338298019312024536103354193622994635403269064826617770627159647435531090781320325416123787697374462131602453392092134284417944834608603988564848416168328417182562396674938564651940619231017299209892412348207103048967543430705756296061559716126654973896226376333887996011415038931609985772518177781577033370387856293723851122626270396204099214993993124932870244564027029458212042861895123041038811677924971685029869362913220679783177304454566337033086681558415513694611701610569683239337526586181393281523928468376695970942560013663434166007258516275393351707172664186292376383887988979304684032973566111535877524006434598884208736768386736160393791349613859441326970669843042438510376866891464701701065665764177571498899024501309021937691075953973507413014809801416169938518072118968494041400351774183174776280030614758654166537324693876542843203978710277075299637803862318578187708286154711121142853488691269461522994819773507857403499572666962529367998440359094628289189060628376210501154410461583831602528246254791551723561628994383990273042472879745400193601961768179868598519289358992618453415761508738715818843522961686638812784984974391496553012885593313131494475049866533149407214045176787785336346420168241155297787705381144586008556305503398621017156637926756109807423086498868708721706575269051891213464703977654546823472416430200388934711281855931168813436865790311583698471942061715030557183329011378308018062474405470483062773789999627911072100705849257211472754624837101534919548046562017698642481250857896975858798939463941650988370094856700800914159061664262329840989863606364289862400597160194644184076392005804861304359822011796361525322072704931418135333245336710029604735583261591784918792510726383367853288167798970379688203306139364750650739465253868225394239863139636033745591809258589439629105145957390208388308441317012102111031156577521560406781235714193468256707898119102363506680713418635692028971732276647210158504654611103248011296925934594522405019405536283777287824068057523204381315283731930012136648936605614855260474038550234209533969648525811779413426111080247676572781036520474227369206338431069093207856012765429442647718865918373087419070407477354129243069096918512495621699960581971716637695686507342619551400671272689317345098523547710186084131235240160498476935957204828552447841664072739404907729977570970846651179946816333184841406375825676102405660352180760870931290472338629184075539075546034602708141041055535352734903287754940760931305090457806919674144115746297739283821284298628226290925095488774488183202877495252125400431294414563042776148636336816332297376412749187411673168457185875982704692130231557257629718703327366083692337137782145069977029460007589905136351724270801549554149801391629186929887706634300725356145789030875016029082619426286592222702648810383392861726691667694901496486766422483912326065423795894845618595766709932797671381996699024614949935121126496991310256252937660480392533346836172156131234867383617941487933867729813040924397834118209170598389798606073818821204486650650867973311506166677350197973216984283627058068846634807025192273336238547268652973546921822013356758458841405857010406990741589615485522936048595897216464753712385263408100213370891003527209253117848088360431954033138393564961726043296400936079146480214494201515167866212739425894273279026429205496461226544849939839475206896926580688830255057003144827994111415201019991331095006825198996316255668405192067529030030111122145874646370752988417871385625643834524494461671187876902277116845829267980174950987599878435212087295308826677659438171997468109920336139249546038274383456012554192805613457566871011062711384113318788225749308771768646697163995930147520621935765885976984836426341396341324605617140082173506512478069128814806520196505997037343426232258783505038475051609945525695949242744902597630594914655605791460174131054797326096575845598699024572018804957430641720853468962546006020886296601665775954491796712529287878422328185869959524952798375333495648144516544949156875237301193375092166186864177035600195792265481172199328810258757570799598523240508310205380928157609649989580772621146069152039256271459236499415700174737333103635416858056069625681691330474085371151093673539861235294009379345149523826495901364965948173957133462003869783106128441260197818165261035087353781365945636310901329483948747761755134372533528236426564876250317262559940599108185948660395752641606115659222679493922245837385674597657867656063164459093096594290239518348639785735682610016409855301849398543904951718496523918707389178952133028277586674835283054913673555444326162025815768128360103659101639774433104697493131027096224314374760705621205021580303299360646208766912078018985502865670753848463003107218360313346386304251722799790706885556339113292508806065390755131249079171426158589174489046887049039194207336685198862489111809516933715547714155817891199478506782529986564928380133356971636839000219558973917189632515530722063816294078674405210899001412093910977043088638260748796269213742579426358453572689029416939605652567165143946810930672556160969126113642449256712683794959966903381682749237000998288259128941523147048216561152383524004726543007911688564775729223537658939266739619364875130451260726151830524553216868505701691008915185522317223496067777366765451286506505455571676164423706067335399343909892582223485150503544167839563660442480549183890221844962508925456998042075024791892475141716794889077349574886871322453491046002575678174029084778686798949973037110578023513395489788940989627714851259729426537261592664912699754320060468905437691700079027186048957921724947783066833669269495192590009722948335355153238904052920826833261417625424979429017427388358439955558501827329960286010458941003337119357279282961470983858187187524210584899510884270376919916781826947340425240104165639620754056152164517028950363974713692954710404543560281246720133399926236936742059741773264263899819827165712334486865809523050373089545591459261684396908957635493067740187677291426618704944925233016406296143099854664630408800358411990261869929096921885095119328692625193819741641998475831320401205787621612675649898085456443564187063111026823694597299496444896837402654894601158114979525372798484134707963470637033081738897706609730164950465098880603875638672717552304527723722503792170718534167536031877439034662754547730873369881751235001431191897645368251897038022207552616544474810437393936455349074201177009082304582520277357114263344913196901113022664568241590839910733682038110603567583453591762939251559904684052615060394512466762660094497896382697788260577596222425344419653651000337716487354404250549743682667913837051737017917772232123237912219933227475919036276165443553446845921457575518978970511893241559553170688271759502868360138328618714637485531331898895406343475942501156576215875093175039519041010756456460625393445436860366347001535689854108845683396421791850625252872050021174474696067096397364741440005435224552112870856599485110873826551673319893404299045302633935271936224949796266982794430539050976243835944732494014047475157424200660499189381495587702534800919440076912704989506802665650342497510353780354954381040588886671030419489398247015631610864039242395090172832675330237909320652832683037006889896890700322530652080065160697148605220241655889125923909864217243010463043093757975634595006863404303916833247840819595507124995395584856597711523383481433994406359546538816890430564438097696097470190512894527706516279670930353462016050368796774656388085508763862184356159441258781036841846084432395824463751395668971437332170786482247573751724423458447420323871708139172327270167131535384950093937328833713978064914753252651265877744312478904516511866949080361878445251713378223909811489491252713292583609142448697078961902023887326168093360869239851415930017929438616515627356433747464625366724428083478397159681535786856069682534489309484063601761416279982781785003843932138494159442182681512506589551721436963893530341479084101790642932301768080489388181869098589565362011988900583426525907876107445116732416883521744888075526404682556339211437879691035520834203098739248547680190538184556737183755531418128486171121363998559241667239645741581041274471021658142112681667228717821144603556621393233892696569556665984419812421098938008674624833815137333057415777983472831076708691605775522918146577765265374486580785745854788919222054133088067982275110689847736946842687938704969429367304407024366050536544355060494753036812742534064632240954496898926842116089207392377101681047466262393079300736496713875019297479752692686627136427834014679412927689770150871280877582174938848460149103154782831704150441203042254194734113875739837852481508402399150639068155447957476815526432965336220907496777451539921956088838633119535141968826665794838758692443788667942187016428534523691929300895741228948047133922235493390413728924815321266446560463904245081234018461880460934141253875130035633074236985793736788856210811210439632975505407974721717452147562027221622602058546127383770537610608173810449752574481374402818865686384006771120669612749692735345995300257740557013695051348844247636429823819304438766749899216425461996165574778591004460662707701286425359515891726589559633312408498582079433406768990130271397553311633153351674199283443905081946353483458277382237705464202727223901314489052440053468521037737287993216252729431150818145532015743178156545085463521887716849048295618639751356459232920957723956126313707360104811449137732436694928974623329392951145991770296356962751195334832003055942467511154057717540777564955963448588249438695079133515872710355938326380252632692978796888848426735739478078041176791704607030892577919219574927684435303882284045135330923046858972599087226203521899585648430444560281870263091306996763076953013791735795418717452367919490910531692032043824672578451756717203520838397571915130946144061740895796968739281203060715004684046446222187144158454611079454902027321157496984174947867236425509643934967446846376316738405829215439988640193189247012684521333226192934083531305810665211858256070415203060529632139505655476494198406641769061748871161972343173444958183142455135893386243962393371871308885477904125842938664042628485879679575457934391823920503589826636987442073072305797143417212950270773568397216227465371398581809562634225986072036296524132174014037931786124076137294318677295678492546825550668782603945311902381206721612838272912326383318367788733212879977966118435471929196715251494993852887595270385764077084423365519799417147517082081939492026481230246759021745161901808819910016852611838716153388845064241795532890096536376448734125126393922002559822484788246756863156794108536420504084006565422536973861668066736117788492165189117493084069233158774320973482112739010778429602427290199208240238233404138216418228491086603357159357383706856055378134747017952791805935740660569685148974511118131394850689882309560781102237624694256138877569796092695746599298521915374459514404297608707359468168423946487320352126739983404729793762827327343615765050120003060617188646546361054509083352202975476377047454631364769135518525952419322621334374098952362858041015363938693833415041664159676040642713264931229884487112368004585619834793027387081260980936498837653399439399298733131302642503394393229508134225490891598247560254247476398454503233950180483248525945721253550531129799728959658906982247206515022451251938807805699399213615268482328204594415652713994885200552986321320515147584131736082751639373583107423003541472271077705887382348189357322276956472922998319950736678129408776078205518605000572905329556240625998158966243185698068047576402014481361814582562870828043979052926631074726119828805527574960690572588409816259723545349011543566662614027200904169412772877214715013386271907865653777920869751323678082947957034100732270444117395274551686519504213713556845897185273511548158154869867339765186718829547123897248773062373597736861864432827468872828135209946825153613606488474367921009449959381974931785786642707297550399661368763265659616269704787883012472973296265376777806080218805978075200029548210316857556387729559107653082092981861133434341177307259915211319098019935417358548315957870107074682139171481779265050732795536370577677140426753418491179289488276011112883254881567412060109742568165601147529245638508948623249317185174286068565247051635554422869801948797077371029673018990990246051424695358391393796231747678158635166681671589457965417392178715083387236707967174621186074380570801972501284734920870961628988574597076543995929194963385423784899861089000672109677508424804725750272260982902892453994824803375965554840897543141199447021963793393136884133773063760333200433153894002728535493149862058071876765709736759295629774702101373862984566487159560564666360260586871510178509869733526974582853880700461952339130030279014689096167290880178580368986242892991336097846244832969046760184919803028105971375624168794185022991851579920827906048572803334155334524828371843773100823468421006471166272555500496548912252989623843708254569258257224940937132846095721349880365828067138522331044169197228987269766671597650646147758455282552534261253171436201104164253313913545114729276763445321833062813343177824015320844314364612823375996151775034993421661660483380778462945718049318609566328355604922667669247462320542728682625872224507922069992300980384890645255185897821486292226301653391016527411226514152528936900861932110224533325618251664361791978841768970953605950690783241190005659864599734497265450499638654026911580867484483316293753726609538590247421646495191529502544090621180825333109128834220115933391275509370426988931251081651548001092850662623159386616927729683815315754835757490959194873438385854959054709768167736848589283316796128750034690645552650325553607174722960118071588565206972591557479598997243562381189393891097940690050530986810231131125668586402545336008194543679357679537144165544557715695397930299801486886525060979753582999853416147166451819239032825326284973351487883825673921233211586877873652073949310397569645411182713607947434213182918871120741845295991255561293106580670899586975546473576268417211798224093975242062172005859144022411337966716899457456178378170254767875464857325542825959661045218880491765419948534807659388045700711428977424194722456806306898070196274456618398596050122978812528651525012512543568125593993683279434781606293864538191857765633761104214759422258358516807677391791010981645344114085051033826791697907764255642334598087679062497334638627939453007920512365936161271618725642771026014755631633523737583935732894217446787064914143079337534103514937694428024974506612946464288256521198081984139537950824922601892637348126617768810329165029023501642027362792755627385081861772704614302218979078380814787329752352969260372576652541145333202688431820860856096003122628047856350207799578878880341859053183485081634468833067550816851040572144184950429698443094116193083666729996452604254214921819972491383065511116689011485966359404717624870755156683470088662188808348221920814404374718509380382662028707870125270500110476774471822953578938341223444301581894759689815800739785230766413430544850044858905292240283805611235719564958807250951792666416456030168037380729641306610322682842404932729570541432362224688751446226385036268622778260425378911920215666398273115315451108349563950920680520105918690990725034827355153967579868872948499454207051391740024250148610506240792575910192514255713176417836950846965035201980827806520708440759705950265629983334760479490353241201276912103132200539142272441473617443091415310409217286466790977637069518005601951169414397653458684114083438461683807522290241809252843278609151776046977421314824539387958381397644190405167791029997828695402629083866408622083823764308948295921603335953877227897023173228989845674761075084310539155880263672496494118481101581566589442589442602121242463414253879587184823068360383974848263656947958360288782476117991046738797675800041530580330206682335766429992249708312002696724626126850101753400082909967249155501562019532368601179096173219341303764369104584929236554517970527765232066211037820738931694820172234829347444615551816813191657885617390332156692495072567825699063427474830708411640841121055898249914749203312004364972103157872212567104663496403571970071741104863999675095796031328794259961790726437325672905373264230039674904153762498395478035776613858609060635894115151554192782635975645345659217782753295512190972172041436174288202196915051552490105220318302673695673394822157238283095187185182426466337375527363358319191679273435129316804228144093748330527718636239424528832371053047666250716011252524485037514227928660809992989760117002215640235248593210817072918369259968788463922428532705286512398423022599204458913649215225366614513960399129325432646889182251640938358119378669998681573886016142352100209046585491164743431773898308039519088921953819896633877504146565106318942407224719435784067135744796308413412851159508531682930816709987245145316529631233669487579287627027212334416668087497532723180815300858415278437666091177057522297536354574415927733928529245389831861190714468285453372712772016703283420479112572401772707141410090616190497786123920348459617484904705439969423560550530219450933346015821639317789228358802000335187608055405572449374518764256886225557358605880721038055882423234003741232033431156922301591070291534530623533795335684457451362337724738875513741487381820359435912688878030957438010673319962959285740640770741601552981410262765575139884517235046634353840515032638289507666914999398210205587068569805630345615831714480924051492897489587437254491725497457940288197450377006166031491463023990783273203832783644589834566020432827347462457974899398651104001261265310065770096420185094154136470283092410932381089252763368036743857242223076602726028615143116835932165868368290355738110572535045391795334708903008478080388431766901184645544858346143752847111286022386978949106274352676415994514748780362341327502553950953010134541928806430787423395409329378649442784212005873037002884054437518788521634488825271417252831861911860635022706229612033915314490098474125144455632708734007665663877753741755819515718371012361161340718778732807545926093252172972522736488896354960347482225060550238109678643967284313471069090963051269735258839544355517729704494347841349880051666599781040371323721575524242429822431603631389991563149761541320538662698378669991127987381347428731558828759273996238741043471186921806639706176967014956650318607839395241574370520205484967319082554562869961670686534977339222500166175196218280405355063173512487807757581194465643739598440420503910608163145364372122210702169694424599508273124989505504989841117171422209635951222326565581224182676018112406873230379953470424470869661975426009459782792840729450821094553328157996233452321042487859986516199344348824667374192559590147024657220504212557544292799085965844541813527552472465083652632096090521482235339755290978624998840992133580843144590055311949399255625367828325238239830717858108093655529324654113678373191665401441041457636227395001344447008311099613329006706454160439922236503157984657673254158386601751473673109480829442773175761633109741808134227417928620328284748707540591759509747637338928282797982072617644861474546982909432014055398536937116873948744038617368879767256979389495150633062256776924612789461123363779503797436375723700381019595808789341606925484797906141749041658813400548362370445092064115282888697524614498612110902982371555172207330225370643850900238508522462720504328913328661963459984336389472807909563299237953672189078704879729895824642592708391362708453699972838939424186113600509368853312301086741897852062029549743778684820674019825361086479249687568098689984091992698773832394152747990072954206384444981552117116133496138007217329836902761173780186225336149351061047832603079416523358821698358369179550901580225388627850081954774391836439405421775971437952706773225156022483632675348149008587363241700768733082420339345252885406662672674203119669200355083387571487866846575354134181182284628000766550401341065158566478486833388052854702600043884260124765390330285788508048059681634679375220961382299192532226267569288341136065292746953432104809383207182596038099339027112313697309038800307244268381761200506161349888990931921286554168792917951915760699635721972283148214644626998993356272446536473986288126443943430229002774133978732264896208509647668775465587671925814899882400348365438931613274520846487863527940979565738910069820140750256981402588940171486676991966083690103953927425291437457734329581009852148603658110733529590991616989131588194804378342457089517767991339883421906803186639657372745340533108344333353184330826119891543495799125024324174901417527324649801958629037617322959697634005038929103126416369416853527333492630072809374622148629230866258570221485751845203873443091699160485709486450221029257004122264254296781733998219279963283864905615247261208637556149991875673659688689771253632826900846243096837245827746250195185404823887302182429018360771190211605815315542802560268820556673844452988342045277065195434504414373645435908843882742546280118306931719585490018042479497234416798860053611212315232480881873489451039266865764236346931071834781479915731018701832525566023046288656453170627794460048653938675401833337191148994909869522739909748485059279220489626826557278198658520385045464093932929419554326266309793360247504330130828728677005889334592413102814166949659333410804001865232258496608624530098693473949542318848440260634966645495784344120306755130816217139618780860885218717584407647000071459460866032775920934706605910399413617466252832072975116458074984989205899948823987684865460503212237534493626361131998646142951366866995148847845155427495102501831311377022439012037255643545913273699271180661867511749957643145142066937924325505893416692399919141771288217515514257640841445479269573847219126823742919052949839986231879947058744207014943548659705829969633227374086666038017098436349219525749831689297855099677383967986343314789150185461429899815828615523513525725952646166277579848900675000273253233375576702941419093041463716161618541102754957043069493549979810764510395890927173964630116524708109043869367228669974899018961200428233138174905579106352738212638992601770534106749300839889307348311756780993075342716787069373762471553893518404101957995645365352596461569949229936702888155821029468716906074765204634752853413019334951916427558198132441319127231728768166432984523366642104350519966195885965609953620757037151370717417949560376474528203804914646195825090999755399549721926234794261509537039483974842341400708821574801851330342069268954456528686005592445926014336035528859878633328899070601951213005760024159901160287777674306498133632732824797167402727100962188771066033768196218225817066403766997373352198199014888287393742280680723981214002787082034476714142145269944163528261637393480050968296297808534142276981729253161587300303852901528769512909278466368142436240825716354340278802216661335761728051923927301294679029647527007566398890915906871502924761834559095127350930738476843398636013393190589736714237611805815157813288100118205493583466549365596223934077423659570395937532951476189828627940882088865623153467458717755445230186099997061104066343545320357375605270520002723416644267080715957328836007315191017550868247945655852036075871814948052088994600515749051768937717244414480694094471233919967407688417294124224306005041366339038977148217566364242626030305291323320046405428775319771841173837955369680245817802832708619322678400566713068333344512725481964798458658693789504630994862723015806771691209835316276676878771641685910491269946657615299080041962709586136161955342640686585864852306222485298972271156359769656299600616365250553708935117609116210881738469670285773801224405410258737277930810658564359444493554604605319116635338191678297021939857233367176245351049208381026689838870498650175750549149973219714156258656913433849167579501819769047236249885234746220646341172314260990674899218367930554339622267564812020895609082298485262563676110904068996405181412661435403400542475625967996909698340970499209892111705822271634155435286400522178081055609667891822660154602952541575468327247266336864091531796076599908125122278137669503192480905255346916773125805622601639293270887648490220986672415819871093820823965209863398734955587007990381515827048142807769603924355689490902196327979938405439947195816212779063090818536981903058074645202555275412695733874796062900368107192621313108691440483892973750673341947844244191295383672774023100805380216723862702585191593327815922325803228100506227405763028492347272913634700433834654508956678453284142981969897369275739162904148814659727527760901327288470092059485162487132355225178028848262759988907303504477493586282193093993257772993919884905890494452150055800367402544074251755262678553120477515270428318953108881394444196468988368611708940518868836011078808804155187636213223637161862897530135869338886473371083949231984786509611278220009531138544482999570183855990908518383713974025383338237856564719769840175658887777705845793643371928500531398273485854639902391124186745635432918300949609937257340531743432654854572720664208820498571700818192889555659503537094878132942610422063628524718359545291553663571687853631992389631267464903613966306301906213713870676457494339335734252514792859754428810371759157375368618419892701955966812779912774191385464292821736104643815875727797410005639975185589765825739658980652206811783310368825839103490750018632766959020352071508167064938650350032782678217041012752440082905486795619446435590399000112891022844972274500089007011543277285704538308029434110559342228846079655594270309399397481351906410441773684946385447752356578810701333539797235998985498887244783463069657036960937459417000591271146958084973545346555893249444383590775800430647248994507048926869831334203061432142253879641235500413784482492646327400072987159406914796976152177812138690224548329209637269988186213964950826984047037484125698803689775175191350449373814732754120854579691508669059932880926742877195901200166892817896729842377876438035945759085664362888200349196316677301028890514231768243207024274039464285249370939337370796781696008144942445936406559206399117243642793082303761245369662832464602422302191238325314031462408944677351538567010664148104369879754816957564195424246543492404411106734589303609752731114675312228728612728856506415429836049597259607251967641621309754102046978375299870979114148970752283764499925341048502938087489579233479362992622819422905471437646507382796265586445292012573016403463510500604406297055367218125741151962162821557864427655481545976876484119317578615467783558936365979538022781986701160601295228750439453942483255839945159418178785194579120988279029005190720444320539181172240349092083730907411093913831901054782630992508718943920931019876577226702694671627516750480722234625092463050228841116181577806450239739402121284486535224037127891708279005217757414875543469754587885149510101107484367275962417574439608432122214888785577261724258030582374284902783088688050014623615397731372440892877866135403091366094458713934965431217885897616691839423734935119349267700214592429112384258114623363223518918899125241443458627898805334522137180825284059845584947263346108569255419331866507478103769620045686732070847423423732677123012722615269220791462221230320175357946378442347641534430452381906514512620631059531097401894251549728945819125781325990567377415008780972042571461402304111948530463842200327138856065024365601168799270326867665034355912725622318837334461511435957430674870360517530196589342824344827448253701054370428753338948620716624912818194384699781055089179839940778562073564394511873271115443680228758412646266340273407657853382644378498456022847293633464148662753773579259328007908701131000580463386454629131799007357610497452185569345215549397118113230571619466489835191557958576296740280132904592799398815742441715442915381583659492038723945066988693417901769869049364405870997474212709720425445189854747399563399074745230060709591819721261104033622817061117434507813863090594100935017673562942119140500629862955829627117406805211939246496453796524764905395823983570982796480861948129432251847918273585155063517734450281578013331467877492317498519902741968030316787286890634119315618166249336522080327222576294256911789810053541683055842612405714154543713035802472774746100713905256602278582279108567544424876392148699649154532649418094486957654477984897393764035330651399643251203270650889092718786693786240700019695882547833998889354732801701979866200186882905595006535339760700628464497544060023319685281276845595565734480793068197478051942417447042048793982067825196188820338282350601699481562424410836216335981704564197564894730243504193941955289571497887628823671739575169540686865290386765078563549073255643434668034071807570391228602447590510074583346828481372277242318903708010439294375769848046128037266704729695112760455651004376241718945502310348396938146963927322353012791462296212723605775437832032567048358444089289639423168068568843576578913352400327334905966984104985294486801263326042081065121669211294952380216711075976315288644931771217727384041097008465038328139997407096769990793485226089824281154555300488993833782641675397821630030698771674915671194440816160852830547040006247791835986850504750906460308910082509797190716485881973806799487971660914957988770593143224043685103467696231141881364179409138458552345570490007521842911970751256808432910509825885044487912184936436207947501019493270478135156520826922844844206546855134670736111735677328815944028730172441664191691498313626543590450028025674900828637074890434151793562647771017093080595859958834874161787823504227473350662927230487618132436302520548189187551711462767329315354970440499276378871591309503332379879822808933406015207090659003748754004756481609766273927473726127913047544681166088429536764695271006847298391110290465603878424893806610967221434559644222584182383485660901728467957232508052724143803885959019491161336412862746502975678203394956270810883980172752305326689616348243219469445796049402385226710607734142116668126312059672603858439967527543197170034440228251296087728691235614029052421064115440124122689757580151730234264546864920336301379910674475963805266353503315497448594003420187928355498534915911692971028731963653426087025108735840763963633107011725618440797728321176460642712007582014322683320216597520580060637582799889769970192341449631066256053822923429800876591789712222532900641720788780478671106709677868920456147855465720883173748962749037114103168046926360719192957845939986113468114180187165166590414468012953725488861180931061565424268837879224540810664762096171285501690658872686362185160519670514559028319954337156323314007228715896091941437800283392166971275299838195670489524457244589046594278365315230420095672905915544972324141242706649215503347581533845472434562520814709774814583917365346706575619330895020701824731369027782882422676083143075276557260871231587149463770710566856597274836146353640776342489451785081969640748027634152578450177461995356782071613611584440142596398874251113909888938198668505498070316435645647107259348396567105005438220227917137724600615925485787999494570356471410654778889744176031888527742850548836934208144907230283558641242073357960116689813777747856612444247414272643623948230878954592446930713337176650570630141466237070996746612655113481045740333114876884906355206925213640852669382031572026586857697870235915140326794744412725328997057683782054335155642934276229952822786028206690959647431432184662322307542885332301342631080387004141793642319395080931709231090496608702982274951920990065193829054626755239537110315313730730588114131487037562614893747801694190215206734532599728614509632341579845600121848031424917177453487917481049767448986230510076814393630883226906347032287339522795914705374703315697249744148414900667220447978969091788368629808903023718917366660301362565218819697782407875516927097858797429405213874458284454125668705770297145623280628604097838491190402029599494347978105977113427782058896254375252427639238256246668380028162199019615803709369078964454666243351867259589221856627188748138075232802468350432494887962249838658042817573367175436513338513532372136301872340339446703231495078316935102715195599661559358477370801107363465974794861445429238392747165511479470125282968241712654292572850580245465765018491287338487035226260021177163927797433892484632774408352705923411163068527993871391981462451442283656098232386030039410271229789142599876002662313990489964949466530563348471993976777656350057007298961312668825670356299130218574973595371509825784150405047803248170221831832617937185598999891962000187255183669908264494414858426959568968366918808638251915069637620435186611593047726731530164484867304972776369433886689794461430027469904454516713753316698257140762399992125669661258190951002129609859952849621513824527942441536695193752161645832817753855248867706194974666218207092100615910274573241218306353319759125624339141229822184586970886542404957343616886821787947270040377705836694154552215625043565586184478669198331777419252427762582841596676351587098744520569276364553233149023329697784845711974695992188284530383883205769581876258258953306000817806419888690283850214937928987649213319835222755718543195076819308034241654887093651321552001642433215014449259831959769593984044120843954117018759292693206814535984387908099517352880212128977014629891981018353040532690346077191729335252127331116241918388601603907093162948919876360601542707815325809054896297829745288428107038960315539380196255408336629414341212549773220926926663576760298656785782873317063535690288593312040865646953444453591954857292067169265339845386279967532668692924914023784571880647382529734847652769243323941615468151829444286325602045515831732776108130316615468484582434242991826561936973551836372315502896364793871719161421604438225512204306625097029774925602563170709902972561173771617007334932985069662626444616020434235439011065469916311183617179595712434971027381810034097776253888374016685730992055988226378783471861953620461884203534700786708393269475961407576304662816160335668524748554014489710708784612902802151615020886343084039239613791780771685645632231475502149443008307714208166458667422816007084510935420131310229719901131278640717809825995721984140069841752081009099783571489731331336731728712827626879770814415854560261422700033646634020462041620948394134730943483866228598665861091256695997251475621311993656484557519364460501150241931700049837511286982249578242911744202978425723113127449037642392014254161431177120854038957438064858140999625234796138617642642238597182175272183620212174117451220114057945520090175532202658549970071466335971303023827835369321394571554713916266386518559605521167287852353535461345046402478937128045020142637960173382011978822965758389677317901400444379979987676642655537168317453828651269260908145830871522420325471297267555132193868920243743425843224330199910328525922975097380522087556348040964483281737743056676413335430685368006688819751549602426592681874685697216400392696304486963437072748986261072839884407780671731772619187056568438036499904782525856237189107044194294879798662000144311307860740496718765412355509754636696398280280330404637770859032697843493431618746681972214424465540409124991559728175496449570744361749358518988793160274673425070204208702700673767991140430098618014318549839087289993011251992322304572356916910255822213945999735807265904552820292234893871521615708917876883464533404996345400285680939857369597142959637199476793097796465503639143066376692525137246200839916858959812397157156173271068509197060897488807958473970621719058515301416103909635876107682036644151512563928702675055505023914531375429699956412400493856022237192672466646587577227172689852054370173556652614564424200691626911934603344540148280819590142866978761616930761854419929809113460241608944968213140706522848241874820439024501177673215921693514492620608679120313086083851620316422428293510106142224301838284941559101661901464788788015861180269404871823139986192067895598156625793499332732670960076464351466882453619095233831108406345220545920971413346929323696943044248853335491481680054420651760593143464470810715208239192761262746715216840053070155119285647804847822281699610651668310812070048992411243511915162965263124452017361724678280180088956912241315414230552702738802833525871285172669113088861109925409205359792203399435975508103434677130489402145409875482325952816811704303511134317583247426505152600407371228127667067529911313716349268718459421693486369901358345309315552972051362211222496460409736417755813882826688356416012986725478352843370919853516497928481730085709426480023232799604688497585710626893058474847176723395374649887029387666725944319621435827627255973991349200697391593201472712052428440998772315168605649688802848513775832421625521372526898818637757423164359480255180396527762834751007503728636299141133086448249186122949486310318735713245916506620854163681655544983908561687048795200582228423442524039959234326329333803479046438267954418434550996005918206987339580927997801180191848946981915096046520857658392996155540107416156556025408819804830984868611011793964314954965874870881873321645685398929350266927168890548763948200579698764254046857403215691605688169079023454773358628538777371216951900050468867788915880665262958049589080896362984458488171016631925188133286445946329533308642835516245435376689671289710819939136329319960752646829853011855371788084637638518024626463990245127658736492830658008333526716240813626653642260410613549963530333291927076839433873907438092552549040132780294116029227935742794227350868728388117719826852018300159828059087474373954014561682895673054044623091077110393572628744875675495773055031784296772620504099138329641723022117963177586686760982275763605122013842095875762672446655326415556113493695154735800155562015572742082843830312191309587752631661582504301145308056924840596162328345853475183948135370317746300021909040931603619007190987709702723266795016967302012613817749832829282983860901597546954673284692893279371727118350970534294619579604222660830079147062253113575397405236399781183676077490819878157741799460839759139136236855185157285517318298649471100986633356746867881929698919103934203944719202029185016674889891763402737934752251610049011690020202872053749697873189194490394385207146291597766954688845674203680180692987959688852437262621602231818392441747387675105430103929792167372748815368639264317421290787751916298105860359748851488108524807631607154651917366995512276487958848407701443597167186674498403126784502162802423842246238744185042944359758381906072956838422881515948837857215476689911291139812813973728912670101233635897507968271664198625298797631568781258735219958680414943615476016080052795038007427941243576026213026652534515457133724835746418211564746316811169067947137740967514534111208610907622126984355229745820499632776690505343975855756185496996246340501447357897204796204138311790909294308917414269024726535649953837178239268668946539078680495256342006656648819417488977972205013462550569991914926118105734528011206151719374564656330319881830180107191289218382871950512493705196511103562445768459911946549503989805519241137154145471254076552124230570320417111366328168709231921072985294112245688591207188648328655480099102352294018104287336513083946028163852374488994766457533616663154205857757256908056747440970788830777170425453853857643098966153174527847389378783010427807179943003499521700489350792994580000986199196723700791113704259141178990185381598879941467544734928664271813906172289599838414157677120323879732910920845864414006140236328287915116618223979561367767931332117733188474049141733320572333042538230328032568081304141233385947542656970519186721333501329398172754091764384253377962253312755099214086786287798740967025559767469257951141126888232644400641680870146615042987170793998158917433520394733972343947237146344435034207905870065617442448961244464353748374343632905206522651064345139458240735321507215974371859931623241760257465815843118409404925819929394312152543785769925794161815741684720073339815355491764312063929286092773290208173456037977663558923315642095947390693577383841965900500786105875196036285354799125913778720328419847617669877540773385015642539767744663407188405845165427916242976077328211755153946043054728366795084839957676481950717209371397123295427205920264315405136901786310387229592623735115273426629308547256672128393688663560713475613159303410200784976104427065313534087315729945897309629813177298090051044297739110163596193865620275681678916338961568083080442509706352722919789425417562463116496360878036655902287689783627117024520643243089951602863547810082889647375777667092861955802157651397483559031465928862340774759585157143415114305232148010101419280809761157840038511208549293749717194644916910162500167252184480078484927246827257539029777156482729907740612708061210035588325374810791300047760261887452907464723221074712965123703268374204756163832756336250849924033654586573420854857766724618802992069673476790770306405485369899047147397832247596024452300883149658043532009518714050552342674222750270810490657260430847950169999216804193783887686391437962110723866337467710318093706100262969403779809966502663725554129997542348858921956395851981106965518556322886020291324748161112318246877050290658658180040141800025460231740576918372585877840733314460238240194072337090571488133413531667741777254404529483059631238356537775542659051996922190160628356512078401878871592336332790883614493254922080413669555692067611789140763776673950184362043279491231360511339666703453933714596571162772785976837326127375497719145135381582663501022844045350251453230219671675611273367259994423329361428826989301012374053820827291094232201314274731538077061361955707161192261090662060068937114244631226641880553593078468711046696482267889945101614506795137993864159950009689458528820342500799896627815132261026752211817837142329301690515085511052692504276637741693269253997291280483710073890406453759812443391287026008684327989324448030053226075653115704786054585036021272121244545979979087125611377759915153585837877938741144157035299203592623341198319450290804905995375366724025859407372178437365806760577003392134938100948562028460567752877341519540286657741073088692330850439183534760683161010282850092609234798111342762257492913864850039141541849617010105205910018658517266776185668313274826993163652875265989831510444924578559953629251331876709577350548316944093753151309840740179076840621133015078243788158751736219283268301450553079776918251923876736343380712024199372612860307301755190400193196534019056442937265155210129004653249734397077288112661447987048348220849305522194915885171347767819679601468752262376778126765063497611069670242352331856411785078547112878223214607562314044087576665314412626767247491066208163449827047260637860995962415845482077461254543077522083586809874364606737622743497054310405044822539350444499291180764075605081612692179544120778935113615897455154972412250959311926192345131314136550174759388357448738050141683455256501860222959563984242448922744031066764232011483642748173268299701660015928930804469491230061930385549334747373118533084989414072834098821861769832783942644797141979054003635938739368784950640383020736508112788639770446676904028611638568673689961796141362475946397712484624681361196353171709793120196971074938616481823382075343089248989479012205736253084855434616656267107533743494325050778307092430628231712154719178866163252481132698458824072378474841713498947801419372854702561612271834182139345258628410487861824616832811145478234164142851118497095163947695535811287478086860004449835920422546971034523402213618593530293421128926697191591065063977254461565097189067514058197685695749285552733807100200235455456690053657415915808855162301616711198780868163696543251625880054831733268494902012031115383958152453945982951916190780223141655059711697156690321368592319480888991321212464404113607598010617209018549696004569079108480900786068787684405881699952366853415090965909913171983247030533906567446605340918631346545845790364523498200798169860547940473011939647695736355679194951673700022072716674869972750929868791312458699063081655679367027379643098968703146351063522024723077155020687415715393918550753069097998558690587083739254006508563358416193873456969837604635166851777589218094647253660849965238108190973116564910265550792670927420639263456682067524103346808771586772040791803866338155808130633018988017904334711911152672405159567122726447577766851280058614433490664390410950681370345405688609206036214253568996616734720077942767850134943876093818670452974191137081012982595633536723711840189702423046677081824169275296914563583282199234418783385966133081544746935760541447715733331386175327777267672466676663700857568967185093766899872304338668166618553591412941558728302519261149288468792699165742226755053503333798679421809812844424539213669347558638275652536187737511473714892175153826097505745009966623568760621363119080719670270987085377636791991682107676466607555869539452498649591205851910372075657991833788080072978687665253550042233393849906358150040655077628168795238334676769780916969498500527759874794611578644536865370207195274330880734217811020685930899629904741022770956101156724440535858310898550492891606379186459150569271617620350252439685962322083234151201897071736403525990035421354599227403319248920386463109658228270007799046487516383821189743088318446582682624179995976314567622379267831301955116417064760384737619570461795048910576928396614658260664271946432194160462510439186037963923683250624026899678325590297711017670277912245559168588958722175708457293520212458898643913849670772911763876111549111076257263937886739993395275419270215586561679136082725657996472415438041987924572354135796633745098586384834469499921884161930828928418818324513892839696596841021903067243290313183396338085231406809171250898205248280359233088041882773911013703080246221282003167744006160149950788934059589236713931341482827788947153618088913317213647436585295918751073587936909750914605848296205311793040158766076723340248728692208384799551086132689754808746413254840314773915330076386297554027124664560098102858661019419332179895896713797232036495815256042839218549726159951010558000385468782298348398384424934916132061584598818508949517369579566920158100151924260089757767997350132103625354739553079139202503302620410158315312862697253251581894954146843993647559890387156478558071686204990569631736857750926956166834948967659693974367996149694636701467068743474752804397020085917127974947196765464771878475399912279591856646551821100859497898446660254064673765951859923047700572462137467626430644527337610902816382877156659857410056937102913393516372431664671048454430149016127638938939393126015643997348688800617582061485625067154598118001235569031644620773870046152306842237840933511490815211977178578771025445261558833255669350075717867245935962679259095547682261916355519356566338956710876407259513476592213243137405122816161508963683837861172452299087221181998103967803425454429865460528687886567997851034095668716621807088075740327325899308986418674661352556784916217478359479212869375903904452964962525704309289233942794159919680896068006521903267663838352043406701530839814175715858762150582178906058565166402129094240295218720600698986723278737484841919740099763928527054842223077738735966991947437379548773636598205028737692669108720164697376790169855500679156724136104750518060665189358350441833642987901330068977102529617844210071435041939716078232288702266113281137196042332279929384878992522372718380382658222560470052320399209470892564423533302085971725842846220043864920984118064811364919853088048301419313529822329730654810699253992951782217887706653982915101801049914759724677416653743067741155496288193006654796184468909679787515923898644312068914170416566584888439341185430724706748004346220472450851105526988784001998244518216883763894066383888377944739362469071196611218309702265864995127681045805703229663457356254809149002623434093446154107158086815532874442959212550494982002056737334319250389201731474453371415142168529946237844841449165628160207206718390836604741273602731514121630315175271752282358029286630761743110516926061200079383395413523440545588883565330121761417837172831448968446377877965943332991153596916877827237153940235986048067737206008980757501704355285826452912077159175710555868586743050506092731234548901953047943917189509010500085766799193863669953152377619713460544521370668970301679108785297049581190222674681394140197410719803809636155629208440874240683507402355580284265168852104295567842764622070525526466763584391556303357639783319934639419995903244466014047123589905980625829806208523251438627292528596810921512205564993525141377239350117546474684664302595883287249506342946583035471361077616267471683586766123198079421302781321409381186258670226666613332277959975092407439741565481547534921339605403697794919563104014185087220202157149346473028071189556296798446599527307238829221548708927581491220262263579682563849437698056204430727359188093197063902620293956614585799796455406780285133788545491166574263849658975061137683231482988919130472449399648382091717961933800998730017942509369247585972145592157478908450943201530719424646914377288518814834959009682991717778314771792940762917226747064074637594271005369676158834208036776462697062747107568687023495323301982111196117397413833051995971737487057925948867309053328234430549124735692039145659903534773252481290652799021479434243095516582926324931746448513104577751733886932099992272985163765446759248202596496956743250337797547583867085049971516919865502270706578987692729696110711277030508175390940138546568516808077199014982721119060303227454565025935707826771115225587897277263911603038538432755109058050548596624690908598861718217255256905777682884775886174771589135743707420852259675023978438759714143365350755299877851813406572397278885656529145283728553751725267602179438456616166129281557473639586590391593773640557985762691744289541650600141640667756068284871043263007760682361661293289049112963098118801924693354620285640841851249197589604198891436814175784624551725554461579295192711530759548635589992592419497693589343277109648001380906217867124022210921648735182193686984084383727371451320763617335338785036020806521247451384202201691172066569792593491210925743682999711788805087059694283221928791708013068705529024045253055269453503854348576270150836122754445107125935335439100552136629768171042767946390913591140918711663992412458995089272789962087804973442970398584490252928413174615066464673662447591351947126607421215417483990170482584727210255305275405864810075880938693298084223934431885404552828837106497630971678171469467569687228800593426226638843180171027382434469527535872585308113923162874379281948113648615580219773827925034091277746695242303544483067010169770285920874802587132932128462800480308723131303903395798427664478171823691858142344461301720829074948727343942325972940158361814725289080021082019035800371754073268995348509077558169447533074049537288919081902386367455432050550342664862072738417377901416835765125708733555762361658524096844105879278274486636064437773605644930238735347651478336964433834355040648454470095956513600076016612658441842336010728177868080712061299513540049472657006077146141148483683535802087175126342179123990791129304575175576201252655684779960781380834395403159777108701576659973259387936030582011896185301610628149168707618060320834482231344381413190211411193550269055377033765249661336561301623281292814358301933749350051569436733950728256633334806883397700049660029784100359152431277543353185077957054994531449098795779033389046584876754969012917825824061960354200238906715182033102182470677383420485808723082284360068456180520260747919593352064383249695933757109008673121516848458706350899992641420671780272159337373545530218590686257627898614791082532931740061371417145447849420639076270903520622535367266558410614037544069404591996976201713413284256819877712904874014568424582547216132603195557528343613175868153335300177730456457962294496754384712500414123245298907038745274547888158471987393389758646572769129007965897446935299309647695701130521007599837406381686392363664811617626700629772363885454192647639289757316524024895819822228123132710284722045439392385793521756976732773937550536874396404844970554774136356317834046316048916041735416478549341074604484445497869020789782078747232130522062594816708625834477563558319622625096013550473923163072066069800953253644329197478309512960945135785129497578452615389857245767826356156985220471233861552821121696558371827513938588844616029847718714403405634602169695610731666223120545734614842822693359553238838912960993702880971352946824897607938316651952306784052323953419099271310151907287454372026568879920579202321188941217627371642626143329124856791393097136720462446264397271458227111785375890819428329813690769121396428195685353196117307151611416959669629008402623864624965507671156405301327681957738837374956982113819922838766019879026942840589497371840882435025753862101301397255839091098782384174643597873771959705829888460687961916249414624529117687585549172399049388691681423196083953745304798781278501965008323736640667882074581204665507302913567403608875552725637696922155468739146082937501450963000005739575933283620062199079626093972611057666646492497253087911838316710260003633862814468559654280343477734805448389630369224480036608369579560087763621587996136334288190515505724650656587761714759065165194293045188058920869642589916323866207015800471240944086089490205180033600314232380957865563955404821721790952287897985786632339535731713230678908329001099527985702535470793645247320746153593419139230317200764191230838017405209168164438706348139416459864113555240365956051553125998742285816358159273395587726219650451844189754420762666750940958791581085316121112800451879990817155817797698084879184919581220609614290933373374856446226493703671035604027235751215742235817596748940210836137859036168790517271583348754168762192703646588292628152254233046242677473801919304669351557583696649849286143837582256571697160450645644483436197104020763221136899247994887984897705279180300782798834032539233885580794237029711071860877232241772136282572636962292860130543152046601114085792233123625787151223346249253257275521902626392715014939959509781044085106286960952267076479786707150249525352824776975044434272853098568190876552413370527682887982361252484894095485097184660367747008284449481640722515391207892673810680336562422832400350550035011584454615131590351063889856957238739682204853603675413322709225815005041097685931369953504944723521454671116277879607570148082076490059474279762338650796816126218271533367447702060182858218594890801471704521230821987364525191301808731133309546795289659096456136317233390597421264418425952658374857003018760261532244243298895755587869906821232526603179291411714560164105212207267817151649964783969506086886577907073975271496376697403858944603452331826780801429296451345599238378871988889043164699377292188494334943677825223108667913485939248452471410396026799843429900964563686859555514482015781537673917466830421988261705152470922345356115448648890023400545958951149505633846183195775667712041667929092433177738603873198953216223589172523554199298095104565646593218144521832122007153993073142197455473824878224527937107566870574748984410837072306466053168717443570905936998615753561470703523167808211597816044766834514594659022149638487439528352818708673863125697424646592412515744767062628040943967577799106219507947613537627136579173765510068413422640081705260607342151979459183500562432058387228360503816428300230539937810558992685560938701088566754091226224926067430292892612735859777220975896910276118312671336162892069248740585749197294511957596538125846494539671679074954206626947168040105366862038882301768401135128070478651748472970421709858004459894812346251379189122862463520511580090288126746952200543936121665783668074727030784417541275649244677422268788757241257795869592838896585945142895898712813459796308615334113203656736735503112568616362847684178003745007832554284762661612730431891675158762274890802106242895051669508808045589187227564694212576452911174288835636718982057217869755415793690184443760095621209181342813303887124933562225099106344188921175663615950105920216759385270069147789845717335495168629684012265900576183138240077935108112506184480560388839718315102633641043017852152569244562855973068832435561868397551568559808185673400898303157594676974551647644372429633719444352590972355970993273405789620278651268162251876523568031713573521836013578006240860743922719259079186992386778760584714923480596415613207785495767712868487506746557085465017863429685171551846794325735502409567002583088370413822370190050858468357288949010577940364425079186829126172675155364240637393911334741986203813125742969320110434576515755090854744708173489000545298583220579910395472139825635761025298951729937127788870130077942525269003579900305911057536734366210553729862831307018989072351967624102139152944135158971372438839596971249823039726261301361644134275805658189386143395161372045510049674455713869280383747027688820932798114583188527585112795134595942818464828467945172859827883603072592781317950234195142888117351313388469581741522633690579795762088145102175821260103809186441225745436669726594008290080469898747615709037084481854723038987748652548056013269591764702924364831855503800440964413100157700983519240477608530262088951229959426274276009666557659901291443185361981606706831354729825134571492396473068122625936775088933396901923870564081571230082629124185957145187292290036720748442210968813649699714356594052547812026268174038043203434484282837041199640786219266751915896089538607538110818689040017944637683275748571791663162114870456270433028782230331172824170622556159947589344110474491415627244516195755191584950828837495510822056488584512125476396941504056087761746530839108824853628017214826738717427627172216485640884179072689986855598646005809457027774004523639697851546820572987861685004327249606568570236566352488444651555201010528268405183757261006907666801426413555429589694938029532481580162031050517734908448437531081433614908191267410752668458391150597864090347166649630892303739884861042540961271925403119415191770013024285760852872169310704527051769247186914132529195438867937951310252967657969057457901652171192735522869547954023042437149371842936703366776398495242882031867853748902869310900022699357091707490732665112271939930430410318920967940372206649994310845948257058305929442490386437844643848020582426390955648533325798678105057997991179797812077510601842146597820539741936798558413926099996513234626628096940521697499812783434032335167971752275952599553032758717957405473515913602977573199083566914455631458972415916110257054129086517512399921081525922433849464723198542746119929252654321913911555155765701451454789636579128798536293905766700278006450671599049649972027440528524725736560003056616289838077689974114300529117524416315626111634538005048367065894213596923822636453440092367335082853430026278405842650723353508861064885562818969766415778032389231032690071280891288294570488511982105898471874600766752881080682113537580992087065710033196141122363072172931389009595080175697757201181349262996661173810421796022817304505138209459008586330571276714465800378275523446252707969902743226300544828640079280365092989871280372120526318094854803135132021421246177569367719139883926910997913563950552070902589721900546517302236597655076066003775483044420157882126094991164510067468637266240181504391588898152159442055585087245092517473769359542434904810137750768659157613265624971272246749046799677837356614777993608508125440828070410651514897833652583296159764516975283570491330222696195093544010184616417626272413577621828889888681697987313979119906460590948885152020638381875387260833379671049583552112907669398661500155372452909346643726618221141151568531874360996858250960492193005544239422085723695840706251061199791135745320648317938847812275239686065378156731766891022475650710098692662436850213726494206810183870060479986651148740702420011115178839492864839687855439027173621809537815073275122128743834027132547623273187131586506802696802663927288895191103929353109076085634722687419817578587072337727228412570892936297077338238054316657624675840024536527643709687351720933090170827146237726739974468674750218818424183017522767117444443060964368865802103569738997531017292966662097894235265307779871951152465103253640538900156224636912197661484643241258020019617440757508553283493709111787566652427794058480637897733370411892047940564348002005444817546745207704069615132021407787590982919907681631631021974365334857092038194127047982036672913032747460628681357209815863566325714385167522107463357191857096811815488689236412610411084839235201016443892991099918369010092902003856356209587190839866390520895313977304506170057560167573512964157637168025943939999689463033905720870308158390737517200255464907056006587545677284838448067346972167791126687584483474695604280674731953363048954715062288504963649314562861580023256155432150376936140384742357668734994719751134473020599029947302237098639633406047638302265233526786650582243318274363311643808895675122312164235596730228815742239907878966695340372556027335406305145212840892947406107557030086737234414745705249283599323547354833401480653873184270391063579898896972808615122662267912616984429628116617601165243858183751224467715914310981330156647931590929857844222231829574213892393963567698442596733504806917782918146513703428962888433535804480702618868069841302723102773775503214129402799121032993673625838741498666045458897080019878178175990344453664537151244224032424998301623275576824036189582064830904293903705673234521448860696198465114590742850915500520524602840472573943612824727860059558124753286511186114038303730139367149433738189019323621377643008854510556896551156267541018168736609512198607588421444469915108788005789152729221354008665443657300755559680922800404409998144389927420369807237980543766469647463676531548530603858797412525111186608177082531426200719592017319027769864941211643505600691940580817080550101088077653413312865547087523942839699108370351645935761900800713370512835263207792489513986978765296686607554676713943797300679995594636118827664876422910431450009580815062628028923033694525147801843767944352601603549662270281262103833119541816394453926597380684903676847505212150458514972126293677959031456958628434976590224767904629139072823148206516737205244592546720062352851653870991477644640108310383706403895074005007582209190450311199298917825482983590989117331006868190895961216742405806257127893338768268279478090211863794036428564836757246551551283818302895109799098434260225605210870723299860962737322384747330049695609396684018198343682603833190574251167852210281481655006856112419342068168483611645515783140191893446003880443940320391827882200966112097714693272457811416267691650856901884594318813222449427955737507398008824917299039255661685530811437054806718050919692916079545569725184864768330045042813944110919948426014574608251995303221430687481728550900423583086849239060340098638343684064172116479770485283556399688215730806368013631126165482577275927187431915293936779514948314542351977099101410156812292437109897747193230971958422750513440451633815134967970004492930173541652750091493244895009471714103744150928331110081302831900101539086690969633741709171619287615583262652449071511841582418272076619498884135178864719640661295277538772344271213057348037565441555588519515117641458079888723827062416392482251787355843394715355144302325202006958487930284361858826143021465524753216557111063723177730455354278737421678449228590943053639607063366068189954486662722248229572502681922904449081783678131226042244948995892862935088919665085309415344366238649077401153464576968393266155253068379567584303824132979109997029851633111142517789041655182954455049493416125061548504209411971616610263171047188020415257658718803771532291365389250169905099553631508410343034232856139480765459750017182531355252198556195609687613818489237559686220282165226589549013523961718912288494429947496239242464124130757137673601381231070041958986785982721336200622661928666800638533009658588843044458109104703204030091189043061951386068212301885936475068109851873730938260397903470718648989390047011275192972990892051887372071366603367416231899233760713466551903626295326553386117979975754584188825471443478929502246662617636581125128569373182261062198573907909026040068550239793715809125339406045315423883827968512469692742933758580082420067661829913152555642040787411900394078230769412494061657136485986296402409115099513508936562032602464649162367559348949626825562847404202355862189498648906500060851769504707769413768819992676014179889056409765689403210471188181048102356272321292260194724275410344634995667469252296588589256286203990953964296837693978907422127440763182287549736116391572249632565641151127843181989088679901954498821445393682543321173439667766156670014809254239411572680475649641756369694650902404924439063920211047528404761794852390138357303460963311312405102401962652257818457203813553942397888773257170240231912131442197074326461570874813430936274783349587080649133379104846593355889047783828931990956308065257328223138604754302041186762269901173645537069267861143720478592997529941887390738990813693062485885478904483206093044243538357470851655220870501153385358870955198167937670844614216628422357734575885534346621848765931939563755103776328375086995735406309791878421986782611844680808270837297548231137999263990666895957259087219504372150792146773668587559597919915600575461402819471660169445153060182047454778601934208829454997893436433611009142728736058905240193789942171566204157999708674206658550585783571392826328213505780016303980875754486491662312994981706799423474144599973895579785548117439868717519180224544637310927852285514541110355878773181306749778545800023876408850204165129719812116906134331549677720247913250231407894793023961127854813284543686234543931865658468353842962261975998982858394422109926482948729379354240083478285612092113770497954865264451684201733228046002156150202404021389355973176876141035392281256683236365240961385413374537877176903162427859170006749589069093068183052032925507244685956723500187118813343322939742249646432356012233068701041641542144537059963682948787364665756586397975149950408149534212300849501200881823849778137406088635184127697186883776728035650769649847687538258969624766989100029408615098275915783635177274826629328434187129692458191530789545396635064984101049397408762381075372568516187197390911727074247539353648938231242620962220762677671837832437625640377932770017474564126169119614629232142559676872416475886122477307914782723879596379924487939446273654662813558136550806267334762397819251565564845199375595789313814934025156449549171221715808503055899870287238807904197844156664539298521754980439677768240768610271788519268181632232940092165058310836725523860522907629465128168254008138464848622040172543258082205261613930489783349330955785307966649906938803461218768388733471087838721674193956784338268867077542385583087197404731184443940660627830860624919724483244987524645974159735012799340906967267779122795145176345619723603578746590494474072534364902921995456163758127846874766025224304104772214324054711152494387284543093126525858130719411296567940026805365663192983113548836898236187422160155712558862396220324910481686361386173949183260656623125210416340161476362711190700509593762184996787681350054872878007404014031324216137947065317429739483885198268802011878701174530053954245305974982599424277502492931683256008621186154217698607362769920152573336320526107744053585198370965666789161604818668623030664392310863532698449910546626213665675478828542796145937992947288964145392020928714278684309419483964948388519135786666475515416636203212020551980930874085900960054880642939548711155043863274134623784933516167614741417453370127487005608467225990130682244770447051644282255122651716429458880884407874313451147141035139074779366833948597721300375861594046259393331204387325242518854256362928754438874521561787630290283199476721209718113557613605138015190005662276054983698936810091540789179553841612786261976564058194269867389535777065615542239883670092346411293594442376546998184024584426587932046783738270471468002203159987406497742953178716794399765621097269265221774892888166035792806738089744904919274941007863267973743953970366316876381314528864757598033400203538030316377498790550173944745289755872860557290276708443981532592055565558491031514479808970506414271219478435626319272458599501263295705171312299317572538178206748708006076941566513042161112217793631495316972000128913991335427960556969473174680050568793180477682409221271963593832767149166861961348910063980389308168939337535616919660092488745601281543318738155773319443584222459693468662880163347178243411559792542723333179714852237334860078580010458248066414277054085409759152312764235664488321936677014589084395899200276494041689116448221688196427571469246482934395651210244870994802261411955691506599339478988024492146564691764551765358070760692161222323282221178948820948831012164974968575926586753047489100863878592176168855930248330236298478727674928760731284960856161696633310931944751945062988030797265222025285005726362612767441966240548776461441438629881596521360518698874448652386028271678810912108724128202155849022729624079683661234499945125762951686341210455251905760524591543035447409267985998688546173710138213958803820335800736437169680999312301312283347705206658402234111671901364307602881167784284717206920413756473230037763266259656308493721288934341588411887343231368578931096627781341045253409443906776481793331979035503049871422929116632415854925150212425491377747165114594498751758817620062463214659982296768744009312388481079245208423117401651116503024946299939514929941086730908981430227172984060332746972443387671046549008215229966738136549606041465588028993686843978577021834663220616495931741909523788243319559501240418126897577506387762750335127645496099610515378338144199160952564796313955897009236313373083250029839471745558188976107378587419147286858665397029252151224827678751244434738060116391280093576774589756253698722941685751410624982031025200134129171643078391344701494341212928949077216046457685252364041898015293052681472288896798650290363549069584439683961723419366234002175452823108385425553053845421697202272357952500395226646143301763010885877142453894946597430857102721250165329537686840976274791998755556736199701720309340515766800985878914603854864977124272944197315030358714888219781725717585211399929359762895718418292617739388567497022393957552041477615961390947909373463139971391448609038567111248240666302577571143224182616353904467907201753311407581183984136785295526557095680776707212285605070720059475561775016504818600530556599478592388210061136750411889107148783600751491970411319308747934951294069820930756467810401256132062618904986141428481638544389544529815034339640749013903151186827283644666937447578685029718175221642036865601422515872587441884192888815134941458849585829191379224979732883215870818107495077137851365702126847463432325051736188513872250151458473805508526405638414046087577790301820079222230561932041444658649396953843219827431617308982571811957290575112982382072975160746144758349411042208408177644278794369237617479041577176237247344260296743865115467088129633571886198628380017116868071698013283078133082000383581209016826181158186585338735824026186847667383943447620139036162227094445285063438986838919303399883915536805570645391735589829828787417378310271236018268242875992509918175828655265968064111951763336725249536412181090152928998221582609812733353934809312833617380810433687986331451963787649007473951836891521985406812301222002393732327032441940092290001398091204474993595045889646319309433960959184439552573912897575480451718606002005931439613513569094277906072107335498620475273073802059476178027858180414110635916622802507643737109149190978041797366698516190710557132013287849623429859896765808068638562676202245728402401874764282907280347663101825023717308648520690736271832092149658410154674450840451545544975191248952896988842494070451554840873456566577748191968249150072297400822713002457329697700805114650905033930886660205142568398252133033095711833169264115567854578469862559860029929680951166152290343782832096576228895923581521069902010173452397900323553883549772584588029504246894697390304496181390482442521086186254559139712606255594529967842101013607177055921450717889834485933512747753366101101822803243386299325046769590322846452442426480618728644395346919730877480203049787606057593721657582544706459994438473501133373839986250285677233465062600127872318602865252880006931386330719448315490304403209307216034498914458646321784371097957364872995555270607151739965354666031846787249094034017705760299295926771247786626916953747204539163212236594941725358580911321868666860238232471145956921185821872116182349739887103680671519944554096427732391088178942302045133014785032582307224516882425725811984867057159334593966688392589056323506716780093460195589889910744765913945144022413521187636271092188159788554541625637924563869722764419150527862815295764076767753726845918900407337912904308266046589997945303737600705696382772029360247037338483692160393638407102808662356193966916116663910404747367772569302362134533076435656445336057344221717016237574568097929233502166535134696016927315881753797086511346427590389409270298746275437985634396038685632122869648765928279245823548806052329938908777113527213839488812585393747202965484157342649973349059641909475227280863055308489786049162555747997450151037442886935000172015332163004865914653446120871621895986629389258712751167506626738190401569045400769733946979616029927339372204495035818849970177121386512279481507368187264992977864140569558928852853521453877811355242682068813760221976997252284710089886498594030178914868468753529194020080596799992617437312927979467092735321671724396943207886670677189222397950460533156182413235732104803409652615241930875143799174740547699096513320151221886568505793413378249593056760863193516273928958980774843691692034206113042592274581332941920188902042653234152809266044989816871320494355503943060507578673193862146237278718813706117186227019072630992056180930375449567707239072393735574750800613274085503500671978187424214771567675625731462726205900234170498232480068414235604089506616581888850027775607963254593929469894754939180065808304979839601333903296761491571948343498189555194339247603239338489967184122975373112993298104063255446752444216543979772728077640221800847219451456478135880474013944954223826953389791538211816410197645824138067852520637395868287872951707216858332926736940295529708348013570325758196483382907208953561536034536849671484250957255800124316900604387310725205260619567390455912872089714294973194821814264258846137003448060039391812509364410521729613014044117093180328403328606519250354773064229840560918096446405839048405182386858932279705049042703491976907301162846418634601981620291531459422355165410138560696435165651850898009071145898625813942330864665333389461475734527856789316505551244191084584122306097604328463963853788513164908870973130157313006880373958890166039407295742561694267956886286467468601257855706154281013403699716031641538918405301457138894171421825874794731473624051042886604500351627777224614212087903969173281329742810023879348150623327489442579004157423972372443089672138306808411739674366043699119693233699853742773094719296712428375437471380560586936222369191110639180787807378663720699078631207580579293529597253239093023230922651609420715976618551107111373741211510480006740085613763028614587318559535061479558533635488727432401376567218930878206052012431553398160980530924094810454463430869287695027578808239901010058828271644480146705433892638135738080608782090938815178296351335748703286433697474903322084379080536697226961101043354421121189190988394548243782356909674360243580389742239601426332474197936164425418968096854552365167744755219912110400058156320174424916703257177082546539535030764143302616252360084629883590672678142274950921451544438702067182816856031635783232579278396754931907914323817309498537904413815814820153813704583926866014695020451084321468775808860143967262200901287733200114815730978858033831279569175426753599740888433888113131253695935780436700589530736616404186278150316262692520204956719394065608078972461481892997486597238765142814454096376992023616524748935853296413240245595345898759687163980170933844610727690486471437861429228412110463955164078328683647631932858808292621499997737709645240521708792024978092905179983749779599679905420002208109906414268692406934389530621379230224586279757953828575242725361655018703647594196012314810594726402087198320993442261582178097903648362184056208890317223761238543891513910149747104428901095657982132867766456761608158947910493528552828801381185937835840135043998838289556221283495049184662845764790226489788596073109957128781840421850435450131483047523051397662455070744678239616317824268309102810850592813508097002748258108443990125429295903988677332685332219545251711967653569728315000299493141154455013040988184803063132559246635020802120256250503546776458243473793379861122583690311352582954330396640371841022705446016343743024252930767971314043868356667666862611406606085438703903808248316022561494946071863408060206508108802844483126690272697640298507374321154055593039819142522819653023119983554086666428508860643137239318024911283155426607234069974764036645651224266148534134885716876417616264222002152505171128225130947689704657059586541708976795517552558389006529182500528036888789939124325081864977133598684257821152859291236620085664445927388308748081081315261891165638650617982068895239978583971616140475442968919300675735339215988078636257266990708898419850365024476297561260799967019327330344438982801030713449678031044778467176970566015267463779836630036826488218131488669156194202486626491010337466668723149367138710797095016057414199899862023046720098472477262505631699400924734703120478100786415032402485262769222528110266759785056157062082732990991827691191806752999954415020737562971014668327972329719585043741916724846396411039015929642548465685550675804027900659053394825286395491239312543634744790877637395562085213228377955134189855945273019971683613857927295689951184712041867212376044171536170672587775901030378626566869344257487723679553894033597137519883040941875938613532280608079784278077077052504488030122678311174924651347700416762770316859450087753918959486629661758899251977160416502669841438861403528893538099875184509495292769091340734289207232055880864987159541217449225543896969403948876768997082430060821636085729841240071498770014866698014779605197170341284795776782328504792726370314713039164865048631421644814711253897773511255045439881589982168349789237774679105166920292058720672630579788202806290018632955237175340431348958251993840328429029341022863531784301515368589064025533646659520634905579035678061150944358783230216869529051851209898624324883986076718214214182250938246337034935920741092412488925374174356840392927272915722912361128722682162494029064783615598622631932224311898000255946897222976244450600258173443306633874746321272293359769016321645713884178740195575299587294828691506240372466764948877196090562052120576066546573747649812624473762088681660445379815912191867945069692612583811102890367746512690533489364530844631045451756241372781751595074820351506733225006607133994855452630329138491726987801323675057592074015905725652973079838370248868989646986955749009212467414434831988162843934258666781735730135233681875653636870630365951341913952651644279084538441329300192018383376328564282367045680262398157146244474988237814640591078619150537523594818414277668739234509000588014058557967857336589203700284909143252985971853048113938891608638060830035943814452163562081722440694677949758579927275996479398173605883816798818474633549387575742068943528677425941640004547726223265204762124526154031953640740227946557969881935601717758463338961179243247460043278740926223574025971751538006048525595103777901337835840948501191745320108191555196790708675808946007182090523227409483285905124531645052330738707608559208359181767491940092269039055605707829195333346918960079500264751240171700783658727836153009067310296875363363792844093718496965933452645267418546615885179838950720630696318282563528478947698779590836148387162978177972068155646450612185095008637697452646520464178220214425553647963707298441418113053080792056227294776977244675508795558355673669286709584840174532693759879473924940235933677479994165271169234634535368449303738387918085837808698607280645893181811322098073056566464768690259372953774470021584819976686857801333103727119828776980838921767739081277332701301540788164483619923532046671777570613596659608896332361864653208107155900684543795929011331752060422325025667887765394314840201624548690661440977086406680999048321223194747921806243337411267357967384692441015507129311691322446635182616425344927899758707497169786566168199125271382328806952768936382698821132589288819697313166971532188821043045186859731093265435223625976129403009282194709341215518633698357004407055384983487499058884922921724456318177729188800033775483008390590392831791027030205056771053990679521517103069729614005310087789855164460502654926855064074682350472021090292860840207019083152920329835653689365657582283550439580971582218769186294105711551967676899950935040852415396641221321822462949483623578059974069800441791838975827927434563726441155832666953789211160908579512084054386347656869931094285080994065625743943364460568224322153707098330548329571539160899797762704336399059873952338720170280196652915741877788796832672142153263548344343387876859373753130827936258353622353385941502263244723817444255974509100130309351580217587135072754823537963724020141316143032093054376828274962861314238765164177307623525893567408708867400835020790921474630990021247395498538926511575676185485142883369773069818950664479809412105800910596663236467564344651533556052291691785153576407078131157811984487180424566488926150909882958504039540491768275809427145176770939618338688211771614276571608684237071039103900742590738932621767136920615043096775395013711781550717229594156477516415291505785491743908057369657069329262584446347097063668401230066445910670739239192004528935440035566629091346154055519166429655763339341351674459754526597302049884214813577754549559403373407863241296136714858600094971700617516303722670308991028131724050007824895818146563335461975249347773739152910182522324347290397764743566279474941889966202763163309025056435004168245522430112485382153475382650011015008129034868735631753785642561818515930628233714741730748501194278224220294209284275500074870040392811177450165352751585191700501073984514286432969244521093635356721844646705330442634661821591690476716577791824302235233728410965779554669888283976253309412571469124646013885911731523326310743585325644102566041497442860420030554024904840003902946154702030679237479649637377507973758996492626307106717217547882457131163864247424875396693217856155160653467009011075286621247446902895812953095157349648037480995263486842498381989704884973303837566394512550862050541888704176983953913152980022485367838170756746557837378373436910823327314993866827860948700728082999427660595434678328806254011194676710590319587192393702119863228870797811555701968510253622933277502956904137148451904834511299690629166584403293897030351172601454927941726317131921574811002217845523320464344525831838851317420001325758656110489318873584142974201409779211331690850140703062583258044945991209948275115993321213271328436523793366647776825342053249588650149558891472840419757586503241027821014788779688459717802271841333464350603144215158757675749298636893756273544799486592754435241319656823622153567532802225561358895693492388421714588946961507188336420261068503655700059561550322665334126714095264521104554018099309356306818163625528529941575916153223475344380388054160676665731090976911255598368390777642469172626422188595291886038207429275279154832203036684617800881731170205647545336894920403782013383783633638029995402555847791738114339516223685280665610613024630809455948206596793722198305974021113008165616512590313532580333456342009313434214507447203132894352942499425854368073455800568577455297412339104413447915141497264232279429160298431673720016694684960297859203579092508727720486704248806417917150715115834615954773823058614449599203077167435153622041665495011048225439525576499058651814018519469889236303762933923041565434188947437068509370141446196226033736092802256957800455131487613185927300031136098759000500347372149096089918125473678356640217469910417497729425473040192869135717359665815724656354587596567486394665816833599516418055327168991443576327953695095211257189201110591262339275278704625992697537526331736844143335591203748338957853035281653620856178720193389309918937753786061552936679766789347558360992001871716833313604222263682467629761535755325216530738398979637254293857264925857935144296400172952645754945969067279090198547128865120296415404983335061556367258919509281074320225256766842085620429212851205076152349076195347243460695918425288379275431753999352396855144348021650698644455214100670527819243036211555175424560410329849447971999062123125013980446615651209023440238603429340396373563665086448127830647853480848438427628938040573732799077284260511277675257622645574038274316987814908180028438569429529852728086289078785006856833939745744746246484993257832736097029449296911026851025229051014205763873587724721614860599119918255863230673604585345529454882527281592006856225462874770675822340804682200569850442250014304743030190331987737889742370074223120838807648899267760095302655520215391110792119194246344462251226636398358514213773178066129318859433840196462655553664932393767495468265875964573404422833246752820995873117333967189587098840496804811779652152064372671229815559211464702048388385424821944257305359580303572062163220832396010891044653769117116483965569532383014777936868566076110682592868568172642395415380307788696140163516647520675768526670105984161991354304627113414643682096966131053276754371548720941687357046920542330155716300329728634134226806119882131441772535507660414968474953481082982978956214261440000631085626211313383338283499791799903788810552043511752344507838723698196325972402504094168705892718709241377572012362135942763930763977837873386387247187407367570984190937716719781233806404140935214557297287727778763505601521394932306214520848402488522474777811090492530256593087088808922754909698464635327494116594620247475715531167321883389920465329398086211144786917771920218833083411009947551117321130956403794715253360718432523184446790286664785529769449618265901387275243951984911536570721591940019964243738606413334276833996211460028592176556061971392087085152771261242967827221942075161929242779785852303278080192501315346836143899355978642894530042464957560304173832362116538461559025568539676103069550343785780665966770093529523137531767634553196065592175135988942013467022766780348228614930112284816977572289572479890987864996470681319955186395767548084957792769512003538114393705115330156914295500342544454372882653603377291233538253120146452934038203089634358732732325953762064513050419924790692431529073186947938939162054070099230973267919311602626033451306070511651185094523812228604076860316933401598354360725505252990895623123358934197963501626372313120201407390868578842563530410446545821694987665732550617059805579062839074800067888381898247640026364977940710348964832498746399703991352821575657306950985939298502630564832991052438797110419728446203880109837854493699682340899742424729152864407247801707750215703906606252991807983081542572197713524684462085436812140384372996422268614649570330493700061263508054520753424282908041361721181967608340779468457348475430035926644714570051511232843922895029983464788436467261414346138884402435105419511477630151587121672469436672665727420364987614850910765542987794285519527708457941003854519568598808254820365702583984487703801068127091018176910021082386185342288483191164056268424048754310810197829264818330823511796555518528065347949250362636354233055774488314238989841866358028696406733076703231490859503499085903092427944875304372588986705530826072562646474583140330417597179462824884282286847989181838254608272318354503318304661822924047640674433753992713077118360020864392703056199361171238053436748854947582614016014843561412252657782299984716790631191160245152026312320396129354389298436135700617219728387916510973561501932305047683823158543717031878430866820148128347697680397429329665289271203279388721257153401579496416325846168057568220915661611226262622901255300623157607059913625112201193173938966561030442737096743517262160731259033363976684549539220910708603797118404535453560205022574683149152081922217043285649983691621433462251135383690836660977372354180070571925441672089053628950988962245431443001662992168221516116372374642389058657797922927267856144488510599057287695056404894039363472966299533831853772906947057840400486183027109285513830595358419775454807764178493110810010822529430082147390450212091600396600816865104490910976990174881251747551073861723180017581947767419327210173841403087505848736623767004609810934170804856256048852741026615580488476875492002846257528443215373098788112371524773426545217041158031972269991527393641149056400619753731604975876117695636946597669267235065347280947568470655317549473462244090726646746526269669563874626603596588775707878284478206685557264334641919629583079529903339104349609648638455556504857483795862757953883038000608034368931046463578790181564966486489153860785412110208021524903321704115074725054948368014808520046219163994382390886233175738243214992315382976137953704194684760420769915008957808614235441287637741476989891088612724733794775634725806734649552983548565023984544625366995110995622354931868451130640809641367482840287381906811964991861830976268176870058379645099297724971030604052843614084107495688110164109805641467770694526256521468196544650441596902146423187996062394976770614866967466604075730356541825965809415816121278100541534216332794824937860130204010609269953859819472260675688578451097882353640551094483454335297279591862469434904576749967244433390124239911493198557340942674634402769302727177887925494636805829863040488736865865462797553482684538518102903103967687953042578429140102762595557842417052494759005196747271249564004195012897907747914382046591658331704519159995760654662073555319216186970344969904087720145029978296505724669375217607534877975161245120505032484894816282657918887912786920126176750708144516538747021436108105718483855288331386034700330175792743949281946295591481636247284004760399285533707606301134892592006374897679082276073441359852520822573502171747605260796517829926763002520412181259821032499744907984873859025673618909467117214955734729612312694180064518326824445334351335285136283740314697411585738648901575233473031584731502759516087778381115162524219053190581597898614254954454628886386460738115131502961050062760914654214039816430606853375322185693782610076434567277166920973336218672423779173283065900457073827746887664953829249382701617369164698741517973541615069998350087456004112361270972161009537321783919639274671817952346587237034669148298188001420618052202150227854923489088020523570531238844879911297559096949303126520040273481323582536075272257447728925339233551429240195647878789266104949849035587347533674719451861061603750756651637622069492196223451550534425273091221010099550051011086463112157186665932959976207933706662774825415814364475448343636862720551921386926611648386195689082802565957145844256672744071083238819004393050823881275605431987466126417807979660112440759234338366986434088430305639455034500832643476756215708378625598395677202120210393293875226202497641768253004094941230512432595718619906186013519538745188181115901041743806301551986663050476102168473814020621389768783923804313972658721796551223117391984868255256500920761323532588759096266329124691660125154374116863809564598994341712444518899002119941069391773713623670646893566861281201924848594319514398171633401153953237938031415997098088615662065488851141647814176115560120937160077557313823135537534542066156466453454010890773330637996532054574783608386671519147879546799590149758929433250697562355914393133649844734739708509537450400921897499598308604546871451294013119611008978711446894050132770416407527442336987383100937622013547916870377037847381223895612031226308943860282054888263723403989082848222550615367865991153927214629048408735745311418501775508837120464398476837705407224387791295192000568688887242916252293867666976906053337065600744132187024943355484565662618672293399989729990042114191585130344545021506892368119449390623037415777339332042368086119497668675108198639902308908038282223105589507218305090851936985138044273853228807720145529071304052470099436687899275303580095614255371927775472468178404564146414362780943605159950518532905992824772547034483972087206150717760183628655552550215652716222618612060155549216246176778998408003853296174571010088157434649594198933113671854298139222485389187943943795078691553424368584314631128377535270205454997477636783609323368605770801014621661776540503870780926955745179994617656381325540752981845832123022388452412856254009590786159789352813900471609351585092078029192186262664527220345596823416197575764445073159143253958420077388411888732976740630338505251538833577558270171795443725891443955996640451362576929659545832131942180482271577996246501153506967237226974333359093677608137643407822849889331792508718879523808051747714047124234322826777381726806886544787245512164591193693932003249399478160747114278121572500998163297947962456144605991947662700511995809806284355471649716412014050021976064283033217179189083826909749567405079370373206895055423482725586100027547024171449414100739566909979940789913088346361169093905395072587969542817602824804362594142712602800764645031722775865576308167039578187223394231912562502208388027538064107735956512398702006392069283993761859006916158304518353627475976068983168845952542998506331611336725731787417961882710383092650495532310613728399394929315810615365009921083005621181138706670304139655821262817428261676341104918489275161940914674942330064672918391715812102556343328411058462637411289773051255535834313402958976217291126043471780814402100084069654923164149981696117336200961357681501849065698627426608094776357121358830374080830777019463584122501823469541151620682944715463401074187770638512129739098260116143331855119314778515392321725675767223386069405315532203632592528274975037023765143071660554758522516257152393545348795387885206507588012361736183046445601392340068791967363843966074920466415095469429859149924446065922459137767041827861480413487314985768847227643799727273880385989489685902821639411167549880373376613690818819469441256386082177866366687919912721415805651847508008687193079494033383524925395707309682466598427161245514650398068760179994939701026113180461801209938178306629276268825251027018305292300963834185831002347093760540295897123270062368778573106282989265149395057286305552235003964613642024757798896959185841882939340991323090976566472803143538141984912847000388103653016379534691766829377096869224218211075045799126158712583133892571315173099163471392470535460782294943236276583091342195877711724327933620802860561804125816982574703081626928501387016792865421158732476008852260818862396917736708139934601818819628123623510300462116498288666980206840349411695637200668380358134649684433467811581294712883224479223591291431512648687640207360527300948789802741881792582825642297741148389202458909357245690351407904900348529583000726878659388933280562013760976348249938343485326147149321057750016545809147658819836122213436886761021951804961879130052229760599265981257403518981415975231284830877982275643275403510649127069767772704763572434592148102389596683861246597666574465839180259148661139802307814892886670496984858854921344524655233902639918766707187124171081955873777567964386585042377511835527496530025452271381605523151764098909534797446115580132050891040500085069915151258478101701208790387301991771639221934140776513860355301050344473368019782294809752733124914892639012791597947574083525205870507206987026242286682466194603987544298616910363084125008070952850131128271851378695239945575715829649705061868355243602459690601959103882275298250021606230126432462568699819986243065057160805160538857120753561457321052267814069059615520892576794640503636754005833671201465910482498748745899359826160647244844137677915866991067413129837373541748920520870048667411588178210289363223970976125455248267809903569989740718055801346688183740668636158982269050196298627382178737366500880878339312690907624164771741201236159800609028718525830861618151393948495550736004515033185697907705579669696141050291225179811550234642090950744931903512538270032839740389791382755345781745412012774674346115705970436612087770249159712444126453229361162878858308806879948680690612903452957690563084340284717493013719779496323028637249636797931260275068181054229199728593293070441526713355902827797748121397841361640749916582601572552156887204587491337830292467610401081127398397302883328641069121503057143065576574356803631315252155057248824880149158506848724334836702369175537061040610900974030091985860716566148807116519535781840222557533786138674327434564167557172133790237101846501218865560553952005589827630829617073491166984444737929070830932299643281536460113783768012076423829695347440391646552825272810793056119194245370396149572578074447638865332531545531254507271238986118416082389988382737760867897122142050421831166611697261906435045420069473441819263607435095491656005060261783614256210222692829039779176473215242942224687739053843079071073304074968542384586476942551462486176195706186371837508080090506499018284978399656541689141459549275614995035383476315059414608076084032493211482007038664705833362130762585265016931383799752523901235050375400269372522721784534009018171760043748004899738485051769898023687894314111888713216030215076817714352662392812771499267740977498684556051612029574671693163598776524285722950750795624026365914277797934171810480063019697779137742464673976281003170261679957520321044875446358428385185969649016943468744085341875628849099611149442616479552608973427941349812754214968611207365657692076598358704890718488057114051778082011183049446406745176618792454753288465999767323483344527070222843824357726633512217928021959111993305934241048280756570865136638328474434639670033848210567265370755028933236360527309688461808523563982302399620211511402356845129177598985817243566620115183596261566766567502573766319434602233818412944291666481599152852236713646465415804699797031739992310766843066110391317414397014815364930171007150427519468778958153705245078946932462768834177625156077473616736312297400275309188419338684682164683234978284168370123986139866334623418643196700063858033094831293030954361792423616206887527888563345109905352979499499246137829163019511300823298721386923175260764691122422744969221275532671859846237043439930749712585356855800391784988399613462902601811188268842593378611965296530637618175197399395339423351490366270561801574307394505356405475832488315212030229257877410707179936072562068356135481995993219617103406854510678540394890410821534131891504361485600378281499681131213414612698206535797065327167105318254853865060570006635765183766135447194271111857017559893455854574712656388748101895598467080610411097545655006986930250663327091464824285273290055583535142213858239870740397883790154864560444321491937167033577851159984450291717858923790872496510972841605309713076651666637304175239901669990652082251246157179812689159102947728359259265164717903016091532184378403894158687098642533118168908574882538380662418861657699205445909746950036009033153990268083758495119497476988463366517836771765671574782331952731990620819021036806402904106952060012253202484793747745005158353511625029897553533356143021938907795965639853311634803661969227915047727720836066832449920454155076324848861247734682620462353577874209111529887516636928553531850421321967579041160375935290015137181081623090062169562305992909709180742610163322883558211822366975496821432029586137125813466025874123370395955622672438965311549648861209131649144792092280874708224321528392983046457024978703070480338860603205654614858178466831724460363062311349982052699493687022514283021867541557858161374369649118071010619300223009158395781672542682198540742022176450301654019607414506643496417146805043583160616738933773984666050838427892270397984451916225192110902023043191374182461212525380511802928717999955902547873325437126987824463026108180060192971999898065806435225841294654097207653610054543387383730716908288994998399638617054497338132020037741324339103257716213219841039871248961567551102851830460543146819955765525325048831748306551962583447175517743966256595912393487199428696161499244471972862482117670048598363025315295039866409711946874822957325747084428131159725720554337897163410335135313605483267229831821037841482656367570795934940456570682994004404460638896774767270505968625456550903923220627837440310860699138861980073830136875022288817705490074623083414918758086996424843743429048774419935209145657364657476930643687502007185418683088032358457677060208687865326381897858331778056104795960277992251072059550041018405401157909724232841908095237034569131562228050835821221972907627367922021500012786409072262625130079232417603667427108284418987717707644815823349997129625671526636376314495049094983819403232004105510903874260992889917966889167746063126114410219742660037266145314101739968408213915231165497377637996379996181152691037460039514918206198519268441416497267090951320513025993727044003183010533153102632437332835689024916683656708770013325435907876575500729282536943637042010002915395012052304062993003969640060761029729506462891702938508653893663917742964939995886782906011292496616946464873697854284518765414647798463390630789064184214412105899095883741292131243693497766551543177281456987396577268329835985757940030000510093939946548870229219767767687534793601236056178599851890612781284417881032398925261752510023820399217134909353334712615537412950432991239875503795169853725261816190887706892693386771518248492341866056434559859848688579099533346463198313162970547810097750920549784848857370212957109148593545186710118932910349766423087852159769638634069136711703401012504662550064759358145370326754115607694330547684758132381590245867081345258456800497027791620584382639539749996440148275599298305819042292468241215600899808116221588608930341821419378326477996244239418370850220037626728853214847557743971719060717382318532960832337157794830386419677695771865197049661642647700803551987291265315680903962053214733412708326816109560341327193053454899227430056305386784799751150235841795012464732988373947960420698664108236337738110803248930426446810996971226783772531626296828886907683923003263120651894283513075226702413382715550219867526580445699126219478006272266115981990540968967369341920409677616194791009812312055182907151418741554069375392857429749170588705497308229199761960392268464585803738242574282764044906709849540267146877904006755480229217759839364400321769785556582704319917223650860252313096868806996936266908850151306004498547031951793426587942432443196361997889007259914963305832117590594145408589533710994233466612526975536775197775642758094919524979958433658503757828676185119918590200951607777794746968053022031747063896759031288892066804668093171494233732249380837844970422580729557694166437323113054642741817277414373235349222431272709164704239603907803325333044566805708648849538141477096493085748423079837974036936855284809105722309966455512517702910066044935689556600784590633490309877764251862027647672931424545797611394125300777882106072709723171536460330346027513757486453939291455894428013264415117856016352027569548998424703345535247008555768737161899084710929963187815807070188549071429020826094760184769777988491732556194735743699067515463666409874475946018737564601819424472998287546973764562337310228215295344549569226517795535818155161544319989880769365279175187891785765151451819105785307097574417574941177301444448145404760831903582599782055640424968693753851383716368920641521169624371873689236983846630257918905642484801147314850756669245237418710358664131555279306774221744010788318671291075978992443869075036007804746771440655933753203578669566921600105372749586866952456896816674536542387071717777373940206490679655718862793835520286533278907101662763587763857995426923717018433113037140871981453681357491005946361505643118827665621704614076270774084435724651489793588228579218869063518119888008786893819272723074340033571001786281107150787735044895793382358375148974825543225987280675629610015339001553851837478968672480950271511573886763433632138917042277673092829893941551307340509369885054889847648800013096657743609781152626083663924539395581517804863127667496356257076410993013204585408589574642976321553621037171050841299516453279503807814097239778899992446276418069905654089379814817957339403001184002289553988360611282505678888524664149947009257548388029617527849253059168783142793840222123048548953618722808755033646264243961239027695872470455735136910294218505075074840250903916018711029592169064076680560919548450579452246600574144542440430768468858885906167453537740646858462858705690482227894352084553116749412060212158141455196225117419441294866142783983410813748209001134059072390143702471653569435878587955064286007176779672350818591292058054603946777996796105062195352750949285093945252848250203025301312378731501898209902036178604917551598206499572805498293923897551416267296962380899099005843373715748509376445336024436267903458455485769696846108226415724814796223604507273081216736737918254449523278741207804713450614641725779073235642802938332426104254428902723648950649845535810222696300725345023954071871075382697019609225575190045140787625954718935638803931467590031192436796581365155089663459386191895752016359760091082907451728848033506666009842569410879890366727485310014849534361382196161693023173129744155557886546156473834530037672684688531281218733028016757609322285776318622004519997310458428996922503179447431003556521405308413936794916286717784581733543967394725113083200617744494584977675661428883819150846897693339789131063982460679230222121133519024064507832221527467915648128513000754813628878110535972512509296872754387079594223424967935133637602009000607638298453327761634552626525023055761446690761520371563286345388480348384350875970346518044237838656092740325362448834690772040682419112698652158335529158991205844023873926619125649562873080639580602632104778521055971308857275404616113264677444647035978753644546186659943939446893000290284092949256595998787068575396173287823585359861109491380447799347718913549393602669489709027490750265014546141390051969405816590153829754215540793270842823870649527731233903047762435005056244820751822915227784368370603824758285580817146133306581713481433270464098174831999773375725999753518134910130676710978823238478475760825704872787742013375820334794711286299096293457093958101697241904918200438437582248703119675414714997209209280083138075547761895922540832802468609199506389989919364712350963505833988600744684212450012046404501152556060380851412070855260154983052027598075724001093313170974360554474457006756101986219578660177373282847288634850932159556761785865785078253658521546604453858329292738766380985153629538194596153884456141727438280424769845885198016146369179276911060671609225273101803628440294285352721742503380075166166112056188828610024104290672694060863479565872869696497085674435486465016805042381656716512930164660871845033681192003288802318392205763004377812916777289720334363537221494060969203327564261850237046482329879233710519744056471923753760202214766052353179956253100655264434040636061857343990135548610384766213731185764394465338592430402442950858911419651587743178509304971704378399926001206715944898366284479370807845489205705794163190251895414690835787995720754746107554937662310867960785034602717415960689971812405260771858221170019819221110737768627771292631743431569160618377578922396222847774940734760715041790271606222699017044044896718923382925934681408418477721298537862443778041438907990175536400747246922202933711006425260462263452857256798800253475078315731442858699850288807760388974275574009196049188327207211849587284075000027531334747967910090076839502636585230358491302662587265546813192192150804807625457733317322257493808810454833062668134915882844138992928710374799853202723976723885922345982373083066283795854618717295145107307056860960319637773113503890698959693551061908084490318513510312893164554483906065265794535783745492621504682397050746381605620820123246688755255239392846544735646631602167214284267739030551840640886949294591074212339156247045633744929086021105637456172069144206150144659371904078052538515809080310868975747066138013158272562447364166670782878439739073211344802704517703241214122443253780555063912818964556281172921985110497527352569638984307592388287638007950836550765362250956757250162663889534717850680445819275997062257384502726859576937672489732069752561423261871751579819939677709346577713388226293535646455540021810517541747777703866881910822980896059572854802221156806690163976081432167475239573433186437097707962756184925286886030755298129850806698768775802425791990066471439491383114336326521535027718708145082859252307369301920249220364846655626988644477400358349058454760580839246213679609256629966163402412801641903913249556222075475262626371674608869956215114657586399716702084274835959744631544408181332791753060590680829030730109453150444851125785473536864752648846967754928384644907830555426359142189960473209678623625183976883353592280583106630427982930342653942768695446878052273441022017132971868404403546405349586215872067123171556353220653596083262075696611732838260359287937798817861922814608206412471338899444439448870961547180929359221348873884600769608242798936283331864877897516320772365894343187986605611467592326950765405225903753088905491779567366374774741104558768699440299989381899296932555502903293241205487672375812574708350136439063446599143533225803176016166025525969272421144610084832131534324719445977147610023593656967749497695235745403439185577121186263275555203188549679947877698807167413356499125101131022633294757308437539372095023700835580104653864352169429837791616126420322126064790462377383701260183039569237750913795631033596988712627244069146434039624499671800879994840405572120279272150229711805737590127232181635590709322316328730427342795155151492101481446161599393708805641573766702475264617742006836290118309844631391654795040063804205830835957874557862896365693058776310210871446043758709199643332399377159923545230383007167507589602105551105086431653652023933245354426901134672938367237606453781964919027434377482656198888458544148852827026920555450192172271816260055518830087729821225321869186634820954256799641998355861849984943432084032595697469857606083574294477562039730969537830127923594906802061251801458863933966218612569845997188036780114309473770883652908469325606715033768812996878900852264911933208522475281195449388079830485376943011512366897202521218653474903757787349902372684121632264048647818952478743148481922066307264189688923043366913115078587275421336013454582457963300893160116159306178421278056833670090486582791751962551487041918666637387939525090744213967552590014421743090653496260721727030607254198771560236071332933301430259559823504040683421187335573418320898808998077684972847645425881927266950250360997487127477283145670334706930182038854708492485678531419183686680579237977109450796599159511682138851238547529295665122124258707980434479990995428423713067755587129153010934178243314265289619869756285265278243133971912725420911802689726111292743558273191619684058803921644161786362754240575637928245946147465294393546461925498938459758293929438101665536732224185440907057028999439887688177988710792651263832526669197717116620676859353529020483032167884487127112767501406839971887685588856627916085107316696607275105566588625122031557910649987819316261750285852204126653882233076463253335840687019956859404058605231759293203450140683065536485505626069176788069566491904306133326726502170620358124264394166835942539353842732766861055067984114688819128765996191969328539027161230182779506084260173531481061277699477983815653661458841618585950723744228586127954770485724160541723564931926667937588774611084390204373083870954048226726416734423380540521691461644761313618615594789057561275057573298171525247626051054807587683476609953851796286944378098569877416790542077809028922089219990366569001227620763408369979870482578948674873180318188409253225476159970121899968036331108947357097435547916866078824943509635339874799311646519901924516348413293205787035346907334923554980022426567764927481515209541859508798493469234425694326231980412915217663302675309113269725447566259382902123888911438004486378070177362576623067632321152050327584797894220500502054434698716068783576662195409419311444698935770078125341254902812210854513527515780847268505368622540105202929589257867823772366758639921419861162773200191918619043875670963135658325486036066741660078661532533387305598530327270662590290102510122057895279033205953660570776345169625480194418137625542511388489807221181614662460843310010677376644475848684147397092299393597314885862350178921630436034019933302923702275421661077548164318128620406591354024214696265401830420084782911321225679405036086838301759080219119191843472483617230557085066132312128028149866857814322547077578053335223048491012166707921306634692052004038109481077566716690644432773175473249495934516992824733666644734924970794695693421763082068130605850420279151266169740986613849113728168976504128107906519765527405812342686643715493324914771353946202266988388007615847478641976480723813470754939053993580871042420837079120765547975514489536866890588590678785281851805757613885133702168884082694355050206520701391689942724516266029647318359049886704196982309693374627784079624503776045422081264716546891214528381764376144544622622033448323913023708662303357102756863614330997120220763439011017107093328189304229425713658454276518890062952574520109423985798047423553842550017704767799787284866037910942157487848308900748692946837171564521549498904493446944414757003412768433495359789807043926554855503364367109233362099276292931094945458055278384159360621904476575663418188515914139077840996931353552135672080993593030739617468409571883875909344733648064665897909030418034263661766456234113772856936259631338992128561929537238145918022003932394538165999223987311901599857360524071975707806531765823749291088338954546242930302362008138258125079539354812217038596969422147941922702974401347519348302826753416276421292954922669270039127117751353290887995945809282872412182610372162222312987907465619350635527268912497464721642782595018997885593684963815139312986980219784084962231484001493279531198205462539772462158564734212600913032940925652229397980540471754153516284955328402942579495047117544957794363337247114418413584602630443134484110088315530324164408989820181467782845434756583811888383439739463860712464269903793531053756488294778919268294338557515486786718617852327906963709980337823604314530949237773399281247107392592716288391738277475794024503588540507969443554549209064139178373285893769077099704443555775757769354733643177220885904691506740881904890919102971170526168890338582441677699940574929232711280877465045016768731038420339907024530362755948031998251345108642863840371508249791499083335698271877054467356093930289907380448661250504619311705225887333935075629565380422407588838402018431940072732377166798332838609483952726955273994621718899889628041207571183780277973232297654285387584954262431089675669815816482288622000363175092360559462925477129116239689927484138678791477861398617196867356077734270275658136652865997971502765858348609588080859298181482200481588581429562414953083973921018495226001399944510640868653038715894606217075993555812631690506673881464280595386408021436840835998446239961531343548691605338503859019063616129962091555167341335224762859738222518967602770139934863776648012219229854222609173012533554911619405161148849394458576135074511061818068877861658157495591600958457353477624559836750030644374514493175684649987344494690325403147495988272963443826800382496443643573867755103418807953873487026772199549514901093473819184696172831537454220573465295073494504396297136137260543871481778774748011562248910627283625442095204595344844115700318728984017208049526221043335664605924485878355903560764208570560963600829977161813333939858905485600665726203045389198092323746145486165703934042141647515729546698457934175563024073830388181352868357494135255094124521731662620649517137197789795909498026045520018266345867934144691885898147713424160820801906632502107938722066559874170587083847097498495019178575803870808720248945475449916136719937435672143445881613571399122545415644161067481893033471480681870002018787382100752476401066077468240578791418158942492309728581334254429631073066431268738211922111130863371407638465234921590428016122356639872183548250059183198712974060209206309545658684677261556855355308075391932511812067243194706378197824826831464414029879912873744656237773319106886033248028143362080242994172544228048693316243593950310092107274976530806855147681188559203000005997436470897206334364999424785673814833756557971013266398878159786360705351188206904295015241935610722384918892434558668284668592731591498871567998467601755080814816841170620301978929268482579878862128885623967293656382708985044847288643389545466313110395819636885543178115292528530929290860111993664334256098816049870162440109348620378554055471332594593189590280840665781726535955971206532192344806221588102156791580020896581126035461884478877551150081195999378947963145813151489659191573277516630910976811249045750918189238339744834615859965559416335383618803112878157018788349198512477438220739718227286933457268965321782072642263609098048204529393959118718629671385634148895433875604162022325493120842566360588015081426121361956017185408212476649901822962902672960018606493372098345627664512515805663667016231372868290700061716923124366064958132748404974981859822417593702323919137034405940127632906395976381235134438039052644750629827785871084588147385436527049294576815445067599977982490154485786364447784629675950665084146537252896869182003633882821205213655615067066456131631256908648063028021410415516963332489476918912188739193067249519014354130495284754410458134232163292000169146622273103093798510211004929014274048319305478185731890307601508679703464035769794524172394424402451548914610515299926376190267015238642724455505611614441609086057599117237331038788094620124573140012906365732305822126511666414464054534537013250206659631860364528189010442668255374776098976526717900947065993656503775219490036380115758314742091817960443673796785042704651967869909389614772630892687622497614014785848558905060336464776191717709919066706652369096589261544067692600095874393944493042011099139377529665539487890047080067834452510661005767607079625203665983422533830524143741036919835566047895510024481919611349143084283937491093204605509410002020819340943016983087647546190049537590726239024912494543559605521138257081792787245349522174959272304078500176085530089709332363066856398331858072345747003957393001361699588700631043546435465780191267614107465238605990327649260863970316403196633788793837979372698683502609005218209695413794393775135711667489771726387577598981898818450055636256465644963989348982143219069418429213385676992162019494980262358600352807492472803069861521678963778766800385694686647439697532610696960720026660472579943556686161067889659307337288434646228824363369699870984097437549683939710215613921100236411816732207302370564214798042905319712512631338095423629227774143865218102624674038937655760498978358274831620489968687043839540134996112663505897219693378725087968864833376343422656348698126553838256765494987715709295106863720892382496961465443796053293497653559914080704131609686804784188102762861464033260766893206146996424747789121820851462819264296854238349996827172679778297090392744271650843744613462570214458949782822249451842907561247822620596240206023720374283967184083362198050260716409605714370768544853312473528901867040454293853695791091088351656661396243367939774038096310885875497586138420961011633086294765255385328310990887774351051593508926881955464964465775280789378995751874604667492097528577256567713779633975556252917474383676381005935162280840826799035562165178805835809813475255688250910236282432849503541073545151254012413364566885962955080305886431305758206673621604309428911956259913480803041942418971464977108584275611177288187201932049539285214111606846241453061542892252510445818651612521295717158818530436033672360014295187234352191156269850279224414884945675963624769831264576769037487358886210045286459407134708608096628432180547712840672082153852974724436350442361397980897722830163114821977054258830397460899771275859068099610751475667016287784262285126546261329108613598710746502706574121529869587133675027999865434419176838801160571457177902235257913766282441617480808598017356844250560832553994503761335637855802678088695695761747287587571265059461151961629753413254455595861251379401316100275668117135613750091542799859931529921899080135374792950453360880333948346311897446360843418852150631253425180214933662725019190589220506388779166929378251788090717126865806041654987050343315243933094260136090948795533013968209909383820804912151936634180146591543378726489196273051965587192372784740031967137860850145004834591646187989241417306955750358785128288847023975613071103656206911465004863705326095691704855299096773077883189159483202931489080661418789607369030564006432240920160928185331128544810547712137269218878597860489227716125396075166669273877436271872091639970692058625321373306659049553793653684406952170434411863241617316503260232761115377428482809511174203073481617803773479295631349602976249767820321410183919399940031881359861177840529960433791188426330878708871357212358214525939706238288505542987401465020023434972315507114129412948075054773333692455352500388277913060982149645596188897537450645741788570813937625537595932581269867438673443344501803186774072027021364029932973481328018628301148416953102543198931161690829122570869356606083008929780310075072015657743403524329308071852924545881534591832252053628100540389461969744136437095833938130294580110986030338535462560492122693165923846147844790628030507726474937817618362817336287403934414664442064844293467101798684263874069357679318006058820964776286416823371849626677186444430657659414627777604105922289878128205161507915271311478276387708758638825416178343637552206872127129023274730874546252316030181826916745254969106307572105482503485741490377311028352765703611395335446985035886146784136491216404725673510762617230314436968493571292240879752300348202230379950504632658942771140374790892073614739834204391955325649572616941644323058304816946706071354382159114797137782255879374166411426035298387728686821389419004346105394370725280335092536679833969930699110480729991857751564214441013133203026470894545697091581197183177592915068260470431407474185950625894374383131116826834719083458008034469633902922140347797444145559554016949485193928454329519408262453671187426475199766111158916285356537901559642742209900188982121720301211179326196450236010808240512489488756603333369435772957321191204701794759123493644190004484316523823241001635055216792644810872274115273109388380171470244613667485104923170327485537843559790681206166833149650399527857170231616753541701717594780621548940864953318698907458385430423448142129419981431682666402017717262129300439253131641613019720759616321102089560591958573972408687673984563748520611455774651447946940422134957548054191477574886543920180043642237402417588893610779038050594964508702830142905880564385982683581977740473812546494051959671654059037024346674765796219334997065631093600401626990605701376372208693508228686848760757596332819003814666382887678254913796984513248057518640141668957813289609555102901257022895904968077906665709641983938039470588992196508283110155269064821157926790459428708479017618241249950671197640214978690077208133722283968002266013785896824486472348232240026983722997902572475677639205320513648352599517824449486709743630135089650609734711507629895715469784245646356888844243249013028276043484791041594583218822132302076048472500086384716776485041550984004561913789319790755000399188841230847560987983907712249744986835143605232458877717959097434639925708498225624305845447641885499680928573262106167567635751023538444610411211669683800723143036547046530852678170093617478002409475445243837169989514947643025470722046999983307831091121628168404778328604169744385559333363418685916679268364830163242709893190077518816710504272838036398086767170535159200818946420064395907653712134410740618491794421779964427404733888330743715278950331969248961557926244179442275381467034613722713133465300167947672819276262899996950132640714019443961930508551083872343848943360795732164870140553460679329467071412219277343499904216884343468229808680955597014280474463476598719308562541159634892783500143204490071185240773055608618687240081801963385327489266562666337240737899109987249160284482563473524796022283531371534699632934177770287584075623102037301244541867786349913546642437949656190201242704991736327412314365819681313564907480726567703931429952990876093584519432258357081608808962532079941889664669929367557677932199228213908752857293718320349065666510602027055257372354110748251071477248223261754315781246565729607694022665942862505383952255862823269451836079376663666723431808390397776889201579734289403267793097828165798967151358408702170198160247202621257511865694560331436539319125054437298107725491272734709583740057200496723388682651848043680634273251426303361300206368650360475620537387720859790109842831024181606581547298652242088075990270755832387161471396537989159869278318007355173170270994390826653448467313575341422637427613101046185681625693620694474875452896765088797941224646266403336200878193752539657122975756170659628363087524611845804012190904430647565287958804048343046005159340239672454168109918030320693446762833829956380918391468649598448623673046232518783828979984339923159417040709281703544063579653438029532554574226712704620363429546720725728000113205271443373126452191642864431735523735644923968256924784956068216621449944967678113616408302117655694389093419339669422527234649690199890099738222907835472693387140958157659465201914885395991995651054271486033539409715047092936779526046169790064804816959463013737097305781460370234619436950766964598646103948984118033215000332894651514965460869980093283852002126033408437518600267054413655824447759718624626088472977088909814337796134686195930387870420509184915381409580127885062800545877389089478149198190702355656449677129742929937584877753217307179711876398483583608563052267155921657268149179751187170725810979164393675517458264549490841570782976875355299839488637329990626204671084727964180996235317239126117431016899519819096432039539431743890928164872121003314117924840185960629572741495111544474205153192237355098824022752427963866953203525841625850469754373848380498078092055130984041868108380966132907235343520614877435200751023376043128813094147731631326963112461295371028585114030882632441470833917854137859982284905060983934079934336884570147480454885712630547811312337842218460119112670866201375550219232098957114308068265985786356510121987044285093680433801944750658189540299985277983747455998956945353745364982512013496609101468637282801286857299940480200121432024871601365121191250781407000859882660467682065659176883582603598414436032447200022606871295979374083408150499463555878655382039937085490424736394650829797513102555114145404720422333264349381428094792292535598903328580155046849105883720648344531575546873898961199644153786861589247702705758908795970590689092736315562300564843085575719900306585866842314305929726508199511389390703323093951140228594287688127032640945656638041229057606685297125783722964110501015815519728832785617374566951553729860128140741887539248294523334582574355628381809414943089749995460174230107254440029727173869864534145540148347979334401250304069561967566425228511363201189159387360564544111250243233886648074555931289917416209332487648620438278146768071568298369887006402554901538095480273167178191497399851776727861632922674291794421472783463242586657835506247038922353653752980630138589071426763802234759353660360514702357017967586040392326536637240818263844491566578897869670126322514426958824115580716719758031930864092987279053076664671267908830954423006867117595302886584496520628469518217432076075049179291291235486405468687051636834112709761372168187794540813435733965895207843491323164631344206344652955115948850790195412977763968672299291595904603190782920183789975305229662235447146640612545489749365261122583745725314272348517315566640259753963646824450831860299554079125999202595520337827686791753622126639094034829201880926553217299643554390379556263231952404080303941691597127012116253422434608619833504071219219632276521558300493327512839886837368814082254201687405959172816450056901085996539013775206083986874950199071378249762116077509969637523361338876048690024455577909852717758742974905144637752014274449029365040385491671193110753753919708680934524170334891777056755664501582076437357658746804723526670822184401069997277544898850238158549833194054934976476682711062236171061784693562480928073169828534625670732565702507237322094999209737891480640629797457236702741293234189520263670639750051474423034858683559032991872337093980485672351074194234465304633930079250180536580138197009443356223236166717805891745924729494511147850658321866247619045780811465413731159015633294564654345528034447036867413600135901594651559361738239168089990348109287610168813532031717455368721530480272824184525179380281515057488835006545484847416656186746207763464749195882822695508911980962239978546380224955592026086525694515817569512424140101181588232888795862678860583344980368574057117506468182983052489057361679236437514252023240785675601389220394124528428321385451848900961463864319116663311957025899161425328622738330391571027181269141586965225414276164882007848418435358795305505594571644131920047872997175917647487560706136367066799724743644654064098619696209713680712448794128657783823003778119230214061847633191379905182627394395138034774124733658243375839259942834645610639072874532268331694002052113442200507430215274277945607201882129516180694246657537758076969005078473984715585828308726315042780684553052377334017375268183018781007021167979000809321852813406437395269672949459244785032674101063230687326272450331966500443172637123605412054139899133840409765289353825670905309312599602309361572894716154744381105668745887205426797206143165377314565923350641025644716968153448048629232371885794094336870838716975396065872401077226075722419153524512245654757894731028021764643401316151707577733886630704127254966645054252271110816010803650573584685185725860692240619064584776658367042071627692979795750295294355610595080753281177398564895573915401920246789535529440678231748875010059904790228049568617448240484827145116720574850494495682448181089461573743055600943837206371914643905532388520614229345644142869674878742181419388970783838325226745915009536465680784667236144517963344830090753972080417344559822637741762894585917698161282700909913296230683025925849306678104917269802333055888313272209149134214248560669474412551272498940867313617606153450794836935822887952800650364452220399642015708430184332344098335494902066104254341541439128441918657070638980911331417923264330550838174011806085504423659313460666659786591403915169516906480670174947171566532843977067622639444821582287095385988959690963700803327179385072932234862900772632290465635958694647595231704236027181902436030310427592140713645570629857458069674556955072869650846927221778567610923271934213597961591449913156791670359911092614255932986175499963639483531172046848406498243854281550732317729866849804214788873191068843808513083037352818195018075477821274864138034673925188191039627145529487817046212118344892664275246014938254808099507718532842100802107739972355188748690466498018441924478094989178286451442285544388429426840983144365500725331886358947153150705635259837691596345644705704130619491990915646697257124319472371881563276576918380607794910490026850060963592979259080215628236758941105739080208867579201447348471941541916794927262446725411810357902317290894543214178214410743913040626674700534175155731912700080759037403391802222693849526341103029399593040686859434431979354070341348460135574456462571818538124962281516226659188228306873548509424857888105291900391383395420436652353312948454318260541859757985234767189886612680353651107788255585351060625078205969096468954572305694756551259678094865678199168747868802266416659863163306809554012783495381599283306415487962785908370177109546467005694449444728780405571680093814076423982232913724463639332572688801071818499995503694076131254032924552080617416475040080468401587080661387741126811725684328670108734772991475651047632885310778217186400044391176154945945884755984469724357946390485704275194902705874623781174693717331826757355412076780309230522014214707266965338126510656274537566157701892657186023820596587032538345148399311582075017012487959029997408443924838046592120202069203587465127877901335762230845340018839539089278557752021370568417433103918292143119781793383486963324372824879802624897395699512764857870630382072701893883360902629672684154666915544256005394299083492349334661053183204696227368645814284894451857777286196907405915351953678790486294588164623089458974738852964312658502665737243361536838001474431387182668099944140692555850939937168927841324968982858744423970052580048634234308545757536788577182131835406284910084255981065835458035988671054840957744672551244883868868012802457964605594445853344915210994273588001808854757478619847964997843446158206910471585613518205246736005408502969656662379866933610957689815317926744516880494563208758752580654276461884948097354763375606760275207471471111250683472922595851909567497129087994683062388430642888864961734282902685816114495771178048187142664354884970922584725995015989733785162094587438418797963197556538546130460483465401712855068861633316084476781213003912453472210774503739472939392269877493494275084483215040193355901828896847935480159399403681671126163422352843812555601734140109662814721356592176006069294060755121625266040055799333807356828300309137603438155043751931840698475685351287606531506058255549360724485445816536127503213833238136449425854281678557653201138310877363631681911420930435899285615717683199138082764432112895215933301678545898394361011094280174829294678473075938233412275427637473550975062385564352670362907785258449465069276465906083090910424372812633130286615059314578979336411934931818085805153152200105072772005851725164906247173908430122646651689972527927277306425233811493106077133460211498933187155875134845449604741392546613883216055802842839839019928936039188089842717650399006369117711250181937928248487882834382688438958452726948676616386446148184128762058889812540794601507556471469774565842151184415450640147231089229996935184571722160022775713636784611253348983483505495311145947186765810890401174569303899630460978705507288061467527594582845366421572301941786069985867524544453865929906380516568391179937538147742468042518006842636954746058860073804101748830757005256971209726954422503489050449659249386728287164483581340581276777484519334120310589499972430409392072924245841630123148812247252411697292168214101900669185706240120490825090292728432660023251347814631976963666187030966539280909388955122701086117019657239030458047745403976496484352995718277505769768038852627498969729217804687581944347583514142986456351790292290396762842330825598751811940575920978120697569174393169788902781667259898468600200454701357911419756900829119021828687954399555773815365905289140133265881143921292639255594959245517578041581215449060566401522005288062978117727988484421015661767915159817865418540269270768368750176205290529053741006339040434406674887265470690778670046259173088738157328446200250909691203713198814061848372861775154442014610900607313174135467402439384640271306420664507808354265931091388997537212404600120799301858162828578481440321600764187090687250305039997064276911229274078059259107151293912612395766366334940683216357500277639892687312123803529394463647061486093556817658926905106366936792157951642311283214098647237633794080007250692434134841523978912628307112623468595917868066112266995803491819164207861863763103529286882104655110830798112560513105121225148464477389879437309940538690561910921208324614648427091643101292656094158134653569075424503142580463228711109888818513835557386310670517097313394828171334522276107657034180025987414374610065974724646060716867089067523186339233468824829636929242351280470799788150498618615046225830061614601107234597264228882951660335896716406255233556686896685511183955613178981886330958005246440287138234410211709489936681368585410707183696110386568467341313520227981384745358005114749424930190773458248543399851818406449408579836990922736392604462632906739155761971533684810770148273978525462557301224166669008130074090347256750187671746615964071455957307712227420655940946689422949648643681950219649059932512263611031648700367878586425772447549649789132631464559648163212017310182727682538558532158672895973243771193968881742523643588426197254545996819974890882885390303185403299649609973020322169399796063309791445053810359948770443947013138960278180478197068365321080355301051003200386564443513374404504309768865935397300837428452304858822458489963081027480399044277183351848272989231791006866753068484760268771751667849120348950514020338952844060498103650129344876118920737441428937435964649209313439175402181204863082598106765252465800208957959800822130845501830363921368099139677511306294641416387275808126938537905127279897246961190249977232254788294355333760064044990635189914595707070999696315258666925439317325092118337778439800733104028365091478386438480659312962687275493811315514225526410387262707258819414468298756583380431415765565098220993968599653218492695340251853561917282503372670776146488529352826702665876863548247295640199198071179267039554175799034679346636952375413125084661519040700390636899129021008339972646937058986159587275498665196731175814134692911109981957161955346066399614039493104423311041846768218429537117418462131968353605380540752890478164693060721085358250880343756861858500067825913484595409837129987828494005688551827107521177566346152279547715472441811643767309191823651206937243345705101669530896733368407687705060903819812316796232752433920398722393231572186788064167665929455849466409140881161515192094082204564362239164340946134993969783264725871697401616327415070907630490888216713405786201228980689891623241918960486952139505769568715882582507970242594690867694391770061954705419469552487972411546779812348279889861225714122751282538468086706042158707863759872333074617973200561600071778669035597108970815728013408474769380140167517929303709187051979532092500876793063753595483291910536203916287694683280200920097436607707080514428558712526528361143926985083515279913174544536424527421226972335512732121747610361224149963926194910388035448710351561563089279222314505565901991281702234485576348846969673267996391274385330136644783576420622670050665764451663676408123882935258208284587723719990400963233010324586552982193160945317099585997119051039517320318431254156981352219174818771653741965390029905295142583186859976709416977298643641516969661124904092172246200734184921084255456490481084514233645911299106449126398696425537217276847251337805230161083198156020260712968209276517051452726041650330858181618086881606020082460001039264723692621257650651801885622872643006881814937609205888973999018514913186093112364358768309471123403167083238253847001147979790521668783359806150199724124202374200412174253539679445626358712128870125816392684297459409476067096921780690141541598277357050424911101320364064518137912749854528272081293379508505131339259614853638766545588471102921252929272775660858055769422612796291611826842814242320538334120089240701637553753906536724125086163792007730219813245633567272255919039610460794279690403108266718702917880098963704470377820047179432326850249582886274449693500764217605202178495859716192812593285136678171545608095391107476787059788437680079906446292245905494102588438996758754229298585603532467338100729426499690889307884363837130729833346499087073068973410066913810789755491351373915597204966149098880768347216001024044124051943126091769542683485387643694265516518304252544198151751436027245777161703015788777359282835088618448394515669143136628594624671432152157751725723192508293512378938183633950930165114828210925901935263424025267106222446664264969691555614745797424990544277947012174144471283015869573741745265149762685976623655223423571667231595320959647019936636951547054652316576367527645426274516408708838357656665074311955745188289721155861930899396279250099916796454261602471394724011010529310552947560506159820677860053496014332397138145266569094633344784493563730722462860756313838168211010161388027499130454354649636537365369692087131533932553083154735304819082025858444391308095884118773766723085851121387599802964527849132259836941456553989739943198728445515702601825769142411995228152329950676851330761323835089634700046831047210103665764930801678184179649000473906024869152932604922338356014649847241722567679489268873378333351186380550194064167963211746109381859991115259072474240971124410774601202637244314317814982566225198315641847595407738681482368669602548411446031381060173073202572850064038857204276981986671927852735181626610578928386991987447819284160070296223840682513420330896551474069041428602500367818272389700795114434115990842914127449986808309349100245015752759876102469336676480881384103819997123268968851122794887680013514050114749528565552620514076164740730472010849508505778479731636655110718578956756890023907187823521056331706888395368971533437847585875636688791478999240458538075198189659491269512758507243662044678925798845732530408475948582224161293514794320806456523947531718302699782003693702332005674864707341740277573388639750265165254853082124719051015483738228064047579117216160932054846498776079702749905621646238851841204034871510759504293799469724242422960444157442265263784331201657153402161907105612025326901398558662105802653674780217686815915707157590885514472572094978519029055311024778593582922750024614940474477994013617387238251685299237108344889741503957916980092301000759282379351998276725982254801663075630251238769225877358135125024941958615764335388719586531478951663946028896051427875622137881908274596990964017527975699895423315895860309032513552231045557497702081887536618066182874843005780265339491461105237886369601696266973552046640953098309646385548882763626249863983317312957116232343268484817425663592777226326981160402764362869307633311902628724070864768061049120929261842709481741817794869187943254852820458424527479385341540027627094105882413917620463866830353567003283971438483625074261923588152496300226350735559497417586908833442945915894140820560975476669823660640710673083500238950912410233071714556591393682047282136820520694289580875796640057383111243739316496381138006026252670936572161479423324791996297407254125111632018806559724909147241798660169552994604492619932526341259361516574433825938726394044326261833088633388483267553736217218955862846329043652968840359382861452149802569426332747189181200555848847236177500286697071688412754340863641481910463352734831789911395772512956213578345227654048913643497683955945181908055271173956269690250497800774248615911834905596193001193550069423976305217972720347903008977201126421560247136624619068519259226725290067164248782800582980647634788813977953312398794439119630242283828533494816762821730440387123773136473940738930821720729454778927636634732054032440545226268589991233887264048800770818545860648523038803205556823414881439032927773750416448863154722451498890983401019658595788990787121030029367321875770699386138911297946109249479664506009058880483224131824570116010097986435013058510533253991056776112856937040100317562642744582754232655112451102401903083990939967946340435114904479887867262241270740502923641973855320174334699138536020726241620672725465922082564623408344114968732469650803225191276255568787880115272312626157579779951317561256330065842663844424373308411470299432337459836511671710026152362347754583432317500511995970865306406227526784542180785314243779796645022836944383565347928298231627824257857294651557013932854416210957048095613395450844789676988138553560794766620743027872819258840418823959072232635439233710384757963838246603434265872130725135354040348502251218202247961429299436968887420116704656725710788744591508816117752330964214718290201822484117101940445039447589664336599324795513383586620050369537239336294985099623621650395040587253869246421323400758221470407649010849532239102041329627608997604480302308277273884429021278196253735199480805695642130402757520441744112380893309041547535016924380823584410647729354388337361245730399452250307739063191071374430762968548083675727590666170182018045671823762143747609358493037509527987014568887329922323372959946796454784791760106824468493667836590666270481174486137302335368918404428068987449391115230345708320573186548888472669622278481231910875270538255564822240752891316181119134484269162282032709298116856661733914836950907110372487941784534167579591355331106147770913257558559136991234016511410059314254295116511962411892230291885024239482346811321430249176393921089152245647856581409254844779240972261779408239748462517486761304861193932866789381641189789356314641866743073149551767326342112906841410605107729295893234523702647587035987235842157787317939908696914741676731145259592014681221724555400134797902648154593915127364800782461145574340448655553392020368436899796821211089940240362868241369078191850491679585906823755184991967879744516714263730553995811726138113296352286152927209438677253217037534239357749936898547568131751920693621172975145798801992592023472321090900513849586437768780202976353691106778722477112073102244758769498669425283162866044857308524987616034472929448244214400633404357732818993442809801203079487841975769100091249939296431370820485870150992738103891249445200898290502863119756796600669434482560165950446382319915766905534495428889085561695144125423851092756821864212191819112741894321817473707422877076376666241232061065324229093249839165807323423896368569561389506212337461195067133435589873318378926347797389655309076193417387631095065386248426122924160931945275747840670289764677174901630049205222045033990399742375027117257657020181363756686079174385038102562127460675217795865092705384643606703443790121338878560034749881570051911431038900883824989485498771006024795565150044624780702162638080998194272796563170436828295050691376039160076472564458449268945659039463974206093167660159759611781567702980429640326206623659108784660368309926058957227640518625557084762123625491087485064740548976044388638218560345757296778576794791204644104814064906453263906443842475775412134579061329763453383044368356361768810112207928023677425444490991014984711571240118719702665208042494877530079128981340592731218308734112737847380222568526687975632898003313810339972246420920768702129298694213066976699070098752687591220327359210883619305615072994932182874751243817173103570807011771160122374067142140879741521538700519497604342039568497752226554726893897149588706339045920781713819541356491750033977676563721701465667174894046109664806743007190604034458050393654600119874886794511999212150891980817416839910330946349628374675612494399335661897986199742085584272159887619969278135646606759786279035786877470552372505388752075880481425360410305801167887430184100085512903248425504629298586492788170352714944347561743695687530971310265003366643167146517462480279731652685029241675407004903088420546420812308520324586048920936332903691367068374731868134644061575326554890976200939391512946108063852296776513954263522248527783661909755978720314077244686933520627092040571834501782391396478108881057860827327295022978879577841587525298090287267672750454594911298103991569611553442484773762704335190187253115487505446410012620816544739327051781856956579429839690734862000619651488142220432349972794951177674690550852688057172950363899968672458163942606732423763265207882884298011930361697256537749857110591181560083264791849644247618061441831399526182091893352064751583964706665925853506348970606209991036391645784866980778151125478550437279328296641559221801440697157908853060932710145569507539878679085965557075744009344765177475603143592503774165903909527937379196961342144930841721119114563828442984579483039746760034032970909427092173133548314996616478492057035496776230928500583384272499302425921404715869734923311433722550413657142184954949902460633835317623029712965245536087442932714630014172741728875010542834144674166782797496476044262100914403463767666093192972744864057611235684287703523782118772220361797504652059765212896408975777744211279271717710744189428237202552051065308832204377968037774922220588003305990270588450925280449437878942501748616722713027336174240151832595230192835610157598681104240972111340522708162303966760269827949337966775387409306380287595770893610534652287662210565828279793912124096518942611014102506353934560737935852209223987940943245951624626093252891669694741951675790174782971020475165022676292609465725261069140317971161449147445510535903077569887319198362325833226567229585553493607201509681600444047407636398038949173258132039891001706724477755758975314166760715731248466590176719678446324652140014645513769779556473277808976714953668251209558435733061560463031447072141771334121530953405419866925678544295327457918912234505743705038592335973429663326482467014362842044324224162337435669096111951177573148516549355086969706139893410914568268876572952535856022011476899807825219111882185749028145835852062662018742797526770544597181456062949490721224275242297287242860465124484128296087046079617181052974755012274082521706816813348337846671183560638368472638195861650100880157590238526437273805293972905288929286394342696001851760705294374654426401878482746503860852568751141271563254055479627318396542076524493419852337796040922714721202986126618262781303676620362617378912010656164415800969685733617771218230241865865815772329422058536850571647384574216236530565821674386183241298502726883090366984064259377644305561758268690231557142756133567706307245764046898125059084882068763163869724629942821849666505731031401904940341232685661198801629480671542982561064668256020150246703647913024767791396238691738048818004170924765449334892477792902145172584311074226744669403315546904226025445054854636986985772643791652978190307753913725390390906601461912247422921604286950881272450654058093954203962346892213254912973529663609203139960005557679760457465600869135320800212998536435768835997687463712982319959614723019085797950377161639215395134775359869471555050550234195781217660429506355766177161015232492485806942617857306234959770175195327599982778994412833929692335555582381790974174485474877803787486012165695399151349484436923593532635968776425272741728289068375941781982126233355583034437341388590618048371766096825018106159899235218699109102668980332191125296163338101106849168690092701452677417573726239697229468949196460505489249368277524649430596651323283300613163720931156415441508897177817599269839168321137529569166668908646465371904619757819719733469957526934981962273968046756967194559400549054240372418346796987195766895827125764378213314660180623289422379918088770015427176772075847871564953188298975408436549416586768941156240199422752156096394059298359665316699874855899293391926204011762354933598887512189524026932844086980816088069811727692925805886941309491164470183708328466943119409702655961804731451401557153144784050812838561989747601466670778783593307801583033090246417595909301065841541230634196321029726180825719830082952352940043763809435085977028447528223177208783023848779602272492996789614862952139493290194681955162025601194504519461632841394634805088108622718479303534652531755781029387561118744560081709853960261508288910925140684122915456338930232676681281449574043995285603281668053622898710755827942959316176600565004494507290869490947168919938624703006468377399371575703226102003695689565258420014919406831072184410975669300353616029894320087132557198676234271155409590759290641792604266459098230518647633398665283222783276960230558303137370648780440555051209597288210896642874863504116065366813224416773444373206741226430175670134330684419494149831262148691635994931208016823743353746593088909999165220466296024194553832787445182199015785239027292158176063236232540961854910898627774079671935337634523580699260720114017801094866790793335616835378750648203862294139851878508437912917838552834883302715459535423890031269287216913476965700898137988056648461799708267995661348300251278978776248999703571557891259542547910602313629240782507005994969967079931002612812293869922567198371298482891786103574508353710882732689730445698892941422271063130276815529747198491980404429318723089054915033595896135344769834958208616326473748734816437838913646874525009315894906683976053757981103847333558289476886891393665956694558857917934562625400925443873195023348519159299292225309460084323348755632387329009561325265672034820411349225332315314907494587030047109018491790497088981562591413484693369462131404959389694321952529591159314365227771878599393621726059220310148355704100168439084523487096856170134337995312074565875396822375278885205883998905849116736216030361035745224706651217457601911978009538810908846128762740331220130242906794929833018544033303492475875137515461808998494268446953299910687973078760315587155124774854109744472080627609237298824142175534570233210522949660579804045228447986621602396204203015067457393305549588242661561756299979033503551353355896616568112763058374016170739519233107738414336924449794509559683351974936014951693546658098848857299970407036032769622386934829365424529605646699424023313889567636245235582105546116752893818894807441874156358766854774203063288815335048076680048191671744921095350838466018247343696511111305509299924036145839751870683215223937642529042566439730075691688035432727582485731254242847828772121040085305690440784156097688119171196232713151465465039330041612278706055892004663784287098097491414381567021735650673206972849174648195764692928394968432701277171332369239196631588946105615866942680381933510162411767637978990432953842855277579510130439417155371203178072632452876947411443914563664532636930839481762952984876717489170622232825449043500602501250872944714632178384882192419713140373283188631685718304625602688149492227789968542789452397204701936884573357972029356753951848692715213639296260369597090557395583942413263000928918516242731331783211184140785420979712343841361507297773027069424094661499074984763172192002611406881473464263466484319213004487728120875358573062712679514392582138270971123813480879710983409508887691682040456602731247176566820935925868058627460438811484893083500840506288676100621997680358674220188985035539258365700883118576502971680391457341677199307072308782236586847079612501618920837180974838838125816367047014143237811359405157418708208381157977895685993704489267147820394118218811646089512190607866638288556808724569572848273002930249930311343450567764159968018988386425355796162276789086229447704860876497822404857286597538244060224872665387129915149204819690000366730152928221353831546483300619547980939892889980786959056210949173745645864945984441990357861202858730862784525035932998159429882092748233488634911963660322420008680006433100062238064213730273374196614129678697815939660397266238141507034342336401979353271792729134546219157007640756340002122350260390154920224112963973712203111412339003592528902857429459533515533657752256543103558977827946546607830825719755079189510942710334479058481572869394028978213338337892150671067732344037110775852736807733690457302368598997850847852056733272904937536178715448895353030267694032264829972324364168595082850307228634988828608674967004908669587566462832854268075523418113967894229842424950823530482621002626296525807970447717016175081394383230657150476335618345398190425745158188406229398875957296642057390130791484210423860707143519574124936044527271844730337791377734894144107154987483229812902621064104019615489327465762339908375894504305857112313353362112157279473173365591686491902100750848893737433137212667486475698892188777241064447953616570519113899572910260994491033041294761055832683484506805339325417948919341118334134223210413753016767558124687349924915571995921119124694084361134152199807244082972604683933347902683007646627048235857414516146715885835836386557907775096741262220798631676898111009032376804110688284735613087148522608686544124240819418399996630122338210912242781087436843342940996902901042420860861390784071027982615971907929642323886308855842389002480449514849724264717859090750637545897050166423421434404681808192520470757628198421996051612677534711332706338512675422624202666135941587894174527917608806752620059696257124142484756007042532554339076513726450121000520019665698161101340507344339069327577267737225004322152600725230898426360187720108187886616661915793563700035912553243162326665454509611429484333851800618170769900135329345739993109429089456280030615447258150334525449535217162550834122309729068184113895695852865920073839354131723716892742188585290840107148351462102310951416411450686622856363880208659125130130924016862455173233613019281993321791815063876886976918350413456551189949766486061097971899951672412170712087273144134693161879354083625875305105864401231277400899455162303293506547657746040876115559674019173980305669831272314850681192904989670470648699452078620717245858743767664678302590548687043602038864827128057955381300455688770896175779408741792882693852904139968398297293616652719919285227348869352909530640424792213170848462470803798665642182058778370962496943557976828685532636133239641727881362043740824872305897417950242672570411503616491211794303229260727248681154503792445138653817711560891782846551020096619995329409590290174400391390797159415925778352457277043047075854892427819607264945126348568969609335014633165802394594610271846157686230857355094161099708567402395805176795172595946892096590902199614946922776170717060187423122881915010036316881334844359283329440835025955804279560610257647439977551926513147001596034715168985643899273067238972678609166160314596212531861982827151310970908965167072759275593853681543382507967202269146733314183952167433212172379359435779870350220375722946004586343283652745131641542662838876174807523848645265173271627639882149307753402381712120404804350683440073236617784455980186418060560125056827935242809067672701112180404795436773388383581609675485088740917196239165701771069202305396722570738671293101916474312942898973878436795884941520976822000301473149412125536080472055413640616032837010876376605991356388983826712137834186130645832430462799879822749171816731485964483422795957146575549109753707720771957380562298194362035311521589927399834488029258557958269234775589579889252920968158137493284132199863893197590670078425455090931534066981043262797216405318370909683132577302877873564083284603570721976963522519288570412292627980029341728409075446750760675930851650974452739185066310849739216874649980143630693622370105901326298239100367931332174184055436727800501077399595900080830628201600220523660945311303084485105161033901484930497807346178086150447293374004705221761222572264180831911881043941955774859019966655062292633432095147918326349103876658230687929799501149223095497388920535196458337312470787308967276678596212237292083440799832294503796206835363716786032894906631729567409888566356198013051773327216577659116176155755922893835164055891313124081787590195443896037674356930785816426824202652596802160141331454877092123370172895524535750091141757637490687620014577175686428496639714105281402054369734683140439889398761731743755709199185569792961278118483755333117059867738004741625116799593648581846455828115070693414289444148871600860612850655789589790230953312572869593321456503598185789189582205146155258201163559428962030340268363834976341832746014941030230846190868923526258926812965806946514761307610380592135641908514700229517471409789817368430456440123322655938504048858898572874577711013630617544836242263682158195268301232094949579868360700340540765391281747590725389715060164450860952847322549038277692856859841353744905411764515444322356406612446922830824224763147240465412860978809358249422547965732629040040177785941473411314972941797627978957175525639044024717106984918664642224847453803206144951157911567098372076760647611174279879914233181357593583671865000443888458118252065166016124656655100546642157254365192447761095525329622641691632055528158288484842838978045822323144467221409525688813105317148024519224498350276670130156564115634887555757479209710381160543427732367266042967505756486887222605646593520057970751550797018128120133114400531989935086878789251805025193725792683403890521336834642695589558327122533033357484568361509533941457853803401844178012758826531440378830395305130452981870390616375546176579267724206466780632632151012789835203108621707182687142451489185474270816550579436467688473168069180141231394829444010447225161500459563817779509975716707091162619765101033951840985349357543457574066338687205819409758742581548329821694771499259430231570725982500505798534805548491681649221389451117592344879519032523763791977993340224497135612514377571680038601583564644500739061678607882962960564581375705779993876784846853694487208561881063639381294754893763203358402180326619093762782641565053480152647629377817788025638594533131759851797800524182832889465733838278049163360391164433044138843678448006014351430856522308407459347257044244976784616603280978330301411400788802313697461992483633652330980085928884298054060443083169893462880963171422766342708553391737186580837986075150036759411579349921184247315289814288649018120440753640199680692675338558484199689842659411164382948068751601195350011143134408054765277547912317572719491495217589023338533124461315431356986262146542355258498476664633092670112837437218875705696519127043654988037261909247551712740334314554274973876494230222709453790261194418228726245096224559759733308166826600930780011558235116442598561509019404703728403933264578669495547745531253314613273326137228990507138728468885665437111560153939738134813357657815311752623602302422813337148912981655026592410394709084921724565783400110304879537178235876477224376876735769863334906330108460557998945147122869632244904542172902340459225342910962483254631648242277126049913894420071944714438603318735849151798842841068164856007767858446840561656546767996992174653860437426565899546691635452609001062589070878606769442640705246958793468487687755234450358988000781831510503829304740651934100546602020913138273475294776867175956415681281335222886147593195104751310567676316752989645388440220640750284128434721632717061677413673216615047220485960031547865864468027265458288678164672040114659913498033380989908418344634878264002594217043843905411990148123576615548885252083882839986310890224205478380538824087381118125018660831033410396567151050059217608550100239521399542568954374511675255915059104337179984631018437734833238283396415248854919401725849085633142778910773737282982059836014749149916764058218775866492490258048037835447667043277145826436225501465561326339800730852380401781491481625919383513418072808869731814484585941111527131548835327061535785157994538945399309053670957302096595191553589653198716819112206273356505046628288419535754759239699921913712816802344607398914846388197444731164426195836054668398607876499795486899665730528212222205606940276890982727658009758855592524749482015539973164396590760546781941223073424678216480797801077644166994677132749537514622499425432335963293025696897799468146797858912703316465272941486168164951225365025810830938818358375251848058215496315128250930533179294669715351374980530423470681949644980072378215050705647346687137231344112354959353483566191295306270374415196648327424795009787535234005130382572373793989013048944498445641909035138467656046510389051533327272851520562131437385329178772389515046890848195950160302619822643121090400933221604808951420128897606552047486924291822021066748380230917598701562857946067978094719203429744707593491937547421009781567843644879177150273882290968840381770264772883010504334920572895021847601572982644708496287466633705837634514782858784040758504445683356299055144874208366104649247969739729951918422486274192351065975302166713687031292446402825735059006924829559909173487150462259095968564413229201754181767423849694772630478295924759965425784084393273747779830437822367474104873700554782138793117042639136301738170068717675106206217177671512488441252250874916506117923095619283129548064429964735669798013195575297575981139071270887822579878747575523413940914207057710440756070583469287076307828097628520368822982700047326967091306635336708686670875930458983386997681476843796098321066937870329019045988746829524285045571126534379557720465923334523788729669534843245077809004018857811061784457961200773953359155881650599221154487163207408858700943020342168508887023309943159581364369706124247203550428270239731775915086071110562728484368618960743650440624028636350221365866321728154100902671372263793468850160966098552152990170642347714874227041503346490110360809734803599985123549684209534815827392549203286012459364942503683621355775699356347878009674811154037768832225281299240612896661074701664959163932816003654967107517059292295839782033951739077799126396855201540309775338949327188417557697918685134268128645267048636287352606801628187100455334146993373740148799510248826778784603425813787613037800543808441831394441332345643078908451367618034110814556845171341571593542855770722433214554795412268096426284696526269259273185561887053447924809849000531212230671710321314246516640492154004239115678160838058385740757690808530663183698994664395201122806392379874938518735233294434326862978635234994409349825368754720347809956336744997625284853205362612245835402149822264585798673150339725571456665682521623185871252039669584510151684044249009699513703007276740713146790900781945225861625481065108576116488133021865325165665228826687823529905325090715394207647662554799301528601662704616574648014160505349362017736144221773188479914915885337001523804970973247062970037059900794975325840987167477421792719122991315900049549800505541291259554761385914957424606828741343182226491612273095977070229552909029928806900598422982465400669216357822746857966752388531204167289673514046840899909806686731052815208263007017121269552951746622073022893059531472067663774252162179767837813581982312689906381153129027080143813711111861986891210548162946086980650573551556350302864489560274515450855014150666096211105989725834813481706171707080346149331166429446258741259324192662089400091947239152517160350536901526359685804416947510499065098798356413335053847399164705017436651738643204993646075805827763821012256195809718148316424952482637551927951158288125917571602487223023655715311740832278594290881526660886838415545029284606393452765942841129578996010989111535486818803565583561834815969362429770651840660778153072158857329778121863729649823543102086627197066295922499707395987103911952931016540431331482739722785202153647515184149788029306082146428561078395175398969633210085038229550600731848044035406051258650550024032740307793498267188990162023335750968513967666553797306259001863724795560379873394727120632707968455787559330463503792636114795196790359807395147892259511155044460904624879604732378162381251910114844535897639106789827177027570203287357339042491111403362118649329811556059427983432362261628971827568365700743256784932848133744349430008208687910958661359891135813530145444588804477742304766414457821297746439276100775293839000860324043513697998839183999307023233445934418428767900874250053861415747654367715274330543432739781460479500205289947831766435057688647879508134062885399992561660977994361355475952429165284752156806383983041314171430732939570226152751503903177173714887068640080461833518550345364000129493585717609518349063819947197445676758579783703341647416531568764957265659645793000139750913608537311094223106341935744007048916299513932239698167619694349823851183459433922472433470306783678177034667965290757332304193841951153275998095579515189243330159849714407307836457140866973446861727219303699959312548427259506708367374740459280875651292620265308085521998326800709239951231674990769202002840518135623041146864118826191228007209604914703922085724784802048226199717597151227783906588173132619849832232120971408161499138283136924704156439966294397500902919629310863018814091818563645055838270835082388913124355254481600584545936973279427687471884088479970566945083598917427975466674940057984259121214639603214721477069385397974872793033628981650484213482469108953517619218449019262586411299936262122812917854723489491638393010561848369317899677754516178234888060211775855554004017953199374764648406805013917562343509434033306843482592275619478379753883953960425805394654582892939431792700657563798279044168210353188203752195176858921069937986482820455941561886727543083713267867535364124161564035258574388219347051802598821397127195074300179140891326417838698737568828170307008357894047141462950715395320548384454470302353969472698833379728746282139522060069617522078697385950423603361340404889219208082782779410962091053566346209299144778257697092557569490993706070162845019053540000441587474479131827956718472728436423114782159154518089137827782341115348782049741504957747710449161683194722602527329027281512506170646129290678859742707118004981513631924154684065509108747612117653641881972682662695389684185625643563898691766274548121803052255899347575213726771049980905009153116897505505572165519283017097031065974314285669369747476154224333230336348831121101274659785317212380643644828031101191458308558357216643693600795421459789930961283679739870718384975535066536973427336864424194845083133614735567899648323395446649450711297760670868274246113521727535360695528625591944640203911691134461193838316559461497157738367995872252129516033535742223900819357673713372675780752561981598549466178223269982908474169248814726093953866073029789677666190045409734022265894071668782138615270672162220675239961321584609756274816122131248484778110133719524705725471287348333522030430388394254239902490580003436175978125212713505088272691778999452366549294877600478313914355830502615269566229241703877787751202291476237229579156126221247599060533630525522680038600511619699799300805306791764227546498557186145716411411422798526806448563891135847366736041808795227516808161553042598243727654632757201000747308001810693188467803943706404283455146552479095611774268894363590583830308543587401785197955228010612847703226689435424019630160577183103182616668362635809082471714979769283719313202673606097642886647990597036257475124340649636849847814779195214686536427587292300811259100921718938015149291074142956411890262793110626021539864425709576542827410636352541603741484878479951345564964743249972983034166093251247590789467787995919253163725539950721871695446842139882465317437301512699846974043487177822837124093628943646206333991100246994589791222905738017333898049411802382436009152170864283385976592029842852762149150253408452398632402521729129329772498935569111749885886492571863958706613172617865343275301531468905278838337898008649048087533919694164191920101102132831089857340606758719640880310366493203009697519573565997023378497386205449050982834335604092928691472919796680888369704335967251313297694166813842627105969272819580275513562506406655447515568641745157400855194913055253976688287420697992288650719354451742255818703572084908010319193712796313302462849560064447764846897782944965632612903429681573561603122440880054436436124922258168289337464799553427581196002114742136854426738892668224462603540285686940467381472481670564222217810749059938682863347179943960764027839344298897356356249243091950390734193437807513455319471131511583749206321802789131569142577642738652833426376839505412154087556372457640674329460139855195852861136144089918133868858498801277772368173642552152308651611752639664522830854947995313710143835196823443715961111891807284626193976686072122862068907744968404729039108041106810359039823030147416671224306427769943261025527845257378673053583836336054687188973350935114062744225020832944201901379302463129462508204197507959366485677246791260994951974595592988845422399744176102190595977601343992051799108056577271135299679064920908472038703797578262406942931992927123052445237444829144957503054452616656293087029726495702299843022583165389617163521604576381665597664026511092866462400145960219063394786734069374843145193205130058709040593671721699338958795224769154451002307649611041966420835597405808272890985322983039126502156441285531608507280917956504320661293997865764298002763894322181512148124875927933777983258918944932986808755009599367683583224605553662014071866034922201835961769319560870204315259561812055891478821058336626474012963548041819405460030138805218631585314320155345971864738898239526437726537516295098867279041341098200409265301398369036598707118919035145764575881126174439984763552697025688043228660894072817051622075004458426712105253913878025860226586132831987164980534915613019981574092618859530749420119554824969843732322657360813252437120673735342516941729011170512206604536461741532092253390651849662764216358192111578759750777323707829613424193720939551548641299209754302559042021121410952449415185696483327344935396970557843486798315139100223022970461348383294038107039111430872231098605726235690273147911973064474559392874626916013477753947994176666118787672909631772490476365265204465249621424015473667869928643656118592428434453614602922525331249726696812017760084270117083173388945577103729489590927463595368357806843548334157397941733446317155506983255378461482372649729036992706989433468445603735235179064193609413658589158626643314887583619362988002722194598255138083829946089796630538593109267089019740692973179629774479795722942762714093166213016166613537274984188433092663870345708664080783170035905275268041600263528704128047712453269271157502478181702939394711953509395348922715639003973162480152398340418598385141413318665417414523046809561414003627506977689087322051313984899449109875997987499545114040183149648804893420133703344347840427156127420025395304440681287810043794055271897776535371511896863162434797902829415199877367024887780136016095788710663198205161900240813687111911529832765983246307773745382914100029611601991647854119491208073035827070867406313339333939473812411506051003075578211127684965897287862584629697379404371039213319416829837980947933008091653853261992281704776994366913203769782412994554727015137518351851101734024349452530143648515462485860742568782197932638875055620465442117302499404112715181319177136810574447001050267862010745664920184291323295458107713060110860318907207108698570959197900394178100090556592095465739610019222025838123310630893460630584997618932569202682727257362469643280739874036663427655951827037823205909179657110595257773303242239925568731355097365243353511405766945633499548587158877222306385657231758608091435443471248454237854346685233028346391168591486128065511288454834994226702679461357982728681648358408037880740872014115891223238615694788423350686631271906081354651021796306408361762838624375783917599683385187488944368291449541709570737662758500603721633215395665770692658598786172831034266805915006887967302295458781950061462191957895351316948839329207249395166528145108490010307409350183436218014199552300644529888185873627920149939633735389598559686511883242047999754613699870832975586106001976312451174775035577495212417724776005285352367220247792966632955520815185580435980529450006658686254551755825863126258326913941794045839290179489853870673969252303108298664185808987197028427125565055509241648033079700630568777369800085058236591115878944380789536680736243000806472379620711290511801550606844662097309895024801066769542258641830570220091792105134675570713889057790457278362340778629351169685909083874647080271005197004155913309290662669004249235266592956464901757359019202893352898426570950223312807181477980286226961659218751911441771170964004788261610655672723817365492540010382878236698428039073254817048422571775474442226906149177018645999147043724198622266775842207833229749352172608490580069531240735933742790175278187496456321040906101050625923896510838045946288503881667424661497640764152059403743361659972807308120017941129638236193798281688013207854725470374948424972255728481942521992003528490329463566297779957772554263756555685428173570119709370644962070173525594654537296324936368091060336025352103882821659568525176819345720307490777764346611284303696128755215601524707784786429453545157361019633141030504003285912212229178035846778289353262071309173688688492534393660600593773108100182221021538064603140095009181733041850768841118935470999308938670180684916108321201189402169689820181496231467040616440374557625930770595708479031313327715706749164746848309725460756717362012417145350734629245555151425312770859119651461860251644185600401962449229606971928491081263424026555064468197645120620314267251183552929409558507999374584376839620972135821365346508100140720039747103409496872041377790350024553573361895008635779845829823723256108099950564018776346400894812981928572533867324170323492093934198758062185346721930996150823975463175145592813078144789735186496184447691114278735124903323562734720141401871777665146190380670983763403872137600887290878365413751043720675647537575681825009537702496012023970039351072824973835457589837282818417645806394575178028621110407945417348665017890213786189591880151273013786593265729711453381511867810739688970242074479866000368750314494204784239864931629401208069476780066499967818647399593626239308152518358235078039448255383216698885586972313295380549467615595462902134239876979751736711185221560368540669799038522057737731642922125768863789668060799487377405219588944374691322829797272147115179982887094629985628142217031994816602426110269132067957211676757850485033315774690531643613595059257609182111643499835375620124862836630269028163131838460838967643767830917951277380499890686349009097897416571378897279108100098811227544189389772861851003134844427580047389124577576037769595549926281379492802223225815720461883901326939533361910274943845294466411412090309078053383713396016701293878889659774201093444530695329542925121495798950558663368526471202470842008262814808551563465929689375502425126056092024101621407281672795029230718522677218095444313107982646427273429912485441721886981617480105349744685773477804019741915227390468060777233895638506745862144726533417015235876195310061029206854930831428007930156078012287026413545036922982504289243342958126666979278340645504271265895950592813576561009657717251258234549308346320516538046104780959565896510891980825930253179832121915036489747417959164337051886836007724685411348665853313475634545089714314067468193204367798846099470921953092155347940953456132905694756588246308384907313410565485849158462330169968268663816248634118290889834661537611522040321335351947024896100566893964558058218683097091518593393872181912791420157064742277840134572205976891731345194159063768621025811966063483307180617072835949609063049113011931738216352832665718138083817375872911564376642455038390043539654070128329797532208068254085031480510606101549798872239684647244636759034471776119758347994515288164787755887435042016509570736938019090282338645640835114138224292404638374380952361144533067291096863467363621382841267175219682983793050486302321294322455007550528547636190318416946329959423316871402264978872687749530386347995688733353958503757615819685266304164220976505957797009970350443205598285264747564177903521251527757990990442981728578121239151303696995120007314761829319986203171790043624045959996482002018484400827863826432708687277577216047111749985603834919485816512638947184523798387314314716546487836458383831999893730421445398470866692733280613293902565598663152588121791540868326336863463957789867606536098826850869005810568290269691069749790963457777404629722743465294610839306784185104184396631859199403277134226625248819005393511384187811728967620213319802394563056586040029239785069612187646968908840919289802934817278344201883700499744942174315669231185429903196268828591346910976078203738171527460095295443669205675608325534457016956600704387360646798236063283944069959091384093501395959373119313845743236235489167527351437935005865493613019470401701686690531721515754891258157722775596229453654826625666984121995889330032598938241538851786752600995707994829770851657372617215445877924511617305637768475462650640788494670197145494492115772039750992978237061672962045286932928662598828020749622699953582130594080322251881303390859664636706809064435301140343704414784491417601286037170785984120940676012302820368730932425740808065673253060666876791300230740396215281786799450653496670280866415742250564185965951487428334108101613015883853423126150730599251052677796830677318688718320412546719616237728416406645512725310644185418570429979534378945322755825822599706524887579802137481144618392604868000353499866138039159966825472358741002902540677137420173514181499143911850253189583258290981002293187063605563838016818555133005059638436607634807918955919151763018709068546850344903625720704068161445059347941599673319710125766999784078014323080600059935386631213604320772551747880120151610947990978818091187140087317476434649237781392789952159189163044618994647022466840048610623311488838646767573203935328209749089650967959365907016295212289349738046873094475614710010751041952717101658535796491681370652587792648657382561946997067471017280027058047249827816567086474814665324699610780390311658251330319039472137092783385914141253070655370320067826582246592664748588982863869016630087338084894338474141823850930626645865951949390784385001599003017092365843459927952319522356071483471071737845377543364003359704268311552551804288466819207656842237819459569624752888109335189063649739415232293442610647904513895967125888308752573080104483177028937374131925132988239245299309840914987219209532414051616685983014447705432442101279126340200031622026001492066144969980128716866154707461567807975629754388237049116659248204150821834866984808903010806854780931246820787363472956626323455901904112841705150168537487995432867438109731267243415319353247861734449352562703711905568890474684209157618401407671771045343857120096124014048429364082788670742356334942633058383569678216172621660446940519405137749721694193021701346000960595076769095472612657206604833799434793850479188607045807946597792678726069497038871840192509022473780485874176186247465321029376436763160939035633724037523535359730561093575414074498472096619085940731256360178812767203631832394190484492338428746930392946092553474636639622891794207756790934046541991862539400517595539681379549181197132805981902675660179157383662869762317487568880903099258729977597214981078639485902234346087464678714896158113374150967019371537610881074921666367016898402614047925475349749721700077385827081796989503180008587550964835886355315508180023148781441487004607911896511038724311897313637875194945463641985527738076852588687896144473241788950859182233631462657575232583815474447491194825066167137611049401713135989185947734700991943683549202687945825116070822788442648693613757704424552769359831393261003519727977686585760900897597387735388698864367127133505917984176103771036355822905693626379775997801572277793751865241919033386216263753724077764596927218527521045090716772630920171846299587322859619253492864268461984216372466983348712068446672357905782048338735136191790699030054542840759882496274041274283299991644087798238161313072193956102413002610972777934427069497085075285030688460010967005099701529099305991714746080418727530432971734685592949812906074782071704766275246112159233715493791862254480273865034185991628175909194325202962530566382874041921304221417017144161184747523486227304669271136667201984816947675805577785856240336577836675428245463055147506525767200022204512936190024313945719051537367674466042473037131455877118470475485131329023098990728537453821060408291437221386103811886782150375084887284792336984523684766858332928137381074954945775778591742704637623896197521034777605545523427242537167291382821668978566174619148436762163447859434836177147791830885643267950593734227624739503136926674864922637835485364770290006206454714539783964095696559307885964260870651287898026347157742278326042419850073820747954641994842555450178536366124014758428716166662792757276609074990031724322865017855590654562164884830637327938405371299849812392175065625459188243133039424152361656453211503076353138806194592167835309764282717182060353344331401316634682380596444740921476582285176688814494205008176014566059575846001656812320906034801162938310706309082422552350459778733879834942025574839749871125043481483570293210972256584479863024543371715994161410990326049384869581583198811041577734835328374906152335985849860196303044770716599732164637311925805187624437192768839092445198583876336403924539428662740953398882735082403274497777169384893853972602449991851226269106554083790233454543301656141382489110448125591163230705030176628798740907550211895521007898894219437220222010823803497662075757268873274094170976353795382304206880823338087733146472095804043284340054709658552784014911764971882016352059744175398304624648254106123206203301842444791061908103628094858849290181183025808366483347272133626304610077836797908061488400201936761569791771819908911299854897233482445508814946910815531160247415639159148140281577762337370364074147797677154048763828869616414586974373422724284359271255257868681823563892103915140094941151430231501669966709059736427738045157769120497154135349900720826526914843218383157829142518610920327924348969102801421832637942509814038914638126312335833928208992363674551712645743983462091856210268264938442551318492481266054696321962479020119176619810011478956560662245093270083734425624913083089083935887957527486756408166636177323882756650216021349282702487024939214874886170192014799426264431323299900766220026173366118702630506478550045241755170661430534729087893550268851336414764908550511031354653206965179987755704584314774535635040993633592924006061790682606379243986070296088259985272531108725042581973375224390806910217391315940928761795922382797769186149525368376845221382718996511085228341824916606052459287067987818310944804586868972268989216344003376396347843813212854400699654518612663950074949067611813611222183321721992785181596888005888805062390937148149590816343767288183915340701404081174395123134369973394574593181190609112443702546360085532425285719318707529736553000207347486524743202355463026635922525929660382136404844086573489294988461150550997354155104652116184846885058341284998881780234426108996329630535168768589982892848863573118850066237544378697027117274070825566009373733905765372363934721933365664073648252079820685941339182662365410179503182055434290471410591707709344638163190934582799650233188550949746806268001127568990155017114750077258874871082133136536096307879304215409741055176714099575738407971350146841362694865158269310657908715887509145999750373320400995639924593368431321706261848273257832820334007108293390101587172210993276078615314436533064034449344008879567856271418335127333676230277603418604949531722901082921951061015027458266411326501439443828548461483944232014571687047512889733797165671765181255523315772206989464604773675942507017164450568771201345138916931689795420488148497816912116243631851977162556074464089916703290662662339501649547574121906746969855535230262908698134458526250667747767997012273460654546816635618837366729860364214540539120679410372810523922578992661999190189786213427112595202312869486256132962757744085306279070215131530149582358387351606868236420136995068335124168938951849194015984325305594782686293274569312200309028219103633083270063856453811782529304666510084928202540204782849957640838988180558803296603453685011765757262299377338142653471166039064027110121399881361582716933166313225475088682650713957383841080313873192780340881541314399816380857045492729763596676483822266941775097107183597931591729909377517759212778163643430288461988592581010972473076392472382128429665946422110244737118984539982568888988859916795112855936066152484901833525113988531649949913724252793041566331246534039008333611360349139386278608363631779552553648719862025862296473051836566737358463967951894576256438798959501410839393170751934868449478658398136746072572668180816484724707098452568435273336025074801494625560678690472849721217074669641052188002457582223226198564621907729871432364852741971091019473481777028086288196222818271737015299603291724038490066303011111144625875000877900249519699552409528777018307325520593360802499884717143604928550734662901621130672454180085603007006348039070958552686148213065557869101020919000354006980248690514447223087902147640239744990432941145129755509783676030439060440106690221185444229467644144977612601578466374733468543337477930091521160355270020313214593816068593297873033250471927386138022844608079219149688259591061993627187023697192768255497783028497005857545130960305859459510448010264827971996513245844291859482276826602080912449155512971870932659170759876236964591190013417606990488342016697845190595526046655508561517164298033899209125248189942599200147461285620974946592215149065135345704548353291384399145870734676700551001372698364674003139132484006110728712054901354964154624546239562941980353379367860138454525207151904429398861303594865644297226018509146067316618143806435849075054631310058722671506893943762214176801502793133683060057434024007346321913460089633218660734636360104641575040990956075707299093091179624630593327623890143006711394040388514075391081711913044291696706713397157063476595029765370269121337834023722698046920031953904209423138878642224995128015937984769696002902508067651905281735566662462384949411844979023214131730729584126038549311140595041036121156166477509948584723389567542534590313338164839215038434756534125326630483412645054562952648365311057354574262364825873334826240045167228983574663827087313062606009247296420117958308315336347182473173850441784119358581275487422245898010416088143209457909955273275632988299509724728563780088997289286393633784578623895785027678241585245745846433210355345976974350827929079998783533513917981171201421149266760022494284578417147488288044559755348614937904641738445817128146961248690314131973147897803066860472202857417176910597181413860914850315279054038315135149957118834209844651152105594563324509891666177599615428842587174363153101909163527391575575797781145609975739958226765697219143657149078945588163742326324559215612530434248612133536444267810930698481822180461328926269563582770447349298073634752580520345385090536974191452678068936972273161190848995014454583661219880343377855329006278570605242868487415121904640397508682870585357908531621815277796574852736682504508875380502072414598823530799904233451224812459115614780291872248695598255663167215013608128582620615731621315218805545377353215753350543475486722478470526431815756442902492833886217878899622737207895259420238440456957847326559397330822409255717514594350593931447542404217047380882276021374160865283354766148748312620114428553847692930514101262380069002650397067602383965262318582391960996776332486386806616013093161285393546880412008293298445285857253623093913891566633139165745885390412634959440666357359476231183489474877139690768952947689923683564873999337640825332526983913170236587393871749371960354287366588675594423182973777150775181353036409939875623394274354587525766459731201688747623505750896848627816688741213327069624230172814326475335321801390487745554988730561705285559847295142582877449422019976141257507621501353298893926236633341677155062481685567924168622476390844776088897776077143789226054479286130042887996249444848823739563187090124024437764766561570859911488571830891494040230282208821886939535777606273330097135270529256888807450432628124553605807650781335480424373502847529220878562586166486343659588836252058432297261804303469097700074835074819812556912437777562968069660577565895988461474680903747703966892544111770896307994005015065869318351682757147317907432542920162254684600174881293240989326682117386627104758889104251669933095318308063460416459242550539494208345247630248402004554296295032278999888662453039337847675115137688880626998353399569383946299056288967048436773935286452343941014944972499406553951833911455830933292954813132989518692672699685216283058117888533817887851215948253109937032473752973382791111306744678311830381344220249779121149631551648577925914510277195386374591309184536236833755103430226126272626113709608769714860811489344049795808310376550899234708754977221931563779492660666222375946974831271054409460252894947595577373867932487463560068487359821466817654150212214937840626370085828189560091772988050979594613732488716143968608063043976206594041905352193638537492154207505485381158803705438105429936289289974854818503622773951626245060457574325878789603332364627966450319102061940939785293311546930512354983935957635931323628591422180614059869771006486410738587639728620555053519448255968633973781064667631670401974915014477922790149274833578241808343961761100780013821838924527513895677492029616965429733737769209565142762926422271721953511497611917868806902001229687675262253667026613220954513471017785661909607430745370311521894366225998368917375328763719629323189028029018211639228197488412075821645859519499861131726827544939742041534562924529214497800374322666241804927055726070626142821680674004537168909160326461214770205124572457812246218870422441888567551424435600712329410529909979774940581831433851601235985891188133305475582269950979499079586500914449272848654225915447428942052329389679218429711623559210676050515963498912232830239805828120149518971844367257966722686066675962973880700473916253808762412667852672106950620107923407684629735787728171261000124335738717285283401762392995008981804246829650385381952592755517932608201579889794109172839127968411026070529630526414146075899342506345051148310970346419249408157619311659015911924237780183237493609401749308919160066312673608854233950302674981398631956866572562421214084099418170174214922908095450573151041561805508963099688332113037819484673338205796092858190930841297332801058174580687606648530073922912835369576061668985520507818961421353321256476734894236221634282105858090480737590544612241713421114211059268588592368783027108549012639002195365984079978469323285864437546866224662787308505516123105734227979862155162329808745686792680030521680613510521294301591338206364050601510495414089295236765574614115257409205924895497424935930510595678722104640786329548634818803944877559187617985113047915863769925652348546914358155925683216409510616389946417258133537495922852867870082805289533026876661232347025846256454554343986741285692138680790885885061710661606327047177283202181585838887926689727675395543148438367501501228797485567214318035890493172265133368143132991660823923085056967715371299550471994978643580624311832100438912976433211742960627178445867693353105874405584338886986602968710457042765747835011913881119545654716501753923819475578569083500431374818772337496016548731701718956108499169418984690461675454762994100936137569398750333262343934813575775709815991520351729877834611622895501743596175887846718741417592539872845320090166033887975313924386889081081071877321448801145855145277517840605515657641861536041477312220212917036750150884764133642726156020717398905471301897126107157938150025113542081384477644039891591758327740727706329930071313619470854667761884085929967966040952992323967292555055073736365604205340410698253736908865958433579898188285661799905373968254127970461236292646451828739258267964054212688219610072059209339199423968127175765352988872554415326696290050826467846317234965107385826753923657846120532376629885912734078987949990817579172072429644530649072973075132799991941432403146849022818186821294011292728947961811523312903107864657391046545901713277196916184841529492802796756992041610774400947221060852572875291998600770060400737462314759367170813100862377547708419802728987017999639025620159466355961450837245630132600532869782320018551188197775532395795846259677063314944376761375052448958644531024978106968808718223731937993500731403623261833910815469717616201741201720087048963166031652300802899975166834260214109768845580154474451023847003324598739364768700334570280302992228069443149710128834411275702148621527303203846598044678121803767960362771063000639584227228055925521674845125446402105636340917424639910469970803066456129079847887778697933449205419146577980793767522030814918162808301547021177302686564830256877782725766179660417509182819902634262365208224713723173064416000405444543457255445123463642552481406206398842752291274214028164098148728158919375559693061498250771383094986500802303702182739637806063015513736364327101534239594236043716891081516778964666032130101354712483269480458783570252249620157296238324313590832333182445865888705356376836226521181079224639940463791033011505792293623765384516384528480728129276125752899139284381025107343053875852136245710890056660312334378324513521765835505276521998250894199948384783719080977261777647946839789717227978772631553001361708758109320769396235067553140107667882436707240054533072176102869762189393909035345358222807894570007669548642060438818369374260370562875464754240997158551792861833258670602789499239519192938129210679058121252519843822708046681779403788392881798210705519546814208979620022040616719245588750111527922953493794402382624806210120931513621856674052531359858776947086505198252442570528730236303199888182985383691495512600073737875293730927350372492026416940939179883660648978696883655030352747992179019402263819409136057381028691367132136457267570576920107141314291586149000520219620645241176961337465407150438211096977220945539735487822799267643852518393357441776826845424514212587805988378561771034709753011027526106320350300985803010721646489191001159525095251219339160899750649326464989024367690270480967328191641198444954005942272569791782887268524975044855236256585107066401247900699422447016265365312407228295360757774784774432618858316723074756436844673446982668097828669884880169867215838586416621841368268796200755584024281636286661508180651676443086963107030977782686828872606086620589300975138872440676057842966867975204116527729805514047824032114934804340867354156443142820263751453315868567416525712948188630522708307006417292359420732212859439724333479631997288714506759369872984216242156439914031950601680031165926920298077628332077486627117338835569543366793440483520252869887771274568301940060434422664313259600962311713102819718684186718493878147784307522950433018734983294076469336851043752101371295244721214527696962893605572381981971892127034070610476001396748816643537523015059152905475406205802894946832001046778031059497034726778500091790936194236330557566921495959638065402191780359785939824910402533870638788294823707230269571690536944548078478800910345009280827465521508636894693049032319543558691724347421212586832094827243133372358512832405225138445549975570344202624300314394592853089164827080965923161217769989516947438213809573290144428886709180150782616813322329923883377394662670110974571252553988089421443977403706313761410335242310517520450518978530173326259553396782556071605420187465459694389108438466999215537311155407867737472631417971609370167075342043674073352315649908757671832118730520693603848592699031047405875675464384062416552555639947012500839100037821063472131418481362077769708203141403500054330129071971154373878163521210741267795579958086583059013116537077315032195575865363628084238452569395351465434625260073181873120842551144747054709360678083601183385117405565893430733730503119919509034819349815188831149117238507322583446777125219686055822507425054325865709323164033370298124756971810538084886998691264416453205378028278911258515125383634590760887041179047380036997819050188682364905762646723711463819931532997441668094497711818779768064493778717513610169013661221233809474556246535145428517826832913724702481836903271027961418922835691293836560098319121081043424203351817961697668192136261259736823732887305121097646519108092123267417844733987741152000376189612783826752900067991360676414881442387804510864596881545582358722046860422139161902464431489314037123706208904584264017898806361454387027484124164049354260147227704744835923362016584937111005198010273936628828589186456084245305256440695508280501272065698819522927174703696467697599346086095087132855926628806177716583385717363119790074737826486011260810947307954016486374063438553769079799929821129023287903900700407592084159871693651155468023838813491727943211365990680899857479081027323428218054301824471294366526882380392127432405585951962468551829691342809671229230057875942155371168143760165831510949104043647894495614336771304974380094683245190967344610050490842315489488844156686770567697438556460471295471525688794322334886814099587052779571770318554352626053942781077691694927774504259109091548700043686722344660020364843542967263499216948803359944144366334854626029656741498615540863035667616714273617470807174795621479259667809516088194022967255353506775462641909194993912418929129011706606044251703630720494136947270555406747218158897672901380287873251500190637954058653205511556268727323864808681657219474494759183073627401681329387107029742343634450447816869275766604732818632835839995403524528843801527122216374149872306843014685836693738093939367524192094655243445693152158969077423039145505649479011030365923231818220019557959474672043239686599891702674693687321542832637920460252105040643607219075516763365262721817852245791000754285441802831854206844230972387802559969030450278504745112600081138031223448256965101664571479399899916211649190102378369732212869089544927554089479604269505648894042946384033525739032559808142572685490565467503260605229103332993907263744289156733497789567319634001640556509630439556804139302541565670089822632268917114300512834477195503793372773588555963107301084631810789233363637317121926952869596335888868462271080414049791237133508793845759529511685947453304562474183508867086097705742240927788581398477478565673249519348248160808322912263015688201925288763802305261364812882125079808264444189447669188845748586868377496650138325946581533026752014330630962536118169296010209838981136852856182208818670092256663962987898003724348929087822010235917727757723365400152147593543972116133682380247713178203758773796245678927751386025762947632885241969092032084141173219918384516459848640826941628643074510322366712789628958724568616882248159946765745800623444196100048446604129291145690482791272844116450598463873558773602982543966639112188099897126060636373443004064814694617228061251334891969307263601099644620832653418152483316391354867839461988344981979130908584319893094396899228006042524729181986295468453186946364819808355200637663288912964616958682401184434802646249813043900413682372273924718992176885803921061371649535585338801544842090269166194198931140394454326266716803655406866097350833753784628593350396810396662199868945268573959187510651689363911015913753018011486545736385989472477325811896902072784865127787695775091883128849281251819550118277356970946876740604777121581672893077603396921793903488112225438763032892082563917246244113984481650690515927377177710604574939435727869539912245651085837503689035964708863026357757538831291619571019096524001956265724461829914548949478205203906183740201256449529704746117862700538864143424815355381098922832547904267728532021297810870580382206260123891280814586570839647504485187029127789234673077272987747038677903799576206504568594731031342022237137226778213788902653046763694669810862785835285547452043942132248123673832506076582099581158982898047340255895039678326563711305688260270599223274908709805048823751875864530472479482226952211316694136181637003807856914259376686486334936850669906584878743794494860667240537507027534848867741736761575219117599144848965579000004331942399012391025406032772300124234355693609466133033866323295886862751423209652298605798935617691590212943523341072074651104969903296788315184626333274164940448880048756414602465179568571107159822392691055766308054368005485829428903532374099520349229547692773361845617909608312481522080439420484880770304213847502723950720023274845978153589621616835130550102336108852583528225912622619190535194335559893923738688045990357137130372345845276945690510082606273360239292966978089774816443711078714590467368440717824089319707692153956355814496977041906228836831546549218539448915308626157153283550374831983920943832336745672404971400676990675155032135892730425051815667984632400274234896747884559917109381556387072476922611412471167065011032783619234106578001648356966142436955204432589219150304005572530227879241145115785180652406582165298855470770512361340372097690151706873687579162262223206743925993091122700960958920576924990505199803964466279710256626524488207954134783092722708804648100446803948428842735224556268903436704622481087079850075133030407631771337394982123099198018792966898112000419568995742331494734249460982019979027572136201561748839631588544555850578409897752730982213061069478900585845175115099577599171378583244336293183331652808405535529482667824565824475804218407347842312778625029066022034008631192199523599573186452694062573730508227552787176532216650646205840263139169792687357080943064182683452971953165826692991013941026724670238707661733289925148194226157534621919559307948988899790797660358760590216298185926747155789305440054279576122189072492910143924269759704494131463850105236325191314497010323819677021954014978242347858643608810747247519372770978889299245903850126542488138912289660093946340912166330165501698043220481155295884701568386590574981670478862468363685043394895202695949841145929355576683809528392392088276884002361406530213700142415232659588964417326652402333372235055551826120264753586117689665209856595437432246839884615197097092770448151022868906771728581064446609119788537908021554390612241658501450990644932376372743730900431469546422626240310075781449443784452776467044396531450915080593892228109580530815437395303365094146004309333765674662769262581532165682644678697863340896125666371724883571579159275778497021002923504280809483998485508362952129289353868871451604898027734832724710330377191611416622884103950738782312303718115973957400369545975919462788062135743416061939199608814033144498682437041568941469435161308297204606815199491764702770008802776401722262927762420298720570073667093073251321815561649502483174496839254775815793769657885283495984137685139193748305851120851921912615355770070101553559830536329581183758453294528391245625679561011897165483293217915469022261274704626163540452586761746833775947587748294779984899703809150850044575810292742200360410001134503565986079257117235259947576062097313843722313782455399621458035934335010301938600289338868404506557092688907082960515112787643295608481141128226226775187990608483073963525368408797511867853638672133961708614438034935926620012315773241975924369131213903322560348662666977122058440622459222985601039817565955413981832086703186337930712369860685364878679971418471094088882398310135057435289198384063154005828768299594300888570396949388865363336991795284606023470201510645506883017900061808764407967970953461654787902223640228755151570170677480471934733440709830501402249551812610896137491538500961501715643499936077806197806178137027353492904677677957657594572181270332205911836152854848410822583227062019619163056181573753103926253891132527168962334838036667000627109926334839297472624614439543166063798540712009773715565296892261139612245871640719196297623734898899186095172082405387392708325916354947100874679336952164541914727985332903880024791309939749298659875489026789268560750066893000379984718952186788950071841906157633915273307002126967098476482440206351389727174945773088206910598279706093764179367923903367607153199686333069913246214680607508498251148948057117094201047520864600472517210032907079847454010162817524853448098833573916120082104737257297986551006108859381273396523525757242731708591347710060504241987299554339465099274580646334351794588552537187703141900100049882834590353305235189784809290946522957683065771338547248939116075261118638832097834242368743817703438910930741985171351956298210521573009976034466101203792413212721480086621374127044634135963123921172559656401169185761039946553972269886973320558915047658007211835297130878702891434166401993035077138606228460165042632868161664231667946128512906346679853456577161191643918831053568038535832542575511130021492858432189506714522194160441821004346062526964661834979692251631681194161137716255236062015552529330412346951207719403179890802319761266876174215531897143365557305158301677542295342156997783976752047781292997527854746380039160137587016575499724788630397236823783141220851466682129160047456788312476116147527435558203907972747493217702009664743951659886063466404541321064612236401465567917025167877793996374111858601620797193500478522801817691109083245494109595629690721287230825488532741433173140333558505812870127588250340755157497727440591763090835409240195604125411799287418278117664686409659724367503487638111339449597910162312496750196633258229293626258882032214280838602889759605752051726098165655283237834527372571084917251907005961434778506286613588902541628647249054347374116395527394281506465846715113261143618935258497458229216107532204020371358032071161754660324810505057471764018161269524615993263869857739578588659219766595859905183483442161157953339538192051035405662227440520291486886969930250314489545517942712445005070107129330874441528953173490900515927672955832251043695150612718978005581022333051804891527408619569381636529525118342342464251417344652365157559431016561912611037961795200014870027803193842084054234804303625125994040489051446271204743444328684689493894562577779663680321571559505170417917521721812266358528548268328749476578314725822913439162895797803501458411945354691574692142630379324533649628188212087471064859897278846246459742874668309059749711423134382343634085128049362554121379997477197254450977567759057650741646262123340241485925584478624490527480647467804231830893399900145778846407504276455674198832741313989650234878992044682744774203267634766217000324581720355521143325586695583811058969729646112083838751994139790444309114872725733769400475883168509897816002379949986908494506883416234106106834206668224976479776921889728508900343840735264181399490956694190395614305773671573910273423783916491329547631941327499559830481241538107467338337798911045869349616086399527407963038272361639984974967753186172220323030520522580649909896377674510929005518165372703626515523137061158740904819124768546045636914680341960627554113584007138423215519025269087530028039622100135020852285804705217826337068532645617698266784757455939376196086303085917710269148678482789826968130470720642262670447840058636449514568290460806775976236941978669336513948856558097022835212855653367978215212001872903599473300789662238524427194652754981152383987233385783063136184546709299811698823633291840940983560966461890897286662379554908127582852818138049731619027331674824031687241439708783075504732146581027620985996654896197886861843132727700723278016074791985205811941849682782784285712365319282370731649687393931248027352723101529471422806751064019918561349700078146971399679789737364085667082818184990307715069797695949618973484820091469494395538486095582710288515318083260020641043072720586417100934919654575199584720187774394850549995487727830481050589545112149290187900533382125389462633520522416235437095349268827523654419942949410253874023073954483046441885066053863942067993745292506826654717132624134193880923507138479031326085765885104125287015823707335320941940572019074271257676467071077334233791747406588457973429481137365454675250012848639105729855398158406641357893698338240531607889293738017325994664399478679670296088984202909037658507430769246415806978442819311041056913851072629718505412485588028076469960991420555060435951375860289298404795566472587280652724118632246504085914344904378984051738572226015307107276686928333165892343161914971172709885501695339355187254381850222701340036350116103520658951567258261314618968658641931855206326835465868045898749053909982313457078859512275492900250117019440890204448719025872484622047545527171808535195592702864029395185481202881035382607749913433750013126784091196332185064263898082987529233184259951389263627339859288120837293107730126728678421616961334541614971906053217162745104539040188846699004510162642050994885365622060219746540390482263198756435300243946861227435642754415817150392716025616409026614500465395806178970773369243670498685308669888590563888982409352027741832593179893052250949886293609658385566262661493293501396592831305412102680739221573479976078875993028896691313101550191432096341445808997323774085600120645566862625648252396512398684529242458572530194346105728452150496805550026641907991518535685444023779036742758031530311755482441629873408153502557171155896366286167182552550032210018612404524970620658073361938036329997151238168669785750454867891648172200978037104469797227682280519643773167154144821604595823477837724587117971093845514611244742483931561810340044388742755148333304999746976840172849826532519782664835341051429208437158603864223174827650929964588843429590939525411470604004784338554414187791522933088141534152580180128910767010783152346106743176441691039028870735166559895680641884003724699418804572915556491108463857314297956697821921400618106254745720536077181699800546650573837772759742113397932019992191893545767995604710743618528112310783098738282416850363992607208194926114081496911424810843118381544279027845388654098612124852985609731514742279793985082050039397369719113638844076691543244803643070805510399436722547091920236230553213546767849556850745295509370815933069303703130887185567830563796235521055998650990804098161645702372300521800821644307384325585505976928667115785216861396038802114914854456777153556571818590263153536678767298622293292842003950770082654778061533522721616523712944586860358342365953297022078189460107738795782174657711818639667437945168587513423194805800938276975524203879665927954166446232358089958110083840859670972768624219963225351010447470850911467915343719150205075806750831731788725895767181357767034384635273498619588961107845775805308054017094386392004981582037861321233677282595001789078381710039430894164553784499694636987698310374837765752741114330859706136245794251634802916931303284729018878385179770411182543747240528736267233605757219939247165361891900871605767203503213040930791563268702039798763731587178468680353860364807614673892708497530491265818271365499657722077244055987285096859283796988164685461790574501723435797581239733558263677418464540712808169901610960608964493976540292940290993807309624684664416267731334319049533003604781736053589679688947286727800663223707763315644410795435834332927263458808269527491372184197894383766352848003451672674638003234456779838059716302595150692001798286538887017118574356898691231082322976643866593940559795132969644407667611567591764081362203164572148269295674423863937950947155967218103589683377991034329975287084550475876676648823988621511825050742483527147712621760495648293543998297615357959792321851293132729981330446256459905741526317972909542952067658329722460006763401638643961027529469681473183691190260201277343859773125144289807708951989824468273747750219902398952775014446533714064119938094600767123751488963236292868075466090013961845551180111021132461982975577149988613078332406618900710009421351846314381918566015017257131154219770843610035897653601415379536999336578817272627999563596754831950977066089010721140862505698353644939538854661135616660715504371026807459205700118379650473793045923689307175177348374213859360826772715302274871923427708627260274711206439056028617915348255761999418997300418611029845387669051734564981054509836866732809065685670728136071763636445490773834004165786268759242709284664700067006394804787619974937270917931072571993009421628665538485557827482786962657768364227767683857349774095610966127442638939647024162225540308760655275911207310358211930220507504578412869445242096463082754710272104243728668763500206434334839734046841675468276015762913432417451585655886782275381515418656731585799812313609899986816110488426815910538316271893636209284445884163196467096497889934790544856950538603824907826217485785138538501387061032126530708839878370521240505108283749651436275482751521495629576567477480737259512291337543971885788406013538559101610810113815310356331310328217700787120815677895228836956418979111621819830241810530845080492727068785759790204024612916374005807727249895358623778154740098799135016987312464241260308172031573121623114666409822391153486272670974656845387812285189525604942266755699513457089645947522564710218116075145314579241383110526863975657070651900206565799234008246975042327624192626232386539658338988636274321607452628534152092574653388260353928923061640963038578759741491927451458549897479920295404327601931779716239683895285060011045188345864904520433493246756701595653893800920410935442460426351348900996433919915694104903622887216508345467483679619495901681857380122287075814700855641280558999941419875184910514742054953301524151623892376467480701405111437698979389034427570051192686305356566259432651963892189612940758407944632512772067742463703194899614022813327187158404618708732266098490910236814029910149211847525197099417587410489714962783274338149264893446987285143174504785955477974568171770083862687144325914455538879885936514989154915533806207631635583095497630427472254944840857360357171552840679952912204920922549273579486160706287460118364220132430986001354727411636816417391705697426210459952273520481054348791544382212641834963132395286261680106490919325790604115449340412934378726301330926350875061735257785164312195250860673358443906002818360778239959487077691037288923005741549237844708244961903121833299968969624652885380464943124413961743757020541058463393084667347565192299469644367149077453864449206353363585023373537675197228490602832472754374259610347225579681199209471926333760281304189494322328921376788947204837124415968162390264878612912118622950464121124680873858701270520383524438768710507137179432021573284698867559117748349563325630512396813356502261206609487602181371879245248122551871673889172390713223486866359720114145820445348298851100980080984063207867896606268363950303377572301721132743751556380573196952874661932552921237956043280908674084025012564934345957132765574930930141607251161687108920827424487115013539484762204542013177360365357569715654272733614327859807545400582029646265208228143240723736668776889587283136128915725013666807655458262915222080679620360058096611134981862662369178938354284921272218138011897579219529430030772832281977627987834996624330586983776608934977607729507928973527778396463203151668166717229810865362272847761986047422976883288155493108865864636039806449805684417759516825264805520498485179233097249406381848551718814946429065213340901315541599635843043511675575142401335476367992431707270426549405011690297902605706280199035788357617834958021197487580388245326873040731305904028527346995275961244701150282833099962083550185630068152046477994973689708409916002204357044825701263671818744942401945132315230079732819045335219758621351103705220900263016245251667274897209690105678496185049874638553099815917883635199259777770920286812214964825337568741323814764111262792918145448223759630721551328658272134052730189448128150490495643817364726741218377718094007216745650631887516695113660768042082178734101885564668088298949505705017321987110990995500959808355151551538103724537556111853760414491015673398532267894498108150540429666285914592663515111846849347929978140396636992091522984849250233812934676318539834911850035833368780424031714547475497874790776041138812269152620093190395915363598231204474315512399659362982823721859648132953514027272164606849626519006334236013293075835221276116642577003386981201034411491304767262014885504716724655425840256458945240880378231490539981118864525951915395049747164650236116249119453750540262965234835727836027663645277696464090176160773289643538484401581342761123422856643346200307841295487567883285440633351647824948696100987713589841720602913715301727286983369636002614778749355089222255023659321979746940148894364551968619469338294178653607508980186014317798073154307038509866262955949528617933425907442209034488960299323353156133207684390966582234190764128185054342900459837625086630906225346160324433312175464020984475461697138983192719892521946701861182014846591939880245829412402379537101670244506635463413116507171585205435475725399194730165109771065959532271747005332881597314370583725543561258101130428581869784903172417625420752482604802474055008673165729147784434209882708194961627969041328702502922184109360247214880845413883619516805131335021881232394785216592313655529415840439353639505374614951207822532705405645763261120322981367789862111423205016644971838645230529616040482759004134718559720896917080483157084220644552991715148377481280446793149489022275713953379842447961172554617262733908981630273563355485051577164211291566721199706895026483048292847632348220330577794325023190100734951759415392982832333999014891115449363979878201602571720585628865881675405046912510427424982373446640171346441038458887684119997496616320632938323740543690373073407534615013161841830707574556844297789901754439501159526448035836678568837180684615458972735146384677910961488215065834958063729071458984716435150298378213265140572688411084828431182442270021580739420079512454010016592988472798602109066052821734973435216573171004007794641997821332835959428810823250639574253201329387561449204312157388326894014076488872903320826001861235210333711153093159817745158269466218196502077935881555003584575101696531536903552531817501372449317085721239975397193718249559179170081865531817806816644970952162756750244434900036980261848071311000910093039511760913150489939339699697296811379992962640058937577224392745137247677066331744902968720703886407601237558098322519723960446855504724456776240433756248597211301555763463140796043399269573469232311873110573097964876438708991445385455106898074413306307756223230999082267534328513586854344128053959500136690601247929911296008198587478715537563790674096491451768897159661030251987624296701283299851051090675145163224439548359213117749667987491549148394496426065570774729479939738719185867270483912952187484038205369952646848769172435385223682382537146049592956471481127900145442951123420128296798098348403891799623833866531341529035930771628544502869099881671183152026422521413405740862668563543520715581143056404080081520806484750484481778956372359048775599247414436048088801162650506049964483315905497669053932422183416343130681476732162120071168406582511060260768911737646929719119601957034514484184026604951462052874619850085126486996853512142964007015850735491167413990518873764288831384361590795313297746061761657265987731757366291000001071883263299295430863753633086152453758352331121062690505760487302954766333204652398976578097402903832582290510774341473054590816860192782707164647272015554620798840303931137200627878014775318633528807716985171828481768115282115851851332598920021504795025672913761212873449328555043563454457792973454213994543055274322620263858486242321863573610223206360593927787934348460791396758272823482514626993677159710656209420590064863410643313389612906731918793683064577871455613556763465209292097947060583108096472950664452839035154585267924377380539276508930469058331384453834342709086236503378487403345279119427493987403605765284048889767024057172794798003820509164002115244804126954753670995177266016538817312922973438140812114520349270550096651813906494268006658396123401856403308133466434759217053556267067310726742408183455311000729885492657717775203311583204455250885849757152067981943946522103434904181074097647613373380655912534972572202548828158894050235919067390247950123304760614353788164895800123932828517002754892690725873857602785918983703521767282284824472806612356000261829174544312710959516736958297747000920011084319834154584187989913458336361577526729755956085394411535274900315036821344865403210906682154528125120548384914553619266510952480171675907699231125504681152385226846980461228692517173189225758662990813985864919282128490036113456749611713698911639329211700143152224705615417442679002540609068687695420137661933058220344129725345633976302881911346707073199828969035252143540381260125937538150365577730813821167062737812376753190556485705272052300634312651756694027852020560927489651366257467207332944967133642025156024563877185088400840395965111408905151486143509114499737257941705328649139225980103471231787427815613382858594923818293448915397293348745523542132880949770808466080288992998740993559009265893109599127779746087886112151160257476931209023967612464891174322400820208027082018314443843572379104188419966704253174894007254278617457776647858508449596136042649430232040018651680644736644027024839333250023026076689065122365050233399292010250825151522866044909785787843334288502981249004072312708222811200239270467730611337751654106791380431226949403319968224452539455326333991727665314201876764438994892814228843155851841533936548152235167171442121097552563826621409002317311673936334373453621148283200278462186017336936898199538416986269978741484833931264069079849530144740540683827396293288102280170870011646015994771157495369916346530342353343837000787462177713304666631421718765851578545757983388728532385643889758227764108755715786645986474883437307340973526297316943764357685369930764804294120866643406029773855347054476789397359567484416715689377689552360980612925115388520524470986380622731230297368797378241296962806717517070176472403867940668026003923972800996826753435709362913990028166985843258692630671906463707959154245448589955280502825502528513230529250913189413813575857539716591310412103559789814878063877479073426522466080748765361474041540820376828583209207499520822318816080909632171355964849162484492726879301535483481417553384625957710857172656103374860529565176869101066057443018553500595686362626237042862262513428362003821389812271883765020375746442451935921585276484671185296235361233029578157329323878558352555051294009607067448761876582476058771582504510932766170807196969678924825494442582229185278614842358949638164971168381542624551720424238720691140625181545682100536669472478009644403809488146442098430903109738890143049641869733592631277405999574889168957879383429107444345040928530236318964129271778972015132463036123682523850697111667209743114257357211707752443636496672281933445313332678866589286518732454164349850078927288061553176108792543516763234590413165947721020605069110316738375480254688296670697687443940420301379253142331561260834490094626355686536327519676849356897190050840666797448160890969656504854805938436489201459696973770115610965072795473160900806654952948987818195065908100384615585477649475772475819000917893238674957614015955251438938047615610748606997390402695366162786550423932580185801039345523130291194045912484796937393408293348214489489402519335057206294574595138332030043928492477793319652980952514393115729464413105001028933916674396476176151723009534645548643578192464349835894624817859847430846101267422542236200864181489975695264273295333991741102314180209168548085189485305823441839928597871414410650712000353250573353332010731028132474820723349755537267194872002088932164576516303470816989449982817324249707502063544725052996110308315736590913858258849064754714058359009593065180929763735591003853646482645164691090414273991575172998381780254674135035156065857342328769645136976316781511568845237886187431011790953158407058693649323144757287586188941031308714389098187536145706966131707632594915974085411648671440191806328373253674856521328712631262527709948394719105584185201960566983717343454143231486430141261895365121551216113224579448440241468185462242867559431567607709432369095061964787505438435762318124224808253827381840174910120069491591209942641848839999869961978802882563659994025832652078421258392598271216771548155298491298104267187165907074648631649871280705698820115152218654398018395264973582729175153961895093422495671545381980912940861288628958318630263965646327608798061919025445210223002848667829570932050997123101387700122416266455175405097597083898223536961112134200072960983891995286014316278192837516118750833078056489323098033451908670070746390347991498213730706645581593417514064362557094724828387464185592777978037767079075784443848442928458945852201358937335841243730402865808378172344479349669559129590589462644051723780782045113133068516566224381466182563241765600688483215801776324022847915297364373702344570148842650993498489325506831706934385942809125097694662428614099406612316668038677056656241206827433315129606146621187484679858292670647811193191589916897151161247988554097386933988011841743303462202608032571747692510050701332287047174774329450308209045437316198741030889231613011877271541904469665833496552673648463189502045322551045051658867508439781560796150734476843437993484465068901470449122087081029231769429209198895378693562707616586036879174175956330822291703743440748149163874567526975465316593654650429383629886562473827262153604651081613663397181215289842754663900805908554264968817375121382385797311608161437243051805444245645907692921182572688697004363325202225992897000747849268096823391847265618412577096444850197449135419194187498668555543245697259548793667181444507091670345665111144508465647197668222935644228065704904838632352802885236598937333171476578990187697743434686133262879677151630064183823400508573442933468347152108630895405004576223738974335641227343422113268744821752954919380355008083787103319564701157086179695439783905571646329569888173264605862917131595465468174567254621983291982406206453448710463548472387066676857944492779753524960604626159745792417630203246733603664323756175102127379554832310325696982179949867068398634285377471157429358015119323669377410275917301728193500829835211588500807410737950365585320306631926568289609205560076479427843149446255212314722421856028083895960821330108638256882256513426458588382554036658945095026941722808516077311565852565949317719983851944390923518579155805803590735471717664829970203353566815120940600476649512930092210695124185429442496921591014749540398575744273991149375178139424112982592787907687150648714406747278058219251181197157774866667257617170792483090701091988351184656765808990054082713073971200082511461491179623024437814898027997553931493240912178602142182477129019458723094446723415610463999223117401893577932294607161980658995028157403979915406294441775407896556764580379030220756570324906399032723526465282954432700967070951652341101640008742988756407545234212552664129821632733302064855362001593837900484990071880071184214590575833790117965971220686873930112750088593200724259237315484440462385154124159141253658023434267330703253224925946911096864131117955559319706490263647876279357744003949429534401321772716177556096280692556450773515612799777842214146866461479141012367765573265889827229278700286477522812776909664168092534169944225882750441117668290160569042035436361630428113283804357364749564841744445135933883057301935546030789795559020790147206514881797314689638206939121901172229093120790668710568684791160878250161239122839889031794932720370360630103114791498210875937998788665932438558786242561770074916121057764023960023592113681365082906121752788091404925881143026377538601700259061374348244258663042551383012811145305360750621587340050957933036025379351910301964273161364069229236027193594707534599474516106784421239665715033054382698406825708509822549094951429155435648419193814880412604881390759498902357099017864398530356952343418019711063234477848293995713711993872860453538699607690881413760501203776642493136693229159854047869708989559507064621804581924970248130754670453180294433992446304696779784480110254083999336686730083565494957909657112861494647999951759938986943678391795423760886734822822081403152973395520174794417147267154899175944094478395583147870444433927128493411696998113903272497317886467088799766031770124172983471487670836685638257146571604906356992226870971142269852283621561162630633513534922567563916145415104893195954485532039863975350779562728821073491191119084317176268196452204267841939837476713653451558405652178276225889578750547611126242833121059712308108688235137604859390072286550766789227709118656119118419804744808783831337110128327026375160176149325748213397124784184636556421827447637216346534617279131079782324884067356902492495557400238511152424956815962945049551216321168799273447411457884663562406463227886841577330622031816103862229411969255862164694948663890570792335279136157358472006870997957487431316892248660832696305900694759478652817738157365300504771029708889677713172656856873271392311950388652701866995981909068457912190278077695343577165477395160489824845433532038982875072938985349782247870573118239834681247768922837509501613919313180430704267415514164889063928856932793204447884839846009797996443257702085664895780619685393013681280772326067634295798616984675681561228582805114429030945484259062590322931490319715178966570857007236599530373947933124926323094814522708923113767208200798444965948413717493875531178390745029961935778976214551272528172776993825163963200175245863727666447862469162372525749091684676614018040036358749561426373200301569803814069085228687619699393854912042742281076828281879499722304636890063202202751305570112975053561246922296542217224251255836671287408575131411086593311806806451580379288443644279470469623999892737406659211953764895553662985414543679271087554534792212591655546129309201521967123649266791659946380844519837344106886269498751727345847130642778916340255067750648832820837477225543588264777140393082068091071422017679867131422730570139324429836106690411196561843467847511845568145325222528514369730920906182226682364105808136368436693749470537658139828783667796500687610406737824099706110212476053058178164121408165829088834017256990857714336310386450798898017802324266093058853579854640268584776277008455629763612805342438946700764139640668507565415470128560344714951084711153847845467594238293912551265898983086868973676043291119497030569120731835171614076327079365973881356400769644860960299037274433780369483571219393659533243848775556036053059287722272809606787281572866239013047138909407074561606640247063258966817504153534480764227134060324907870540335888443844694262768281576917007367937184648632223232098352060412794975216394962535696872331701209178511415990042753498872325527891397978396930074732780885196667281346709640308981631202941872257058238476386444800870469299385455642769494778751496157901262699756199782646027110600078957553792831416135073687306613475174480020945547322673378111048179013808178637292171299087558236561558309241637035596029699668644562543554390135727444816980844954551697481389258182735655699830583772951371841374384995470366114067717973635412091613132382541118716275214051390678853415232001370983139795275633545850830744918854119474861335105339086342899700328726562200598269116239845288444621328520525337250369529982261445606613518912264967580861288336766572383552439956243102539486630368471843033076826015831173087422246769695431374588214898783481256959421970334774682460121912077820264514160269397216847688415719667894757066320204425200532237745136503996601745773228772172669949032980581617261691199228355274206152204664595632191842227442591769522223131464457791284859117356234311293420796680397128794662441257220211592941396481736895973254753267422379214306696956590120772283716432700042315140942237818078416504882182195669927348738716321140921661955713187475292902999889705318399956657358715870624142238374254317123276067842223836568648618764485268812211785527966838252245976263747469855126143693528691857377779242585044376504320824881565806870169809172279890644647126209202976544967281267213206645061250535491216896882860131034243836278598395454625208331378406998444298713594983917518973496933198173097344078189917280154906214647517499232684103037117984029837136162280034998740418056447106243753327658816160133318707603230199266524854192669429596352687446680623469785631377576781312796213632475383697891960738858711955965268449763540263931958889193371348576393157495942856886527029902319555439581171462796943006818102104588191124284087942110515858059834822222136436602969274751023363695228888019068430841469204685507350748625667576030760551363390248637640178214163776276191061994969423503982759958278563792683604629915044377915626561726860669512864702191003911262293014672986964678429992151839988526032882111602155947673294512665104273228315499508976631466653721921693118945690603943710975208116168070896205410110419628378833037066545530251408930634658877964736884658989819199832198058907264718704382256778695578499642329730395121314332128964123446786516461964979332363057136726352144373333733787074048269398228356980028582347300378613567224646624560327243087515323069702315799805265998106326232462675506438233760722825455788992946867223064575195130686961558108650390586549377150535613491452244195295969870625545299158879734313042114941804989096215129443782420078409792326086925363731484662750412945694127493432885537869134660822544191434926490548193446009117220435994425430218941632563700140403205965689752523942850550477854072620777297554782359884719825896754588058990021978894684973395944485934638930281392991710449907462916583924368649782991131212538401398695462146203420750886291400468946923858078208016361477070125211626558440959835262502958140254226940135520389863688336008669008954721664869053857425172885073714257405007941127610241701279206666968090298231587228699100015832404792090758337178283531075879042674292044540598305849108987916089832413244908751627833691452544683373383990487783158534639947130726738030240916969815352079539770596505249130467872174975946608691217387685065825302260185998137019817003858680873817187116951237056320340406163376148254943909427648500252279132477729120249196292995813101406906480298152269572435703191415554017175224995878288831214039968051157112018745029489637357828895919306223969041321624834190782937396653053995499933413626739795967830315527078705162581437009482279752871679641877335943031198873679243605578310918190024274535940356636117611515535266414108634017665625369181728878635245130013037742436487086828078462618125056249663229059403529172963386581419584146055334522085356963936980889795008608881789068628426566173644320751849756772950416385917999163220496779484993300612158438604332760239984455765352044999299091592704108049642687572010308844270748466776773204564830289797962532637479893277426214208266266552725311876386865482402789727321954846397358648071838371491303028779991443780330545724963284579529053453121960427235636960109651025404923243972141529231544564748941568818400838665569111917417282930427251118348150184130151015872336725582281285554938545793926930811195046769436697431960980241125519102997329179871283314131211499602725630401264293270707630863961450911255357904435955805970329993404292207282911657784302528706837052952725718321729137310428745169121288945870230606434029243479870592118094149736885232368994840260316176306415822930708594737277035886493846649399320254900592449064918923764122963782343237602967314808126936051417826745434038281966177750412984122463941320126145328777935750645808064356779177348780173746512405180222010704260400009704938847772146546428171733324381578779507923314143403596631254338059170657281391507558006981293734432274778710007360544025604831236882832496549604837399190653858364496479954993615547333488051342320851998220688668869296786633444838251193360436367616944040716946076998229883644222447985848376256041546229964554606283978924934725828423965638727498196721536621311503322353756194235371035734151135668970910343888536967350044674876938867359390480486541886135078407730385420025299818925893585977097419839939817850354586457434865938244199217390201480686291941517220385389995696397186853504209892834629502722422667401126481755696511395746429636765496238817237910555665080168560972829497972624449981026495578711484695312496869468317588380298714107321740603180074844345405318214311736832751279039625718846365549628328010409408756383439198963622875093101325459463546290603074595169754839178573928338379654380451114365849979201329544419940160552681392522918120686430429162994815148044474966065523594126767572277877746128912255849797825930379011637317720485386337954923905022107498391604855975222052508938041155222518676962613725046464192757487172776596741440386740735924859902328258425665227085531310387200184478504187041556495384981476466646755772945606232802017350546764934447793843600049472250900515620481938275841092976152154219364310618060668575603508142764609525705130020331517684889683275249961097310822876202586947732392295294193239620212660680591683791729913022867154453446130552871482268643497127840803789281160728519962435949648073100108504103984638335647706673252723074297613385798795856290215027971311725957887374571645910213893861431469944322852074749441609994197847510502302078132116154206566122736655233279210689913678577983015457982758497649526848835966902321983486392864586765256920985522516607803267055346434643810727555350067871168248177747810027682645670165605747370444650671448598308623020776117325174200773981068462313269481994862567647769363522747642515987571065899043731948089186064623637155622966568509428152304369868185745772045100359302422843368049062935349078558308979645000645949703621358381999126325879286113207380082757461964001670232092264065583557721182620937150109789898083155491548895073058368421353392082599894585032481599702892611373912153632661184196101060341900004438592252068697222654050145622682487669023297159992310629747954871502946644373370565453975149326923509133283422508801907920350412337883436933866831701299783462237819043677879449982737880074518179330068405364514614201625618058529550273776682217993410829917063893865675624790640613866492197804765600682483528135381383419003208529715020832211606270605487724428618920915809841293782100116899445871736396286048952464053381803861541904184230805383686699436670716220424137439640505091261171017604690906026115727329136180293910241529848741635555361607086120594600595861263044359005223532839670832996466314558052784121970910380961954873396983285031326296710079806558161152449912573351690585798668424466947599095922765069702847576950352709904557953419713488096317479366143712891386623193518990951795930557026879629974836287214046933472532404313147803410697974312749923378403286999491263920984657665204712927604812560628928871933522234585453914024083560510486641285226308388183619758761418095750203603979650364026234406139289159863296033808108436787341543427365153242367071496870919362419911294284899563183269627693792612495809131752591139015986795727439855289708675407004967527137184976357915317198220312200888774338510560245942649230040311745994906871509084915939799911414076037217521273580271070988909234947392820323697462321362975563291709405441041313000705907544956431913944180237337170856070135438548108190761545793241142121887059501699310002687916751353532617203289573087587079853345839550027125265753131193217074019246987964141734748298454419719019870164771244932551181703639422079478459538290058539199980356712881705585082986439980569387165781957405969622295036105258795394491892216803303368972632359007124809126256877864137836729840409597459720591263943237973207080982222010575565520306947505190973826524998540264484397926850422200121201006193224286807823576367402087936237378292336469279592146206124933693582037291649751204319801309671998845662329364478085082559543107549919376434184989533816580503560038631936856326091606663682314361503442665806994179977793599832857906815143686381427081782053534265075135176147468330383506848361431946045292889272567663718416955204688993734279736205695523037514916404316210111123353109808399467646976001295614939012382554161701485369500059315044044399573170292108511900239553642248036999669912615412331276075758191255499782398360531395963560910096484210000544814636705945498957646498579176776430564970703572305483114618067028699604178824866432206950516771612576163873175199187215751447741344330569688009257645450549151549928558947397403923269117845551177308412169235988754029715467419694278061433323521557975726650427856221566770437355684029681722612190521950693590223702773710810268643494430127796338112821277712869058602980573246039042753911110974372287323228103253096666334528083722959830878743031555292488528612856920442644446203767978215394162139424918520481157106098408649867995025941413102657625127708399014368138985884120200077305279780500469654028216113085481741464391750403753825503320258889854235955589245623184746041758183800580712056566056144817545365897256950393559409910804635133860607962894898194485926420669737482059055266594325875857617634782239949907256167225259198407072006262132682793773979134836746787168459696604029872667550450907763065698891794183174000171637291881782587237681101585585935897853412392982432219977738416259045555008620298475756319577744055605475971099790273568907891674079071042520353537745098881405879228100056923973381607390620553227132875197885968858179511273134523289739131330084301353011454350606202779928319030809777919946780054505308629012531452526126798727006818020509267350085011236543645960130730630884516476403300816987512715663093290821430506502796651201736297885631254783418218950111679250908035099484997514410620915842734546041469757820500216579348887881469005848649385200960799308157770882078417669179439297967714166551604792478571726069654375671238143122194251433593237016681849606523966286509074922728288742221787255426863302770619503606441952794422932701828831117026002827590835252602998709962926503604213874555178583141381793836034113141788012200537162738556860534279925011843616061067697754322409086964407128886447180294303825549781028635452083728228861309404547981934249611908909816974912145357509991865100385451099250284473457863773746334044786182850562038959949261912792697232567550940886911020745533836480833621949526030223228124329323727355148369545534013409008256347236369656927596302900517787381135435677267610336491250097084462651987038061696715666134014064871358166423569688491392874466416404581953203222292775287032347885542258971331200010674106629640377376102795468113258193289869419721955294575383392269287761160968841146424386760930984135159021475524289550136894812385882743588241576059156574684806123869641910476524022743251337284150707801165425510004561607195816849665592795468245537254211222037944295800063814658608220396218380134585233169750929372813144256809291245610157571604757556766594575827658550199550686607649671627225377246783357362449721269810302652012214256025984655612621443999173204636744469938391761353191442906284560033446001662417692840880850137878228980194961277923951899068518049907495199121393242738612338461866359090917889854416407110966809316255100820295279868522047093026270770848184253825627537637677767004889598279960978427162735214743157427063281245857291216902260619925967840992054040293850832528916693763403555872545500847528062434921615460278131073037299085487447300158761084521098498654626937360565282505106712057348445516125774225327669901423396227009201428933577870213841362098019795422879296949089929699711875716968465383171163797139551753002516686818233083109138357094443701825907393987579424762298228282701389726741489246887097188160031168993116454749053908545190416527696626096663395372010417589061869910053145611840729539062068744094505448881430944794039355670630319862662744779294065351914196526608719806852709900863966575552225440268055584569971245859860382826072232204763553760772811018815398429453939157055396864846015157377058668986528643085383656388985650809059170708830800048159566299315404961966284778513984626637725242090540408029210659714064785094930761773844171278993939815859373044221808687650161252120835895523633734673915856520996841588567077817037437074069006493932405606576505961237209953557316987376080739767545489457392430325375596957417160696791381295664517312744313573657812028858338484899661913286608636534440965534289003910582263913537517740288947038899787882944302402535516793168059184682702075516780192212752661604924976221342109395404933851444409510001668149802039836232105554335829555435755423853389700001134117494652281576306720607876526595866608387476129340835234625106614287433936085580149239133471980850320001264319871649012589986270140928698194729202938015091152369259098729617252566897103717830491571676436099520742000984641042923864828915067979659362435926655924587528544588505010951733003288420283869854849860566591360160259047639669597538171133448370155906629641637107034829086634754165243505829754422951667554501180867270403832408039997273229637155799119945825840606071492249933168035866789778897066996494059289739570825243733022695155190921216819030946561860669118240993008879626516116083062310983765686742170952215373684468491157156802537557927089851112307578859126037601976298142602370200593419223270240180449028012280135551440643353816385284535332677646714280546689987403274298651261429498406235143267891884416865266449385170325052079694995643626880952121333732334806693164595282884632684974872815319254089495637336217716843424557030738263022247540388197299640484119698982817976877192102511591688586911138174909121453817217264375617425794770448468056783767789689206522061889969126033855569637013376997755132174687519723995785531520863177296780607406620916838715596631079327780900597488776121005720378191000788198233702084917062840073416395663403222098783625866702713320151593288911742595385953097618641970465386214141569607828760418196800438839842384155599321740093921178032927044870894755001687054046820723419908598592968973042867643845516164690847972225257052328559534037854283414332082913779898195902142802542937269849192965019502098780143743363971681768971122429482704775364145826546540168578399612527506859241812293624108820162015773186175037006071765142987336073194860994137139525324041330861724875430803189607976925849210635754678156906663290114071993404972789238403357103984518057794836285568152795416467160984921520630166386733218366944468907137095876963590766557590758630293231201928737332100185065513091975064872788083359812142399682581293059028118465286650063276036855943039707608141170917793187661722964127241482340197526993887819628463032173588805115105991166231320260805550789799771772052191387655697868241313439431142165300523911594378561310999474781697358278261845688034684888713373397926437423156992496931979759090419698421650235498261009604533454759527702900328896656372844985338273263064829254451962477758022932742145535133126251631417616970738203484686175230005609893060084439120116458804756807132859955172924843186267718163801190543274465903664401427617679155202711627832445697838838038720589456020345539051053811589891813882363217552623722612562522631992988447965511614246414818530741665159348864109931056862273217902247117526829643994597405364122705138093825187680731397186378331417356151460356977266759413133063464692891308274933562622553014763863470258146325022043276280706231005331425091292193422024969093672903378484714992568534762434966821541514481977008356832994393312742150200694773138529947333908778032385521328875605292353394002423219926784928036928766144532504514362386727986137254274759858562066735390152112394212290748704917465447207989526175769701213707346294579992002914932429782402796458764619791980087558191295829167863569490895212643586139486848621139220800984733662044619286055536496264284174853913014546343150361324964224246536894665423447309674420627150668846155204887973767498771228510221997440725996001674283768410642680753039089409228616312111524536743511034792594223043128617713888361686448680157370020963851539468075564382217979914987122302453373355678752457499841064289465989998300626265654489332055684896334671651015735180720103628205615423033480981574742679033579943182180459937620602304437092296399063984800772964520280110283760557009254246932344258096173273204752262851479010621697819388760026209525286609772813222613741460751411128585845397537334003028597459642253914703681732410386863520299609046830990671188204615943153651450423348556900931998359767261058936538901760531478767441899737860213193283326304455742108298576766222073341194916500469432609294133612428665894478155127246565015776059475768970426128554850562427633286177668354599860139326539445921096166648650583309191833417598012504667325737447515343611769593954231076051390623298859045978352845994165578540501096050448677124050256033437670885246429528562209187340380079249707781749591198684065167834413106848948579017866118022758541856184391813673765102322360569898391192254672942595594369717205685574753041133987553504067915124413649680712998652899584674868187482730870923031329706713269722113619494925525212838395728272723105162766960624747144552620884370267779033936495373282571869386581523882616885422526014354530893916994369205911144495639363477654910476920074286654307823353509643462019125832566422897364256919968390251231405259001099100849178770961788405651913547556615917138191051792948603904927005987880966991346843285981709229208034234526835995659639604854078405909119615482745727322178656262346301341127904131635949254249533676431746413367052240606017688405409241543719184916429399975347174112209848707664531956133510503445777340457880830282082133020522690322207297730889906820718648640037469576660054482012236293914197387035089526685480233260087672551287075224360860846670667230871127085167661506208838062130593261189299809202316755336988150983827159247050065957119624200475988780591378916084833870511185539136170778749398231641185184382187737038843204942720118096415983963683603720112978022280866800645717025717864985432993382485802873328837187360455508082871365322819360765749969371277296906254713885338578674163543453778856517169422785848297518183371752560006270257136464129145648688041713687585543396588042666975477762142432118140230508668824209365411292102886347153147377175680022961642884292950678507036037438452567482404412520833413922000822339532876394098575219083715597355022231269266347433057052595583100522634008167499809982152426128392089207289043560703657901923702839146917961127821302324781168471785991418449025955446531085719895533874224415829835753857417235217894085368799804060070260983767741846697168004544129514289470514350499701840388134375221736551458443734491260013206037526631164234236417067910098151915527856401995597719529522512267812489104581864073976173361298100269110815359684570643488221540490737179813246505849211174191114962447492382508362250323783997168798954291520866582672269937805271642877048536028176328133937196639384188107339383288666145416200528835638496170717138348480622963520373693658562356802356432530753081660742473474059908148085983192359162709278186766247754438134758997844316532714028417293010197332656012468940950836972421068919412308357453117154687128205916627630652860595527574381765249519125348127934560434058798687566676201608185809150031229614180407073329482734915567982906492229484871919305085731468806165494357641409535943256284830576605848589027545013998832890831717836524653044097529441875668930865475347161038263214018256782435894190106014947750516302587071893823820784309035156169126870381210617964261415620163019504673012844902566132813391973578613878445310724292359022885940446864832476430980182319788898839029735650937566071271474124904654404205502280787295630748015838465899217873862500552584134171988759924837141215722220352175192581606574682522700025330223224604971967542713043558323807533688691038335211251835071348909237152765862041798037934476933309696086718006043429311771824260855581915558403422255178404416934505953227185898199107774991660607759143246581196074587936231850956889261804414497837825181050834962550431327108993346083080511978034414962953465736966303263674727106431444038791924421838336921590350304231665157778007561808762289518344222232326328234468366936301092284247003348364221835501639533017381066095782883786185814388320068807763471796771487854921202268990689820320924228310855776274966095361253274205009120367879246560734157575779975438339891196379329554435724142978603247063548429605030986724385037970005531627947080635507062195610209867428048930521902566418104610804801795457234956355858061570551948618265866937037461308949772067226546386998267446512722045353364164371863702256822559950762840358148798409956696949729645109942236976476167150855304772231450420045365311335377481531189551771824707247330910758392248411318239248593643420164540932010315020834892148268761020159242017413071486359033449463399362384528279043192675136731026675970553524864320527679879097801135146057794075134727047604594765656043823846538910941736859801068978550688762138275089740470157460627786353464127743424131692888171426436223010807380469950401669694127554743238595732090582131111979453889523616993228090967536156739890829269787772691671295809033980436121987198419212349273471415544424335980904825669348485674830289759908721513876971690589041068987661116288465709445950528316330887136844126553027985246432168143751439769030030815681113497387369562419698103868470266086726572220713910558454577357050938028387609880595867043066722036360983629807426147088771213296460533578358364565593830523907488604082041682791410508720478589145707085590014034671774807421582191856379698510459407237504426192147565103402256573774967273004416155942395349139405347748783321324380895645977608259376712482028592595904411272545746190075510730842765715330099088511481934048796789715524034537048394106561906777552239288536570274525552535232840205090639698703533496654877238982106800338756593995746063170122657784134489996064947573800368600934305707649721018973062290298198415210181550191193064519084261718677824106595174636924224940911429229032823431173578180442009856283014142637877757352256827319503213426616208668146545292009984873140724029028362351193486722998437281027330975838879549203818323137759960840539697686065833346209252909272602506442590124984940728122528624969032372596491056327713761404396820268484799032081172122938051913179671759623662008133817780102669317378180479121797448823169760318794532708789927072762383366171525099558346812263906299923853736349145875937671262994175873961591538919818118138321344692625353486776256031148168034223982523709560470717132611111299995137346033533330647645807470736243518126152816254651881211531620005552376386346201395353385265054886528481660742978292650467756531321408461160032975148923516904655392898392596856325060342717556969482174080672048882987915902779541955456934690716514675306066450882871298868059704334950225928724485192233317824537522717988691839605259112008455500833933422832386899314087675974113539823549684173228277342139932355585237850937021616459990699716281205811886984417945047033541467294069912790334029823930956477300858401477422110465765838585747557498745101704062078152978155871698502092789963846577590423431017270984821884603820182341377166230858183187800361867047112763971896864108162218989597846890376403489522669934332698980808290525268658444884118993578724140439127940524907314993065633081522717010095013237793643137921445907843498637229819690643739531097025746121797942682977302779510330230486793121283194179060061594706458085991509009976179711801811929501345057575753421621983711207354092929808083512558422619690748134937878479696986433884900376797621731314931662348945377487717811853667864229997970413464039813896860790706768390793530338151424768875725701759150531227919221275029710945338765395065063887821201472075950693863776299601392863392968661639551741774504663326505496527315127753878967207587753469840603207536710963222497761734387825174721026834587917355034221304703183699594855640863720296688227658890994249954749716864402360665194749665156046271402624144863929735680525369792310758464184546818482702213812419759548164353137820971455489586485012354770879049865176198554954407761289244790253049700829825867824087759213265711341911685653937743124313726872129758998718424827411252072944118418102445900432620239497099946947092223920388823733487835756066969225004083835900015702824080974881226285644681889961507853518372564742374198027717044126392935065636131662349843499709199398240139281330551941496594265601841660051250028844904932544879392804018398188713391841056131638032584203276398477333608301154313141513542471415277589055353680283834120428309464477538571503131795407443287457862258300026271809332358874110608383924054410892488332741012624424101604970292972375972958757137430873022492181492147308159162006446964701821808278220676348647994137870640293847309660235966427836611194673381471855838538835210467660860076683931837080936008087335831471577601295335722983261896652889439971180417372392590924220325403705448704402485141234593320123048861787392407762298593226481069477638922339852948182848931114303573194916115272510867146714473982258613777396748494351115142631365200688368407726539936339746164359112842484859640005448929042528899495892422334278759527518704974052390497724675437700470341136392609598436583104064218093354976549140580954214151592414934893314035823463098867416108634748957918940658158647132351875329514280481086323252936181665259060953809662958080676230763221606786967916229202909366857997538381260327022542457353307212371934713317672475289029229450569755312890449315144767909662921022303659265416696849211172506223248437314458222263712753751686786424322219882589929909955780600061618553758639773863285624714352149072689819060794371699397848660482643171555082777648277486028916802658355810876498210341188705382362714641545656965018839821198105202477987113140152141179894593141325152762810915401485486287113642459458324127780139629602563957674999464260617812190868542176955167380640252442747078010120983649730456882445686982819098634284796915301198343659083077340762879911672989295431627186178495075590072350070173415868432277528225406702095308531311912188712751503546753845548662019745404918732600322979899522724453502794730830776552976712625360677620401180560792522290428599681260273117479409069827252182055228543199362241790201813134426371359933533393193302581273750944664344832857045829394216404911111635336102140828040335038583415406103324222857095115007466150743177068365482085480894993639761832958063680837475774660396255713084418736204731705752308045333651138361392592944534142559613845567229921965363687222985137507713203249713964475272912648367248903256345408380817984789578700934536531549331165821105128434249887859261053590810741307285072976421040369025663744616993392988609512323055794985826772473894048247130661243002028574921562365607970098383748486201311693203436883601071894036391661379375820666631644983032903877371597731994930572488239123566652851054005403255740562297109080463684206714395595863826229191205031408546325738664152465149898245868261175983482983363362623264388055577897962127192341888602621924506137156608544870634167084908356606246490814665907028938638250956996059903051705518174102558689103514143041791033033398351133704644683366592818497057843579163317611955920619873895676329226472805603572642950937085565993182420845477359128773934135388519446662434497451221574898539175323612497448856715900966589363988996855521436009776220282352830936586869823748733547909089871058300628983413775366150641169916140679599392238208973024884219290290334294430563537525493964364253683286159069537123375519656987849748445583764958397306633003156140212644451206051346058724711382455140383439809608791935744474324915245553325519631079429844247147621827150018425603478958801376214961032805239116103927650537731358169520530830790073469727133546029471905452027901053016162685349838234549945111940340488537947161912516225745199974757398033810223003849170141753390956444239692298483359056634812514485371542170384779049401358675960883761682801962997581749385633996766273046969213359598162143401321098988905934794123167851529637976152950813182055727426278872109143728730621053080324756707339117371578648993367160151440082890657775994681941467317305108059645111054657747012330680435096161263544490136157534749881498849583949864878275711515792848117811136314929292556359378536289551462125505678471880634447312728622316388932185525032426702297367892010096640628866928188569569776994047114356309974041158982749605911837337497160186743140413466402285614499673446064490682444438440583825891859445011397446279204897683451762443875514352668551985172067220047711974708187825950758376156088205909252524140421744325405775767957414924671949378531889805476050351944015612391045135380113937545939035188527351140230158321339291391195855268283865214075991103742822988478714190757158356639288127053223717407684208771755584320725534084381753646749027520078266767045297611640875671225304185121664101672180750884751171097311142478410324917117420156702237930722799445584961765999905186280413090387997353559939276662089483838359978218937002902289667508280497112066436559219198638722220022803168337618412701561372644390859126688050163165759792362490283530845824033990591748768701275577862586493020223162798896763238132364074390494849595918184558611961804397072208818980180789361511851256947802090785006129161968689652872576628803821282864569374046180850474054954283567806386813586534002472126747832381196744791759080195272949593286763385737155452055006040514547144279881743716605584873649357636194593755156578495120335228945122399549726465901573882279031531179331653419725973163523252206247361435281536820104914264565953177374585400041726298081893460578364710711250357188043664060322980623095900616547958892060571629153891747723700549083701269791136474540206952041240470661103915103262053337230308899992820554263484880358808456700427097461441370098724589389415650331240829712376848261267892413589058508004360861469088711528261443144722514247020813843370577890525784942854019707308532782632631856939121400411234352202625887783228839877437015850640103625701936618054469815171574819592321569475675563610127778850958495421236053342858591885987404349246548086118005355146011641378766419633390626954142012655233029363564275277214245396605138460002646824339346962375688842357198243446677304112646387205106885564462826779128387084733742295031473038969726879070411357455180330630000375789993462229502763709078810148060494763985307379610871811499068143246028679396572749103784414462606810933674685043026380408048723179403770223695091792810585710937315881469328693720132668398816796626411909194702816862352594786195872213252289883553635309546967429436623355065287704579443030202434002209737818284539697763357613449441432502789518802054593960093702884327209277394633616599835279799958897895918358287108452785751253523446462012787564866205515667937667090353021362400042468546258157498911399352591354095739941827563212654206525155877413963004918630803559937034606927027718533930210858069504040300378145949071563449136948814125878258817889199039394392881837475488268488699630301917203797180918626644481037247792416872408821547199756801261200686937685690766290133230285691752011124922592641891103910576300359254785439743078580495379729853813240604531696901020789203464353703294518846042441538521310711655359388651542280921024007352288598262897344709710960691860007981366819885029600723817643713087681997183695974972776240579669343144358865282283161706213851231275209813408150429687841933922864161627191465089679161292502089915051080826873838787385808859702647223192937958786294811047308069965449182386438224387563500886234805654331444777173965581682248657775865648766878649426414201833461304738451726005581803067273040221450660050317712145273212713178911463000511491598060982994263477686588220519534400862075641935188081024835498165503636299613803317330370378858958060663212307010585515405082934568646417685941550033153630480483811076586585291623264174064991931360667653424397224327250103052978377052806104871731184610992159739413169022810661971958411014780330434252251891233191333519888782005573105901556965204987184294704520654939111857490825522274111480889371050341662881388636920426348335845968590205703123392550666661187276866447923135411994376207939147593226854588834835966639668034638145175102732087266147451351165017043082307608481546238940241355303384411859537479197909446336171235892584216758473849485582971351128830307203513654798314503326727644693071083718316384539742123316655357408634932810161570835974912091773286368511184692807976651407288175514698831945099233320639797992663246432001292323289786471245689058741138161913721254817057426775891921899693979381380557492905737459159030397879813161652136083854162792984803569452439089543079877369482930173409135484478256343714561627069119679173872059638726995907297673250066569109749437474618457784059751648519141539056845230129053351673298836932505552989717372520687124827194770064869325644724075529928583579301796802852572635625653203803414632587914256718238443708254775781324890591848337686067896941007984701394585752469300283438036672414942440047885928120429803369411786039543506031633067444307246379263045617402826664263409298490099110481550205192846309898892170971338112972454458724978620368528943094503800817681956946978659946572218567700381374066637628876686182588496429368091613893032127369445152670322571837616637324638510854984123615606166466665949919321079547632800385684859575192227375144234410350680195138497213151453126864834764209102053362432622956384589893015659413117252455932060980542416029591436220358962681045874854602339176414903494589088450046464240762041068798534766553851765735836435494978911068121637002656746529671195951855979573061956078580187115430495239945579166818248614468251577519101789614032454342347775637626520654795596440463004469592561103913407333113424487759692869471030352963453299182018790577870485390586155963903364240315439927171560195560262915574442963126374240808491706122297167714033508392570099537827995419141827339457340796035999228574391341274753335654644239297829370227540810667295953141948322251830826861195824956947479853750679810967262516392320108007227156724190000138015388516637800120844388345054459733453193369487186951255909668606751339720765287878905874610838190046409260474647726244663882974241017046027215053704395332187040468517125755252580181526183771771666724656043696080245300125666241081580960927968350029026759226461417863533599834287704231508974515479444799638585365693419174172630175771801074706573055805158575442954353854183071060537996122531780089375142587627361244673597340018426865897348781884304424738208139602679817870206334010524837140084805232317702447935740000996104686246938584459298207978770701923143855759036850038590416190847950217432067802966039147447440328996102442146961279300027785429900950956306153216311508389486876334373609076086456266705342258482561657472018240048655033561586537416454512893424975159328537282670134044882573414151790245925021098569949986260082147016182520380253382841055530543292891851788889042252652975103755988740077740078348727898749625203858919956664754438453145420808196926283197536342919047554563430395930809774644803607948331265429253693551606365037244760431352667762008151312369108713323442813288951302347602351142518214101852816546188173437689352661657031193259238593467768816601592339690485735251626635243721818396766609009104509048975380908786165035626413563775881034305506765788588302453784726202295195743708161716839689924154068067690991972259599702734647935772584086887184090746999453184268630846381300184064281684341477554559327056365422665008784616304941668686940770994417230813395254856753985037607595986402599608001083586335169711746323693409310764880424573297562032040947712496417178198339705975739921825163441025365434432339897608474971885338832899726384253420426495123798519381898267883582019358461446972567161153998481568973634840305914473134258900050683580736234245544728778637853675399830497884344654256756629728466895988834954305859508413202107763246688352034649720801413120756101859826922887882662042705047157600474501307996450905504956784889185263620648176989863289849184631996014528053518322470942318525087326006714414071769566711921321993004021815555052772286782272668126393062014356478245760504721800192911057535355096047036018937444479228069031733456459119755992366960006149518715271727797113232033667175070974037933766288768759828789509525209241727594418543159374742002044951911723581084202551049413317403400902879966115491265889717463109965841401541379986065682598820915740418071278892676645934348916527597063622982620215309668798422677656852472679496063052416656635036344689118884010001988711914424099749227493345490909841663905208558139438188893576071520869427721993912987916430846164518233495442797149336213795992116996172853121717108656559015077276612280552110853699103956131830557257772122745567651676858252314664835522360049831038655540344600391246065998848281168984544755890565478716969468286642802164941834523600538109407055217451187434758589861102824045189193544871863013534177260739203933337097988970644977034809205077776871683440551962012979917446920630351197912788468325311501962928527108160550021679346551340281587441687289579783796718309427090041749280164375017849924578717030066420634048881666347734555086346249124138122575264313669590347933424568030119232873187428705337104561130642086461123199694683503533091679685117970798720209641114277729080793660967457899757815979489911088564191498537478435706486427709499934799934984544240825094680601355875727618759629212196726864077739115489925658702682281319157829505385966786957663169376073013681490104068024875716115711146451241985777636997375373309941774806305438716608953322786767628415100362180255246785020100424468889299417708346300492318286278099654679513155379280960805968552510919362018295537058909542379654364654555327774897643471400601254491465464591537675744153906509135470357048155500344779084978963572263215669927391030811919320083779200000418749137016645632815761148081688474355653213328013353036731340794447171881790205506087318289627142869045164600683214609595219584629230676761965080957646945751215516382174266782131896458440485122201042452908590673448046418984068831256617202898506315143914193258922896537150060761957636327580362432663206410400467343426751388468548819255861369492709743205187876415053523939133098194390041574789221111549787106969455792938277220642391355043312786347211786688719998103320067830849643364002553709983906746390801608026003040157376498167602979290874615397829078750546978951495683237416824015374776283327272258014258138115046874288344508800523326222235120793832354584806430644786712000512743223712737341299153430586957388313980805923055654268408174669148376705185910305295072993339852239131484387518914576818421938508651085953913902992632127636509208178144291272536254177312074133997412023876000599624792763234939204215492407341429026776854630971477631894382835181435738979492064311126013593922060083125366639346866955682408528341351369460160630023639266435757551169777006483368458983005408797482848640572737003249386219480642077446414320072118992727938356038418255908290297757738084286144332396214445367565624275971094858764178834859934560965080943123590311580364255703653821876598701526625818652583287022726072526631548574014121621900020199193858224117764544244647841126127668499931605462131800672763997059085476104677643492659403897620411767650617428224396483707734964641056250985588716780182602404405270770259098616711579901390826808385403550714015611269630627106393886138759257759740088476836968898836138680116959179972229971108132215735927711495059916514508385250276441476915278365313565206801453758274321561698800289639550028916463526197336445570044098619366347769198174496249732043098577849715748317147876867572973462662648367432756750309523213411985104781746606372624411722110188835111040097825541808675455849942125810458306067882855916221036630940163205274103832435846296724795081241263266372698999158441755685402083944867308978414252446272707176842508469689384128976986607165478761573972135724788308158313734439901924230090783626534393391341896707889713989494573531463378836556177507320028367614758378318336140979289026972900788269261956506942989686915302665789723744152963611229564533921378899237434021510465279524931777212585318395835729604098724123126496282435635330595961676090462923470075473593875568266240400311616290617922407771076362496371492405842254393627072467273192819442959825994986884191118644805684117140789725570294609669055691657065030877130369376718357683256285737075834325513703511934766362641712999671031272884173209059942874319089156011436512126935100572478356711766353025214349911269865544654623566527835807988224461502678171788099688831917144573471734705287020177821174006329384631786097174837498621427277731425381615684970150480153301363751914230818429846980986675217464448209034300449262616240765590388973445315836857671061948826160404711690218011392029815344625415830446975669566552455046168341182521910561338377231493154465395451044836795091174626519386664659368931893157953145345063565182280669226325107109905251803380184393601653985938832925670041245825803726268249628601208291005619964626553548219690305132507930319841371140027908706805510423282856618045750389739822479370862736302767282883320440346439557554996923079104436080541314004975151842440132926155799011175932161731269127994136626470880521487640011819590607050204414325138375870298542906246079539742505577492631122688633273532051329500876875957524387254479820248544485927201784219803167011861835260528200007097748474588536995781451533549464263791659321713439726562531161617359063847385653884418019200475057099833122986542369220630533068279872598668482284983513158980821941745573655103391684923540773023826999302494995789600115438063977215947785004233314768130626807319433488156024352335188395630024269658862907741862805831185574654462403233341708763591746283866164386652865902863064045007645433587116584242943557734159990572285051494467200889156512371304864940438460124674888127847944161553160900320913655512852472463453510445829741598934398543691828993038692714944521069538216787251228211212450729396246201167648013309118003707358998424228803260119983869205021561815778224296682561613467927657390455734859458032933403383586010705445471845388256191140338121133232054305841629406280185085891478097175137729190900095073566587647747456663072876178711461113437674745166381162811275344989671837355950621669758585069776696006310026083403919447180471894146416042119095845348953890053016111849415547751324831586285449225603986875523860791891347655194535682975778586355044041583334348270721403188371467273929127529795085824546907624986595731337134136967222562340090567480814769669517538374894862988029464260942106789731046712411302651326971632590939189859724765299923108627285841904026128476792463687420870150724426202793678948520076301804773786356506280709933103393927457584485941069912168890431042140383428440887578594598841405446097837436013235339770009851393692384673622128218755370704647422915764369977616012660560411533275033043918246827804769637760278856772376266375654926583287163949976569495926248200131356990075874941407650039336838321228879353508350048987592368596131737998703124365596939351424792499982642414994698907926829838825291295965488316422106813625971499545652857175577291968394298625358700583232979405978701151550249989617304024495086613599650299631722974144929355735046825007306483468758467347161113473443639398566284901689639591374658616128859980644844670336739800792722326977773095506666918746472928459841484504892445779911138416705573554947627931334387724754127447714617049920279622903338608161251250431449041495746603506609794881421793090348495683293562886185955989582743383468536957823005902638665865101650198259906738837704828331533966647834970439804823347352104891086503089336246890544579510303027978695628126590840018056979790864641665707759904793013562014521723836250512844400724966386984139374692876996445662344451363972609196909079088067780780741008939057048643893739208338220962538270399270660610359135591866126686047798305463998877380857958719451645032517743744228408722798103823133208121795050890108631209676436498999361037230895758459097308547893018925995041808956830967825873060797522141287911522964488605132966158847876805965093678055933903903339209070320910636990449346324914997733499172792173112719720593859762524610801287563464051307729019922608860987352090841230464838215373087156486421364479237881529736891747493166055818839116227890988632735567699972101794776368093286898423827970712890616446350205226739992762313165358194835492315337157726890269293799173489702911216704101823751398338735168231978774990202676259437734198446274624596864640582824407768493295521924812426778205603091095679932694922334199712748091325273568156510733834671737726038071126558856500620975746468451331209924320552146942462539726778050008740439096786229646085688777924427249759947536258431327089474945136568641770996546495114201149044963827109151382395284870884742337299272646162385936082216647929559280347828288147463656374497006383405615190362324591448771078240949311950627136065014082170231981210724735633704988804879308115521577526602264049730278984696984616356029075002618439856564207019162555852374315153415753884099741809407131455281432031320475456249379844305404345154167964365819210220115934322701327887109443373914995662059213770172783824808149572035223746227617497219713177202388299112353455847405137371388375749814403708526188470694833285538522316565121896336882492768675026030465189732684169649298625387038642210188093278884774668937282512948513604830415444780034331164068674989585305551303172427928991469349194148767283560066992891480063733782204305325856236326198048744182702008902178869443916668690880895481586888512107001852725884157536224482921377351528232308475855638033034343860834922950188095884142878915089257175100582903413182336254819981817720844436181050232891891230807913766643646875084737059965257947105268815608277766797299741358680654087355605788810202917540968201420908207268994336441206668351686827291735202321528197590911713360264349827519001106369064299053158068883578493620800663331338326819128487641332470174027071345379129845982599712328965857323146349556769761493137093398512036691443962089468829720042399710716087621421700933368986959337162800240581265188447746490027640918901569754770345091142626723459323192682938765188905514461410671744858980227107928666963510843276552626749525358365220170924886852416855964343484869301741264126016116925858504714622021346997190327250831491902939174905016504785525443530465128175623650311401648980418735980726838896165563708653018452137477204895576768862268423900798402960323795801384159606876661146153019427432998910397206626904277321164035055195104689639946653793285132302906726958889388579795367120358731543717510381310120959369221257139939337011099496429877388734070774844588047970842490281888195818002961477289721794330915700501591344901625509917895581558405374227262982199813575625624371046281326790700302125838553825803313867528155899863405823220894363426406866170578204467995511466381616972229290511973013852170264755910995193227046458710746748013107794632306470015557471831699875454622129299427198484000416218448178205758047162756819728567093370007493744128581215987895254794017922950830555998035996914151145938764497973783067695221788869346818049927034977144433742898765929003397725469258387885398517737067464093802505422031465834939864409883692698591928778126388259400298782354115296391604561615017421527518134666309419077925159245619993195891025730921019750376640625012949499639950197565295219492420355668612466482739895412061628433492042816788376534819100674705652557419052687693812843184057487019696020299521257485595159620943130711452907420864448361958654742797084276712471181852441145756213114299642049945598236781162138451998523489554425638231525656904030366608959673336167855045062530240234213337423389523077240110097465232519132305774798416793321356289498207314694755278159032054520982406674189441472153478563538062210399807181449076649976214253980792477747010814848188708033932980100053951349721541280955392426960291929572949138996530211769671902647314893330875964932297534820413370259534742533472486647470557123170016579851811277732411223975506420865783028552826751735666580159384154613338019145239540461799893311981559979014445052919063811561652219639618372854607060436273153946464769676090032699089208731757646671504192575672731012043579853831273018403666100571311477785319626685225492215469605116067204717259685333074329285941985116891735566517674805055687144403913075827039911219386348217963204071942305689091156344748300286311788132070337785429220248105329889528592520043080362235917180023773952137900857613381514385490314865047506542068971557534353890452896958400340185125042685319005901079969600000154227878777402441537228589239090364280527064573616314107451920175685603588138292100766649368018083347574383754681867135834066031130213696325597003915323587517223129109811921100787523146947503424186992879823766241014650119910967682891666222818452622259033578618061582351930128490459135884240755659326693673236824693827390412068743537922776653936504727176256511474737140312323810585505912733255740532509367446228931354617439079038629941662507683876019456031273316051870103155116554274374244470579499940228753483772251416704381393687714819724473298687134528562433020108941553835113847351949872207940513164188252507454311391999853063071357890689753690514967630196679511624599623415538012564262511618514034817047311826103750323503026898496657547250912244018069979285321185964460622226986199918551232372460231653173372782202847487772305302365012004386226066950912984811757072966496090974182760072835836370116617400684517126146185795138636570161988355788753218303538517977856903988274460072701364246861806223342904629637464628898970566742604060848771812640075946227730972511588880351645031360863467485625712823316487957952217326194481822858051492816775538827781972847385668740192488820443298984359049819681868113127836856379075022913472215217174742046472937247392597008175639790628838256682218084964663600256866813275968099240931250922668600782134138822413893981861422875996792119991258632820562072587117751492219014198260851596640909705744694192377061178443164907943398691412527661952082985644396892998673870980035136726203056017756579350968040854802596897126742758653044328033657663175349989613762135949828935412122715697064270022444622444971417616726468310565165330655753169084282178912867480820279739667834490678450996477697520497690534036406889381181401807349944392106791788220206620413659801801714526455507805706401717678313372904082994488086363890076892785815789586772479792010092228294144068452262244465325367067829611039652487572040511024778824552943331983063182102739385370638840902622186321429389362372658929593381958284473646278763133831419872155267655956911145131938533164467827221077385466172705634955347495172600411299035111654299468935538705573858709743726436972683636416381163555308729404342636102267263809803168421917830405606876188565843683593383279573772426446501476609184515094870701698881352939752961867202016732179813108717500259078098495694841184283678707449131514984455140218659948238692506121068643399704860017290730347245031374118524777046880725524422290387834459701299655459878965356925662175999014989329644813007644176364893793890769106298843780486186335982666374735075183879975972881968170661904236312800012033692423453241678492392805766123210435694342040891755306793973827000260164826912786267796902489999156438157989136069398407113491705226526845351628426715059800651834972840682052899676717600722256135421786254395723523244543755605404027624433443852877940004172471917408663811457739633413120439481406731717580468364707818850755267783794702961724854867738253215203393457040910413861412496319375037804289085505001377009214261335899764425279291597079366250670235891565349489011221969406716982400742198609676464649239497887860605393548371968769588358789247192829489003233794016512187357586739844311200615612355482984068296305525179719724186247737157658223908620246997995812454960292487583255784997304869772729757107550948379791009454860820548910040453796205427471305776044276299617969611241511663028291250367988493673023482241410451018568733378858441814951417518098398060889402102814237108491891710894960144043344706525598766259558664626409201895455714983159932609876506911085920655071239742920357174222837644213546248790785905114329255567481054132866092082629275824250544042697280104570837829839996928293768714549647613513450030045705581451687211117965009278784682129972903427774446430429167956042646222867772992402879122576076571887840389909868190000147282518723465743468546657225246950742370486827755725697552226859611131261958551520625201794437346528895110886679546876502629710972078653277826296326305385012286572198422804849638940799189492347299954329449029706273482395423461703284850487498738482704566090867875890936181597264380110821637488201445544967525775864488990176013563604803096990534124766276078118837609075228813333066773575818256864129302174279331982758723166372368476860815227736805679165716233472444517171337557305797103851882756433351185200911263214105475402251101667127044726318893407780650457899545079868771457538607209812520889216636131180897395803470847969942170518744776732717481122969242955608704842217074175021210357510781960246914333305503925238738093599539992255410064088143806058933940789106842000169786767499614299443015099717263525497206283785647422904936838495480870363748201885403934126015828015176723875772613047582347746803957990086130413763317859217750769084945826372386654116413046747318735731616767347361218231045617872018506673186133364291706188906014630325950710675435589035767379365326223263723571109553474204149027932803580850809037757719811631298551540855387406784042605903490225348569130770705424393147583290724379077039917578281940581180187940366746219393380762939877017984554246694804071762163190309479753729173886088868257461031268306821579797508574603714379086145461777748080443262737592506865656211975070312667829320714389590983526290471260771285766858607405158098048681467599665168922243041799866014644489769373590514171390948967153340488614157706822445550620903050311808468948107826168416005229217204595156438219955692691676002906496381695679841286023725429734704441241038412139434328514388097658914709802602082362637476446658474399120089868857799080501900206055957281837302476204459114011151367843380338373926849068375261714229950492531351643551988369428603433830879544989448455272917388257615105614008764961295631027515497626428862328041842267602969606876852576291791162256170714007874545299636718841677666207508867531553599632309977448880342313217611147382510270359073069876978016067149868359147830156598672424682828930018635597245063105514319233133027703818294175085285705140511511447927220724854363815694846208790601628899990250872456598845121036033550097925718366724713633135190950691685009458235322087171822737908440547124970926757524733065340129209889135749838700185918854610050335037630649675028866259073285420590580031478421209592758012464619400270495621217701918552457230099481883989943774377713089472759582675898800730670582339105442490939637464444175411618561381985788215954628924749787508431074332653419583058838486934735602695132639276300359462258787959408642021938731919897010567162526725486641480970352077271455890059185607676026834815656886772384637521242125121844662298705151638229456157070693575014441749852069289348029239872830950912112323616166524050000354960778633522676460789329636862952937832295630492025552973776993699351232912076278019863435224694463061744622166055674641859419606160699559198016014942189857664460783477283805512760157338961345101045624430423920782317288969085481615029362097402054167370036563967663737494823821152519720033458508185697186231775184400623745807531115508386761362884892152847505182439289682527365142792665703478142338447106499526658905211298240462560224461456460193774545405008181967100494116980544068053773149750752115105561118053304723226817147722828767614428035100656766754158847733682061162202248856541444866990290994302031808322042122863512935238925845895206459071117872608698004304183050093020831389147787193363435478139336929432440553561056532570084949563630021093034700636439437325766000910441632849611755182129156230789828968361912388619763637101185785366891691890364854827869045392477265646641566895224642869920390624273485448118082231023762573307296931693060393661641891336014944862046267088977568435902136431595079456953383599731491885292250447739814854604364575429464501714729327921767814288309948420076587744067926671272886342344087441263869746758737083204106951213618750488709163128900168583748827395284680247097682426986854448499068800660096143357303546680036911176185429456514526626082243771215197874458310075696114290671879278356403821348594256874313734282864305982420125316941233972445007519802627653405892598777156185201108874101651489731621824584820166672925737008620551789773253288804218073234137267045925221427122495338813095333087777976337572635238562681991568646347124550951437144818996972712880128380686767015006177039769832415879015711778448850564847095668007341619323159277392639489260674403473466819305567755119741153352956400328033179844500144290116130224423591710930954913838571497463510203963019547558408492163064162586525909175717204296036954325357371518681444230621998077429550479374520845932071198855466871978232884696636877908512244382425961179665547922974129189972959081342943284205554810309996596480891708018144572822642995897942224486405281228338790303828809362944823393139703598540045790935897304213543522416041300005332673755371677367659816502282849031730480157312603463516175422829896814775823585756796047699168665854017585747061102519612172221356337815361880066723711894577123002797540929187166826333004450674881914793951622747928723456627304012645633007320021744614889383117137895992452772347541801406984269855970296703846008524461239808882266375889878916171483713190597036369349248162983996374602999346810229255657989014776487057886915658884488758689920583669336296331070319310155176977765142374033749615650455930533906039435987293305021324830272456275298222555843570879955443880456337433023041239532394485564889085590394044011761005531187235444653660374025538768683270117510553411915006156406499233961235288062528938882040610797063548529088013672085987747211168573152100073441144629689590869947928541923079653742444649399968498365467796959815653895537120315435015521582376102017402510553677255114489406540844551802082141896005530714571077862662459383135534222325646793709571795370978610333210664576764273141366636809495042730313935008173173125617369991858092454581670855717431860741818894814569688838320681345479961398632567739637496374965618641999077656024229443044776827626062713514509325739017054202201262682055951979538491737735082231841400038327398257034675610732138386933280322257590852417975315433286540186910360403022444275849156869351957901190694054070871956144062200653835638563245545973576801102263424210457996527026632355481536770687223834168772070189675077763329632460033112494850814467939814601267922227502206679111623202191512786330175185145345436105742087829515579956892755875645459765493368913267667009879574127364171735203864041909022215968633173178939541762617447840322934903334407322069868477959127677655225623356841281578504819583190225095080735588342226709521025272295844216949911470118653066029471953980888350750236044568715360260913644300219436508664662598379735273793135767462994196918492200154893185849735447396207239205342750965459735269209252726796187389835248705255099441496329326076202735617476275500580251948835152101546735661317138531961562557055766437223484749717720467578656189948605445514694439082094757795533405763442957869966560493398727852570938256264021519402188615773333052823233224742885049749034339576536816042982653700267869886298037468752227283547903036205774928467922347369792685961211713018683307221504722299665880160798326962323003949252122085223364471691741886764265153046131575658279847913397455212359012501402349674330148619699674763978796961328380101219278280534208721531179922531162709038746984407628854165211219156338139814636093462873845352913240189025569703860932336027808919947639850344035990556543976556885496445014164195101092619106271253178330280414590983478845489797563671028507983391142419375304750230677462628197417617734656684442208103964773467124971095830777642493024127606228460538964574927169239476107450383687311776929743824007024151111230760511054903866016526829741884101141368434431305130197472747524572606384675015269685175537051902153246729169381735009866110833656832295001021602720735018637945036893304681591787330209681644831203788989336698322324606132041441916774002609361745086021332479680946090942226960974072714435304536519630841515583266195143204432707141891002480246720326077398631650480233948036164264931780980029353661746804270462615700275653860632626518474167091932793014723474005724635768809539747661327028938576170018970829518698060516949503236837839983320037430423811047438242394944555793053207357164426105894972648271869865006149593262945639104450850050087088670736860528694001406324160228942766270820065863542715739317213520504718109007713350820614226999903008127807794837168395352874965462420103711003789578820445615607245216875337410879100390410975101083322473690812143353726135285791924784207504914931713094676808026661123338434541266727924583646675804857639917244503262204810540614929439966312738734432771468580590309876585427601229454069601919043663906341294416218424989900009670762677946535350886920336950731560292408498164333950452566327617426324948340694658008349370342619975327667372437803283094602606313000679809451675482189297402230999962724148278541945741335261638375815390601139205131809499232578046913292334172213239927911673870234393739266184986806176905768811093907687822192984546667650479323876116280685804611374942745270649801321517321596747891303176899199520815509807082408332140466951386908038923809514500926184971555631659337386403067925720105295406676581157200459040668693803983976646156249104944856556707290912160983802816056060851599281355541078923724700889723580671421088868491491829822107326383163493260834599972091753764107558914471600563385713973058274979680101162118994834442811049574205099324145524483719940830879011499084994316003668428103888086815479222420217406913898294995321017538057031768281682008514145041450873242985906302201282517377527617709359244367908015009920689906023954378923130191532447048046182281950394585223551141063469371674561085160974619861624073150401733398273090444002204725445154523380945928023608638434809256404599256647623695027025044781264041221486739678963525660855567596636383976983806797480241105536866181314104980375969917388845974052234426516108855205897195993212210501923433852831561493028071516966632146229564818930739804697980246527058111509616555054462288471555622409943429636869686309007856433396006739397765367986402045645922244004214832242316246694338525442581061002506147876187112377881470877539241483562658281094197011796736344942882921985241212368122717090029109844861090566731300731895364815944450575050046649505253673121918529179437130041106480237511835134392148786951017342169311786946856676178676922909315285997897880733763984497561252699491853035305814169590838108753932984434255153263028055146488122474171374185919769078013511063164991620631571604883461309105808190892413151695020706576619351385747598543445371577742747294552426910519702968704883129921137423504600583063907259412882957684186891841060635489321489545181388710694783813916581484149504975926373931394971448551029891200473079879361920325525525981121768202609243337348537293651298122662927441707552804400612382502264524171467714952703490169362361234461083483112092988386462752589187783966534181315244524489602763745749945717538527975418905989405023216762398213017285880750980587356180957074831207918048092128152203467537467696085699158270949801766713315820550346055602184288229889449128957249673806690867828197811412410621125517019423078836847217782843752661639856862004451517217578218997992666511924194213940328014662863459289357249537763550658705546678227655465379119613835207578513009865951103189820578754971414637789338326249700808635025530096639444276031420546537789299577844405468734811257383744817072561357272022749852085527898281360869595186115563787595647357144443791583555794539469486812586569153718011061620629745302372605959839351457767268506111670540609451620759741371560313516845253198632438540256783583516816245582609684411726527772788738967677891047242749593629327064614495373811868952673240358246503430048543638232967294498210331767827624442718456301598019789082179386464741786470268725023170310897902021113297583094666970892006333537354405136677230297773299861095097761944602391943516964489444947768836818102528211189075590428892679203545668894943644972560213949886714638766597227664840898327423823338653056957141154072162643115199591771230403457063808516805036222224691223094916396695706056816245502708578796991897120675930125851305663947034667928153301997460077003234612158086849982314673408303638612749769457590307279186147142154593991367707320297045191200298237037535380380878566372706475993234086434189008688130449227121027614641822360602685888761527714947963242183263846944586359319563704798034843379873238432620394932443753283200794134895364153245464128057168802265013910135994401653668412148441953551638365634887874017536489478560255315611966601015921187662669375818294557810350671631890266072570154973762707343468520121191631402452385166510948716387113453897130500360010371912768102263471999625172066767852361472733463626294893321253413166144392216915354740474648714704769399528306896709607714408884424435230833407020895808076665443610654522702972544175979404285695462332483520757479647900629829179231047124772279155909533460777944796212368674543604426569147184722152332353750735088562137887106538759399888749168741878078308037413497110125218541513674107205747172928480407922804361811515832402579768301456998670616393499329404514547731665929319537544658286099054699693114688764737147050171070517141853720311169782100035149014827665277439419738156802518002023351861996151918630773452853258392989129238050938910591687817885346097671100180862988865319573366803514513034213307472537240204657533604736482736230409250917654952057815210187950667436205326405054919592340058250781384714048407768258161011481354254274874782972934716953831988869714245853079059745477819205141641266384720077038405464193880164959584496480932157113768486810275407530297478063588216515222574604157585277043799325322553476203957137985484886232824733804324718613239532272648491961312567531371452491252053468548498543956210790901353564224609951064760277586211089571718696140832299816437417600502154047076683091014996314445972822061312632953375009753535582307061721014917217726951396723858064469855846505877986098734956057861396984831927824633484326960541904181299604105878781540197182974488410782007091597289357075329663611119341099406944543377999496646451841585388442804530034104810026175545063965515885274844230155350601372978201301611178908886386355281760192974362112250521421377803926275595699022382713441989637069271539277812047542962700947834875977139480482192679850428753570755347110099728403738264975182928241735261275689117857901508026440882266736860419631452721992145500841852938854534094854293836548154941772048248747872107406758546364103589934587953488401245487546768498468153236482964108345075196453749025147204279055534760636756862967455444344667357596642900987632864073009271891842688941247167257447547372072114961305308280933632130064434827686457625555532415514111852800048965057678668255404737608350770388783609383038138337067336462056715066323667991104302817236270695924751804455632721269081277917893208265329090579367234534645688714429698885775418150022283265581163432956595618115942123337244792307544033838069534594482344422731388422626914843299442957493894490720806339039249321477769748998632979954937302619869803554758831880869052891164888874623193781304896971360553903181295120020560679106106261021071906244279952465478116309801911632501777032534608456288788312894643050039962404161090364526729133966784393603328836232814546008614116936997263868074390038416214343628949379366192004556786727710584994431119792444702093380311411339085053903189343150879639189307843945973916670684914940465536903354277651954396623317493477484747859348670838236166919729991357105911466125868436651198932815748057135535635267323687282400332249102879738022877002452690147444814651817395327133695671174476097243400240927675091572509748068531564878570875090802370192148374810196664849016787314785301367234136336580395870096962165962358636779903424880473320065934166176136324426748013629273378316399256099146303377185506400482388714701752746362965713741792253173961535122799402518263517123616090934862967028009455847950325822326146037143001661414092656109154355473992753240876071511253096271260543511999438125443986679912385847824127047368110903961491426784257148071640964752033689641362577482861540192907423067076313257879836643618521801051705040800817901494844061302419761783554398783890024043985489488405256823965942199664928003378426772472601758389858671125938822679033415846509316627140112515721017684272764096359541834212581156051843185012303842245582128367536228634335832737005381120575207756763689781680545706698036076457695669212673552482787338124411484839317120730843419500864036968398297195029661401532450065423423958672377060171421210547978688602473860155177415660894922272317262236492543461121892368646656344478373710782703635857623122357972296938528242070224084751497852150799724935961178924254553787822251800128533024048944762172796198812011340203784481842422914382502439395642290707304752515441929816079593250438836859951051182316800660086773886024600095173779760094744485920706458117887706969920750876543914011789119053914521759116251964564377471223956377117678432015786392922770291310420936290406267184346429579647383757470732670564007137059478793192628838888541139232087638922025040516035018712120000775070662350252011521805780195270027287546233281229927847347629207102839217819151843099700631887643938906679420366575879457813337861805126260396207340383243942459235364984386903614151459978105454465250241405653742832781415073842739106275010024323556167778073211807287290684616793773070479698716638694011486899190471249386731885821025007733372874096926181601400394376103851218227342001130340163370137573339874082616978572257818119837261956318366969094926440299132657335195579999071814997108836759797981939215371550287430872759338631957565002959044120963103453399973774305228011666594173871640423433421765411997085480269086575080768450131530257110143159704530378359634894182858523390867555623400158676355087648356382271649793057787763734217828228452213596745538384214711379327696426723747508060644768277175752377749186990368723320609236564444984439936791408278735204332418424887682972128236579797439756759910553034362352203908363101044414550265722965389510216858046756184663040701648177871607929425768712847590204151686219189749969193814042795668518995199654908947276557415506308500487297076110968672149166116303827822141004344043890323754780637576595188202756071355925471165150348687999830087262001951876710093820316838352010618807575010666656168327908651860286193822590345879858376080063935812488778154618574292473596344637335749103194727550643125033845784306215826906037808776504814702747424483199584996655886720241380438886567024427306939466920613125811623249034711775566698964621495370680865282921203628952398091980837714155608040302378292474645723576558015219729963322644944107486681902179273338758127475191796505972151076236635233652514893090393217038281575216686915048519913747938588778479533784149394935503810728069141727972393785275860301137408068262118078620334558669921778608203097489486101781384644514982412351764219403558855200828542386717058343352616258022248971771376616768479636520683265462465707842763217087233604385894099091576789858035239798373265212527209597682214593169036766740221428980581946624052329055526260465850453668894423029376724084785250204462571571944073911122543831936888133110187272225370584167412871388305992262625186458302500421802509100300132995785508118134519461625204708745935867801043513126219721475023524165805328075298928781101641371553667631541438895340274573467255932868491736286345231102394182009100022869677366623091298264326925641276289889482348996929694244816208708327571159877233798897201259980473626924136889946379240470349159905594071311274891982868992107654121575701677156170315553485347381302147375389942726251162387924289035445894863018875792815677538390918425591479741867562857864376360552114124142674760556740384232885156328201917048683888692167804330236616232667535336134363527158550313978174226669600689908450281182858334924128646277419169768558819028138379444664069892832147880860479832107315443072890679012739991569168937126198507907623431701224969905688964831998566102550598163700969907392896757428859844938108376652285961485765614158348200505858022758954772107745999574461832998268326488600239110650192287370349440301007764309373035185121365647560396154778206420887402108916358200459527224633110919624567907484056406579344963021067241736803286070838070821276912857488302716095272555837560748113888203639873198292707469795501158998395186173768083972373015041627222662684559640380049863510499032279476335227446370994069646318749809661705259818489096579654000315788898376670516207032110047515531306624600085467112855556010719140462664862888742627566482461864384863979661303863652541707809101505067744416094323757742626643224439177972887079401852204832021913724337726555167551248795485984578155287858747385487721691194720081014466827167702623811899393208270113743850981825514860323773116705232064611611315865370405609005736982448161962340318441702891067682499683524237174389619898295562596052587619574284226282016335944713315452508781238336377318950555211773621327459139572713081087754572762546824919762154920500864548633266154925126287195534916884822998219322324934474834116687057855438551401059150434964605214393663034676591119431306166304227311670238183557859044048971009725580696617667681875280149412714973841876951691494798738467236714871298595486369332308118705502227510966498981897496439580100633260678848939991843248549676535358498443205917697651739656020482864212996433009005119293069184227209023055837317164886747325324065717915848457482981910862676551659336515840521535506290753276788384516230872912446569493895513824234570095056683987194767845349182867720727376959460383689730363947913679813574022383344115579754359416213599897868971729302780026509351967153641795235179188670754938069120349369568981471487932802383201173581224757659727194499060107704023170067232456124210158359558153280486978680122802918496913749457285705645073492678521858709432925424612074810118110499672940051830829383993585566195598512622072122280056460355657911235222323027242587056493560612816454723729957069552899040232721404199289260704349981005095344714569253032181122962397009759626689277481187931802416398528842663926159375114121845225120503973105257047408578814901921544175799103633210829374240111323856262270826821956088298161092799383247452788820582360066389947457330881261928739208118132163091974878283257476187404281900325560805776493759557819876686103620302496116094319576890327198071345842142258966667196065131114718949402725415899913797449478116787861350431120403400360666441192558313299903485214175315772976388702030564730377568636449680809067225251323615186171808445231598032342800345209237700929284781447365689268627574386242841921421001184783297408412526218199353222859083284306055137881808653292380289196266725001591284493961341409655271238464082945555954746783688086329811797472814469889332962240224146755688303913382865708504278179538563236561288484265910538801556011496903558447429949032201890331932796305499591422549385993452707051013334085388964677257275487888629436302680782613248345932624635996572279659399032908547242639173380186596546988380999315104346511810235688270209960465928610943463289575251049497430368904224726795271128501323051115823244962764368741393825302679268086871777800112419018996288942999083250572009867278202578923890317895505319062819828343486960342455671795350697241030865404445376583500549617894364777067673480947271066304555340584223066929370546078055365842619252077667672579338251715223689935366001530755864345835310549571296701908091661663057247256453764195727438625533099500138324675235019980051367817069791263194970494156457459339998963842730533837236056586409193821115570303185447323881741306992194812385144595031187546602153475772653642356616940612757470839058674153763365582673996118773568122070698093841697225741323895695228174051188910736415091904662153882544561582683527392276669862723234851167855846437050931920760185156118372878949158113266136541516632208909136299626429641156581521431996041030992788567723308100607075846980470681871928003854292039918669684869409510368506372685189268901526193085619190580735012562374587116159949914872210147618037304566266468892698128376353013360473135768610298420594416901268770926302328065381938625944777845393202763624339057655666472837589217686523616789871987440934063916792569364368848768995197702402976974438676320865983835256696795847168663807765682673358693292789631805223376126574834061180994768305547138996462013775966645946294141454874361581812818690030322296379189358444258896308902850880194789637319299245237823967037671532019630303298410272180432883988735146897628586955590192316000829352288581970288871381647656268352791230879223852963262597140102640549068833665032132954445917227822084083511993986024722390721011106626475829611076251490752988388747447197707664770517795223048334593748082556698244034525202930497764480457397037605305352249976924587081807594402756160156573717188838699865505281140655511428349925985876659256026908219104138289499236318931015923937003910602015567915860036029053633879310577148523465285227974046670810825795156613633510421956263076758548390736761397691782222754025490816841567771504170952409443114063765910674109303813593831359867595249729374821514845521354710267233862298340244998083115075918364820633877404535081304666420956386543364548420052353531868826314843152153330926784794208696298942538691612551454832118830326771253596436815678293613418431893544246492797316057527399570541383462639994169774286594175562928725437437588045921582116130319464850731189338770104171585902744225181660700411158362576619594156783284978637456475970120676217193171294142070435125477786454215606443246927681882934537163998646929621020297318930605942270642651840882463758899928873009716660404522735094185695366929874851349650671962068152437479909733486686813078374114905524735568440124323397107082592758048416950831156575686898142783023352275681683273202834793049223886800765171706825861823566593691439153862029582422663256177422558102717065366498661104435664002636550552048125005033353320783381879553001060892058478750693240666308135471996249304977857190480746969968486539753208419143588184720446597518816284900515918803953961683967728783400461393697605523844712761152048350433890159112458612679602433211063593927121373088827766280143745899866377411929932575868807910027400121873631581947256239559744782607023257978796715164713265452362284574124988796517828168252188625218734643034663019752660324458298528922869179768141338084798660611662101827531752887822188321167567423700341509278284722915827507597377853209783157846951989016355940245152604191070442511320592760417221900304645612467570188012710115436575951829763927052883949011880778970374418879530103181426115711463705067925733199866419044201395577584739260754336313199227993805291573233762021649434982611874219807082968537859553365269388424926243225926261334847029521470352464092665582994148413705959320398178088655890190931251765415798936954403504986166627123581357885461804727160734514145299602084079104624288775750483210903099723325485349972257932457830817849459078775902706818023082298599971782726121316033805306844835555098408001007486078746523658986187910471618938033023055978308894978463944743047727149340916054692189085653447719926133707316173424256951147253021086428946024001423962430087304928938789120833955554336217408149902979964169878090621863377283319099593204836915314238872123065879472629852205284940107289661227508479329602929930582420912924628025906393068234118726985330803169758927442436684115769709900561153517245749472764405937497271758689648812850532355547142503115266418845561529544070813318557967874757435152755952390286214129338605073200304460378697039524820050976569678955090718735385753306226753415377989944003699064036858291721995857304275019247449544023283425111653166327824642799182793149461871143698855486390606486989483723095655128066647216760649000203511442138899511605604766667772755801936372746864552494227340621504433934509659029256665650985638708155288120218232312533286777331379479435322966126748531428546410767897108946125561592616414434669488627144225397939968984636635637536885864807390669082302551877099475194100021757930280862433744658069449883121426454468716279521533184579500080675522316019696391697866252101949212769926014629997581350587013272829787859234490523258846467235769636919882455541182990987365283587030319168858236749043114899044705110883979833980897114452157919861876802743371145958589600520633896607367402026817281165028106554254965929228431801241314135097554481669035941552616690396735222741591637517106157117134561387976478261857657576244841918320563800806263863624381425436058795174311344435658822351864557850661054602280027477414234445105383972554598230296099855634290383499756004661634300317074225298690686384267733510248588848902775425571965179703473144648218361593645306672602799278380218589214017980234082346273657334911597837086125964738630144997455107732438994572498433957480127487507705565550962734658829484907976563115020329333883375420938428437086009871119281301510009491361638450228166080397909184379062292366206516798285619289711944917944956714630870000242149996478759271841652944005099887062757398393892943783411059453825855555693551389689181017910481506007107689387497679850395057118409045726337783935075598890748124148176474323226710500679891295240867085048826813470100685389694939667446814098132258529759942896981916506243376841764305321197393209045487390757393423263607494744049801581583689505693517178948659361668841096791365342564024662250278876473775330212493846787651212001689414533677234818463206522265342435282022054549964736370773087942094626513645736732302282484925827988154694344913228294616737662409998716349438612662354922143493266083611435878770934715601049460054230108380609214571768822990807154902228957078144453794668114023654630396222843236831030775189063643926619486039386932529435307767873376404377381399458313120671132097738820101996273956702732040050027820017094008129551148003645167735308607605223542416840996074641931126591363680592466895056205254293743403078139698473837030090611853151037377548119524861562256062342592838227588244328682048358295394900557298025762005517853342136379087484228548686818797214972915343281815505377620368769010188889371106294265323530537705178198497174206235624693816957682495047133819111092323816006556047802257368386394334933788018039830879472053788434540836431976142258512761493398211522901745172913509961712607902011477848830993658458899581234458366911090180666569898624738506392334354314163436590082629973672114979593003143134043063983800878194420024697906723992484042841740449667205908184571202501761280992053612112024456907532909025255327834789646976646901482613371488274620022158446998714263185651980060358672820262038928366507712579040020380275921751101492789014347016429576486570799082096761644235463230418238541635883146432804955857341316902108069327867997822154877640333307889948750587571756026171254911641220696021259520006729041639507409132824176915844505417580037758107342211520002999466998447082023229702208407933394214288488225088531792103168586836290286487695235460885141604058868162504892552402602904645530772213600699648221530011528522531272611895654848334982547983272304438797866100007914922328235920553215289713272546323600362310878537863137674253337592875288212982026062324087889137161583186371070799419026301342425300139499942929711348969991995047861716943324615910235916169448076546839053166979348295987544254095515499919288593052486749206845018450247577364378771908485014695560919514287545549600738367797698687937063395869388476428931934661439474601279667102634440532032508111441575816588101769138941030634547957477841808206441922514132677047272759206019346603630028018628677408935685966267125787663910188936829729395515294184561323297827203893942754813599960178316429297262027478730248637362590320312185704553686210344520384991814152418510506603981035346945536036661976275991112539122756882408579730035578841679632927575711120691770343841830526594757416988916500696961031644065794535817340785746586211534495263431083168511217951057793077362324427818925533550315294613238601376292084453488173833630241699329129973003163907516992032609064615768305517822170888198339855302252410494635670378923364083088354174662582900230600310090316703280825561732841557376845508632406909082323894687246752012560181304128056448559211222155353291971209844356828991636605391328613407582960685516988141011451168178941246290562349747272738078642017549699019912388925369369366484400641343897162803438680518639987866452271665946023084547252548579443613932793993138905703697274904661042309664199992353647824251845991176505122525404271932077429321957329266510511102471441337726583346309202194946653286304086352390569437703865380514262707778583145378275240724848621450418395280208900795512105870097239150148714748324925085914693739754014340171892147168033979368153214536650124607996630698300128522294563031148858792380860195308056967456308635821648919225460704745875768709588020533049671356749312302109809823745888136935778017001894361077139164928088903594300516425577244603767290442920962305882358034516829605259708193330140750289830048242907770163008261935973628440209983385342216830947796622861486420655217706959999060755544434502244414666677470699122933720981894832610193997320784468036971043078277353105513156549962719680782769257144123175442869809756634590558198819514743820198422520622227704343310024021632944094649135469394502108019991035089117002995868801820241550911557488306792359530740542167998921557876882858050649568026145429832493197000882826620245918906812739834089135453594081980684104012190542679821227817902332504873612868273241600963529629356429743191398749935977817810485827872513918508584897470534738248492164589928926060542592656989720709912086735737327964489021287656705449045551099114078052037489518704800399675744612009149317594337795710517384292547527013759620131729341745082490176615917245619192703908335886534160961311718812864785126893154761743759416537689252828666446935604354071831219955095831772032129123088425178255130816069242784325042398198109500255109274781412518044351314491215680766548135661079821644047714480794541261623968257245503257053960912412157964365533401446703574198666420885600723969732354088152894932500639225036920218767191183577129794038119248443834106292409008183532632848331945341096689105136442922473048478444841996462743754889434954865814362768843535180543383139550342300447040556420065135012343203774771799850226827994268004418099766165575991733881453912711519856373615895415015537200566943459371880579624890000492826121171260566721539977446583142703904951582781995510168461849538118424172831999793535431654993530105095191107498034918940120474525480333942974966528690288889374999969285844318099474652919607089504963041236687666979573294933877379884315002956724227423020053901437701581944254612724208780641289495204769139367187618878090016602419685119979044077135711769197228624191505628365920468668072276510253377079846264623297840631011779249339038904962570044432912907875425798447115589138927589130532686617454113616067390801066362535149296356667340788480220755435795449423621195011143183757594188837329822501592921683633039398210331689789320983487266252883389706164388715941339610078986236577910738977686901497708364750453148450193679443470808966239333345735007556757873819708577549729738083920983575926563033686767501415863120600061170707801615828669198879058526584894383250145658156634151723572634031026775655710744100459078100244870732558534847704070447395471788601515934363120459913056882876067262862412017663083423996943594695259755694206152700230822619221848908048186270742868477658463667311507405062002186092554846751853400041224496321250388292368560063386268283230880191824669015091063038235541039201014052659802382138571665260177345974135907646641617654022131576150727457051800405099846497532169445314079827789158721261622592923607736987277810737357875658769624143433613699172830157044826830628166313690939649354963283400468420462629190842595229625238198241335595726704793553279855220252906295853898257655678058405677504269238561895266992700349980620863423277547382401106328925381225028362058706978931478123546867138815176723633107976714442294789387950120205318153756355930641752301652206148940571170635885239963604943456367425192731581210656099016817762584342595614251856562154509712148524801434919402528979568798894708875052062349884740465197218386466685180291397385396043453068307828442640378739670164455321063359188160738688121784021846419984059806058236450013591797243732209685265648688377479148523149818487421566181230664698387775944903979844320576982526934728197140620349532216788410716160344815428262638422613046551846971393968909368188177807015541548037742589030408739221427224103244081969833824961374010882182599812840584394145957007072693430889796189440592851656194754424161149092201130324049752178956337284208559846419868036122137731469775640318676661131150210461025179773206815589211838297469181688593579557631503292243513466470988556134458988069114840278382041279269416449599815138491995705111773476172357777392048952661097545249203371789180544370277010357006720542339437212828190297179235382738007326731330879303791325598613570284163693701524778032102920996270075141492251244217640788110844593943885537637749624616951453059974657416232485606397347719005842086827445843705740904591549465842657584113306273556134755856391839516910379666709796678736962573625449830807212852877612767664519958584411371131630564594803571389165660664666411168096974464077877742165973623013255972262680554128299526364032571722060541248873621306497361075425695739346063029490400120963158782253314886209153187625848552753598307862176619892561077662527513546524527803110368438073112001051523805108830431166255840743668510942712395000966743424411282156426999261038994449808184783905900951664791987375725776101349223388443598868599472489304380067833417913054398903096785890972784108972710920710351236025067918583454446408324804946362056134397841185181817788770101981452456991863386919923346512734129422025952486166497899601199729908100977081517141861325829461831108118509534893982740049153138013006663691478893779170942141856629853061225668387348614698920918916072587790409421233607053399886154778900453705231876912004405864377048778119684103259392134975008859737214910955077917347827838391961736253783126441479324683138138854580219903318561943093314912343431550351920121322882276222883525795242881834769278879956446069320826246895306972673860527105546833830956881891960013963532838833756308890082838025782135540047056637248934241355099427300166098180396776853465286299575189875536246045443786251005405611030310896495436890209464525383934610061249618305362267964885777644594091968421194862587018326641345001862193388816756129777205633062398278660485823380422829497288146649319060156732508817552604847460427590872457394696423805821257828285414132568693539062158644347767233133877129037641837819664013415807374684209899917934885685060323639089460808312226267519538148470164156681945024028194088486490266763247109089026508300613534101916414588064500096605555648634125879323602719861342867711454344866854195788616272693497827219947590673928545905907158078679216808324297646511184973929888518255361603022579950605913887545941465541566734892623015872240294560228800910292972619474045306416319461915753848654319806727637227057608843391255590390703777958040660065709720895401096954267979672745239671059932145001234686561431662391867130283304783218530442763297953994775065392400185285060683222665055266366552366421348822599040537296027818244475253924612774322960254242058187074743332048951796393759467209725466007348178090084101993702179198145831242908631155040419636185920638300770928496959524382326170773515748543148049348226166013155051862899349482168529282545653329878151155163741552343931878862187317873066011755007719516066883385123880136619313814049090878107773256209462399494977479617222322125105195466626854427857080798829732484635258162082194960316919130459881976998828012866868573624515835911102554297799448324283817094396166526992960277941161403720230257040956328789378186887451579634569736075898316699849958083604006718646828795142675306545896729910940118813338878588014889298063264605475792863528953883814305313832511261535636708805672898608227392607490135241540778017281661022339315037363788175496057718529443137175769840945640443789219888402153787302252263025318138839466658108406645631399411510130572241637716950917086950198921013353246130768500973019255046322916290615092048203946470827973999059922296668300609732335560977263594100151692959325384102571526196265531795400150558027487501266548261158808679778119551138884063986644037023160050007933443506200067211954691947679648327155647113782388860039979005936600731793642372047527510345239605454518508414065939436428600892280253706622174632931115660195116483851204018927715773474481007172679499265952436081425266603716843224557038710954113089428160871970388717983750289097714232897254675992159799555660750862877235650557042663873708804972195382843501497469026257444580434751911217730493847617595303454485195411003255137086862273361835014139064435513974735090211542220145642352191248187870888352485496913533071033858041860156052092353531286079296342873711842861535419938443383301250620578563376547528559315288438889862240497180775484730497702242750170581648153948114959461949139466019817605772654060826881621045625129756092718532061617920144098386652674462475875816821364958335878858106457506094911482875186322303727200152547138099765319929234765395615563759373805544851963407820390509073927883766268145494784999367635812784405147765425992853472844895508777583470494661917261816487988894482108155834832606803739171586689506800243253770174918657730013612197431672609793959840581650799302375035718529027500845600263670615358288809901760558190942363240276837008587376922877915070741020081775091858008351717614343432251462392343562548758369028256401996656517027950495933944047924952947137424615542773003993570105333379477400779629735942257404772289579163318374148454086171187308755288504445083240639566282656014174060579989861451689180516155162383217874486055279597616395400786879809610955426785776463772034640341253982941219876882995468907693170493337544047129465648570228879474924216739839635829566155989011579262182037466431052726107107913488796591530702611301974808453889845503211464215766511645041071074461674745374030012449957680183795086094590787166141456235882427963494357554580852672177934592352192031776019401379017600640979232599447149632403798330249422057944715178343711950957961692534251107044268685497781791348060625316758016997483298861424771641309234838652903237663900688844614226300779036785069237596984396018231820347835735802328230396040865186871919233483058913624950578835222912597090841560950522661986543487956171177366697283414405775229684809333254241558284983157816803832002145159835545247864155464849392353731937642031626144226957266463868122446789943435872311604181657919025781657028663292528613583796573914799454104326343603368906440824528937094901245047299118022018988777080608221500722369089432978438492238205548811506131090130694272609061975772973781993328156122326005428748225151218602961108890810420587882321548065959774741770683615498786919840961731270102513193139522835528558040607415503432931010505241389530948863480244244646193335744849287819192409536243173317703794991830450115255886482399104706430505462293880288179137620145151559743589589677839547828387975829896189553103887790799276763859000267675538658133785654637434819006113802122164417496419398383031058675633522926776398714164957439105271236251372701906775148205364348873665518334446473811405867102414901894805167361780237195631635425449228662606092214720134148203880587989963405940201748692712314247712024855134754601342511585107907926145376801989108366091337488777803354748593485239113609201001720658032785636835114764076289277151898268485698725145070667431171999466434578309021114409367529220724269597325963373806641129118904746045158537698023742852211315987326527553908775777563275917823311538059994888669968861778892686993002698127027938931184989622988148851075013634125870713690589751182517792111134985428942058088129103211875741241974733889852624410355509722375078068333111511644604403722314617368583830979102227661863218905297990834618420020355639323379742339121941121911838333319427940170073625052007326129488028381249295186620283222559277880727787883605970498320300250611285999286890664836528117463285797940685349528502848034770511671098011333299545941033908283055036395973990248549058580468743638659720549660043604598100983438420675537108744555031155777238415000578899268295820086427575367240755565189967134749747709184399007792974216409478672960245685860850241003110810110183821563240596239276872900428064969617546093246997096963478210558796734941466532741391557714921538048588373750871793755070684954517496494726017952956156771145648086748900942754308146315863824092319425801470938852704913533297615558831425847761777874546824615658229065197619867716624477974235112985283427210853964671807650884427210094450837937413977681915255214478840424664327607646427004382971295006429139623059804593258849747110957039255610834533598236660439153673145935935690606455303318084616941639234253654276087323025293686937483916926992651205202104647973052832643933187712830682370624288482783075992520423806523813422773002400619553687607261441527948939796322046978831700900047472133923506320156484400096822978554816100840126297183856770543424455810503676177963944908103998195960520294194115203437521644995540716126459471394807649977554447050607661015968205962377306528918401823534129691836222724708001142570427173996895504196334639917168482280152824280548775513688667048846436704148163155579865836850602852687705731297674745583512583903649730576047074807737097036667093225565235255993403871138519890005848781501346803785873201896901916106914883838704757566901772880563144656979689162660304841662385963214860368073010663331500290508382585205530329439059895123580904001447185462441618830353831334128002687483715995675051104719525948612174658692064490649190631268134628391474904860358015962660909507545783748540694030883602267508348716771271416148828669096912081823915698921632318003318402545243626523998940768565543924579183269267229035996206518091644595146353334935704263375072551681548290381441774802238017450294320289609902876720154537479329228890514279693174229106008345067278164206723251531603736290384863949678153957036999783375694288090360283186420928840790855795306262499384317728514256490388793859937404617274407949882379018892459176558514768364648476236684193975849424957930779321370522913835343763558236750313886164728817194275636056002633207032690683541646924524568352188069689381016537853931280477890937398995793914734049602711013618609377227515072305817912443542537227560853003734693702572328471411438534101117084030121296404719531149530717219330695923067193470037089645843044590119348910241883787424191453542164589997406957278306042615478630927399202396537801293551236891561700171652406220278578278794565754860797441561320384297011067853053835316909423667616776051946314677955871633410414703526478258373030558825241219052373168752402810335858514545564982981550455319805226163011938561002427281331821783502934544992714527510433798362204210705750269958417893091369468830233360521660194392163578178031348212455808321725757375241477123309011410796695837889720510271080361459846278944859459149184547167281705953953450814462346666338311355514536981942003583749769449960302801504546936912701821964440255066912130420392684209274158620256958500477474836089494978893270397634943088705986348172248868931924956645115992374397173468220373557913226553782920005274634795077892515804686563423817145663370768650912685321314182849878314178314679664016227196839984111430693378605706718011108499017865339190821062634943585224620094823341204256780758396110699571294187513441042048461276782479027741482912918672019853012646956102615786031495032263754710443386981126697364716011153193414107516239252693894893159820067681897688713791030528064967937871522234700126973250053379123717240285318806440026612138432651506837562230407295251356576356247856746264952145439582198290718298027673519706642043569486921863733919196070667303199431793877004516387140531504562438404031280802437032331666832793811259042453533008260378031965988717870356256827117050689898066457041979375132658664247751090540761620463792950279537881515660826211875048972764545896417267251276984018810783395326728486605176065780419952530539299368636172762182953343679411091197278099830963748781476942399567546126925987317269466142537435943073981107725127817200253615946077094118187256515990444993866092044001613686613536623522761573719920257836015543170046121684021433288671768333080643259798076766933627820355409500632056134106462527978281855894646373266244197761386307011122284732266672845073917455239657104144490227320004306414593577967576577044816087360743991541483903017966972354313275655527444593303938003429507222215492177616336215495500474773401139398235126551547779639950988373286721460686527609607397738170564087422251641961092870090380319762398457373579174469404815255153265544165641135302334369784286068172395082399905401776516731251051609813075645796465455972061768502407801890256789449112847946566722872088501256336301973627695060132120675585858689685954903879419191301512741602110895287854274212596206523339631616730276183368136289688448558712880738890982009383091101848647765873394169082983395126527784744283643602369356708295722722588293345740898464437269047046159454769953688069599330679274376819653657642875981246466519493018203334783070174064340935564487453548236775503690560510954949292303333725496976402459354515855216770758108629872681828482779637818377194837737283285911101161892332905188636233258799819072726169544153808852366112835605645005226216790175498757729644052559609490643374532568963218459564311283184133039674409193533217068316160369717891498655928944855030654789271207434666430097359072902997387894323619666131770193843850559660767743698179658261485315149339196089077736992602346010840326428652748289609905505225877132682701639218422620564770146582494429653011352998141439679320943507316993336481318170919212048736247546324449445268761714029375130644178953699539298252844858737946047383608924985241735080573534086931917742110948464406808622443625860481658569166062566223057054963799187237301692571059090274416897202783668074679606311080154714688360450008344369809347847951789080130991664262076340834472946167374045095757069740573651416839455073678539221583095862683651837577994517922114310009809346081504227945587141677024106695205271220748088634153655868059824287916196681393501033366340193564356841678414444919900578826988064851518086226907141932573754913473657382818685647204304569110011862375895514740575130743516458226405777763188334971230333452692068398189941659045540711655214886593893767530250485951258533293358553208244637118250191032038589199613331778470597482619897366461117641826429748482474095664072965545833646314953723272754371261079590367091544732559406751285248625566247519184989951765721966033800880364390357940266131213944993657338293683390253391745145617849438235569985092766226152286131453055307386360481034390050116857281350512415935768244229743594045685724973637794701292341419354884107214712288483114655878449064187284962095154990292872103165289427333531054698896676187404428124021201117822877468675396123316352107237568778136556888546865712317084439087014279206944099646094419609301613422520129475333557632480411746264283560056863603233737694641360585976712462282279044210902854568592371655013683501283366450529706344008843491159579875713197187876229546567348502943392039031708264521733939250719113924539684984686504548404266570725716886131689185139529800250905815175581890723586197893569136010097001415347307795471892463183237608827723244591831083090359903932673407972955819197079114864789772414491057969265479367473654129144262147324431401294632488074338953169122773489853761404598283310447199346355094408475250784420007584028098823789979963892391380655430307904316232404912215197353799812983748788925606989949804210355826134225341655901383629803672412656532843703213500610904040460435632855662896326917832749043618780082765360711985392518666984495588138613356263610895526461108138086804243235881394924019900458900282275670885305389953313803854855392443999595098720598164391897341225175004995905276570211942186289003289331565397931896239442638311784771995525987476391934936324599771979451226118950483870814669538807612577386492734530149454174272409819581053529574830262896409063457845374929439787954366519829054725078199052179716471462504748196003993481645706389465701979189923088836685189360025802580431755828039937571654900650979641001936290479326587963030121438288616428948005065121371714392667430603570042559220903576773429443344798881088103641214674426726475227425243726685424671614496516956802475337702692586147663100590121609404059091243066531101152513906545005868368668097340300429790228726196134930985262985370367085023190163852155755758017437471038597349156162185957674653718650273582409900268735980349795391520839724902041781808679071690279212344743539585620018767096030579679392028173201618587075300568154856162454093417204264498305679754979569064043898608633919337117381510419563093287005082073027067654081332904575023492843564214572911796385999466338924197601827474528634685162426247451996616870466117612167411916086130145671606607300788472967813965927428169791591945012927174784178999135369222395874878329367411792393271368209658257742556732381390826685576652841370700579935206873197426862881241401943756545726685962520837873470610928906027109727814592535915695255829415785222064270234180071755093139567131416348796190797573037931195085599566576993361790131156546778909980497225972666518223563652865693469123949413070811660782968403055394740216861558442879722778292397159052885070802196033042191633083752071909532417719827715632340205770192170823797142888894523237214613383141821799821910464618054680201304461827393749908777962531763168596690796901147249448660557163859000967627295254714429768392729277095580477820602170053480634063684331391326419377923211985878634913533832963445841939880267795238454005321025887032565868019080780625930336345000251684820823895386472508497128618276814085832830272131887830823202277982167094832513363759483164259212338039832773543056609369850524821363714840188350914911990821705322913650788697496461101508165915166981939584620847500960879715006095536630811884733254446680055894173010727451707399764904771972178093566038448613750161420713476997266020712859443333596970960531542379837501297063201533187317406692331641353942021403116304070726452201146797348099862819727935920939786187309623787363633833816721276221091840718688863112375879625838420059097155574586815388639590652892880663956858764302350798455385997409884108912412573859330475231204832444769672353653160231484491130272913586095769026228643843187362231773827320214500866717955323961144963446748462724207046628523964317488324195285756161829224954353586835889962095500605469067749491438656057502129528852698071890480873671152794385426683995617193320863121162593380261869659947938374640531995149385943871799099249904151707061037280164483593062573425317069894616243423928435350963098475927667152357184609453611798274255817213574254081248483017921410966421722754749020818767605501069507127941980412484842691001919678081038189989383218433722180893921777069406146624595211975633886765892971981170457698960220213067383476358135440229350776650294327667632041247591611072095170649662716633376233316611963645371435024286610337985669724118568227778974263851740592228029502476604565097128572701034016770482036287244024335042159394626143036122045316598975981460498293607286069349750546522787021773096852775208187123901493812734943474432524905462025643463716419889189337543542714231832899806862319693175974769387480030061834511753111336222242574347124268649431671745654322112088858191389120371250290253585436343569391122966097298743322873018379603139237543690131209659253945477368471423746782158773968639759429103366730110654522975689178786167495620399621292401692730253665239717947525504782720189094957620071336313501785769405581430106402894089521035682906416010072321425877340956972342013434517680147042160538928390679735818996220016787327244997831010690546334178771591539840090321845868747696495910545633276681840323966756370692312719987192396229517084967270779115125284909423109438600970106341509139356066162876470727858168868283980514466604280950519379818286648066811563359505710521442610093853217202502467326030768189006194684535989073218477444467981459357886308944190109558889369280663889190312418950982127744657176369035825707901487815050221229821598447088511690010420341985118933262724076216572385715385472295211555515559486257142910471277281832353258151594306074938320177217441068493798607242620319605051352566675458397775086880857815552424879675993635257033735842823307599044567906416325580103022463142184331751236354547930393120519498093402049800070956004108907709745991756776896481715747139087526863375762632907261926972615353447457271400458891976510498885749491567718053134979645961010756587725132929580750124689584255959914455400955422161339141013339108171815777991135762389889962365545856768452757996519133746217606433190830581314128401868448539794764964329211526740779235474973815518097832449356035310213055302356661087644469768916156305002284259309133185332761282397095476445215867441450813466391546300357231301293850154961501637454881321348115651604148782898855499845869696700151910711384615218683014820819454592496594156534195223966825210928858576205988648686619534787343804773374963901025511856198901482505434530013131395478527073258393820403174510756673881422357627018142261929070015991775654590945870910583425316548885114254219552548762902751257815948390002084376013547483370551080234232191179886008805639829076735065395641280964776129308468456732533980571160456265166369333658184814792703259540517938173012361730075847008686971364578909837167297115854696542853780193415402409411040236882357269875795579805787067836757458463358194150422853107207691216219203948285003087036827940910606826913823971920668947248801624727681736596196641693360889341639619166890051450619324170752360237483925402397823566361763050136436264381067308811373049364413417949138362584037459326079980375731826768951342621473459844737736565259465164353445861272553397616323472767694333696705994965885417321405616329275350989917977251036851726438490933919939698834737821140370662847974890911960415380918182349901742466848158540017544032598015027128748265090888902010276609263016567596323622762137961779839285383308362023011538510641765788032963582262734199723728437532782792170556886353550611630330641971626823098225261023356370556534881855588624246491754487090579807381941504961243908119692751758095358087556136938818920971370468915807541091846531497879672753436586377175135415686366848598556055358025087683639856098730143088103147161347535675076940242988059297442831967133126827835621287888845581858500591698435949992140334114902114558512813805661932845086339740096495980916927228271664469624476215333968391185408444279376568427477286335675377604963439928131548786890663895613806334857386643299166466005442154100176552588657273043545166884529691723572268762563318428168447089388867068910025117566941197714176804888658417864454690940287158652489071275879629391208941227536980352873377583263877218204980964626286805482538453162196666846501739726725383835632474843536644741455524773417482306730456323847408762051540414035954233880935877748955629601403044310296357697700314666673410568692634416018801761905382092693313024743547850173495171042397919808321393521355319661011345252786303088551553242156333887113282676931964722877912663824297889669166188001881978553129468674750797582142025936862410511646694256310762442844834487146067398452080932714421348166068501413387720174694108075800736055918026069277845609551954539234570188088138652584928383104578428677303233853820221487079968340832983580652957710887513425156359415253051534724072075107373731030597629237170785205148392862440991550769838921332810318034917758452153898784902042985324849199929544685392416313536940572826051186842008684373941697380231346811904447291058724517816078965685041866637931744124579091086297021172418240417610866271963868163599956130965087414096556741751572848597871325628006150465905114670800282514840870956883169373047979987407484129258605992395893749641642644256754156987851510690660476538035287841032302028849607527172480127106633405847501429102240445890686777592419403877896365578586799135573542842021903299306955459750414115708111073518329512476383505779848284693801181548105771434789897398013539079167777002870308838484361388702379627833473754191839033148457750132728915993036805086874141937144111927689814278541516241532474408122912713257862501741351635058236221958443413137050903251909957915195697654783544835766543881831815032091112426650213602791983322454482308235821303614222243064853966821400678936419113736345043307702582754665233992588319264689750424239395915522146688300087432661597428688249201780528340740195696203624315494378814851834696345406023546432295027636548894955210360788089537028639120983891891538036233632154074456976227508850283177733456353010071336867158823477776902542188092576618428885748065332550880477816217445816913880908276061833195448377684644823613136767996515283971301450314313924206641560767637210371815996957955934491960588698494437080326945167447689824898126084193182727899504066673137945235852747100370836428252657789522966824162342155007544979817023239369738505013639393170327615451049896408094019205393963413382370408442989244197567718312416779629897179633404560552814247166753348602352947076655866219592753968766305725010476256447009126060329098745218384668170873583426236677688688428218394769304530407139133706505070814961050785517378144494317792100640721571499375518210808204952296354509913958555768147696816195305797950970525923197676898570147736103556464375582573835245938894892536690025917972617693810720539474791700029972693734573327035215258920569795050908854867666205661575286724233074948875350588756524469705718023364641671928898893222029945860372762685727741866926662406041217151761675245532436246304437973779335941797053294599569949176268401767609081756532469700403530230810067071497476009959941727055048586204325574311547580432719852892887010377619163486854153432047930171751819620196601004814394009656206675394134631237731239063244958412626148802780483273769794213566317083321373042802706338742461631838320181957513062820359722390253252770570876984053584451976577941123072398092070180779797240224124811990218946607664674647236373643227732062640000076328160259798930542338946843686941224212274017338151416693089149296582338496808325803266373034968750468278914293602021118862657382324681870293199489298742920786261910710196212127457785462184064481984047299901249676878728567207144155458999720537632499685139304138799079600201367167847420889641093252551399923117505506670309039075115099035296007009644463174193176349718588954307039056512350169141983232098245364476648709320531579469105326043217319631009461844204479366564267095077897321231007314446777480407923204621112026145500289159609759375618532575061035259869064259331802006913114094400849505010545165264805394168862817990771477999072385826567827209849842223742651983641130044041777273709218588426064297987028162261833526866776260890187254548468950656220751217016802481897650901151415611924114621895114327817235234615401402949085913006862940007316312396738392420494152545136931557816093693201173243249682135198252198476821603073718645817553943356285986840605074072356626953184599917772025844001741968520430638632308552338411039559845080965471025375909870008926297585762156568863710101633766859983299776500617139509907950629316773580064045476873316194042802314458109041572471627887648692232385086818035643823790260824828595492831962022863397742307480944430150434606397542359510171869246906253431299298266828722789700947914520129385917005229320889935504554657536561091636096193988106543232840523290760026832504492390340146587736041591900998853576547394464346396778403548252685260192848990184017665474769354809919030037162390597688635514529972500543665593117975006097428450139164741747291133937786163337080416194138378595284325217306569188142868865421302930298773652450838877214318046152409999694553314554775124395113473621154738457981247150180866214951995100287949227296501389845068069709846385461419801500750681247718114522765285967805326797297384811689429703841269785922779644303110759768066076236860601407686973515152746900242598007576357373725881280250997102875289527874392174965682207057796072819455301863929220632738665796564423903258154705414438902493031954037895846170590268381692478969905594033351650746923621705621146576325010480223041567935207976909561949741315340077665040544073182507511516009881235676287306284624609732376372996176134750983435835198925190347933781895579295120545054327945644936261967070164613127757389301449449890894361385252679058987359802360940044872473055393418602630110235315581863961332244444924294958219438696523786600123328309034719234151719980506612369115729863334939562560541347535881529974904741318896328895898878962036023289383829686771674702559037142946157136896011749228075605582626262934883194712217401733234884882140427193641343740347676623908424132411484561754654504897953690939263606122635524402789994680698354885845712525347467921728830812308769504131712849541133348849515747609443407162672749831941763543931287324847074412476451481866505230668785232962670453078360461277971421243823111758122035159460654483398489299044739083235808785489775618004139374428365530784897698200333388593514983252587142201502922072250682882257708618896990564767441075953430946003962626342182124986501822608662589359054095826501212270189269633750644308710362725574807621360316151261422738006126198189922533327417796763992793078184075057085614064912766099443245287649608162316267190733927642498742239221766810795172079038343510999845703147660054528431413655542565119322904259419206831763362013735862988785876494645763605220807084558646739430246662531989175290300461321609729746523670129811798002655768937219479219710014932827198808025202159522656485264044589527878917172901668131824594146965117796209811546118075181862500233240408778011445540277036573461187399146167751721771295590695501843053237194871983858607889488930838037217912547020208211701164699122721616012725046360579383864614947823068304583418358882964760512464810698044125909320922595315494737640751537380254612102279833492279204274597594901447621280360634063518087293904775171981615421856550077898248838772052688138326372210272669091256772583404326020550409006765955839937579228142671022588009119467312122376467961789894173178331652423359293790336559422579707269469816578878507837066300365851335106746387457266186358673824429052265635918503035160970188407567737131449119049021306156225936616498409145471432380622169676230803998147639215947037422482714009925954433917948292217849954891363906641516539211831672424287283354493417842216426900503994715353255006266533209547563938660215234702920388474538856030506061364921740987030927514105299894863328047589333576296755355875609972996655998054452842488892713820289797103128046484282368316344834513264073992725015944078315400820579520510631020678181380359097537606288478379068314604930939395644054026335861250380020763148197105777236707451343414795731717496764453106416626124929914164710657290072708663007693513097146183044796371317428575621029117998890484686509242649364207897661360019407470147978013529960837126488417448211603374659742179756557076032488169207659346159243574944657959720005839220810153686923479521505671953345080589561293639151179134743065271213005486038352285824978351404848627182553020431617674839606948392173282287850056603437350839280573611108724011916820676315506839247186578445802547641842283276189929424627761683366688497770826289468108942705514150645803445015085766125248538098790292609962867574689363004777521029904736573273340117950590602861163383439375232401477758382727431697366937573436069976350745414394399292064921136461607135039762475703100412489515391597849561204508746068020951973890039194192141689903651720132108283614172042700860631153629494774320073327505257666989137843243678960790529058575167265481111406360595688304812387244053901314761749553643240172176654135837217568886067126613105026110724249129229843259789259042642246665598973739910068631864411897257853584982894066254678739359544274627663190811029788537502653749689672789203442057878220662098117417748154871024039135456712819253023490767017944029108461030603053746383557613540670443699064971503957570780251596910874212547371185978386603670222968498897647813962459792122855508098030861230030110466272559027789409979080339295902892269462035749678985270737267647650642919907515918295548713820607147229870486179572018448527617323680306803460973996235887652099155050987907333688094157588252102502752295171278365817718120360796287562595479218316471358311087683187529993700075404353414561120385566991428064939215348762794140232810307322261605515394359040813795487484699263412698330191069515101157441183147777231924696453363507939083577930344423106207967249437423929783867201806460543507982955912317788224758830681032801717196991097093798004957738184586441780393031534561301312716482478282394919710724587265746192298191655768168485521698942926830705075687673016098482604967750682197343908577059520392200696848409245949120943564883438389135183394576342091232177331761988500716989570178255740787072677413359455474600937409571319581340224530963578966569059070014752165404799508080318386750478195486477236512008363098396937492571677370332371132958744482095156073870153802189023233599413181848446114508641386156610967285369307089311775043002179445951010230364879248879346123463124442791159196618478573570111844281202600856214934832885355950015411285799669738849379378814430705891613082770921998578371981123648306877938520355623121786202533899110205709594694448104214700531308380672198794574517435022909952361590374857515543281411889244673550178736716504070881612713658227785542916778098947611065767526474926200363530478398295881340001208231773536741597286839884449857551718787010303654498700558289882247213909831448159043011002478258413683560747730757261168023181730476981333058058248595899613295861721467765692215944301841937033278794986288418580917513492332137718875405590650401424727189539129788998726201358007869402557384259707865912427800915451751907789201450168222977700660490385619296214445725984862397741328763221519268973787632229725222657003000189887746040767977551029465982177664319248771527842557039252559653898566109417620376392018157239817715684471675475662401159881744506442936920841734664567033057757470224289048599423753265479664715360868639832564638504487364359284965823576289798546416727407133740578109206519795843738563270079104937091174870720267199797029061450104797344087468762554097258338910227850417025511209143168210503391138037525246333714852435684115192841778632034355722335959314874713736356115695151575109187553081995090396975073598935263813771498453769661489847232049170039787462540085717967372683761637639554723753163474564162208568891841737823429105882613252188442926940969169436203419122160092626902512117057226062382780033416456128117989439164086901421725095841254804091735507873777279648146018491417247266314850418280643336879822081193308692139345466072685611895759546318345666562645059538160011006407336308154785146169594837222129264274029464990681839370673131238662367077238274141277094591208470269205076328952254818663860106218422415267573999518093098199175731484784401845831222812477304965689552349462470925080587689533759110460906524265160383805860752099820860527904092044777458942157275504407820207565227382675940153658459531427073919062686461948908081766279556915645200910911570584787071962460262174623030944353043695064996448502946850115405554795870656992113291126579782647302380458100825384575840541137846178044791628883380555078696058048732010668470607289614850682099615031161021320801507754912722600569141362356369392651908878939056608308863295633975275066612327786948057347839967620339130524374111170946526983618515488464694644786438437151870808719083927313548986813521978330391056230651106650097527092298160154284227646836817282914978512915174775612276644819636520259981632941287657965434033698870961152554084626184921205538014740824184805151121406636402884276748513292013986249787696738776672563187332407197734736117344411973530541915352330602170182086388118769811029919050141123245898912046902983779045216606421640874907142759886713339299633085951207158009997574774783676927657941772659582375570077282743625912922465442313849024170979516445989254533174935871781472708929384902019647771308320538400443867738819114693310806070386427926329541339794516094658485559182341612900321485299023504888088540743725581254396058202880431984444557289220983611086282150332562497336406069560201195791268501130904196790765377418264188976880518746867350159381316795510874252457805722573192871209021030446651321615250765103284339296605273134052013772963643173813413082013716637418396012416936604823633536463711361774365142763788816876527076939825908091184637652548738528756904892804704794716611401684229718987853821037740076320640842290974376639915868001216699737442762608115556627515201584644712585614582965038564988775546559994538210924894173496793647288060754627567416705150150325313687283915095792819632226947510231284112780487566515175951812007230578486536657886981891348519662552671205573209589951956326529907434409876684854259975440897384069177411976861648172236855248392800361077607309648128982955540650162159373254534594579711226668941087305975954157316982864649056735913789256800512171749212735701119280590318114721759990893758648775054993326568741309074510836648492017545835985753779435690291859412608330997738905002089734788105495019707831522922201955332648653494180144613707857341166168247165370457591665884427402737618388143418200956489419740258453760201788914629471001103252165515447426347549901360945568823670174803414614493778624774853943654546638418520666866979352292146650596690257689456358015481898017026535110605488571089545065415996231925683179286291700416992892323970224134413194350416497806722046791933874767957882334208158838870519473113399763669818071655616339370438706730467496836120175352110773163326998612501667492956405373537747623953467564426066389708055473067737890577383761727038988153662353908914924174001229216558230822425985682983103924311558993902451629806873235679317496172832768789327800406051304451833931951052590086079374865454311087085058376672360558989459049122673334140641609483495727889720583975770647848878252351960538470513433706570414830780407896735957954369947874500756633293813634369401814504996344956399190422384150789919173316118191161328741431310818297951605980202085146418004096026882027641813714912368536626329415349333160393156919594649219659093658542875394069725954642135504592136834460640260653195298528000425277060823122584501970278954925625392321140027725251520990245067520611835088805937020064766948622004266218432556747714019142951342330789348905689299269099805157589513365587125402221562671754997500926639522170918300735979779577620028444501572419453400531360074741066945112562564356420592229200207754453057335828279551659054916533627236525177046583525253379546159829973394015840248215464753271526396116436059942319863257633960843736089250213945999652151803095494630878968000595424587193751478253845338525403055554990903996181804248317821111821710426053088555831757028233614908796608742828264830473905277007234443098123641658451032194703837821009565889701192264134171076128596716363050963432089897162177952806805458676250889577613725900441388955859817678688959419626128169768730885342734915888176590652471975276399312135300354959199287230496331036546227774760932839733119783908951386458000271580679214619051891672375952729559056378848266630959437725028683291361891163155447995924853578601815414618427584021216546451931801114339689352447854764229247340697049280859533131230157787575350353956830280134271815258863790679293060199495568155016282926027689670112339314149297225719111703864611446146158434525783424358182251198037745115240281382510451599600376911677412999964306921862166316480152177754844964912906489486605644521910634086125453695766521029668204899172409009800928850994754899084121847507829230534095777096408007823054684678817779493800027654045743586549648900270477832610753890544573345976010962939936916435847719441757990250764783628711808002971261718970636982268278573986162433849184155430875155783222567304640688149196576745418925643586987126655512729420169266076223518896154148722979685674032974239953973289462086925634076722391601346106721085442489990430479235418065399505787025436417634639404634669152730944679819339903507434801984536815934086478566277135348391067907006179994568810657171523172154773857850358845970390397077265350350519317491720332533160542733106937011985598142585129832025076095186434397174933252689148004052931781627825460444225268286318792181872813974407859209182289346365492783356520831893057213398632831709704676182637179007457506823152967560038791894448922808341811971693675198749769149472356702706505400640778745622805709001945296293030876586206646136763915048941299137918871422500984805483569569655675341322058364178327042796059037394624589950125067978502212157291361239751186766551014666227778054888164177050278619055056459787719312632863251296425680188151259646815387158636063060588200528847987934557062638410367818286825548064883328423572023590801271327610199007320283001263715230646034560562540753509337649912603072743409183478594152293833590145551995709916014763169278061471145372426961847079761328741518718619062687751393913775142106265873319083053023623030472230974148325202664490665711612868908146823247620347646209038303135050401437171779229463201483651886629626266253654308737477483900390419279630617630145394458452788207654852679488488456089725041257067392101509188425212391088747724566571654784423640268318901503161702813911079965457612456282808796143681758113097549426961655916293073847940656190781533433484067907721759510882441425310594059674279815972889810867652473047593280001820414062666383398108193828268780429613192641687755189189109679423982449041886977237750617243921190499111395722773399846111237058285594866685067801480409319509561900305581539919889545162075217710431715218009864353863930553949281536685788845439233014089353112379104566625214651474328531124632095923885971344676952767297663780305255846900544497409898698586724952755346996405567551430546395560118665607984458548260790654316145488370843385306810192833510057798449818129059862595331528324860828844848956085070141264527858724453859875547989928707026793360356922733790968296027609325346716609401775813713227703499154263530238557224886433404145853749679685485944838114161384837425020555359781205956797473325944893563261170399330343679395217119632122712453593778361495256632691799130925483961183649093653334875683766062021589374312265084237537272891609689981096860947956756151593914339066466816710577048918769455422457631376056290396752657965834741491469619930315620639151390029861647361682355383044690449350170183307477846041730991877090502716762642254898202694695590821373297039405401586235133653500681652194682394475519215678252237522060692403732639394122899671240510999724830811140334412749332494304819872214555376548215276096488468449162342496461251842082482721423681474531005235876764297744597237306431048450042888967848496827964141547290044747509939670467594270835069241832493406307217572010809661731680252174417686796226937367430842111734078845220814488354687042037126259679837145836182235063840905843759423603002512945440883121349782786534692840133022859654684047175906460920291359337795291720475403988520515596510139443255033713368310753424083223833666954970328777293019385547014796099013103665363196294238176988553637646602549625983967826925171378101360249190461368369409154422059242345878970834129639181244506916865232686902237610661628960676105861025470223877139003080042184777257082834463136692373048747928082380787152855114372472871307175144905901257934164160609420295598260067653189569334834535977293815526465598415698204236906874833827096354509977934304871665943947597573059962046622125332406641370739740194199038797919219808310137312224339634768603717885284722093013060944281316871206792075390977709624902209848064913541022933621176872657182825465322408444195816888039455778048936494446679410817203366257129439388118868658684670613895648532439570203207982895800405315408981712369955348357755012990701620809660632244015135447335547000227662390163353792496117724559094283640156369386806745788890981493467476327482622269053241114484399731123830750388927117179454093506841627305477699750517953171911926982038037088755963622260508018255890400078087805009254959543912663381331530470294886701551551058121229122958549639557385987421921243115121246960391497215245713219500680048201379773780958087444979531043643434304662706977041109695225749211979437171069114588875154231802345525835288569167501207072159825949889281633356176397019058391986226280649664595792392337603269823388677706204969335488399139936462854711616996755374828868739735301671393785800853489238693966048748399322792174476983225311795048041641117309971518117232794588464866441142715406773153227341384558894293943350947124010223529419105338034629369333686917905755544792148505810440361656698511908459350203408097047425998016564334764616402872434950344037963254262920448433707332865438490461141827924322697823002965446855165761484986564300542502261705175805971778106719279782114451212666058685748926344522251795994466409721635845104821820531839183026050504554155950485961960051296558897574578743679400748965769877743823405302547042850709180791737236585366644129341183069321010366627961381223106693328291472406415983952746518014639865613465851966271678569377566189543696389362694794557658042770226313650035693400185568839982947692595759626353147501012850761916107537934441180637539863114470591645222618558187867183141189362033729779860045614547273114965533952225287237066096218514475767032460116223857000823045470375229929404550344994408290660194960451034172570216542166387291640245101443190542055177079125463423304799226861980784794928243370323917738732183545757077129566058467798888969133896248573359233819546308272369168392086674559559163548628552914658605474260879674025438510119104873278661232730385623627441009429542978883311240778333249098137578854156932640730634111071651764764110676684829022435285072874545559842031103315405289220319757376003915648513172212989549031299612906839235555760555708797632010858829314862620129714532624531460043286908918843154474211843840643090714957422254456162120490682585718737532758274774922925246922236056869615992248726511091381590834955342688174467719185984057403152151349143464007229940334777569243435175125023370630691546712968992063875014641550546523290166777139024390487804505612801488324794759476901209488973656913858832985430704809697871403350976784795752083915558792009877244953109959530429282126312036029178786619991508110489426813113667980410523848613157353276180793063017162683408675457850784988430856119766711110070089771082990287906926604168488113258554474615970807755450517974708434353116558569639598252272796139705411099001910388505431362087804459194058182465063318118008649620511979826666360553294520199030090838848273182256934330068770501785472766145833550180031772353747149751728780802996219645597648897025164930350573199759650076714888638452269074581630216159021692075094599617543892611733841887113818874876934151257523933807827623110306279350484485331314725915702510648122719837947976390622251791855370493783234758604784843855157385137355975449695181801682285997627655227123233524397586521722823088003314536997793929415843156349615456424860598679303016727529380418038257046598134161842823637601383724643422607636932858884555982494768905683150687203377509609069636232847290245157391290236567051484511107822854446342158685039413169756841386804728401816623928314958703158791956711096175742469369963883917335829262570572815432831606157319052837545317652599118901098423721277805537286470660851617696103747281098235517324680440879614255658682254448922587273652833981273677184145509031825967084658244892158569838523543571565968808228474046790888194738288854127392470428324327638045468545184400760095503538822068291628564616519472798248397877989179610129237339709813589483629400105453721025455545511495072091265796403377371857591080778380801595398060591821806093661774196406166022669281104038925160877785606452933666233670823160267003371211570699835323331627605542074589166554323289753661331788489079349105281978204635359540549257014083287743470790052542901539624202810438913731271607880269951629354770415146398160909472292964591016630950586587924556306627138981685921985486581719852617718923058228304271093840937601177380951233674705238705855245448197087276042289511118331412548360024048351727690357059160409737645961308386664694129124563679671326666035295017596074108099661380752117370761993604468079855171341007962811242835460216159335228820017902508796725621770552923776360315089159928432357020931396172982813415211854778352110798585741720235903458435741980702064095742285656881523652811789774590402622422696755370407273078858477377824061335892452003910003331571556306372793186319320864091153124667552987020681763041621660979218905408486771591883129777612684390133224297563943432467306859164481409897946569633492838731487336580294840275989405299633110441437416677402877961808168847433034471280904512333069660248985893395177215963196493746607317854820766959229413463059179080918093411881518815541114529761252576070198727313338544269759831472880192347768890643015646670042797217538390092932042735193327467986394363255908011448201395506600970000643205931874158179306725016415885079184000795553975548101668948905279127917138285984719518377427221037987075603768471107094684887077223444713460069656179904419914918075860470970709186440499226534015230130124315577814830972457626721975371887501715755093390181769445679848501200601670175879409372369970095141086303282619906363532238386376261527402026223067252277007088882183431531930533074504519581155686406507484740977467746058370124200938100729292906481087425775386133458750682293050791337612385259387442243189614979752511497058021352286835674911793067473135883130916216361007933208907749303390389232103648859524092242830302950107676137245298023546452148982434647117740253922403995728333716951598342561475297341376742787411960043430792109511897779501758874157055940266684909205558135924398531892444290279550029138705706080828321111576860892468388228369188260481747211807471148811857485113849724111564631565467474068123551266659829255015566161301378585364337725570133509443707136700094277249061581452002355932299976364540722101595184482792734636503003275092653174558905557240055256661135006181066153251487437952251668303146082588055453499104870728613747326305463132399146028703023595575109057959095219158708528623707345727078299924165524816965032522172295281228394069869424915948993985925620624701881463246731581754721453995299480663724323918275885856865709403113602178165795005257113282837730111899177744120263174488416696923537626167482264956656265497062538460821758426832083890676270797692768474932990514588276662608592574838294993675858536561398056930596904484599714970009570678589193031599126817504803588151547399890988275447178654204242893915757837950035462135343428271244534837192460723810370368574187105469162135042725209231090229422912014248738700168616391910637086680507317042822964896682140670538567865652756331343238244051481291936135559447218637237129237884840097173887083519391747842434543844154665033091562880349082024026397833593794262101138803787211236987485513322033120858173115769743349461302981362225125777045017478239735164053841621229383602846824155079323584976407966425484865249552949617809615044325563757376526589874426304475989450154275577608511634726609084752218519982028349212318490873258747551457002115808284240461326135586274858610508782498946837393250411284788230186303627148967540067149905346709326446532424072363769481033689551188164181253426916722809397469312217292196682936665111728562275099391554149184900922517685326435809598876184187514464564757444275047420258137763011971487281176427644038630184534349284740087332019952006618405270200012434339643507417272007761231729618028595397626475507383486704007470657712809128817852446660933770195208888568650795471869632934758232626048036333787040302011072593909641910654956159855418239129788133874200822019977676155172418188891226727228576412941073835326963311210447477395962855871691654694784617304228341495870182093545823096764947563479110433519142083786791948826296758095144866842805944926707978482652366555103971151886856563405396931315664445577752614779021965443528949834830692260828674449927972371029059493705034299654276765777463992472738579358427011044178833689127171707500967112976046964875801084529853472343609076531238770410339918444983084284259449074367443431796926467080497837909148028074610040872962230323654554451015480332307676611723568240526052570524644569238699784218130786565546761096910517029766353327514682864402986813378484477385235356390002708175630498448357392196156093574699243304377277827443918998091545343329401665087206469546397333841341560721557834120955289872306105925882349324178652315265445848993697812319944421642899121714150574304934557358868787479789569090312675680540902662566688154664897724543917167081230178713839434110568074168735640459949673237402340797196296102996025577016034282062532773245230169854939087957775579059504026783609023944723562277166425708168265731286353162750514147466946982546142980270532754676778853712633801757325953221490332545973242901183087822017402650268756393211253289461358561931173013721659432443191323699407885241051777396830814667102951710774233530781329353745773822513856841935768562233507265124170399031252600793084263964908211206880566774958770602690440042584371271343906871252232663413643638354570025249452193734395724787022188602966106437178436538369821443426645960837962881008523432171933965634585664052164114594741616847319062295940338547228127581096325438955450150187071258274870832846561115748255607650938233675163455580534115989646804921335225682033506012251614379171311023629375679231257365949396589837782577168413545377923056897169879708864474904276399594818240896503215842948649209662980975325243412643248964394361343635184849324225538052785922830760938791618954132108987878456371415307844128229853582536592822987223695312246834390921969935977050161107743585110674213306842374011189339987308221578279604625412437850710028251793723407370807733435962005741663072723266578327682912921393557807313758387336483256694306655326130939469504363939469486323688410314278686088791088973724034833437956654033220068836208577115385922677985566965285746609660374652897726656978963562049318945832289210509447584876671698321498119341230130373003861034726254982345920689953780125988743900322813087195500355717519780521755417694055584338045238174683696351208398228241633400675186618942731480269012597302423983146014890939242297228120493277911268009633770993846725093636331374419314988694226416394932393354408329733600215234161183141682938080269477036959602276407104725203674165463183826760226647050126312690021057324058346044281376471570483386794566257243480226826479158848321501460931317951109521829467856188450410885631578258265258599259134742274587911510695536365121376538428388628493122187923989821381384200382463869272189623686442658806971914025238323600887395739627577353062529083328178878681289117261631499411585059377363585389420859488946737052344123620503832694952942768549065639841401813664276657903925956980721759008616576119414084866708138154919521631943062406193107210419774324805932737178091295613948421108829868142403822113107563658856718669148875083975328432958699097501317081941863378264861290956318372623433998857248473250675412471083087617153107656736888255429605926230619909024373737507427392159901260868814723511027656151428314245539118901924139515910904320647138734234189695592662272633399216877183870384803542755078492467288092139616842171603155739418036310542406775220444835125565044851498811993286771324532284777803873866647969687189368255430485512842265887284045269703799146113632004365636289099142827992033674500591975494528657760333968439093742667211997318185413240207880359969980096909024785003040643962785018374723254548592300012491658454069991558716311013387594342500463453902718544741530784825458390888376051101019604798362116844510658445125244828534999362202873070931701035238757532537224716776543912880103096148303040743864442474344278837061365878667756344171354730656607520235984021622766498931910476902273078074236146062590090409061819972742683886663123234748187963900420773744612466711950772382146726617366001383750938808937456315278357041785386622878416190592597133271453571072357420844609332635777403038399459524871024150158194702316612403836499821126602924281325176815950097955362289855836096892882035276985362880097650405419863531098740436664990971886034848448451520021338774792670019237002938105802179322073777319275539083883053133332604684389425502835735561491669475193723148270073597480080584360663702369986164279977190778607620599080889166303523300921282234329873543609467433536630207677154037246500142509121941156899913522717636600160360696005075161415575187618711497278467726400298050600235419610147923785589307187386982618770571202724316996704059476042737182051607128072637441635429184907638093377965692258016593891088824225961998611541178884710341965713955302159272013240363327901319486256450350183568768900760920886892568826589510132607673313524559589292629415381654508521002753059657964721761115347496985837715867736256576569900918155581838778849962626455595437520653942723555820158309642959581787067268563467540672879686273925370929377978387982836963502162247149071013729327019336706351398850672485431637725781381133153998067537536378978308470909351207364629406695522924627653237891659265600205514482252225019880973413375465233813466843827115157318833318575330565569273716624367208832555146510174937515902145512928603252694471607110198458252962384441818319591378485466298368518385109577948356445090254211378401625033869197337159592918613204452516311141217830238426068394795004805947654628626986990314476028619631591272981849568612141239714059046361968223185306645093859663777575381269542298116300960713956364300169644939366976340850499022761306650349928107209864081895062231045463385995539895773199726606830622914540967629731331049649446067690645401957088036096522287613972890963872044456673002584105132174134994364118904089472136015320911383743069585997062770528937561122604807291656120533239492364483565513665679454191794234189978500345313437483616165733747814987839040061633090959314715296460392252052225467074551872976893956540800549665463050488305607364905264569233302665194771799865840508896738729848071810054327473086182902623716460555407735284243948204320770393402918895644022130552334885772290066247689214103520475549393427986588714297517269191226672647116709942448873412432254282822602709673814237859265402556048425455530952774912108655783372606674646334814949898889662021582513071014676305147945122605469996986251730399460930468262404845709960788998489803455535742798218656132107689594534457958803867591766683543280182531771847874969947885230353678840160817085174154850050064296619815551680676823842330056134627505434471365099561834932091481774382016753176635731520380819601263732218673588110117257353595502004849578720730550080224884114402732748285662334749444933541913083777555596106755746137021582449989619486927188636884404575237156924816744755968362647175264753367911447009890600994748035116837818966826819870543343934433471056900624188308201565670592492865410548319719532677088504729747018446399891987068457725351590275432559545593575185652188664582997500227403226445848718230029203739403075938035725590352896734403060206212697072016343565532080118180914875552567494629419095271641057456141328675321750122496873959880355299266745724727846364850561945263864604631315206046319587639761924927643837092288291170590509530121421663249684803745668360916679488644062302872767961341198483610319534207428020518077166034954836425022037424968093448100871581181668129042042372121932509355570272490420348542663784756812618375484549928244556277285061404363058862799952430103745739933825696709280618765650704092655801811566477183712969754527604061628173932421574856136031131971599920643011956183546085285485290122765408781309939384023292195153211065668972419083147941705333006841005491893984424162258322576314890972617725402358323655085933936826609809234544382725608561088446825370335054517428760768909285897736930680166417764564064059852714130360375053329959654084597710042996383753640627833075547411343757320029174840332084276325627769447806813340937030061604450518570036868576337557073453536374339130402168611098194790328503563177609441184563748845034825088659085033130613366869144316981770881319949961376879755928846007116232404739947136397080747501283711727752494268416602232603630956795401734743786669143660003024177847202166860668583956946589270998150035625627401587377065322830467680124774185866466629559199917430686884932093972040768421942795878929930403463103752403467239563478515514444809730861130663701461399063382341298650347102542282474426696248822730957304618091803467283617869677227987049289887812524707507173096795726125103755624009214675712173897415826118073404332222430303660905710312654658571299530762784858804419826414506323921311516558773277239427297941156518262214333093985987487327968984284924144247517548337967650951255314069185761469497751083135376968954669788247690401166265090836146686713300125902618196118129648023852407118977365281928063304067283009418360283748498003231877177547633009492431049793228931258810351861249013108510420449492015690831227511868281461641261231414204034930382382769276443384648975952742132399151619968812431607960160952252357041497803136652857613243860876882940828668019128566037312595943809539839357947835397472028291904023859613605838441784413320436526816727458084423614796555329882594710634464808105342265512156508022667245257049598368909580946103377869945511731629118478488053705385866304138604853040947318916778011125201589032015605116382577273293960428930519985207530192798802729072644431827868145824124556717002822499172279273547011755980812764700207530527775778135774093584436473813041799439586586202570890498386102166220207119995692960998338486354154163160079343093019715484585476798910845690865182903482493476916437905704018147340543777360372802997139131589114845826577799547673461625998562667941733962269935187598084310069284233472027492471248165214295514840632430700950500030194822376541652915693997130423200759845753229985120192289867375796608765245090323136791498905877505389033492382012012101249469842340331881972730677653926416767976053941094130483885390532018097493832018426721165488710101680027334390828330028611964703010811521253102842714790342814055830409727457499316827556043272506663897898769408372471809386895080541300899375363952250763574458224117362837632836745811861911969179040028572151095666166535802552613538864538013472095753140962360594568784766325476007965188581401325478905827176199311866563347691150568726458587700738827358008661657862384924494512508351961475180943338308923436064033645266136317713324532593500605564186355608792916756441573407795143793752787847954398193425268955870723033487411667005172744906063677914843887306347533583195993071724842557970392525128384824955926101481595685307839977952321037645277321835307690191372812200846442403350971848445612091091775040088543234369538570571355119791206898469059430748179203714839263017051368166019787324463725040466040406144862180774235945625789656283710775392358171116137196356915491717114971845839445216022989153254025440763547807829551069842020605222875956983003066608982914438105552406306974221368966362814061596008036164968423747888033162570347587340675915477415980598251539503642202335928002798441768095988927608659760271894481872411536884925453221081529528002131560210406701114072458913632894875938992968005656548394137048898260464413512740610760976608636914124543899769622849873007113229727070677149098595672812226040709536413058254900871139556992763883874922098570237531444594585133559013835857633736059514725530518849074911877708786416181078797434193061283228012475667784653448133639501613222182848814046238870833120715051355445010455265621102137338303262298697030954223462602173670692810375623691035051420510335948879929834523344299749266947424605581066446916140842097245666027411653993881741620083908257747837694971523653077582290855609685554241773105937793264215275636973173262650041534118638758014202059908204113807257100707121282696008239554551011945371995442002295439064543501072196853038571548260872962188465146748835636817113777138624924314617536199651023875705992472704549648541663337108784298850362571909830723132500640893866709225232373687705274930946246957040552708577383692835563788355575459162476711564588419436581754632638868873627781050699357464691238388776778553875657929052566830003357529190352483033238774582180158035982237003576176276063975914017386728550088471932898031417506320210273336291760104230244704490633312064617625303195000470138657941268997676783617001709184873734060171125423505508276748726704141080081553249619131853933991794887005587969038971602587200503181104782231663666984695744346951038436664852450443785562264729994031543837512521555238847017577486626376152529565916941071723309814600205313230672749606099010524311817946373606666108801589398974810163976781614936389393007409419899570476760909116361373813363011493042821493006608621776865421415863559866038464759623082661544343461054787437266776698841130203671108655162981925010527815942223430742357412799729210013223030579072414608198141102399872289833940676221861564627486699738414066995180288060992671740311759205309276158060295843125424048788926767666230463237666482869276861390697447141996134246042360573087604657622317898415067141318934245290290153188042174385511750268062835957844890096625024340574820123373290054798097314099648089756663141691287090286863873851725505626664717279163460931923361523772069874779935507034141145465558272546810793317222360742781290981301237269279665942085300013358053301857315790895783825856313879596777064716617114629967820429539647951854926753814638064022459756503657927188991083277816074877427623818187483207394170205905797830612325393595203056667696137184855522960978088453219964010843759274847499883228082081891856817763284547966880670958712113490021540866791595705863702525426007169064551256325074988687185332506545928814739291815176533000261833696979265891425964104341747868299943807488381868546714313311471750504987076087946621587116352592422746570844589140912553712320104238122522185989550015734383116587452507850645564293265126235557408277183433510921546806741273564220427464434207657643478013903598306627157116545183257284667109340067515341338970549998501289942072581399690882414154937737976662133382917407340665844356364108244597800539067435823847197633065026371970653092689094726632246520018254753746973801895483861487310805555901362615228865102265607680089537237856499687376783776834892777822243225329608677903474346021649336613394649853550761842301994721856388917123086988710955938571858242507769208953018169419885234930593874405636561668548535485663589611251673341710313861048605355185939032696200922927332037405134639930718192366298595262705118099502352618950167909778902211353584867075297273474967568596688077439396796925597861774700905305045971757988246115993315554558080159196762307435142708574833161789739675100884212065750081842052051349427305214111555921984750951340176305426243905488508519884629101815972255868681460084371281450683396986655347349478217834253885648623166515134487185324364649492241019228382636251806660446076608895955498254944727726190387515454635909986162614305501074301578591631561287290978338334281968232429467767258716561306910087828542255361072423211268338055872464837839479104401323071104193290426266259566478186409126236369640173029349035490246174234326663776796194715385900824860989267021899177171265754648898956866489470708090271467703331323624326687339518341106465244374638238322718227040800160443296580426295980387195281424708131538886527283874601968046750293632978136081418442755129577470337535107250215591141964364538615069932282366707250588859621757031959446381024359553799094534687386933755674525538358691211892596554987729767334822699601999830026512495468026135614784809033223847609808318106084757705020776752302688237157157144732413264412571930911274151677265068544703409378181627421052802825416358730562404778870116389339074288680916984245764514612227916598891906661020405228499771990586034472610209938578697342944913499146739348525518168969631201646323890787361730884208909459811818849922079437036167244661696971649604613520965701704180919978266712074548380940438142929471260242995373654676068727235526821794012374333961891722931886398786156632121588870097635458405403083574137375944080052140696940852450153537745307123289886520580757620621383728650067544408618611717357358828155932637261723455600551710168080817007071469085134687285494653977514238547245281397899360221653238047702433725683282463416448719185681833795138010438523584268713505646645423523867308181185975109813355333715692192570806485137467486998832408351292680727579521394610540687494484596769455533466358459105019066866996987505363755475605652560573293793127095200423035787183760391119916652462400667608406955773818072607820432894054733566635509676853303843151922999147252765640481032191650063228412082767978811071071231219796009726051344603528502616126463763232372585987027160121146437869588688825743757618938707559231166787592625212575844008506272887815757392060762701235113478089962320694147657763766857182262709847275208479013971556020803562845721998442819928610946010817052521180416086047909761774312219319575616759240051926200888828603508575497830217163477680768536609608967467625835523814079626782319070184059218497950088788714598003338827996517508489437699471314929354562999291019463124020184922335721908499305563893667682519820354782248707965514008003465211281840397568249450482732597431230387701811572834115229489198258190061409999577820898178619531229410411771486116863230397592720238626408664390360575190910607442832271399078809208088169227698762534572677479745015172536347711172201436774725404061569711427882613547102644111003335696252406031112580024817552223679309384367454704449789264420651685464762848476418153723361033985937829186350460769143282476183644455689422156061905528712107264032496393937791616837226053070043096050311066300387031863918441699051397580872438333332630852860895444759096845666117152144266831128317939606396167094272896615466535382947232916286050434585540820825640883580213870756363720258920850522475073223028860868880255843320996930178104135907956057356563698174188517333559693775117028096529815722119067948801705780456349762825502410222307633429939576262972231544947761493988866474752003811754801935286791945198208082852488361701768076194186554605264468844449772411509531738552387174848449948699230247020330848286106136875594510945833417906410619670977468025166464481600676801267286649155898069756084890789458819778115690697279546337778252857085509889024711504179667578230187649122199968052350591820554701748952336812806482362690462464511588728018671658695150190878719427571228346826423376774625917323117526050250332163467474794361991870247494268947572998369361748800404899565642907517925955520910755971571166971856330504115468942806058282064605717802583859981684060597922631172883972265603605220695259667800475240452811349128590645661544204139233026125152035051589218011688070842800788295357842370053888628797636545933536207995760013731901538774792269324688157964737535363322979775299671587745066114978782692915628677009954285642542797090120141121930301339335816280621431803163412174487325691512741268463775910937230319057863562437116208177609846745161609594870497997479547670937205290218933926456606815990802834256193631241909653635355379046597757016151136758208810982133892598687010189792114318148460963969534106050476158624949153862721671741094618148388196466854125198150685478813265463913110295929538939388512880266355074761659433482547688083447906913186353545757325723376568645155530842420216740667144030635600362558137282770585228473212718673841941321106281737824595797770902891530557770250639087570928881763173163494622955108490924903776973503126810331423125604861401889215276535422237625028625847391663250450764262369849774343375995893623866839069891524207961362524928316499806304600721158226838373911246667255407031863216735821814236586063386505912738594130977785180252252996945519398288711405622419111868289128075609752215316218035349406988502474058446742138218291077067769175764139272647139427718415465031303639231465489247935322198848068512118078179933989937414283544648649039903123122638281567216364018777220001317531788629708382490716820168586527049100711827366934644042452576815935259229543445793164866612329396196314888565827316022334235222643154287280488506414070594837092441569448392288740435357603745438073388567560332560406308304169592711166838985638933096489679814050468821133720256696919400860895357089172108008345301257859362855266694119298419051217092500742842935092013680269505752886695895698688416696335590603688692858762045167716024309816546114083180945712973620602917055074746913494750832180346887220624921756703843844216767104242247584010744691664642497384779997740791448420590611368220009559257061280600914178636783555202513397176026480348156589874934213408547768161243222406536801211149165257529154491366406607323150547500568982868693751182069326890419902679312986878645641928465256005251443373191670962170661312872294006084004164399379194715362384700875173812338434730017169620834511921465615225050378237242062102701436202169205819842471567943874347549389351315842071675706510607367688026876573864919875134715587464102211245234459946002282789512834263068187031939040473567578363201612443575885836282073705703525183155634827408155122328883596453642509304899887560194967116773631261201817902325175794605001555600880994884050928189797456388760039500703937714658849175129886770507664003822719172325207074836382280286751928147766683342498715560343282342040631555836366506511363293391574551517903105246256558846688045832248055716164141792415129743664106310219291587583988770917373027100588909260179290505389835509649665979696517470422765902472843182124495726946384240213954796754717681848624610540586531954636846296725162421726325897483265629798658636191917048212954529298748542574142517153918303096998460288557208450291396528764754893045289263966777377022729322028746614033975315781489419232903010194572767735900911013268865275811664159798041723851806608562978370753041712967653604526382606646781508390935266973494045162306952254177233706156130389670996978881728164921075475831232463420518287441392962839787179229259132371216133364240409677846484478312201826260504944432441796964567569191654214703535177491994787449044586806923023712221390972711266371281547939947903164351225409798497410376192982867990799658533903308198619320640932904484265886527247258841288588253650973806041842732128262237194863118332921893264522993282832610160634489462731561074670203500445347822585110635390002744074634851419048520025985427434715696056010324820902130257172601138863951181119345282105030244474621766711721601009612556585865023592149104814654347071221085190123178530996468953527508914498562633695840898994242985824927884844743442894110911579393988598288001041136356892473745763866388308018959400096352384711618095093478621901749361321105337122393971817245943270024185562440893652888588003864955561100371880679035901266784515207954831200095851318533976959045858738349864011467954469698004639647196606688588086000967076328668230994920932466879788734725902806618501184376500480446305104288898065097561496652433412510359347543356075447998955388728729646439052191501310853832724479839637160216292556262244411469210944722015767484357998786888670112931253279624137132269008689295733194358536725110910380465992690344953212218487219358907691830903509154609448353597623983776436965302220435427458928988241556280457800451340688610726422101960553428976062787689686292607315137665737398983203763638305038191222978125581929621436081904590100530585188872963489914682609521824098694929963512680989216656102851625109410541546346475984754697619319939379643906381790473667733640740325757051234834915064456293656651971619946825949568865969927480112277238232849892265538237630129349040580714358642284290083555746727736273358150239345285649936098886732383949738824051084661977574867760552591649998055748861308008803079617320868996761845142530698404768695575616742072468449455493976445787989972601906234247666083667785476164787168130074583848769819551125876257423040837690622836381988116811660750538296065590790748447554735018612770789455077163448410192113462198599238353164638757944518069273324540975213881952313295611621130607345450528538891047064348655205817012555395189237230515653913310591084163425995648710787760550103211361624871679939472373061397785892968649092024540516339588710150755399908206648086780888092545366576061284701632569962819860535045209630215696592324469311846810415492036183805256433521844720002381070461105231577687196983034542482881312778418952477179455034644597256523970391179752144976699815124935691395575038905551086390152232917849172810763386473019063166098843525346803319201746782064459064786327270985762004088911292663076677220931657537319647067078969775013934635966114595425070304570030857826218966103902374791919796512079909726560527331541201058170148254807089344295484434908894437591815129862954504724232700632140646373547834845729415272750888309314463832417582853801101877594890456178534292921719473440090878336892826945171702620385721424179602433279705216983957505311536791170331798117517739807293143543316773327315869394520772728442354144004073189430122822074720323587327742493895594407081493497072087253779152343817240590564627287318345365744473884246646396119385387315900157220197814041297585000807381748025706108564700195225194558602044725414198523521626196304475314732808023319429254961859718083814849261359290060619527274031695091910134867575115734840048258464833932180697840409141050063335582884332116851876019592761272194982622480602994332759868219906047836157825016697837723868305203923962029418072995851313102278073391524280991790453433354171647247003109918483835355700159282601965888061115408715087994369859288371454299112268685789714537066783314293772905341966866652287676923722120617222856511442361207299519009215025559062475019214912072288265865303315669262108823812474007071024140553566079475165126956325919547281315504929952815735007146460992219655094572905291641652852796528459296489007589606111167527451479271354048884730866590796983062044140268925709805128146590084748930775467834828633349499437161330954526956059418865623183468700411374923554483761189211596726162602085870008444199178699211507734655919553394876186952442994543394476218114377529033404041047139672353956724890605732726452755675592002029749401492474796251667927014642933272068333064083255009265864625421307222242789604093652568578089830079646855125293954871658536346690126573510740483743114414536587988336120822739435694515515355405581798094997728587982781526409729801487891777153687502923118985836862252151353580267799061321626445619665980193146708406051333184774768337582383518283550440970638751533618161791644110055505546647621070588957928919094662797055522344253334198531293421002135217433488584242265773004529648691966328226518505809528972498993615017279293662458608328746815280531952512363898722202899778391019239139497392519447204055528394034665167979834406375538540131868567168220467393340932753624163233428617904195401405681218174646182394857019254243289612514305105797977245622937489537492207401519716943949447827261911270385204603220837965795886572347718555401609991210996662376497065804525533228003931367922558707860369299382036195495733841831156334548618071246933702965484850408902777675105425007986366982591958143090619070717599680132323088411401210843465748284822340114643715646034642251380093473314742469649718052005100595004090299488259029805286560562650169520321668219632865122384887858150746157476898559886002794128658427054978658534695788438554433040644124802827292160602044442337493439581998528917813453604898147913900269874589317570417965478809492496012272573504724455099454754449726059481906717814237299893700607707544785060379988095152467844545082477335408912098182815911331795932133345082997770590336364741786574425358957025532408671900938262825998770898432817173705012782835451961055215319339921980831844283586602911807007841581200773589382424180187499598767188637610736021879766068220291691962548438887151023958947249661110602573643366064623297053593496740181326076295625807828097356335835212682285679298845614857516266798180343901969229767949229040346617247777988893836411522560309307693064713876855927765445598804402195507574955486418884922641397997260958251097105930540045611239113096688813703114453579982706105390327146510819702470108096826894332219916520241765972935725137028207043090445908713548067613115430858710445404370471899819655489804030298027826563239184335598942062182918506103772823025094084989933613648441631495198620480179577072068290299519392234765735904578364422979699368505439371769918314817443139033852969895001316219604246112498836248297845210457147862122750132342304539945293076696227800484563012430574719572367568523929478361128483252797804375649446002476481855291404445791585905821718955721808013185179649224455618874873800603479743161490811610562618633529899474891407180830099554343554775162719487903979707984843577063808243975336777927873581747984442925445055571744072160463585267110624659938896563628045338723184381507644264970376917665862430089856911250111566155543580585823363554204555844949953186624063467726869435277373877394158306007533982480395717573570155168497738581358558723226721219429782364473733811670154748281265094360790540796601678563761889419327529530958963447112985658356007130821197239548339830001499635535550076387218539629937264224267994341277276284482526728040767999989584826744736798791594397464451775416507105556344532672335906588390533182810894985469190943222066531065297945103471302825062326733960282127002566305115311794397125669486181392923177105359280420005807217198381537193731188164333969265906464085874353428669815900935652164283218742842293101106241634647844815640706671268829566490747424538359966207942684504606631106498923519683908552564706692951002911798998404546804883239117381388232249858668957157701675858105154114995809873166744412964589265063828704721787994430130317440869315537610969227265275056708816427171230735710185753599757546305105025456761516566654053852729260124213210278830368828652731606397556102726977156966112677071405518174167695055812480615356615737906528899341285277861090734816354436740026804514401515848706275770325243522882182749499034782719083808738765790933439349655147984939210131576662316383808346548964780348961670211379511443063997137091194818317183519149407564962172091843647635987644826721474297302480690257219977579768991538693848107147518955658941031456839956936365311750224876586775195002397864310000759423733185988445476526671232807826582824489758960686393734794309847443849229940124352993216165665927010840281320404016113883292502167499380398918368175783252876961488151220789449783708970632724453991124160111871789122235500110847240370212850456386493946020354148932747327486110063901283726114652755787820948485450273343361847268285624234050030982256758195384501881314378374526624236955430179211852741072263054755112905874646733230147022265828041989921154984001828677747341128815583169665601434310338446664189761820716385895295892480262069127962603603806331383439115749471365352855470916001725291240140533501818951244740329514163495885559905850086861973354046334422067660726415410847554872282306566202718822145052549429985892209814974523370932225393974403778935479886458495038629252052311579919961017031060448656853714030433885738713372092655817217210800973024748528671294346430701699911505684949699304714431041141649757322918467753363386112102225006233770105753529696526299552046817279098348141482466267491566786600465459909760234507889460406219493197159656412511034396696968840460868798194815133903808907838889380710485365365750230282442130710927691600358904965583970886937572679995608350970406084871041606440262486849183702810188456283173331332687824736232046053347296130779898296136706233622179352608183854601097005699740138930482719434387432795872638401048057678875483990229819875634253701805890483362078976015770588148313322293193085631552234180094382743665909488408775486854054068111022983692044327042120677359805456545273823627425670049061528639858409730838948137029024246683511427346498096494198079040402249547115580996989339349463510165736146231981840616333988574177528849980698607365468205151027643994538942230774961142380557524433167405008056481065304848413090432745481688275554404382002792293483369199322351319843496030265460860882208875304642757812935262873163786170761598862622703929408832299919060333591182117798118739398572476178304852306707771515868485311623949628797798688737956371792598435966831831036331628889138520840442576741186109957017622890973412249485083758752164334064606823295211760283362724740799482259093533688157032634605517792926377796369654701076706838064874764288500420429998804548784607019309258485150670305134864938272251020515110907771494974963282130832560996321034630114656314205491386462364808873335609946224981185820310101680964304689840997658963610548383722682894008813167864312268750402698445215888495818205307965167102476921832009598805372119568087755193237040688467040540898735017185420289476965151088694559131198875815661512862467500585317098688394133893325887760219961772710639290991358244067242443249853710765226603502018377840359806057413538345350577995218450872550380717552018280890517093209842355182937751835835696338100660349770103356767726248648801842893597633310555171671288790410371222739296412807727905456577039678495506897334739089516448391212409315753290128341705886148594046042767924210166173571289645001649190979875396946471746441707116362133847231470675552563382487950640379625062062202624898106684971975806018360740007310704257140048834091868846440603191644142618009808851070574882429380995460984819177549385795779666928430911351492452129869041249013527398957817782283454738911576882115423516878232618189345107991485936678071218625623314693039917410142629481818031095951091137780364782339156031035194325444839713610242856704241577963344434415611275650162899969540701778938822368780893636938957603364113673421650376239729851194823826736968006074076047746169394790932312469645255715196174946013090004441995296344863613467705841336767995127896108911068455517239302140326624264215196207528821677207980201902169203631567898858251530889839840113889300242581089931283936800074415565955103800482146823272875090373659563653448600195377438042531146000757177002281106690523766851170644095105244102583175681757645196449995287267874975292281796599358761219470953566708484674910833485724216832884782823708510242796439860807081641350694924254239149553832173421473207429958844859607753972132286289921023455024394640477940274028849288982612120131640092343154886127001523169461489382403516582799059284314649017206948063211478813289436926731497145871088494497496684848892899091578849184542793728475957949281549223113181801911776068788487220983826524029831764013928760252295161146085307395534890155267940236915092391715656895644091117353098157598855645001221833522099016889801388866420198387977596973700924476879736329209135108550598823152137273038814507125757301816306872559439041808848573862596435669574623247090376518362852008354076035992302498420588372618149278470484496796793259984513084533082861682661366902032851066232564189597591558459021159303318277930361316562843070078537276111045382853967704073862188811175013814261357498176840768166352486728284402786883466433567497297219740615639437634025318039276081187485351421461653452025825852495757314343458650033990882391223446520436172529944852147408748956804873497362092490137767292844247171810269840189693526919003188380746759877333396618185272611064966261621967063310639897554448870036633791304853093654397314553108468258338120544083218000446105690813388211314229326113862621659387829783630421088607779249768627034134931562917108497067743091614098671749780972332702789751224431454715152628676723259212466590696705554264633826990088947102184052993504918101429619514899523737049779090045737115491412692702592765024167228638002118647336165273102909984158592948413266124947555577280048282657036679305945185632156891505308431997346555778954491460370742589678653269264823606563302327525199700560311273113326067305287924754824766630397441914884956871624180903949090726779700866737487704946273941005702185864695836788669887392627152685318326377308240552163018933031339477718939152439371159783676086896609490426782622407692139357846081113576764341024774202421384295659318374256305125224030975603670793460896003855759810269428635253473604500294928783057093982729237542850947249655345671881778677714214842969707317308883629316070393093008050586247958493699247356504273066290948840294511918154370914405223349038819872883694937693175666831620219968586490310294726415355068006002698265014475142114954656862773091656177290155847803103757259510296879478265180985896502666241854127728792292607364479196035941795891825275049746054030270574241632086462167431597119527913068176802952322489742921831726397923344671241091450462036331845552675753867094560086498038923296189622727516538044596590257158010958529312698581580665864745367654432229839849298728986157150577745291792969569159018356323682064506366334158658527896356585064082422497818320141858748279793781987156986194327971289556721990245822623802717371633786876849404966838724890100610391554371024937697682032738795315434980451913428897209519914031884443582615695455956957724384319598236756967719733791804887098663153609766022459930141642068862954731645326619480345277528330157743743115377777176049320205740077981143953739934460119456981931419462019147696231334766722086817147307728634680460716394708854976612205083028264106566753268532888276599293502530011529247675970907084638522316447490135765347553528561335938504237431171445597883459293807822941318315371595117080900362893758099429751630580170793228567367873643984507792362671911559459410925192413171270266635410291638990678785156836914623912281440186174295800258626748721897089813280016329359282399698905641310090901816491558959258792311464668897670901342896986036841457042707355579476261437349637334433072869454464976901642612429675678959273927482187384205763249720462031463286224964679719525025769058710518722727408086331278241640228993263018209975239511210650172236965953689457120184262684896960205311526114718667220896879125412523333176958074512264200742478360204578910629002741470924113310673561079991855791710005626157749891320644955000017161706739211692102891715718716186789741595546756092448139802555202308613331247215512864176079367460936972288755026427438351568418199697620023244895942234740020370447671497074866506503345336304289251097084534384765865455346564120715868766889428265618896370846876633512420199055018371001480367460221379856856050330043106366843824793056800607616859216738242139923335142720317757741623605320841133917373475484544345568501578999777512652629639112451828989422702985121875202408359527193756407171493214592866682419623704415690031932975202668833122308949135262515072192906909355957869314657534950496754355133678506511733862728302813043813465355069958417959605690765212782798399081112866530110765939537801223412896125893761612339805662193475315854648615899078413066874823054625149736903714486686799852784661963229841456086855193832701685559797055456628093655112996069240483842866466189988774023526045683754760584191962341834675177739702177377738558930968659423468013353721456448207605998300116374159126644233587118702547287333565050794516784141901682252707962492963581122883822465076147250333111923678164778463858334147548812695514100546182799074240636634291771622861671297220740938704078623110869765483767500505297214978032120597130552204383037903018862133421799428752762633493323791635907890783658305214948574506493865010525885055076521874407333957525109819926458479460162285174742214366762757892448734194488470624622014206660469045939700150377877530086747322392180921188080697349243043116230156640693809957136262632174916857533041356529971201237249251608833470600703766630088808866197500689475684087727768686302686063774689171882173163943363572692023692239424452461350141785868706169959185685296969183276729684415099910523317716707953985280781814415466002055216504983727993099667209905774631129404843333905175854948482263339852737687912395223179824915488600165024108022511980141281507278515967799935914879290934891190734600155036797829040840873423611986866448381370621948056080517736002837482820475852656151250114360396417931744077548100825475652007079041895170402308625881265197426030127111989352511123902087569441803136754112676996773400173461218809167615472617270372206673239357149862226484813001901499937545063643568289564972335405922230548054229828273321729330586701887771071804476818311636624465106757678183128632801613838766844119570481894025623271403454422039708250073495957063668867273157384905864258301372188888542950805550462335299359706575377477835573994584109241302010338450553090985464096152995485753090823178287067211479698660677274556984063061286767843653115475515537796392530899841222853096712874099380261503983447202634766332201891732614913558564870476695839184733175493294791196296368747474331901776387400281039276637298863178293710539909731285106192723331750375391736813917897824268415368815388544768225075942447921300573450687688173729207580638470991043425101828144284126209041639675880507180315244057338212413329121592876114431821874102578173936111919417663280596097889315708044059716343541850485965154460846851225847996359871387972065530422514038970876977881441526141580026005646616090182775401635348365480947168884784384997084614638949774837915619639003017097088461683792727164194438720555801731711372012557679972733483619442231025282251801603087576323346990523414843130916200715254486365603684615985743499327197267833795447761994040373650287836030336134202829648503791130308189807618051989441465739215710434694905932409310887545776700223637489109194952950053404523787826080300110589649094113307117447388390037674582522782368807552304253776204557627276237055740037942538322147275834191230789622065702517728088342392900006332543914485999557127006865818147819084630383599032075624428845553352254709450814595630061414033355630857727141031058543382117082432189784408291844261496003457561327767077023027178723214570109549661923224599654308844007324881801658329231276563851156652065862229805487994524235956899105173115307743721942309507093888804692206527444829500882258619611851084170853766090478142049118353396882288218804119096920708479510219754169016414755538237641149598384078417200579745660627532719475946949345023568283476764967366252315289527891130746957661495335530223340231236962693073606261720244598759680427642731689699233127017241500681364552474211984653577922325117364468596564740749050524421263663306289735325574055093201188307689594089448027367245140913394071489695040045985506977918881580896335385022831995253244510905297543875169826299638682607220292376483147818930713131749504287443419139845385388657181339065044781343929914630928879917873438762348043192036222025255537089770887724447874672976142043230445594812509026391412297760469552907284977550581094511664811740200368052586056125374738231677776690346694704796771079487600813603265731861002840928070418798762392830368865555763379740766784156146232743024489623350076491406434327991153319665431064378467053399973191649590358502210555116542117192193997532461107438782149132360192654919136341303020143760971961050406544216090015879491645900347524587072337689547118404763213811355764175595581389025862340700022641421361027917816058646193311102407844787804605835236520297815237770337905411165054168870358314678134105783154906074572021637754746980357753344931705118393960257331292110885371674734899864893220787915398375003874057668573126439357791662619749990093812712325701447420761980049102975200888073210812661444938603202902497705475890713078370315097749341591176358352821566392452197346723401310428558361877492994970919773202844214327881768191579250600742619111312933418030412211718898523574287900790320727632795090759178513305045369605981957699183550276117121836589761862360652809964093555227671957230364425384583508960340485690412450891860194201093829849901047882842248860041294504171056251409826906648409611462547466012056732734306995985103180075630683207034277628497148480103153471341763288873419408786533635668899898322134815484123773774135096887129171543370676332052033513900314003185954110114151833683375007898088660448308140280602442948994240745965973733090104204412122341940675284528159906368802329786219558947187527759340057005517310409937996573747465642598083395647252736493996262652528854999598492254904555605151231746604041781805950495823448491931160073629659679795240574256480726612126661253762908560273394304292189231900345799551383250285426549014472031380523889486368449238369029535659891593450566392100026995960081748034096690947820686051536600027085223301488405338992709860371079410008419819000583580942154988282200780808693915003085638104456839829716067026709345977085579479486157869109338752858255385069071699848616957203419255858833425174834992923774407727361515494240967664536654619674712119429300665835169076732693617280434603130991867668790049237102379026832623633227367259880361509266320673851589518919277552792744432420448431703243891436151792424698567609067769790457839505841827678971255724515117094513264269390948150645294536274878560660325929462387937015945571954706036912806009183005634478395629147429100110187247855070698560603837476887411086357293783026119380628021129199640117595295350612030295883160712537376832261078372708871546568630345843215820181413413994687791521992666812168939303678068992484364704060057422938336684491485845485721165727760352624184532411722130075203834957801712800236779306045616250239881437204849364692302729570039833861813232711098088696989812563398796270306572468751724325575093967851218876646405418705264859727749853350822934679474825182415020701844848000568957884904765405266689058797172036623927799096652702414813269756917152603022245407279832113476844650850297213108546007652642405603405238513809924933044200035100103971256106647940550619965112121703606557839687097175967555386210061119760440901375138028885533425527412654965340272689184543523765705226266195769202994454431948425311664683670213925180576248250613270045468277350389882745647929062619301225738809800243356537873926775313035538140565542992961434101686072817743882388489720585194746648989962745596077340756250731887718326061461408074683907617337833843793626128923401568984739926396110947810339696996101477644339443484536315946945300645821125348268111289567303077973399583926284130122901336609539204694632864910867836751908886902450219989769485852320174372501753744934664067498966138840482659336503229543497232452800772128635177716816754177991401804188176766163194767508148147022832911974167192282511113629554283061424927325874501710824027117045078057153022046936119120883111848937138065625892491667268878725325988057678280710155104143066205888011854608749336460978526627792087454427985259092080006627920422361135641604663692987753770376711778640512318726419846915155289097519235831798945031682636603451528958096464908971796836115363834997411653598081942980163672535139559804861896113990993967957611246032334601435394680583764834064504728181482033020626411704083086225330100846332853281488497599509479034301843010527090868454102109924926592080939472063871521418020496251230792127899171876121752745747636818334071517843501096166583827425764059570300814366676039528681512092903770731710632702552312449263504166582290251897633887108044545356067097750533423709074388590120206817473960223583642448112208693867137933410891153303397140644827908810384113128647897897346124673084481749297684140331304496308242600453603551940958871502689434995755320887032674367946513519048881285743971648380669182842181961322429624265090673204554844197593527429094401502845084010271627714775038982691472817305154900422347139681165644708156838170028428408438152639202858477467655523468963285667893093702910658939144732835819349792171727180460788281767072825475913432286616711558724355217702250845592392279114483354091337943808924008937841483147987411064840780852733798985271231377171455351485215827751597142871508837093551960325450265010443214356808716697258806965946670770205845275058501919994064764087511788627225017171316230968709881976566796449695959094867830314402335358104195136313620300283564780522543976917834566920861775423988987505988548419066356983595737211574277970169721931964119190894406892050476703138937306224146953992647596796077343173957449001641225593426512561666617629154922651509196615976164896466145293067567346601673022365237184379837759513183315165484518684180899998043673463386342447991362311489030524555068305381052328308811492261088448997379596139284546170450571921557006935725420398146883032115932913263226466451109286119014922296254329796593426782578140359667853393544331662953190044463139432948804736085010726220359416017646429119973590264197250061775460479551059976388889888974502561524352020124897634879918703378800349309847418555884322096012911472493788678662443485541210402082358195637021503060285439732780665208339140640393487374013482161937857113311587062631441735212934692225690138879389675600156319215856658617285014955068063381315468030155976355481262487603468866017570789884448164914544206839772462770664729470112985315040292871639709961402097536825025261251278808975048026344534281128230665852885497766743855411997234016804530889607920945448170428805437911665430506259339016166263873082897586023314561106626443852601011072769716836733060669535968085800811775438537614917074737471599247492135354131045825982384313900158868337426168128637203704079990319225602678153491245768407507641481333005274789451782588151971550831402897618702450538359148571181057584922360253413110197882201401060186169515934603449301347395657287086711912110066657791969123074646104642431656913606998183770313823826264352852901020730344313366210506380955416351806786951999448800360730034062016047872099332647890291805284555133738703029123183688790141650175372480691365361537419455680638682682583741961747778197373471945102215040412626960102191960619986366768614233761918909897184226971931149779121997208418933424146942607595097559660194884194693891323624555212252797260581414124529911059703086123575862710771134046832381234406343455475025140906152542493124703416228088561147371527318758062184538985377004681062874616553850256499491022939128159157231083700370581655786620729127473704222224801094135923435755341150609189918039555891493158441040953629928047486054840705365647136383610436655768142376270828900422622932200410863541232029542771771957402672242590423198155067138443103159123473517290935393803203575133462745434188545620383613760230297749892572574507278888427208521788498719646016089291492877268524813584325248065210271304014851320263259907069872131004199748699228637458739486515534819838184122190033745707159110901834969609751994146038285283426653674262736232519536617145957393020767105879167497905725664470192143545425452510228513503103489406249704206053927917508016989522708571567574079448876857724113569785114921759917183006532564444933351989646430558946432030185452102758136999481735463312928485720490961991127489836856344416318294688840265327479533506882657237632053763500043937454227275506719813176463533046844310374593451649834931618561039557070703434633359593472030630704757249748337399400158608619413764438561260265976260830561155503957064022877026147016901959165537289612156590446807147350488397059793681107555142395590331720106918376949998983933274810674217543968683832989770410919695671021234599694799061411178824550210362300259757006111968682742712084614112665878208328109180300256749327968970785038472287515874292334238876883737803970902732675513618279835287227466477920309668961638209654307390533744064145701561363591590799400036818322821740231320375734983933662801523548698738119331203652052998378924406078683007191739319038399953818787823321188355241887325140163424755471904893030126291226449495566878469882854360378478270500337690752715856890381980668702930584856176747308533346361113122195539949972037156017928535183411427426096816498833702875598289786491041497005526289250955220548989001408354543519707048490405035171106466604062133977585282727621573181604936145997917925463002474644054472876156740667184923501018746954989682945093406429692589523630929750910219652978370673936929224216208327531516761114852543274496455962249119035972926841816505966316364670938531688995896269311162842709119390233011391596851805152749530936614544080936696531393345522508564082391824932127553939576931682170506548324422335395382640668833832693539283622891903100176428272184127629086713813885114019809829720627672754209441555092493860494190695658380615542952728640276450163832734966270227971255947101973692951180150076764929385051531675156680982027758212156238496950912171144026367203168321833998470426100807715529041646316223656234904047172134150227554688079993343714568468560670054346224956652995130095105263550258357237359927156817779826633221534060267255940423223878432482742387939436519460623068666279983245966698582994998363044268697483506344680981211118884676612946184141507691656976764207456022013573768217815398852938782556482387849067999645000892768531189876394907760636873843318207772952270172956351837826128287797388287369971186625869870189713353223623769040918665860976611711987870291156395630782339608809444419349256602928237131467535646213280776825307652161355613900084498098724801802715865165839202804747158230921874030797155722667473671223091340507560109041660218437023977579287238634681686217455687453786119423587705201276668633359605289966209665839545008751074134995839347796067564014149311037904544366420820125259609113415045206306429797906072758980848288951137765285928162344735479350517752856284440846954563992610015864496886256138629959460823298530729060479639077731965774087475015669943937188859434992889010645224147356280869664669677566940192483694280960359590714166887233337843851649403001082546665356198810108373468693403492721787955382844460590071009460694877483297735666146328731903269887325472106118335685889366867614704657173092394998736241200570033104222498367737149800033979031137896180879128187253682311030108315847891759588544725674722237944404094120909406160154773030421018728579367128550833915772468831389815375514064633239199402315346202205122154333106856026297323839833116782646240597788200137411540559969952304807000455195490468266555263559761971054356383049346175725766303626934151831968971434146515282002603093058315200170143535746650948521111333708925397298697728321438337136370187885641460928947835520936150657992691355587173482742625767280194154536851472276098146212412066409903260814009570097283534934634809918847925605878730495533198417743332537967346975061975243152368293935586892273193819896060849955857955683092531245166058778670305504279722676552652191010800189300741924579104071959256756782732032318128761340324291971775744723964488287273302842152042426430424935695649615988507305920461156527130638036783078907928301223259035100688305832453038583826818120708932422451235435080559577388209374921164728200059477867320124421921122597902765826439059036115158612965373027232467529998117809956907507865223701492989085572913860265196424831010904743351115926361127758393449982102534853075240347172201990710216101076068847346939929465996529948781352243262810516637524041931876838269996705065688430707561833119331682523141103290036049881378631291769229992578693452369314277481867513562024392703972340798075566858309521567065340454261912378722986538202719071108431128562618798154518302210031560012532641323571221717860962929884192122274584534927456438187496295016693722665182672301291920506104858807886364110967015707607862605748437056842372580882826344115379700139380500089053659067011612742247793972773082797470439395996974548198942905946944252424444133094386596292633243135542654014151716793258850860984125159587078751012986505893324628093881562563626361453879115670597496476805757532666267665444959785629421874357483895711437456825860014660876678995902649067800639801741385866147764054818728100298752001744681147050375842479278404647930591726410103904659686565944523189458197172675842178341788496938854235502820350909437153439111980268174643762299079750260428236154348551202483247252830512052797975485102960455319058694511303738146699126840502903420235920538348282883533571748509242941693455519795816839612444820662673656490414325772279897877761165206182140163909237164587364833897715581882968930300372375325286148802730172400989396836742335621236229231709590347607163172102550491469912800764263365861294673406709935340160944614016168924058784357844247082994789765999255376972938824368110320527476241254069405925098288359736930172990276900524808132057165539726509617605383824739819112316284809439511449159393564742641882284123218315693131381489325737687061275609127251729060178071753730026862988273789548303639581424636614109625579717137178437032295961612488096427862744297641914186920468779538498129398357170289691598528885086444889423392617117302456297915088254518476930741027857747102918608447223121045093131164658580026925783881769721825166162047618920092698156436618645156017311535427989182563414264488323126337701057701899351328629665105682609648716003352422228114944114234644726637372673332227378023342469517549998363791618658657408733073324473427620333427360482275870701608474788563481120876485101904378278623485491028281584296463636917101854617300962138781691933178231152959948024957525959708070125356423085846244610627013990392226109229890232211880328637660136462020545955002504882174454753843150635952349078795557154838968228545415470930483903672641023944564640333036407178561569274676717686045019209182563910567806185695491984823204716753966068696477861560683104031004455554568375697907574229825868978678770995061559997920634380698154596129571020134836753646885994338365565005126744307470351858204513984681339670988143428443300976342799345996929728617159869324689692518341107347827003477128584947132382801750276971718085026999209470104885584597527160471332914180199129908873292714269899149421336693452900894397891528981540779498949387774112683651377743352052944645561009496459575237524591470580540473511429538551590953144723734203782018791100614215580065296104572629100277007554692928195454876285345204153959520786826525571266628686819103574424807149777840532410243577352435435170372674684582007789603757642180674978310219023984932954838937141913592956493474069445321302682944351129572353307695616438090169460783940395895001843263910083317517798464087818793037585717697108359994890779763632332304401707724233345471507591466400897195872669859293254097805404327767438173219301944858220464093060799813314529051254501633675318393583123178976435527950794489090947944767975880248554587936926197536476046088710790185227888499463374594910151916204893492690339236495870765447203805914762998221589261556012382720890869727548539100850580382961350488878804614283213649675303300972239888610450765281910142011872429475166947284556476336901610421344992250400161883199900310989029086311833063178416226054729763410365410179259641178613469445982884733405000095255096207911787160838583715768499948279432214111644914277819937496954553872413751884741254973560947009140362178604448504456298493128752591347514456327542169160579216830403763921987996390272962538762249695660218902361648619124271801310422154167186780770367774818047838023021139147066003795101146909139617611240496793763454874228478182010404252141005183288034585997101031376481807826339841012907190827487343388944971236561274331178003159559752713514337942607834793654403511095997042580419098474187817288941868719579722129686853568063707410529902567321486167395085055072609477218771150179141601769943617456145369987544826751156481643462280611253718900983740493186886270733661229806774139429852376137046177163452189507926869108934028795491004238905142966002927324341931035138801888152917101350052911478541161715432304768198665185866270508664943821413370178118635765477192521862443670607351294811975269888107009699445865588779657003753551942323941485744642997037180422632066306299472903337296874471165862201466681064042846772380269883976311567891944076746947292411902763398469690914783339179706017908226397203135422849522447896102453738445936985430313699061457661771010380378843530286329880720091952705704055445481797690650623272006216227011203112417152555450506775563169520338669756482013955196107426990228782380154781781742072519117827281849163019330260844286566758283254739298700624074092857060434182219469897892914727535628275488521788566169046129127518898068495341899768033956526549722243777044282247956069094881247705685396604877873552552224557884324595096753383450681541752296959773838005477008093113847320151995781070297167092230757928569460795990027541323278168561935274814284833644850251161167739382795638407878172631866326220933849825440803438207787438308845892001174368502153515279046184435759315835495025548597981359164052849030651467966498577650946023241751900208713597918682721475327705845612753311905397030656722390999715785186553942757940144549064627548201955157376387441360342830912615125766091994181194812133221771871837741953589850249498593136093513864333262618184459406452529802735563686430273772274340522079894503476262147327559063880448469788500083511147126060299930180678318314745120047005399554443357688613438522975377480569294160328973370719669308668859115851837746280870901161597171870363686310840737177428138443976557469987337133940928975991876386275849155180300816510510221442057481435809843340322752823254263445307698842627392989223344736806714823837936301638270496787401795194782622549636165648122044836277124488664628249106302725589316226227359600605974402416264333569691175320943217647096950415693167081943235859563846377653556960603930814589039193884970034893989860737781834963776709862303854532578712784358225270454554356271486666206061981638938913710895164250810385425660101644414077133693780646432606865841771072987264883419861641401244464141515940684818218532989799786400177508883854026326598278690695703175534690874587610613309403906347475893634785454183424722634950467315812130702583410577012204384951286237857615928593539698267962576119179598532392215324131542171383825159996457664317875851348310702739947333304707071695504191978277039108255276309051075051092119165469075071294684082189155653149431386478198403014732773093020168319890290057840137992369606536861945119719938053329357083182507918479291773985143850089595566509650056631213410034888966347806300916671700553833440515197942688537153783597796282633433891235292099167591553576549072946780890063356285503945588549400104393128636117714483150055263396713348521110610789843632661231931278700871475196511957916632649025365616672154095352107179647290786257819682503245588618063023440736031471897716685731423023189087972154361267780879455570002752330955336322043519461143862543103734523866252664041519576657558788644803272447785087639194342078812419232535507727121994320479986762278605891915070584900440560907596693852596202664154348385715426496643920892231059300992799969176723831803818837224864930822530824178318978806395372086211313230364001278678545020778481889118398719264032335181357568609909189939249765947348338324882011914935327835120670070052618910771418010138216675881700802743123118509416068166476698618755432985396406730347596988927086660817454878134643901153500123519821201305419333200389321122899368424056874022878702419190336381744363127714847909083022777928494394817055765502359318491645495021699022071796711953995210479978322645804432179449321568207050272929766687204571899300073802065986666931968427984733263867420585519911693408481631410385302094739093965802805148772410350922362449413367565147132756949942147515494833510155662273623416148676343680095449559399961360288115795657420899131131585069160765648746976871905272940848549592128304593383592825619520003254788017799232301128664126551859190806241183555699805113460686831550768235498447639279441097545646791670691698999046523313088777196924746007842919699450207891280880304044773032370650066633120120248581831258876409247673723986485142219656673181860193005782237991533509990360915783969334719578645922351732644342252870233255816985033155766946236753913471785533072292609426707266258939820160872195050910773336247135767974977469605919058735018382555122735886970848202174324519997751686743875993738742601623979764603827281907037960670254437799814616937927793116744124986093638126400102142133208967606812427124953475270402898947893677519440185214023590521615629721143371599882658757676070631777590209645205671928886895398515161154326341072139697115106777388785200953778795651009627640938995168532846741395813165779432237228039422316040681086517097164188657652750567257530868583234554770516915327701175152857962013740357271213276711077093414293571714016261367474296407312750003912550313690241320574394982408177764658866011278902636866846926051371432581104023893869871616316809543676100136183578522123030433394462536212490484612971070285691376891546800750550839147729036710883439703719256658590676847901092631060952694993702791765666193817367210730346475343441419903051342085718193073589470870920285548606003024882849301081692437660416678779559876078168244567887760480733822998678617754790162600578015504420576762576395586872162579955122821049843811812553591972415573223333966402790978452508168750231645675099520145556093476548636050497907285348987352857229059999284216155485901628223468651903997381732174960639231831995761349886622087378425727998242557374267090463565563712099173733225695726606352536360668431383534068083602539731262629842086158900852795738190539297450040897642308372240228127457102733968700867718555284987616282387116683296216689026972631127517678749103721022836438954374364552637151731580252244352297455171507472157637650877315862468444728708542998126325031011361169503319607845707081819232651994036814469063511792843810447681377250000233107971963219437075037223758679732581750526905754995451575589916359885512467912721366787374311123539354682009785424407535167702834108174664236355621357451851831049233142309385857581299544832337626850623920657850632143447733042314303966899728381894129325960027759358653440579069420070132957627302592295516110361832846785809464371809393945853222995850324166063451721228302853175952274006210006609359606304890974385795372213636857188362163378289436340726978412271817052777504847305269402289731315681974834884999391217876860944184713529728623259493232937704308678141896329812528631535710415542719703103618161819538426630041444154528980702715499779081360081716918183310372801973113142004247459995466781575335124878239165593904060712822327156346292920934866496319922716108361133674392703137831833106853308002083841921966349092147884604474169710733826900701880245879542673670812363813307514168175948246820075173387030120816553875243284951945740765585996023061419050573745017651627623332617744141864186127085796847022088809072768530549215735418437112138852320060853667029871909773338140883890046502129361771130717243137890563961132402162472333317313345090848030940829286679895245338993451692565392565159915563962394366555018391947997406772718410782363503538179512988552460038647401237961520275833346404125551038709695272616785133683997496078604018981437449726045356042153561142295527756411487788895264549038531686151982325629088570581942115640736421348865980757875568447150983719733955549430227004707556230308035003521649873074896301281618353352357775352443860230130187867303127017283744084052010046749084496246184720034741413769548901212773747565986174204095971737522108574584361060973484772492775718900485086304524272204209209140219691765825994840698808380039304740556332210724943158501267446726314854314423742195409611923664037605254873860519037416660071412113587814995591326918113489658788032216255426843841495147468867790134828034541672134320342267714668101958604875008102683454729015719805017406561553692116490082751852051848413705986089945441544681110991771034732492819171251862176106115408709228531240849145780885038523252286306501357517559727644686404237417610361546329504187241745537660116496626379675716386028024413421786987749880700043596466215426934418052036440113605165412181012753639771311780091325667438698955094001144309037144354754635732590806398020381293731118087864456917967094322458582864819323482946374604608518706457419557777073295022873336645971611480837748045759509150386733940469640155731458708450712776034040609471078136011490596987945171941065081182357404116301126513330558183654464958509123845425943692571547060038948279807595552418106803962851608382948298655924054429706381369456822528565279128809891418269764879383544210046877530683828218423998089811087353270735709676762843263494528000691844403015421159774675885306077366094448193063435521806102631987591657529453795852379604060871618648856058498631554168955769328497625835485305613152521804869295158257497272585572119084679677383541613034124442331549740843241300596073667890863418167581924781072330876119845912859832088321211413238554861772682307913506043859151582018626065095178052412253258901615925927562164402354413057623673178543560695258777709703291354892964611890146999974819343132330614565289430878386661567393297648264080283553295010161493898733337554311357807579364148620511511780808398766327067431348876410201882312190978808396764403295305354540773792749889914327798587970407168794380816821099013697979201849847700500053950639261632033929302225646568749397738670794922175664697145250663575999745116620458109936653952671835146328630445181304318952083187224609185061556602371365824970548636512807130939138927431998875334068533668795978619404353358408794897689695308110684255526555589216207870735898171507195516299172440715805375727873522165995563123563817865818505355830759254423455783189625929513657533936282474909025625853936010656720643531077087560642311616765832354669205991774557011061457856141187975359626850476508009504803444152684427014672856578705393729769429916709422351981796249437100648436965692794148622327828988812644800915439437704359455798906549649455460226417728167527516150763824531844936267115249311136467326458909794464853714734072704681339013103170081479485645621581350205480110100632960801670816138097907977024130060792760839097375123795884005424913760517580603475959290483837920694655683105622464816035638892209119769516846013992068902523888130201142747086533316297296194024096269391114936612659902345379009412986671220514546449225412371001290742795082310281591036681878030736525699226525087440879834549566945179800809556694269866767860553684188406908489007816329087676754927928888019806807715115831213992256216128155927191211645198293153533103680350015493063259837295759163097722331875092717035805541353757698061889210770027351475809389799559636238654377089363039557889302478207584221299070914246291596099950228148727836152188249467860237493552589631860877909854663046070101279529146842635208199858422914403746051584563440560128313012565282853847194204940600304020731069674748455982673258084951926134254874162122232639034520156478886386233844834839625337683314788452503860887156241090302003077688816310694123652295675686105288357498866598752565992066547631244592972827654481085340672086901238631396331813388115857901207163207830489221050452575898314214064387585373000891816787955426203227214656609653693983121516566070190399210409990159800448654656669490264908167732488931136461357284780459349980011864467728111151341371475542942612722570817126877971580503110091336497146306300406130333900388474430165410938287720454752878191624673205060026391216828480172493662064360854537424251743110528368468476369058405435380917428188849674435265722709719656218070004355666745902510153355529284567188530699739791214583449071886582245842670223453766485824723420620073997874651148445235444398577129756012550864590245368445866175704210611288810104884670940066226685017167329456828978763361261313389065481348742221489687658455087423570855793221817500018142450175601780168387237078621556768393314365910000155453258166901226493474302388691281160966443367942387713603509816757191191904079998147949521239784761196897400469799752168549248892814541137680725917557577418413155989031032269264522069073663554321794039940927304573921881753050547899682997445161002882459944324539474286019922280410911364854325709342305495739289975003759270450774965118161450801137490924225817745948565953124924361888106251137436158632242076151285743182608700081889696172741260453564148392940434572761686384774803172108595101292645401332856717426900986860432395092537460077801317768218565877343271632511275127187822957002833386438472857498685408871196269518874730099098981192554071324087203522717514417325190646303569873463112206926769487697868215046443894006432288738551879742948870926394354407736250172843707310163719429097981463568478320997970954915459501529215912672024197385685528385603030949084226470109575542184114817429833846388220039710745875220292767407967066322073750629951337862877741290939787781681426118965830389345312072440598016496658350081614520587154647227855880770047466468379540291264899396677846161327368662109580072582315083205127522409085945220645637488411613733833127561854509706239181028768549839011274146686277255234936040860336311334283371278867846912351880714728299713808388230313293511022299287660073057505888599127524999192727322681623312149921883419167332525957744239828505773675719757262414303747964697702416050264011926712362974252693476284348664845336463474194873847381115594253161383315113429887649362182773679674060754389050029760475625512719235859731337159816185361659650847748413777325141228738939802333516746819059591545073462749902780888520121244318626118639402219201373322872182542159959881321999906266835475494385232616122208843847908681729962448126015674496963970882231461196762994926877430299077984688665168930278889789069542420238861452613125132147889103502841975871548546193283242986017782097216645322157934634633892472663906252237974654787602854600119045988742762602027511556300454033373088915531842572029026656186885442090719584443347610687233016975075937495023106561327825539959524829520745738570428085848391278100568909169371909668587091335237705963436117303035046805014367741509256297100979464611611438990088603059542482217351471841316477963422022102094949198532554072297599148336457545630707232458034504344373233418386307864723630152454630756628800106173029135231999743416670241832631959549277830902206823259258481499513204414346031423533267274900726479639438588221123989127286413241387413942533989844445199314078841462614111051472729409437977117243087683613842448660348684423203871198811663089919275884746330310274144096624560435040303521780328107923730940269610468437222044630987673720715205360330523494622561488887676727517616356079133764157857466539910520007696210414676204410491016658218147284964965624706270685682441704500102634500416044259471267459112581607818475314303429873766261183367248183764868872095553673418397211806729185028747407183631297890281950495058292894119760754237461965886206306069788228235022753905775668605456093601098433062924349290223090548912745915310137242881222234027410053106290918779630475333220478942860213586912074279666001719778738195988416485709501354319565823113444109683760310905712368788340154453550914080711979045925948067939319223395508226817848363967354294475716562823549776852098707863388491703678786279695449566031440187553852648070439389986632530005156351549987408367101384755765873061867373775319454624872255496033257614425180790310806759429170823137482480679806894156623904288378912808919751247338038951249807089851098798522413919285079794534548724815423197630553124744043565462588015102739047803586108450578709629763068640629487808818788149174534957611920725571235311964520059920909887845162532817687911525418744820832293779706321760536101532301973554112992157494427887046700641489225566980342884046596370173871436197900310645096453234184717935676167401704393991633017313832707990253433429962901411528684856941012110861150181926915623410687492326311653501166210703670769899938896470713206713320599698681195483380045168726615183896639452327941924514782809659911106716163118147517445857251296244307221762185589409826577693215768963593057585298058918674867251629505235611041402471352301465951463381393132403201119080375862724799932874711756535356322912711966204385294037830781453588688120552388989038330493432949987057073037635070200872034717720039981104909889559360305591832848920546266605230118580185765333068867687252751684584118924041103121744528512974383083722068310659260975304436000724518703095693241072023544168967101882265719142980403527385675510058496998262949487734871332629174017082945062911535489661977900202847869961378864565042501527972775615196457306337219104825802265141070973659042894069677310001514147336109362204392188838557266280340868271299441926352897415796425588658931187205987210689050289280042199493783150333331318852133251049562182836080301882768470739314423248851375431948048962597620980533415995118132666764938126030381063176941196508642492438546647478538748895064608754674970587959790240860951522258262201991812168178240489783777958239637230348388707159884783709354136265033924541231106753087585009953204083572736953594043910122545237194940683854443454185313434744838387937786600599828056366809126258597783420003301753424619770255761422679998048164637225299028652140601697285705569727436065496956799735039349632057220609457553041685974288713523089542845882043693707355814886465411381205654366556911822259330679572052360445882519373192285191896875791053664866560310541253862749545386013571296107254919488109304753001201613920440884777245910162388692654448445995457701951291369945709089975966359825239186283816799902752456912177622224585241053251449350832969964139051035396023736784929558692451236457601340665612174762242236893618938402825530415538691099850373626603403518463861756157620784141323030343116179237161231089835209571770006816348371262618839032378451434380854234689357557573840806454722976609731651908144127429742347619364061657697664792336620126900450915903492012834269129491265062085377351012745229816237217669357804868903380542794029346716862093437216970973657363175541206711222011654030265504598590556066981370681031871606055960298420210979221321625323909140943101856849808529083480675477040322573423340389920674925632506603906611481163006286095341231020973057359057655809362226687861324467993727121027359814502438322935840756806283382625960640105438313720807124905636633127227284215410732012692480310150739022121541899272511192981563323188528012814151400968180323692418208228875030635328104784771297799275258571470610057041074196811494120131813222955557974347765701937849189237736617265974116759119243557964360651073060722367331739482981652299719251287446340212302811191905063982555072733897346100664035259061834589635034126449209466738095115460427799666458947971791358176402378529052692750173670308829456166981749359220921152810105663793217191399677229450343800260291451635814967186317491986107106128493962608597166723075259772880751359059056146762397696088040125976629140071913277414684095831536926209233102752969437597085273297100970733773073000973130935327472729199650124910302125877456510607823644087675117769510054894315032357409017305983999858891737371509624854456470292833102429188481756273149372838179246617086213149282473647337371350610401579616931432740449461144615280017596624410070117693177359808790142520780020561691344995751663930040345904639073563736856765607103153253214646230622298091927130165890006103713377506485737816768882509340060515023643707459383152020259245002430105034929622599312132595229811999767950686098162575318621378570697706467525450523071279777449092787059913907800456499157267052521149609792045305610019881910746138201743658982861072442314331950941532354521940792593720217149451604334426863722813665908315175986520395146345885140336315235301662233331264579144395568346543005972018179054285484698202347440445822014070083002840878120296466130776421243360896294872900852251877351481214809194849682794138472452377580064298289618836848482526706226618811811375345619682787729301240211735104013969378605228574468531930368091689440827521907892460172744067990860375816305421223431036575393335325487311861329831519940075989266837592427952317833122036282549381404940487546212175267464594187518185957923351873487636341348850005629038601033094977441875034626603456597276295446890042512414041194888400145648460326888852941825451865757386636380523640584950432417571445011066668618053500085343147375705795360558716377411701103515192366572695579624824916490786864389931081636430404539742142972780693012159672263247701219415492821813458670838830802500640754243799318684395017676144923670639952439802119803888670371729060985317602925950485605593730896298876098537658934924799234115824852882777487547028408859910395125898989692369531851672294018445620043946586023528309032192074030492160029294300327370431537760533058179434356314745977079339267004304617488925078530886715481172312891631573426942887830490507932271433067288041706008204726230082708222739976942225452826126363217855938632224237930571135313790458066679175097592336696474788689001091025348277775145157089499601640874613089496116734797400469264857216686500555965076402711549604010215215876759014067626809573983833077849992733882914648261471560346564174697652671892515644152400653241526788481367486070634496074853315849266961945574281691466581373162358000172025871039908180994293606338255563147336405180357662236620272105402038049254780579803765665161692841039474017196366963120991629756534032677693259319089558959855382050335320417371883412886774827799138245955115361935877793554589554364572598908039610468818385112254580184439268735485446825973804957726527772561254690916374698626073013546009111937874444488645365969219541488090286509848759957130787764633075746950758049440721750497049634505406748508593207021923261808225877545018394932034422115881545314138126354654928486702674907958931675255817578357934457266894449056025987869640733849387166085240728016614687103725431643125514949613525168133776343725405396559320816275001426077650110145950920359060242111792086730340713697571274965354692263390789036747273218889664991171793330388162941595708274029690150011440221100902329020266392554459382341084340482329609140039280649862287185076783616926973648139738999561857925857097947067374147185714866142169075602295119371429932896245190941934708885500316666769548241405134660266092108325961679233205585110825063399898943511156028187362369757326930388364918111098258350172854391851547248502752375580110914622092652726333743521553381811680035210116120480689558557739638138098620379251957337387917913397446581013909001358018527241719880551370205792612902587471013825563943465129091291636914982150743785650768375308512529077206194658429272810556865674475270188238910122936266089222558197947261601154864836210319755900336761225662829044428278686641515281855100758031761700972147480985755458499641995716515596282235328413944245759037609145482484633548042858372619922167413113301305494185763771903111872814981259393800183934451573735809732974275090116228157813063197383978952779406164621490058880664794460323632440350046562335671618147556013338150665840850453760211024221185284468868046425159423114941195381736810355285451851519293562666645537093603388731792891026968285417960042770581154009019742138798475776181939389819851050265802228583551507965956797753483923288597631585097308534875149840982207670191776444507985429698702779147549538564945601657747382660970315045770175081507847801871351245414957287290822127878355814839939890625985296966928332846781557801621914593182697594721460668305139051404798646790439553444398825420070572450184849371837588001991341145941467991560985909349375428956655918850218852590337183129510000820552398876083009374150979590111346284376612590644185220073725075156835238254955769319367240517384295647812939930562544363997885939388143146570178011210409602740524910153425603141397577302579644164578242098939386700479103966716750122274382883024914106768352923616624425431678567797566726148288169023553932824541209826385672717162653864514230412768718441558099272213343832527175466577896630126694415048389559855625829697997467834934287827418480417109100359848432107976861420714749846930770658456314592695325844883934072278852704475293132163870651631334833662132263379824395735889626598307383338845907705300654220107730106503970962473506488465414073205815419069443865265736867356521616258848043240069697310135972472521557761124041410770069105691618218015720348281700318804354065861390662632136990349299195616454057396606749634641098863198699355158811030978925595325712733697867410213858902758129437650779936925438749106429484711896908969798406033646868389481254833878515786550421477753622480257546538577217605258844235920602726935248533650908096120952625851704438571287227391328465333009453869993922154064224366954602845727597688220023701668950104240511740344684437565317775945053261196199232446275179191508593595701977250072239000385753327659490425437432649454728299039033014774774241783415693036296529332003779170891712231085997266413552404131178667136921391748067351417777914718250861819017976541480984964881733093299317176564617407650012577293042396853225356673778790225138224664208562417367977156384641462330621851705010387172805464168858878157820465808471676094790524850343846886923750113015669443771247365106424490975118390212240655312698140080563085093366585115453943862927378541729008473172273428410793525421756545738587878528740939736172186549435675848202888174879188118632992925783329916264920675387159407312596317758375565881468573354008793374730019438624109971413018666158127583518903060007798167077178349698369421901755833598766925365284208252489792998016271187825272466503014840840877103877116237065712263187100628431442413551182689659217695556196644035594626428361325354898888568242325448237461186592586241394502966216273789819717131233967105498642625892130192411951712603108910297764404868434372129741190576568306673088373632795228111281970206202633521801111771260026471486350232617925754067185405460239789692074749422365271800834950440858316294095934570248146984115276657684268008621784791691341188916885827195732868309020834625175620360970142730807796261487331376454740028198522679740335173309537990717636531343642361695662074758473878608947932838618083292880907505558495251836034423929711731275903010093747990291418941856671734263451513537400547127696725507595268478130369350475943680795733549905775493595101680905268575080310750786067826447672026448233183181856731842787077698876768802979452341684963196800876076398952772523323047628999105719654539816741122918394862825840026604666370567059728046178941624543569718319445606024892146773171666049747192499473666624379501193036757386032432549354787673390692918649378222147481129082366552883210895224843175356394049286472816851592083756970287738039757095981441826719520624157175004000718018142159813082498320753591676623268318124605547881134948396996025657948731914481810680479636498266720818963225328409360720151878031047237785453191160583981520395592344123159284821153342894407670383674663456929547842362362998481190666010914407587421341159965029421505449162305266880782708282685038020590390994887363686374412447232369348315996259941287530455382638141044914121182737044675057087300876179707013371600008899670401711447827540138425016963300837291844005439984325971806319615429681535571353043611659335054062442967208856502926937563990753656226882469139439908523442986235868477358724563837402985203081606018979153753081118962561792094687609780493294551966835199117535331841435936696852883832460123937471076899876740417420971510849471726927031357334843288593100385458471304551204881028639195045884494006210537720036767993552641609206833548499239955102473393459748680970003450565496467915318516388679417149940206106994367183824769949630176745905275324120904911928102362065239385093790361700686114413310549876986329884377510798887440042472640634445275956650404622832945759044259664470487749746577848224886756870105304187464121255832512262076975033687989324626157065708875154688247255117952675737271372005768325380939115000004608141430748319315773028216155820744933302149013744003274830370651021369837165258156411318679784193764141685145492448073653316109260856770017665735383807407315502138181675957955884028885925801538848182757043253820426341154459010580608262793882786559950868355752185198139746797771206374801333335861844181098006990955951242219457515697069675886234978642495647635415179326068981052072817073023160145755824659913745709765057204461854263528810327194427153029412805188282737348581643380356033768656941105848636635619205110318462223089198866665019003785103057726412974238327699553452500024825542482409065984803718232503933736024051477549812801455281380799803021044677178959507596109542127808832253012745716080895811107803864735724464923234486763436046518217339993963309020358530171163071419322361969363435363194077083366893419807962699717305818944817819103129887995420093305958334092258064997382495006258087455360753572709034128782141630535709456953835295193326677774006139008965908365211192033155315152407887191155483450609083463613218710437247846797416409569026524240798565270315606622408895328976617809251576395031107314361126913205858197032825085861641447145352805497811987879210173741266790757106280020571213762149211099549969313153489428336268463927986209814927956400197221398430816067929936657033132363089233590409952802399307288327583976197270164716655371302206659860162676852752516058172984365776367787394619342307327823539445360082029846684231737670059852643851550172299118604950801085062872310696841885652103218853799918450499362806914521350491270860080754638860891269752736207243455515231226609479623090581855976650085567395884669622491631384141339728276248519450465529695274294849835054569828833623491941178824238292897244432618295905662543002004101222845862414145452098395216661778527710023784379927539868129984794016542960936849007237437212749456880470992776182636831268029794066568228720655698648250337543161235448102825539193986908506760325792289803645566612421691204077065453559293251292060422244202345513881858545288410617980396733398911319047538259354477520866491467840117556657548476767625272038814390947076250812317815171986051708911342659466901287933496811405643842460558925992049030270588592468963632207449728938085812422235957305900170878477446406411660754620836301841416991016444582053941691462577623491758129972863101277300810045416053801905426094194022182166595881800667135836065585236888015682837841300168945490143418880101388905367218302762098630019748816583345475054864267351446770031318914693408529665210072987849108892532749600003757035797589424114509734055877524636430456773517507481950961297246545385561565877518062960170599269947592242985429066127575464098269450300949611617637104284486107671448530206621463871973834437909158922758497877774369452839613322919766059829540563511598456757548927431408479252763864117265364568812244793256684370729929988902807682678222165522549063817619769448819926088371290550894565831984287685628833148836513496981625162252541406167828873187442219291398434632883562796128620307295179185292821799550896073668850520986571695013380545099150635186036540433189378193127169064054790014604869955926483953122936433799264400162673961984303361460997474793635099349814247906774455750235652772366650733592592020738775933516285484002392851900847838502746546859314404248128921201080495822604965856046592419689512249316433263494818571076702759026538929792086449025402408787300192783897155414426093085397814644561222690579169100012182398255104706923644052896970138923121076027080030983343414828355738007534750190191118611964511614705077624085613394585342424120543481489958742468634349609904984961511215711518942626972664804380291884581202806801697636778034107974942426622323927588681209348232812521497480610989372165980460483222115502418169308704989208410668888959492571701991719407527420153263904923973828228665933607615095373457270730612495700619641155007465979565382992264292310559183152412643471590731063340163501325858155365011570261702095748105835008454583980762417937369463772312960861045595868042359318980858869415419192323013170964094549383671326393481570047622521415866222243256237810254451821775766795327043502202767406555065611432673458557160194234114047178350489991756422022800395110632655543289720714501188781171299910411827856086750578577995556111266108462931147296637550689924549172696933230122143464157591295595982265203163217771484071681306278811187286097483766126004152480280515372269172127517541353242175256224138327094432485046678182298714585878365523582369227780066341428099331635598735324592692851577319436250669399319516475484786480202110694514766427192637167091941708819109190688410278701463760583657648998483645484842826599275139380327688796001075332064598215600049515039855084058274818384849261642932062288171422433161062883351122643810241902791677919867523137177475056778250881867454573837990830531995513664572411878156284770210945399952493786059224373428103829384132389695020593740741045089480842958395661479736024248813652691265776257878493444524716571664600308789838680650986312166668978816277426396883923665543670643614879322022706869996497515349833696714943458692310001070266580631490959692616912751550453701035975431765188336063695216985016493889407420974534404057811657708088706816823119700609473878177623676193382931325588123108362419925187759214857308957393479457994215797128634760690919423487100917965372964737466324787301947218789114522746962873982262083850485774960687380603940231490695154002583775413625615969164286804663275527706767424066864084846552075295047276802343899046087953555161298941847407986016606724290433619859722265615705309228042704331949693697716989644651611139349915692082537508615515141303073248676887493650927301142836722590667065142709562184103106110122026034157349360263853038824791532105050216845263240188585623865717811573780512619291247067889082067470627357291367814547711530027488909772457894915791626533145180202696016410123928330017649336472803214603060389896717987825797560463095072499869197036957277624031941094615009579441964709173706489666433521456240724515968450939670352243544837721728144099227211430939243543540972853298618064372819073722623941243947165322726842578625937054629893970489153763021993558209118474287294428864643802474733002089177975762560132379613748530429659160609797471243083086261348693633935063112608310848266964600115740102547621957974722059739983022141661477237753794321938410803839668975271500959858375152374422164888061129670126951289412228513125113435272351897704051597675050613181799509217266473476064322954612051417981077922974336912054266379552295768064882754580989877460666939223545610140842886163121665442911434689563573745359106012647450642240096270605531417739710547487135327001388689157458899321918947806567565076872670889796825134090329386186177958353220965204922514449414585154102850878502761083585708931243425727247954601814532338171701438713406949649680118043818900629276528048081084488790393007924522435714583511277195364073889905920630742602781322167385805232640744037383596556601147974628973906965163632917445366588337867839689287513981876157866569124030138973784824523926626100310729459063490814333538240895432381165961574635369612152330234782473208516463341777640167737924696020243150858840152992152798123983096315024374836853740192650554986779956729670943322393286279288355865539840345063238085438913410205596853824857187519743462414481637433066701902382585901302528415884004843206858918713734374222123003040919505640698681492274117461104033364509204359223726742483083442606095112936473064875123146206666895618473391560103789615384213092119933686728390485498399334255138094245048652856627062176447156354554355012774497953714914444694088603095982013350227816351548236091692090308092978256867928912739315425493529110954462934052932831119376308650525755733327631225939450442049212611447077707548259027011627047174375040445230368749907849382818198073050214952350111995234574610395401220384136404001316844323359178115736237155651859923753715410644425227732247729121824821694380984798395648480190030218706265051066840285499469216412104840068380931014770152329843323497914294054093187158270299302242584037157977822639589660722888089651342428939308744304417242537956574698629522706463309285335854643633366951244373597124124469424053534433314865023935582411661384269249477043278166776581245870989894682959870326214372144186207271565471431653072620367385604379781258950521019316321117793036501367142947596154694097841859274314077215925237893210760672596401252336945037344952936921961656240026581727208474882695893530860970329036817174767563470756336764478837663079163283151774460280157602117590763069347823413592532539071299862116882752534434712651756419536008580897519585781100795628027677832171266448641449371348032649530189296211144162657873107835130581164460763431419158863865132478147988525053887754450917667130287609203646083624974700799090169122268974746886882454331959586212478848146342103109973672506431782658845700632970845009333708859631060736869455149530977110790587199971993686118591759342539342445408817209168302279580648481691075051269854187620297518750646861346635011593369616972612429249814169996093099220153852392763696637879512004406198398983070505212164408136381328773455321526948989510612665138266905330467344673947254902273110278707023872982081042828394528277781467602177530358471733751704373584777109406345625288800767584489273217570928283679238554033848150275116891711836151927679471993885296189463083237221615145306052210528782083690082970432916086769408747009079537192605883431656105117948270068597509591957353505453844553106078300412341264183772813046908967824133305171020888151175703878621509875685980090484998837087996128786201111721521262051883593020680451478859654729990590431357094078065694092094234880079718730878366262098732231047764148003580304023778811063223883745777726701027433403079455085928034839879718334224418087365528475196590931244540052213042665939512047777551740501058378949860124647890938503644500738843822549763281429334942531415571361514035598551116274526885840615135894712457965178418187684288930131973133976502749920660088566026770665716418175523735329566286637720336506560392630705476905254144736986773855547781181982913905306986891460964029858912181462834919222265530529990313023501527520716310602275336790097450341768300402611349478733545294521950248009418953863676369740406891466436660454109734206962646358821964378522817866927983433450858515429290366340294221843702378552150547072063352380791403899389780581729592009233721457936959653453127570210354243943143417691265759381285763749683840650788465138780370465921067849281797095302489977289705591716137264255322084211847398251907898119863128807625346546488198412668624528893902864070436994381752581980956648246180734060417407360958041722933066292807190195436286832194148497555985749520701034948828624929044186234126712289387990620168526143505687262737609545146734088981116327144044380741679473372355786259749387331123800310838853316041121909588585440402199521781775106426402174508362396029416944067241273482900339934456480199918908724322597746061308229877826150490467751816843794311014643371159248545172760919927959098422071346124556439417094309960081231795267885929290446647974883932902839615720632096857813907735947895680505411492774219405845387686953337985008782428074937603081480221152417269487763058033985050305706652998085914558991963225153012720068696320407422723915388939474835187220069939001478821203351934504431141899526858144696569141194879348832769982283399481214424944579695400629556845099390426948632179438416084403129476730696803629892848586337596087013970600494035136834781360279563323817570243426555359384945589212202921410842090951170773789892505023702647133908519311222732823250851909435512927839763050554345886320339092264222128839465956217242093435801392454173384183764574865246714390148542416797214917779915622655458872264886133821097092266806499769988349301783171177429857092142661326781150537204283726631271942573858515522350196801104603951451227344441672545215623606018433989634563621780175405302603919811164776677243650839392618817867872729626418140761617472545045290027156930788859108893820248812891066038263308645775883381688510700284997384284308379736700766785740362671048282898405718778251813817571204234900634621716343243692330862706642649216733745149945333812774351198681462848480479225145208270931146012477059632645474420780281596584297887603300275158804850447067513233513860931822854119535188287193397500889498697869894150708588095198476592422072671896066471844392118983569568376668411622614729465923339188995364027817495333336879106889312729749960690632780716814115121222088865523560343819331949572044661486719814334281587940522208239800042739464465198745822557719641501467263702097974503011720355386884415518071562536284354455156694708688550101099696815895728418096581417327826091240349838475668229220666503693301843450793606302552615400391057703091327561025553814027366080786034630464345662852784063778063851070171060187504940414380894329482733062732906605004405824809011129533799190502205368572850128969423453056037231334786040503867240391973582644545976053484517776834905603297616915102933700464592568589705461488133364379768492217430186902239247274730528216871685649089501596869997156919194783760742756175816373201194193922574431313716905744100871179243027706580291341430814712250829091085051937321860726745308691155451427973802146890251934076159206418705970371807638298538771742848881870740294793853508529119819839531117710169625018514899621966007826761004554453830383608637109392314332119853874678845892456808743264756601156792953078213982320024923572041770838613557280489641447945887569187541017594126022550305903389253169974176217991685607587946807869380596400279554982728830187766972150373699090962949662633741241090811996777222927111016803677160979345886414039692951921100110094491193374542600525001497966641560728131198923117246498197068485229844574882969286318124951662516869845809925020291618843952378500341685520190158325259588934214471360743555948379460937551969850313106019027859802386921937643598813031060882456402926252185253537061808624935227285929971101890525802864322458327460355098627005321004538470799494685009369826398960447272555869638453789323793009371270022005795504011482766808478705205896396860124008630720879509308995154311882822786883317132740741518240157302193610179342935548828379289848601483194899555533107902687604550454937449213260641243245356999292997388610286539223479226063620908743730071984401799449925091833932372164891830953183499562301979933402654096404592282253171904787377995112501467628904528280002376617033451218086103553191828135864829099645521309010325272969975174054989646873246033133181686867403209517178010946789829506418381760523271527880011824798603338024860664088112027172679281257989791512824799695967090544119775736821112431457693111920378257170670398882045921727171748831559211878690243916396568344922369960628519561932589033929116914435813569188035081794909190537339905159023598008935271079981568385566634406442045001876618475973859026896090282280097716698457921272503162340199685279033197283637665675164346883412644162668835266092207546662262722450786422540995598066372675024641379422437410301696841194358771801252702801051571468758369139681197911306709085722552508734461424143750729258255292960594139903673022418250545376160967487741694441657331190301370143189386007325090068312417191453124839736475982248200609887059499741184756295825859465325900810097765645236758394775091150422729055061348406212205796319804327379914619044042999488002505270883210750571156190871799653810072145762823583598340541956796748313078154619310975437912499992536050321551711469700900344355847392482529614741252984392299861065098612819276880038467882616282070461343933498534301952339612764230398769145534978793459871703680717836578689564019364627807734843921435306119186811376243575850592305554795484932484320109221339130417848815419510500226917008261284273556943887323314605230127049226327579266365599022026511350323403279731745182461249321362519394621625662491384868535006426917437993887151359539193628028155926375990959965540256523746677792415958315092038941152460146871969271400333553568281286375841590931618132439910154630711360018420619798732723975293784592869336345675126203132866894099074013052993671909287404651140524509196266400208341292031089922019332021008962300244535350779849864677535440250313147668358077421717196731137609380516624973098649466510689622036412466632908918615885122629716865760313787888041271202557561113601229612817347605435697192191549679000745228410726911015712174107636200719578669807843882976315469016846738972153795186409481461448340197098755653915073910831392364935499282228069894887765656131433140660622436976220074846730036625336277750564045302263446776176256837104196230343224640457600407698417783859858758010352299960832607054366266315496635776224952496676915035474422552244239623850368548101148131969689659603890110777694012122145378765958597876469065405998804429977066212409911660865114077270326524815207667966567409384076480391296706083790264021059649316755555725295676095998871877540501532366244867121792130299739715190040388159560254773985864229024624187999847105498279242605674236299063289046068063629462765026343023241092264096488846777032225364609148821294885166888772032627648162371023732578860943707693308635243704447488349254021106084656216878064307410904742072496241725242692470149545071844026748811621879610470469261073300730741649584944418705814338861331597661967910609609419286497808192903090706654475005761649788261574020921550810031911859771782381965559091855314755916854558379891314947793368488451629702275372168712655441961065911417149246570743896914919801277664120366798592005222404174720308448229099338114232637485703917370557167306290536542780438214931373148725682017689600880427844171306228440337445731050910321265352698854587127134402066379700208350698469121990687346703275784766692576191261968425264070053203901145911194867600069889365255092847322660738201458575965648259467833185690733524327656732326380011074234934217938512025000619186701830541531090072819207463302025117389661726573260930443018827198929878210430908329149543548986761683893153986860998940277476078749149050639057427896265780964730167501221138613992577209233779317287589408517289855559420248367051053481010387231368600588073281354362631250219832701533145484827567728697825600330644282649996326734242412084305598805181892090765017001018419225292572007650714366271910482179655218567907639183682539125779787841524979495176587082625038276395871086460126448897066853241483087102178525676858731373288898583762568634293021339976865397622758009427291192795231327723953498586078019442391152373509165668733063747637861790100142986835187137197845244954015177419928668248712833904611905730438361833301135193801476206033052418079504702131238295845661995775452781570850460269412760533955636157164203402508907709531096296534976582113355546297118822992170284903024057993848380309967122028435974525409785573868922318875895040568039184187834830904824300617251075122008431322444515064265423592665228262061684426646215216656177705625288334096643125641785404655444690518162369953916257659550562270752320603730078047726088792438360822288851352181213286860576356644482062929606625685710201132054543896407071666248232213576983507603817707091408226596448395860040333613628704118517398667424362069214919921487718529286333685101471328963090703833727251645584332804372909247918290535980193422004463834213254886104504074516992293253120445015503598672532862838617510488187229412383022129175354329802358622307932382520461349385599900004369690283606284100598629587331187231398593892842306315813392660760908648906117682876466336748888249220429505443121342612246875522392876650221829683446910231377533290355894212448678687135884761526759173394252178282975410435580729018228467587948439409016481538436292274075945813439827185905122790044461500811499941752509374879095424741930270104902295731504374189843240342584118785937846162710655903520137539019137399611982864908550850327908190694626333541398561802575784706692142622840046970653672554313023255391828708161225077501317100952867894299863864234036752864168067986345807263413719430269826720061044467418596090774620246048327746998316095719076540723334116665028932671758769083965923204316237524578472103887307839560073241806682027773134845825202287791579176333013518955123855719320878137393152203257109643447070453661843220052182068166401337638101517924293004543588636353524640049266129223730619929989358730150443603327756175249004928542688916754000254484016218600314997580452124746212794714064330539780848489383368485861488403639776574924156626320604767937259141636878119075825869910694729425332773439628073179488534378618347089535378288607195962114918782364285395057429792230293845124583023837670104135726434591541448678375196959314480305337040893814557967640122897829340057210705467366979141249632328982551453211046561129258013763415691909228011956678135801709583405213522116450729024619792074203762339167478832655500145725421458954087342473096411305225153503150461827700979705137181829812733538153699567759869776030105030663743816580083279632067450473418892013043628795518912472369663656857241891800783956184808555815098105676391807803200969578197147719716703323462735203015987946762458476458785569620261636985290074822476824026516010686045438730876643557329445240253721656186930641590377042076437146342698338989734835994192886340455516335006869658209791483655748219684443431674937214094041327138656349411421991875979580683709764365847656306008082144526735446885614616893626630691473179614788699966360666721771639065405965415875545168061903740763495388229581405336175810919184046791847927622388786728034365173936530728587527414637264732977927989896772139630698662208862650387760911985687442846824961284936983728317259470670393700734651401930873152705754144777473050815114213144836902601344051818334079146628236723545116379007078389960356493796876600842218275506577780428328852121319280758056068338825812500373026824996148835041911297822587939101002634483099940826430516303006266285799836344396328065972087377475478634122154994497518378819597755923923129761651135242103542123760120776380905115243159197098001419741476767469424803254215318286867673089637482981815924098304684238386630166885253209072381184293064642677299134514785509899156618578696781455513357886368609936061298220948941105685630796412252277971859021562849725769206594869533887597467848929161815334034852453557456303314278370485324622156357365942120819966595361727697255910359698421450911004961964331882411669666267057369447242595661480273780133593697238638400761909474045263909073867673665155567029114515738030697276233829983920896918651655106137783111630034767364062151841366940810003296272588309268914046624619296384073420618619139435012988850427682019734727764563383687436113536892482958774349929405188763161025391968245455712349847228049095987746601588129665523267979669147222373609434813544809886757317719061611384193297085961637703931356537229855027305995071242344040754814145622480106165388358199162929875570264586172260470957239034943758897535264745626184113727759879406863363599208863070773620743890438389751564118074555042237319691599844807894693537605242899135864276527153548871541860699190055532931963776048867522827339864240522059814784004934887873573536487258397393294064398043091186213920723773463247500623730392559754945081342525406507038187309214439200407640698637573583237041750419244238642897220819437255265418790649306316568794364949210634011414004756820175572585882405063721522029254425118223476714619042004171533283522427357095067420950100000172678527833524344145045655104227245745243137794939233626726998191293734975991949473151662496217470688922785784144481991500442946167809834477834521390931808525304235308521015035989399967482550919770717842840684181907172794276823176391302769990683358068293951073233082007992386557914233678480365611242779792686541588517968765222665756416686944676172434460748380983215015919428476244624005588949306960384030558063336929102480066379445253812929897201359242394985298864692222806996089369175573306033890502754293360252144094927793883788009118070232789852847903691269174508472718849014550509450092275056089232302574838960957177184212162430357849442109342026085444404431743655110090966179336471349857877994343033088721259394699377932923616056885789600356915121315148339041176927263216312722072027352110806160071063588763445999216437114130669963192180354350577118838864742347430072984645252122372478501748322356363771191276217636687603201617776361997749280699116390009353742463258784190607375951242788462116827973721239681193063790238694094416757891283667437118334580841858215885821814866755175011615223359472455925527319820531433908743706258108893095839974806411805242582064430302674817263690163153063935944433183660957672940992212346272199719969952238300347702611932430591778779078738856057395036953754765861981899837223908751300124389325544119612098718886203742374225679061575488983023879057979846856382262809070156095343904058501292065018864338657294268836617305027340996381693491345606845535501729960933232479552678496017274396578986862080051060732024028866437832567264148045415380265631099829927170214939564270725576024514885998323991625046051337730100739900459408362987520379368598584703610199398788083707366961860886436696086982498500347042556395839856060281868939793585847377352868323454980779906061237107657514671718812548129697587394559558728830131083967862098744786580552618858810490512324852164370024885132866447188570849888814388747657116961930330960050012629636398746212668237406352669208675450703286083476497660913425789727855062831053954952755064118090067476072102204263218290365920710552944601928001460458192985810971090799285174746136369119076386482137062313376855119649666350347008473096915356541417534062941439557602391001207497934920561276396345185130537977426822248386187244619617161599285996217505626563070899635717566229540718073652400781219263946651637064141893206802220510956254174948199778649974097715874271233389650797395494301314573332946623477769605208038210091832171248049850595461723944670821242083353505826104517767626506704832856943735177761120036517647176422496375033737785127911815717370406529783573108725231867879455782452382607438524269923520564567820139061714909302917611069624014956379117842219336944499213562253075041664348001485464874931379854795457239232466155717269585391286939193533553692363713117630946152608767388546108765754615830253934583938631460407672367028720496793776908456139525820447506574629038124697388625872029859480968822794360138373012000014849816176800313665205753157592214374590915681276612318643841668690047422093340003263275182337015823283466003071351412878337667685229227952014949875458632042269286391193196110469253332637087139646171463658635485921639652695769545086255174077204086231681895084727991098893936073143212280270610206352719970619071804432071368837608946460734136840454341716356658964395843694370829748910090016270998969314516887000706630729998883013422336683495719133907880647476567596705060998989578964253113213583369345581171908835315647294531132442473924548540563346233388016799822595130494030912443894215587346046493338245797869328377143894441863657915256217905585588875343034146437229410290012628327046390031986178309409279814576183633345448237392063311740974414584660945778819414003989887475410992482799048956405123419630197264860460571305041154799478318361055272313986795196989929127205491743484116690545613010257613077719599059325297745925484369382319857505460704462266808816212907220097161904464206962190389374893557438789184323836026751260896936679916178730437538147709686410676753890102243151472152100479222443114035565726009500432076125134866362348228376249376716998079276055840260715497959377361757826435445713386129189474960811332791900157042342332387617032822363713729763391222731479938289529383947187685892866760664612537416591485570920159107801644417815106946387517252809334229244281109062899378541032335924656537570165883375620775541685998219898963715439338109082892598485254873642794337593398061211041330964599905418963714578017021195331937701245684302149317553882464758174118975937521796540141412843064722465089860974504145075950662316686951139066322561900803314201918787958363746107970254168345755264811205289368188570629466220724739390133377050090561583786583823115785117301049876820529843285279182540469685718853507615314077112197735698542119078403191928803081106785715619730041903248665406247236434176079182735306717182883111021427705424706445541367177796924889933105226965013914393386207320094413147627911990330086980403167597250728832243735321704447230414898387032113824070056462858941186687372998244667282149696551539064225660858960780427414434372017529428745136860972371621652415204251228917401466330177822817029394889896793337526854581214325669210418517871510529253520270947093017508483033529626378734612677420331464294842290038968472021647640321796891787900274091935235173479206256126011506056157555980232029153979379824875640152250795420151066721301557010331131968573780038173876391636732329907672545272603326150427139292324846792796705315427316029670753112947068863553716302230733404304745716549138017182059343311141572768919532919096157091852588778067301682018844224739650845144085030736081734628480229556406459744889970504490134822475149150146093098244563790456467306585087510182698684950568187023616701173636117309960845487638044833239451695516267370356523705976307219289916180661706070033243876177287548748241754791020852214482598586593524472242434830298442213056463672806608871284121923577917756952384881350882464284541942510597266175577485684667024171137857294817327962533847625830839375587477222243328317072652179763816663919534751359830411421317220105145165871072073373579554816742853273162545414251427542354484857268691515835657484051788620999841396554597089799320982136831789304482232229865696743350317768207798078772209904384555824937340741159979887127518117159471546922870344086876961416668558244727258743603961011358194644664533899768944011537973903775718444167399306906927494913357699827971825216504810461263297937182385609199909991030021173935077615461614797535890626585423174412085490764373627169907222491554027294660392935011624246021435371268173621343218298163697000758115747801384018838020178626831289853114726196805225750694000505284656295207775187165562597866185590926473328534588006965440418077276139393389379549251980756080239631965236042187445183988970476004286478000745431093287001478206038563643572180049214239916291126734912588141308434335155913642075026823839390614855167674397911130817795038625935953206608441991391267849027667086980688200622893484569016388383984462107280616022543604684372717194689728698037420064374927217539983950904024090769963483339241528850889357512866493475670231204984364984364337904770195654207215741810515394294430366915063474903649541237733437314065861031192934175261270059861369223337407607469428123077891962377146836072318996331736865979980527954538234542233422907670102636033615891315095915740898949643565841705684344621268739337953124098091543857010273790357943872325563851144497018908806942524644841186915980408019932339562721806627843643379493384545560815476038607025092862039814082410854407827056237214711596089056560283046393277695609920458992614917507440398984137234936744864230713272698665294875906106419526440050543332461961168930832367071517154884714376592184131944127167433642881075806192399162015963428592164300283840162421625532086627560159492913733310275783442225933754769441485634671834041593019133465443038330383603089808505667385832028993458980760169501560373340140452121478273464240424182853365166840693187887517410840624942871161553905301501158602017984494210229247238437940579170498979146981694394712060507595825273120930550086135117603395098483509678411568282329006131541915298957942338355872938462197704655358712804512978084761573421293873917773028698616171885909889005964698067892046715731233464596084348161735306337527729230245982308439127999170183628787924515622373750720389430607066977602032699703182327802690160498918400343859163843428577243733326808954312637195072800438807705871153557883967615628536150443195781140520371749676584054361164185051717226714318046696281549798715257817259017287558566597157921930655259607205661860094047430774111392513919621121022179258579667041033089104305991162152836708269579545238230846621024585601984056386528963123083395206863764569654304912352368358079036108613568463840111274900500226762473943678534445972849688766581148111747932083838858138474496852468535539405481500742713257898906244432990527916115968040278038089696890127566748908168659647349921310402436932618199868021101813912676904900178031522612263599968233806823325554162863845866820729470140482583581288397382471418905416575182442057633301475794579608867969688709819482211300253619704948684214717086794041393644317211836332701532325663632814754748893317665928729500218050571281627922428152388512787079686887623484883106065507504324625415406165685688172203494670509424112239152991655313124664936578788690485794948092784229540991893865958816715344545665672501092475252423514671604583523397656465706160592036245074830833211497668493071756818268273135588543007237837191227566873893844195022241454779961162253338675672322576978655303413872558709460671291209323932633281792457663674392440999844082844019284141148567040479313850984517159257078216886899113340243378685714932950850259043488831539725536973835612107071744801429111047219582607141477339834178572519561090203297944595153135160632857139957723741834365186101632678317752735114375684407896063053089599561608371244826513346681263703082197271536647511172852989008642937475243613377644464635042741035435422781062202178950463552373706407430684437638464443660166989139074911749238360409541660492593339221104776980407676495111832007989477819799284916195853298188948475197675680539106387517350655962482810048297872998827230217502920190318077131697918816480781473531672691136113649822453581325756758799258878473020212698283818005879335453029560657010570840487490088759077992654758516984749726997952884581264479823513173807469614332493832598103595676439272194019358879806334379736288659628903511010838591685129068653539738051435321499055127615072861765250800531341358658308844034208596090947133823059918593153331006488235670117641030844017713756096682000886977196415877959681198896850971864552692636170030442041460114148375104956733641245648804204175512876714518592826283116712074247346287923233194627775826175931774296630039623399140681770065033703279786623821583788041532227496583925753873311745845131228064069995900468525929908308771070263825011324581107802715549527324138632095845862785019027270494103823147864184323689980352749973730363423220525987215222415927244866827263180490584203333911578159216066922755087774622036469941071249819387323532743089412127984679304911227085260244615439317105222637653411030278902431073153530974769124305843741542936143852610169005704284742375882276708675589830801353812621097638204022064641153753046835242160901231655061333820693744188278708211936945673945907583408484128260174262120625182350031810419758371905954539281819691897524964131785186013740415725710220232417418272032650615944334385902177769885106185527606881637316390058311882454512517902106826344713947275028157919379920731245992125675760426737582756788977215385438740616786904818329843055721767895502817510259872986320427779084378823715647725179979888179086196115111429142541739112539142384793087247974467877685710887297591332691524635405031270281089677221213975254666463254657410177050296088181496529553310198497986612576791266232310894253199624237447376653138346138631572321537129793873937892399170980629665758865053600955881463305702320228239636113563255120183558287243953300961902340699807986431763015373467180825946757393558825004643021034875551884346267912510377653662984125892184762452415665411816385762817927750699928803904816633615046030943887611564200575796066169630358889928338361316906701701625269710724647874188590041291446961053265548780439803415848408946592442136965973423448677143327639592578238757897996005338314836135675494102086630945597819720412580871241964407325896156776130412587717305806972177625009985083561987196369545046129077372815789751394071937499926244538252180450083548844459132008425852947689570243482228669293953019360106526510002704185098785976611155968638062440487673328588403500684666855216260384310354343584381429231687716880233358232010756803901637746388878039166956434385199523274025672128236111391785728963995282140865978809246386165133884058978403655660195853080808300635653566559439951471071521848244733266116805918365206978096130420392411739282042380618611644310006140496567432111326616014021654548828040830706098876109688455263597877162243021886340189955297122783677148079085138200941697748632306744218780947664751664849564836520800064566364882691960216958703507847035780864313843926671123049639804249590207444220484226743432707794746306152565503301439802723724158627618622749397841386001167814103586952885680991778798739517619720750673642023608764077828078580816192904461202929526902541897028594149642038817650382773884761527494260812925339673099109270930182802286680435315618115028316527518883457099500605990075541329331441954843800860641874659671263093337913940398095154589170409283668694860977368348414708516102314427404715785928780363688528582439137961489620808909167058130562608233466122009199125301429356711282487656153327567116344870684996590851205100519550095916521485935403117714468002162063238817738114974668681452652276998101409705308596274192906186808812278968847179977740777819826967505088360930614943702814311227272364388152963946688936753796078022684284778932746337921661908257588360596042997173988592044375369606707821922653075417800594040619487746864807169795107354125738561600498529169466603873656545400281386844411278021351886288103613389378366058654087380699669708185263899260573937549681173173209348889964995801975590267537123912894438973745755757962036874640333244924977854575098062210650319622934256248786483066714996613217503124884620466624329441131446930721484111742327059609547119892438060005524095966744850598009999290945396991156131249070261846126105185552586380105480796811890518085431740126566948496754602935216470781389473770786028482749286220926178234930394377463123994615665634892410781461498181559056660126814325051368329405086760165975686487120566697329854520003033574959857223821537942018322567588227346450667972001893417088004880221086106688795687247534038241132441487713055739191543096030564107718842494650512082787433432848277989641942814157748986111599304582647859974221087900773747115272884123336221562186856440630843686102646743037818142483738609817287094613667181477767289503887882253554884444231974126476089787402211712172264974362205227645192076530512791774147167490467647523573958580348312547797501973500323264781146821308325217274960570054031234607422680575191976584550378211816320845017554206246934659939552405483302315543789635985673391946169896774616513176489322081633006173502260757720704767697508849236630564220695287672351349049697329789136746861621630439469933069277645610382640930219372303769467088472304345448828341605928201512241195865255319977206677839486715625692985881983093857933310421108413921934676058208126684549337748979145358723459404183104505237727901597296838424027415825393404905763359876298411863543160666421642150308367713103098531938155230374365760224339838081929888289631550300144374615743725559749599877383235685576307848086622835462998018449430621529930928393146313501728443923156154186312640982296799143460934668203478646993410282840274836445377606960127347935842194085034058191131791174397630930425229050649858540628096277633982687816024219567166788662881282086737589746105683449204282728133119113332369083447165191841718259137953438879929172398897400523380441761562429085462150250119492490346702141960696511497514383148419984825048089640766057914651076394634630008361064715759038603518814200238036729521397894973894093130132796433163811221551638410065824120046320538923430648671710984510464768219417627777233972853995842424557997840370571134211155855178226811500182295582106083408259526985787948837172025015372320536886602757433345667589356241755165587686378224151886014612007299697612947753611422059702268452034866937593624666400566320168977589048544065280706139564067791537486479592598340107722608886640103651605327741586834965562127771696157352421120326923997637967241504526202116634935971415839127905591536986976871416619235741275045689629291844918846252316308737715664824713917734705563911704880320326666563511236922594746977747324231220686436070233481508008224564315289665399953700553182259812484956621823260265096136227295824579265988746457219457488434667757166905115932737168343159634718374550281378187359382955288860989481029001472230533777083704885405786168068245520329073385203518491806167459719420137425065602387679498171609003617149716899827900257990502460012297810116849151802236758513821852334954163508824376583921520880997150377490159299945071278563616332244466041930511338436072288475463523741460099976085148436389736861271840337228900806517820908770687100576056861128571278504650505286539117284534279089147449405350512497405740479396220121988258894757803731357960619353386875227072868117105828192967231108530497832766990789575266967825946870921802671015477137926432152965017195411866281137319127641259724859620791956026039135000675461720027855927083235094875028546821630149461624436322661113155731556571857820413136572822044327507866805742155157117483054779559797130003386874533887822398756937036309472430744283318570443528959121587279713219503451499306072706560542427753822338218940994721601355843866339409135588428758047548145037061946249021781595959509927336910809857490853847492904922407852612355674584309307127188985029922908899991911822714237644223812190001087059308024592367624608611088781620802438674803263402450038704596610080739379965678512378539805358364171205144435944839092116386793293564127772808458690301757260158634428177764696455370434929632917114246548340351332766687114543513918253471864023928654395979997728811212999626728248562328963142923277695484093894220779118950852794349147849963723488353652750674287091618759727710134701581521784007547845571737568856696152254905000755092043944353455016434806458789167884754549284265463757753286683021335684356910451943414082674253651291223485487556615276285422845249360688790765359701157176105490986577137167175920845749882507757350542510216052011549144979198724477693917570441909667455247203608760266360753019298409342441818152172690127329950778983801548339965723274735440185149531627004822725584485233098498966253659566908983223137044339604926265545463355747677047285189754918299815853680122007841608905703164334092756708044475326949560078545413247842193356030956231009574936787086370090561360593219818063081886440538131813649425001467436998925979338212020492047399392161773705496043517199821451583217158030084965099387901867286954164156181277292791143253814848130196368238889815414282056359637147343771858245230534140757789770511981177145149124400001553515299604501718349278007839597521049087878352138537513301643609389470359826326613050707173268272609413061663486252811900423377299175760557939505708235890240090201850120497604244704570100114564294393343698461946389010847679562930206198921786886434308713027619081622085541262780865666954564172647393845803559145331317814558589534950263914316113615734397883418225842797805198936568339381048859073911431733606049575610282473997066625280955292453229456855490934412499049612931392832128158029807181796453754268254774805057901629750411952928823860440123581473684428922040023471674578879564170368520032451545807034243029608186306591431509285511938343707249239430612772947996781655426348376588608940978966449271816595706887848387072275620421702159307205451470696431990478451640316927426770108498426125357634481089335765856841315099395319640965691758599276953575217681353362350209935865903049201266653089464885181743584917463989352154217774234573453227553654479790639876521060427391834838659315713117423202074972237126520162685802350545607216304467444564692965895097290261044656279894621530087021613910011868293651598612902498773388673038731146643504285598812543214166979279187978986879132128263755183137359771382419647262570661429815898478329797446558527998918759091134400700980126713832495475553809873754423600000398601926814872009845241013661271410466368106168722236419088296024806922211246796077889064181408792992697836784971907355965485676145715118945442040913292533110500014572518691114927388130334718017196301186939489547388112317689565727009406198725975181903859035770240227162081387674829637786240959151154221403083251413152620736895418185130939581151856309718185998561188353678262752396990586146670504338598463740277949134055017763638532043077314627958925444216817954501441364173872769025306238942397643000940555652068493871364376688932791824172263680653972626693078954330530931721137432412251368857343879895714724791353215712434203478175796705993037259034851072888661061124169164323482728728176382913230644089134108625610460258256579165570536947117168267852496473379181881708059919358730953830147969434879087983087108326464593995691046296027950108940836523770210930595857309866408597932490192904101402153172247807963011738272615125005697242893767897665914731206934400492383166589096785447771341405272093577457086309419817804700564159813291736631195675834385284269990107733385154007051485319846699976549906155322215575025128431668524017589787823631482921955738604645484619023959768080752399231176341706265629090425681944638149107777168155341394354721225711021997114897312349242709421094103279394237023396724911270333462101980238543016255941336197370646687577755071019966164849155495455694587447441026240771076957515521226302503432770086111797202577496848039159804869347396015870817597443788737184511967788194796125332881452970341451583766920897414514217092284918291356088073971474215946786882241276485024044007413254815815207165121607854713316001977450767084218376628517584070895866363881585124466403984053614136712547916867517945289471522208846426877550866809626231848920146029531359659300358618680688284265734728609485580038151852562003351394418127347933830097350065742576142201028063058829696762460004230694795047558652913966790902757282871837773099473398895360418547190604163221718053243846499054198174276129603766788614458408270408922335512781655726573495038689311595555872140164837921525626268748294439657196994488368776127657454871515515791520736358591212415849857910364109683062555317268613840429821827655294703228252404381708262401399906998259862732009517084565181453220554471919690046122391553508988312663021980053363827472613920213039862475645142084212855135832645968555653606131738673938277304146785001206726123185394412843931728181206803354220598041780937174141280272259241793291074500199557422763979277887485196823609857235332145809105392685487230410237565359026407808134706663909268673994350616829402266013458123116596717929587708803026030834565104191512452330996274790446950663722720757795845195430369789155571842422168804079778112306035994435141167434321144765932742124386404625740294368607059614800676685127766815281839729061364717650472713825977152456379602643956779354125369217927262771210209993200600367138703739107720305087368725965355627810594857851004626015939896439238878203726073962309028025759825061700116382353483477749635829145289483177688412024218033003790839647632371648762939455875099496831516073004788203324367796617348229819930766625231337837662942636608737614730622734623482074716873600309710160649574012017948849555314767080663326247536830021788944158651302833582875918609249165129266757243457701702753199018720339831227447352447916969135515344273677862391204087230058344951924087004694282447213659994209188457751423255328993664709833379973723261485727046040065686334941697360350524778246190488346768080369414403749355591727535197387572957756311938313789839213228602412387680759577070093034305405214000591464189936919478554305895637362790091002383838138067273230664593888322329995465179570750360968310732148594552828706635684538196162045980748472237941653581653215001756471170235399976584104668535100247399975138276554016123649176559540531351520418341467590456429888577369092016457020187425516467032220049286747713129244831947143012481343660325705281477091173753907051664057554126623966629825448320326861239843638679713589205087225651045273991072331031050611918450416263009513503242048518081245993894746621639318793112623828344127939599599070041718878436255708728646532975718029350073832864446287144230623130056519823154540947108380506863432603717589073360236135854401481851869776204002492808596635172278160733202313009036323979256293571021024153021183095613756381237829776826309954580725930915168587750145303649675813991050886389795188800390179073475916636998297980672719655660268116867332609708327566674917845797045874909233053915883987524552221912820785707515980629753091703094360368548589070603995578419151596361706692710513290799095443836886066034953215834229562323962211951292313876260660779116484093815276855869755675259378362370119296179563110199647312716918949206923696747370983905109141528557892189364737998144110381292576856746966828156342371259448171106421811655457792436271470847049804849346618560807634974576042710415924286922810637314681001936028577810167868878416904912039214693967986023990818922327447318052271050108476919603156886509104881148493617915665989456905454366605327857974407146902803019874143246493881414372452684099637263483583899406153482386701033904327670341243457037417586722509738225964240959556524714832822605757555943584251501183173669735242189451328994524640555690300582023127509360838652285404676079039665353494434223149016053926572917857822088698986732814442256055343018892725630577941809822248992705279994514681716527511852382174456789215364020235697522098499200574580496324501175064931816255785609517448862025823333878697456517399017812041176931515284819121358495516961531926674779670393902837649755770729438054663319442034454120308214925862040109794311713733830925170806620314896775841146222832108210373997026793881571788078009360339735954003139722521809424851237608127555420366342403998177316187604794572441815543888021588815857279063200806424881866237534069933574655834730235333184618451202599142126266378196152350072691226190718704355682427759947164302966885891065186442775174995819746424601158082113862515437038141705262947351869720240918517233102146750895702166837282378817978431635870763587170151351879809930696991994815226869298754116368643101045550104957201282406948229160067196118429983587264237902358337572629650923720016761326508343969190545946149252345633550779760348509192883879429419126777525958569880856885161830945432108139048878744420123675522091920262592918273778825219130110640670022827147454905532115269513235312649355452427489146240229779316988696172536360760191013103090082973584607771558617434083812106283566374071225326595254845290473402035437185279669152628773843610566358939557966769754726861115449868305628653914686475020329058630937753700480099910128981175486617403064467541360292172067672386413354893072829202229379494778090269408800550464794328426258634124572203238423248728221010129512533107088113335197459910462308588664467751089457008575797874548706348556715412883356996373206853229263487054101669716827753019015873572752480346242487246213375000016101195868614349776865577855240867135383890873509865748175934307268506622711734588538538872473250444052916319580937999471581487742232156541174107927804461103992689659889521906737728349751652766184034822581273369972147389657029001820236312823451630456037505617556685047014815476753241025507999829427722405548466381608384570695709667059168467789095252313327691703419746178804761203265930278049829102796014068552027827285702824808249789979212278673938590721601215073242587992995919243644451055078419863365882341279475670786865659042205837289573167027641249274327852409549559455476331410333067860441567936812158061650263251279341798048266817954977466010344149415580633627251006223679881023646779467035421208898848885088786765302922809798478579824301364624119451627862668010715822116953794026950321473117417719824228790966654427132206063730165525192264537719822939711955627322627119483658046845342488464081218887496217829036292929546438752720426984156986480225552572261871591443326972148384913779647572070629765612334942089280924894099297171951033376819707914960509710291778925521085995705171376489837115127808538441581290048235365773494165450628231579191747828915349209118311917916534876907201418163413053979381768461005723298352593258583430504609054769603790455596137278713717960593649420985088997507320567558615112351966563751142505883831284952842107704085114420129183291150397249145197613648329575566483941993583186907328267014987823380797779099722759667763624381648991111150135387017789940598155873751314391727376980690060334820667328556166015406876244099678245584289559813610182074110620818667130869717066151385403717524504655845299222757015249554072531585157821304143402342964452288357033895494586738581120607500082408533589881065829511507598230270784095788208065385242194500660851902546603273926457395834124678922851212793664810144081305389275561438950876576896922516305424140886507042667496675154273068220185227885870587405125265210280671930077029002142715549128264084469697114777744901652521651957541886978855289308293782095993589495571565237495898988285357144661064626640506851316021899553118462853220535919687241566157028932948969805311081596427659973281670349311911784030813441293613407063893919082962756917742483387985080493750131262249952348083595499512598026845095802749163185646295493600777824146535993739861844461513482001062559381378953507796340872319556039414544226068440048960619805552132425648117431894039844125548747542294296430047252321073133367854315185201947457717158107399498781974406223204908742006225719590196756855708724172678379179418702868129054160629321318101457011338989276018951460533827253704315115540179400491350929997079438064778393809133494141071867573703910677393355712700408847629698658203590289615427009003676543473195075287644755083968723388438051987570094667987642544236922177467284728061260495571634484116345209425323098676328437812041860176252541351973122353749763271187456992750599994158062851026175522611342729547975615579935616300654380130880218415909786757196286770591983350495925779463773377831350233100011616566377972420998524030896183032502420951732850326836637819100444832371263755754663220043494165926250873966385040254493860383961568862955819398182540999322303111019636997822348527289356186832907971708717069008797577338613447199089984832059787331136452463470130509433255038472424209971190556704921261194217606478779173134105255894227493718492746564721069764299486624545431289075973505365398599228946647810908681000428901806787956808384430862807827108063582431189265602090679906426944528911137873956615478778225792596755838642610288020468401001217606704178649918013845157147263632111668086863228633835858186438802761367280112553765865624858581934795059867718252966739906817672562946576065096084153891421715897997576824262975203766215460375612474617033373277913428508445485932860809334631937504648578247105481490894902419520904275535543973238359393140046213846996191417023749719754154113369697323185405250952251300456441020454860254266163682228741587322007943892675608714590877513978266244575021513113490823185084155389471050388391147075668542216794213598169801331359133067824844046805528366109184164232683896434934182207818533469334249009031183380315084092221096276692294451383565363280759821841498768555957839482539319757504770057597772066609525842750736085906863923729811550706077025585963513077919262290546823477178781825560116202409426401161645560211491244307408998918743322296905534503802571852963101690090229352455866179818793654034858647308498742683776708147966780964380176537430503024518363010835408216355963920392817538970073146440517272855106004952553990919607122184696186679652728446544550194152073422441930460788731994006669321964143333952339837914006065724393058659428767197778759760610050628529029178832160372690553002754581379325439856628599551545546289521505281661711234418236315900851844246988170111655378714398871826682694855496826967606449681676307247867624989805865454006224221397052569408407720547867563319682746860589887891488483025388473891621912686232569356996429349573727194499214316920358985074362422046859770265997118824946643901206077447270387773658714802719138160962877904978767528244753849269532577660745519502749902439722391599758580205277982183304252074044951544996233213179220357113579029930002030726333579293227163473578323765280971755856682132452362871392488825681689182469224897525986039345826858127432711901009479794784696026023472725278432722312815845486080517317697884892932295902042161318993750638492400791149946898343753981518299205734009435117564903166571896960820552926275442695517500694115267020784231122234358605089854331609272969449799779057504999428087443130802742243918444273983312251287875044602128714663675694500020291006344178288791661841389326581369129775597529485957359472760562613900502678333795043738984544817033636249515889594810772850907429516058728999898990136824649410002852650659026500568564580255254037315913522381508448687042784411101133665218899269025384293532752971333397464794151246621171116631428257079674313228799996743715128154389911307183671672152381657471651614661415311437401303406100862895463413403530454976073072813891842377095615115679046490371467750876262607864237172951633560194793498577312385809281678852888795566144670294823453858623675963395508505166786411413962491763428737123894383840099371237219829380707487858012237902589571412468564650944785241463397983910427526312349484203696087956272368244722154436521536432890738792951174683877290076160430358090645053928611937203836647524722198316322680361207341108675570659558087870816038921974248156503449757510365878655727460938997743985903968287238362747065756052159003460571078705717612834444556467171123397051914455147535387614903108232461605261948393874527264419235216116121214884389314688277999218153516550190278421913995029325576341969966415468683925697909497018301768483159927579343394620572206477474824703030186438834095558036623578796673809560736243735526846765148140909890226580767911938914774575544331377211880382774343109177385844591288428495533258966601153979156699655749544347906318343678427732715333663055916521286598896050261713789359714640254047100944155238859514127717087527157944840154141416769068130815763931713993644238633404178653894877089616950458075488601358905204192687140544175916720456876617338603081484846077594459356958165779161695509362881458993840970881847934016351158602200161909789439142209883794483537365930447596966778401575803247794120766312903473063812088757337125741115878613687669297623204379518659122328218510311645368975983037234919478557815716361530346036900696132266463958931433173592674209567135215919941749696130239772858746228273963777989375737064828346235439622459558508350190145484820376736619567371231132868783794007176329630958783409561259354126561653315880605222273327840465237069939826761708752515552844601747875232623385580689582451530734028252547724702421920008046131159731389046454975065472250158371594015484720232239340942586966300196814919767448101651030322548291764148928867801758739933783191998832353642271234332380502566339290934366556726459665856317400489312060387432658317825440618125231743155336384460810481840517555358388675184090975312692201934426157685110566317372889477601377141919369023637866885070455645145792567665118141911070325300907856051801429920230896613261345325919286272898193043997855036052792426385435411574201306581916864038137909510814217766575413803763688997521740973421506549214029962856917639567524794576888166336479370132559679764556383560709613093577948168962465867977354222358473514669327147144455858628712389132304729453044449218313073548415306154789890098026316493785129302759275467532290396822566618480752997563615080615940534451399423811095438095034939285951317977752281215416139473038288287282645340020274686157337831955306104527606572739882056009315162632542498076438947010182062391709689856287115047975508122437940951310711070659445934583306882666816465431510972804471709825346976250346596021830269726273357635763673477183360591334923311354730058731285434012075948112693310316261292026940365598558957586495401383436174945474646094064239349120072913213079868744110929172847782914629422243646239864760775271366546243192089050842471617845722603540272907154387105038694071877608151134224802057723144201165119851407384924705019789885148782941257121452324622734379893677668167324719526393110191500210791985279375051809732542453320534274141015209308245640260970249028225218679936503554049781066129614563767002344275997710638606440665003232286968197452721705034583527684180888784375150610119995451092557954173113001849085555405289467319839546970823562304146898632874089607941802794222000990757915517058546641146005871149662700630210505446771421936538494693139645599428433891219297413178726668331616472886696721605797170635533320498321681959515270799967607988807473622319004649585817817240842867341898546442324255682062991564903639254927890419912277694873637985573105309011140371117137763733267896298243999773636326386539517538840340274258392434566885042362962026874414943639728374360501985418623028382328950180617584976413204140897216955358857580377855930339679177088339039468342609473256363684392446775038301981176951903903452818863986728636734638971484068805032541839114573882559699889295515595136033852095528506721903093916005228784895267183985302911237053224328199870685517057424846366478117222136164417281006121361485342320597366512293935314909831556508448054123923973697328591536036669119595278645677012116776752189901128241788248406404994133068882070960856974997164679980087034444601999824485537201305734420520002827025008155521130701855112184193364202791793784185907138350876172371190963872449587361818798046527914472457037063645085287713836375309594141163955063929443507461182310268810293875889179938471532934424888343076184474472745497706723321181680552139918195564114753010752727283856142697247837815548852076190355167475839308346843100202429193880514189829840242270335240993578429072360744908298319598355433606989722492651050717970637224439442639176279074346474475610981749765682321145595171243023379219636380873602256215786932552381665942568964446930565536319134469379571358065894005058046532836997258558857392723821802386161735707869235155202026838846563773012935631111351229266254762556279404755814429235167672595084413737536921815195333864698694601791083832815829911226653561735671064321881753116364006577500042874234485461237608278844211861315733503437231068055747547350728729215366022145291988195542068085532512039647027446974313609565970781585967784158796271267294928549280564603730791817013385958544683193024314758836264700777605562221280715280431522044027741500462710878506184542627855917527250741376400972200153715825100152351235913855618067061822665296955670046778461980704291158767203239325561858723850558368475335205002442901352927203536566880828505261287998480672086840967965256302966998147411741497432347981780120430292539638799994828832382581876410964513113227387134099466617859261823368053645345736134494731658489176694879996226768222149392525171933322843286536050027805096181345027902506061543833298158203707438170918949943968567449812846077201651224704101166944093819805201225777909752425002848455658229421770448730579717159276553230744516238098394025690480661065659405360028405733005885415795832080270799968672662927934154889191061435167222187950884845631778577274919717931710626461294490758868267119245889385238738137297574322538572295922729888979635690406678882509007689537636568925549253906133764529308871456622602907757063554051289039146749557588956535057790322547750140723828021248610349014063885795751821889689388888445430091776663196386173439743660247965696533435150298864361276545146281929157452563819273367102836859456979075748208638354382759750843583989771149854534802019921068437768133751382385530350956338213704000361261175573415747321444743179068581194380981328255937979450590291585133861548747370960333282667714022433516197521297836080674393327820380867193620318085075367499181215635209349638271959651905479341653781838351361955220455263211452852011019065387052258899958754147079221688197808549234170726726486691903375158571378055682989718485487788784419215321160227941292045303667013961657352260899651212056125670248796575924489482152727007482095409283817131132609518749081805273724476153480003343455953029075060780475771667875664202263928069448876718705449196851003871633180766541576394725471729099421688934865428378243541115647049206801458819667170326038722659601791609238334032852150812784538545341050342974548636288268523994997280157375762578701991199965380605548091519723709562312712166814405995458746332623988652542697346765516684816593164809550961937794408363687783931607171027196991936456123259585014167339593113618163878601923825955288931862256777274465469291213340670398855819717457078305044898352136132681008537297809863713746546847956779880510070522981986681021552389480963721897859465000147680643038665088924623406205046019460753009387102682300654330756227236691549582028162993878110756787287866218122556353050142251388989461325587691609162520998721441792424884693785457877360814845050105320768101283370779553901570290248167528409401000127559440062814827240965818911019408888364563122659133610809151015106290851706580732491099419241263477050701361004129972744471232600928798482487442800190060922489550094652803415551499636391735674952202206055205072122795595859031108349970280805238304158972919907368526508921441094401853380393035729699541226256898764856771098691179264307709628205772702262007153007799075110828406290116543088314948024949987742536997567826572298966231053846392997271268382752464542684582878837133921089620108664891660742819390744763538923136714508910641552354743277023696659215830062865505925203636612471212802142659090211264314480674994016376450359896371068368092311297597885999863599885995160225516589770085015857155338210875844131673395398058705634634035244453813072961335416657862333855892502354358787515175914826939634043556984289598164916488990086808513428696532323120247991022892224130532537405495983253667035368269036747853787611624856060438258778049639749927029863123578145408655620552144580177825963074981164120627300563511062441945826632272607189133402444108256726487822598046695521352687473409399796781721037010977842773399315900826486874441848017630753105069865521140565825589766272940851894749128930284258550769623000471929023972363426150801217705681247707760437095927591626171783673096135658092619347555266992992883403545871637874175245611755291361969938993330128712420889654760002326833997734878817038799290698950636873069846395455699608276244012306242280342162560463895033139577659856984009381029402029096801224899909025040873726482837393931060179898342531232857883299912020503574555421604715239792453833709706465119548571121724425123997929421971974578694690240061555215569073117832928961393905592093127657214464580394121844532869428243368419551547710309796165093068412561082824523664748022166044584543325991957555414506197240481432155156275956440795163745956182700864164852857393921909045935531005307203808241286945787785427485082630556547417587293457542554924978053843246274032708673870905409299446358173989924062840543711394358780343093789718990419644391418141387770438763642378881586969850067934466016021038126313048479868556712471118795973049144325112482496271180578306328016088522217927597922572921820005593353343850286445326865539351989819378544401967823280045702661141786460368176169081885125891616996491173492856937621137925605605223937153196890790871967337912418335995172948339414265360554258338450604171840253672697042599422005045654641052265797209778868096197763338984312354092876716543039443120059657320937946536266727609231868571019902773294625859794210941989215443689558792889016249263589570627137534809464091626581897576610608197859473025144747261133049669961437701835376258612322824273562147932081994825624232143988811157024777299824241407333148980984253398473701076485703165781745695692603732818778375564739731416127136653927240692025419230766367320531168190805324200344349664625373955086860925661169794376146039952731767424027990241848410827647473112549964501957640448400008889361031473734475397498640984964196094503688835106142312261083244837154111545217921903799314573787841358900075022790589667123215895931882679826023763786640131676785757832208798516948786166041172395379211275248491763379944153059829971642657458712492004445587814608010449692528641039688189256349338868315853146077995812340386040656526555586002235776381197122268215476908590577246972213689419316329348517332150714021707511221793680288966850584188040679580913878423370548408031234963180415067201923626392777831187596019521635037628452420528083277552880780222589165937307697629578040218277891146529488327698088444523647030499781959721627245524311235988287451518408572312255158438840997943994995745195209635205717938886812670654586636256949004499758504985681224704015661628571908422522639134298828038629568867754753691795296967558756824251449273519676797456950320808231986092985990054130861402872529910965297626945393244774598669360670306632243020895370806900001205927652131690220032468624669298045742413731148119177302808012390124021820413796540358215266464985358153273129704106097976674864279446920966431779964172912672874967719749324516800117224188474576769238686678586383536655306901554419756818135990758402250970054964226441660008593246075218559745623823464410058958905005441370733165382998168367338097755649529757016028073716443617893428110613757777495273995243223936059269783661721969037611497603921458710299900521542228238513712896164794708533714925798778718811007928266127971135035828688210062108663558210593162149085679761765607684170293756945269353711917618765066958999682930296706238384257977761027706152273630794119395915750029199517667330090539361228467034149617303486476657854628503163659924680774795009019355603960292978823791446773375217728177365259211440229590650323607638458339846587352700451226687049636354810014554121686534144146300475485237643065502187817542958279630912320037031020548475563879370382883887124771585448708717222011262904539056329371275084275880745480242827342201883890461048690523389425214814930573466363900473492154112679574777906887958186092263410402126567069529689996619900842016132021661704811962099200374883028022635203555146803019271272775202518530852541452869293825861117873989731242618465547784635485243364112379347500720383263450158252249117153702191919227053578549824513332729996349098140031910645816749462566997390336390819587479617072997733360447184983607809502317427593229892255657144980154228459140061373518338376720373701730440457049433090553549513613794828692685546054236297400692715643374871766157113809672564696704901760763964567164925661355140826842119164769185591623458054176384850115485411242406874628550733064179294580276783123171480859532722590212555182018253052822349517064042054207422901025504561709739322263473036623120425930035178782918952906680744303270716691936732511691453531099433619801259687944767646164666835539007821029827861071498047509616797088365243801445033119016231878559775222013155430828996350700450185839108518746376254313378584839813578370873158882430156242939217243782516944205255799775253227150051337247682811824950266085846292731521530023475404044961375472284074786392986593590260736695632687208045214010590139644752411092395643817057555649475089766674480762664539081917000422401698846464854490304671333752058630235569477233456980164849687678754503998771222689768142648605230224228404413892550191341761321330231439499978188624882156604616433367747633199165173950433406295413423736944449664576420441761204334995122302109082208015893616140773802519466361049030277940869333533258825877480723304629858902766391044754851704402752804545411140934590149777209785169128031683594630062394512849171332758799331302295226095601911653520732643153751689578011847501673126158649967213835885795893255507080976190817719739868498166785727642210445383165739769222713172339340516611384622053265315752308189444265893413924521984616506107887805006984114317936565577284937924446504156564026049683202249960225303958173344732411577162846241227608770368213030898275860103991003922813061288780752696650813602599057800829052660130250315045206165413192499243698358216406681552881051082348087493336205690801240794517462948368533277172271594973101855636643088424095169212762169949762806487473847943451015927004401416857306498886763392286043576541852325838571283851466569126562319730412709194536532520255786694338360924563763541690538676639843177291141455717668116447907111738620949100156301207770698031298774783895366710766567690032362944935242088456769959625912126610586365508679932117433521631948886033485891328275735881284735083365687050762237832663914828801882847438392610029444885993072978644886808451615688065219052126317001407822832279163837763989363932566932259900632904448910939094017004515095637336219026627070569282437917842080320059659220955530503982563594968303381819630555500799598266176158682163757665735627534226115559098601476846843591827116207168162790719987328039329547316370247662085199542340024960381527032182378240635119182056066185054529727448613148163253643946761593316124680542890230925246803641710541301832056083735708972350128376987422826616493728279455927357831910184212710111962170477248914716448940312299530669691238879109356664612196538831415762039769253714484850681876785764694555085729500680014498632269087498710221739502130274294792423307613758632689486002603710727783547533931542719696867104011499321555889683331621565361631320969513943078973013076236039854478376653506980426314243395474320033561015339326546173310109747107762260843414086379754005983847388063116684183184786075401585080226510492969563935751930362247275406577084862668801604901056491213748841769048345296104333801915068064602039188878054053620700116659466960600756084128392300977516605809542429864761137967915648690606161483413607023847797737397354949591691994538578524856797329024196996862295812691308934358588246405219232693302575132865145472854466925362927285905042703871183520672056954524726454059698115652252714215651378583384783300038027943406929548600224399297131391744169499424469007004500834546322831293833321406155215710514278966239841562143825296883752228853970382115862439054698912990592050416548252435987764652481580141581960213171051615992090747628196545961674162158573568581554929358685451172088038275358657087542579769437936819919093855539895114244192599352316258259253652839389250346918519336213778942245250137002326173443485117608377839762400877341591898098793756526563669838775246864379926667658461920681989139653769064778076920061147526239905160884258252776016656573495859648736956098330433794340320310170849833695225271630214150928486080941095041739448645603750816049950010422351053904460690608556229549898435682197257588212970429014342729273923668070385913685312539064200450389111744889414077345439936004280832577898933774136116798583147000787823698661552643342279227229595583134562514787498399110814772463458463001783243667445425528021214466644051893669156767530472908413140102661156998087842124502022510837043588055812439824706047369572204357758304191838471741940085210788996907619817841864054009293669519613047489798383166995126512582715707046558155075853118666442391105772111157561158828635445141981828477819102129618532302546910507893462620145076593799575144017214870347378856706219638260729489200695296825520348290674127396026027581491139290794218256712147845755927433063644124235212632587345857219760541271808669732070792335022842031626489422628926068301004753750675199418000149036431001407428758322004475246650809349100795262223822391255112530595622790048005616938029711987257172704663053326948729802277025190987229460037534950459626107915684612426246128047745714911468019314285434246145761587668397021853601892380331197873094849971972020246606281305346338383991799301825083522009937756162269327689541981802891911381238872334953263985132506932244933628115801566143444447960588741927078537005971331904932551379613348165664781323959802938844020329748125433567690322294493064045719824392688910617277327417872802092046934418880856621952069625279288402997759500269512078654870002542279716184515884211137701127765470081886903993083284476340259402831932170163980135476922811604452841744420096719544351010146127395886724515840810274967717576173160731156484632428213079922304646625904573063723179546018667852157733106286562116620438709951026543105677485435263758921835536313194398959888315961594664506047117782891287407192561194272505071162528573123406295953957268339074440958388641359434011824845628230493976922057995095751666071177707953828364824172137916403565827386087965536216096165642364685901133137279957548005488686542572850252642150636692798143438340486089789939037852310969532822152394708000227890956027489818464555172647171792043702322857649580233617104991124500825028241190551547499969299565782119236983073888981947606334278645738329047464752605054819868221931145690981872994620582458741269022518572924446051871678490614703771881635140819244148353084609329404173686201485350043754338815351513319062994122480424597780482264796350931132305560952892806317474413035280980616266714051466085565795475055465941072348418628281504072386006611101668122823507932189963719653594668665938493856158267101648057390918599072919068451313830070812864442204341053550845737227777933526267086095023793501345934220044192010777300742503538139730380603947795271375989008242340571366919122130607700579679651124471686560954880844921498654302752878997014107385486448908326528571034759675766466826369968463509387738641040790324710781893072373888179303622525251368556176984950808806285551735136248651769302798728723024021062086786360820376804643619454127738346703650271041312371784498283534060564566804787540255765958534420682860572442398232209902685202986521613835788990777373519840272856440219961892016694394616664356604769158593947527279761654135639241624480259026248934548144760629830493824469719657387452220652028901295395800934966148592599559875108743654996683721056078002483780078461192896936923823396093979916270580500399460467328160321068463824631063849746326895287636350725798433160979892040936357009243593098061554680071016247665207843646783194097792265066999296836554322404415837593637124763358336149986509141655173235300428301277386554460763184358923061032747626295912108869410544987639013255367737371942929464157798355339255663749768637215185189132027339112201673004759972585707950981236548007655657795752220191398042012695137501132855081182338236931209942123077698527287831021911202143746284444924457203645513374610683245794160154597418880676710086729477121034714283632834827075947393117552762506455368108630290229726002461308698271314427265258062212777918280048399869374172655023710338885347984684916888117151494027312210283034921603532400584573854262975671332071280799094929269908576982622327136382230719648957657465013455732970877157876750995216356064111336586689188729073484215540898869033405777248925471447719538103521028188573982578818441339400977281649390714505125773921260826756697050775987333088070593821695546011876585368205142413716197672332141814988592988196197402177133217970867119919426805721019552705665473285033405786956406371017566324924620264066622904183257326586353895037137895613671067962059256578569672182072714242280138042645095347891851352589651347630255391029692053441365708932159019118101933230393658342764880738954721086535875295396704028250090154154374738851015217693685386200726406753570742441974465802192997502736406562615782248107067387316664334275914612122229377523483522706782516653061820488823551726121566844027023883788378145006375774589659298889966750192717190889234966059322420470858477179806473421273457478145036695100979092062444761962608437536200041482938889236989140081463112221174948723834618079259455746109702362513052859225622721983044108938629127350703280517275483983007815325690660342136573015535264583934794864365941083849083440967932641364370627671897476140722064990543833101944645272689682008154197475345904610285769229949164786174149242843961268198165839326918889505769152746161215960794248896288986376600134273934836933371346947579377948357944433467450027526736620371525650600622626191001201091726652612416254463948173964253785145619837640107847317405745824697761295406220741793151162935271513399010012026464829461538897307669975518199708525642128734591168100744655009405680500191999312517953239687722281562464729706991602433875059265692722669819604186039110152306901770406015858254993480741609290174970321515532862372726794411517194202999527357557509101485198385311089384475027476787716292437805871951044447056546333255762953876818309283847829417079548091203912084900026807973517145361040395055597143921738559559072238999022613300243521813199542505690643893465137613394933331208634781996651089916906342439262668454157028463553583278453394916543932460568625984675332474495180293328151872321867179799022696530043091609391906370603608580103125474651570996932072145069416963487772447938251788933857668685417996972673863354957339541281926358659559796271555434640200799549162603743186995653914627042815296089916478759875083071590643206859999074820927863943225193387448490642624794980537446165451820633565761620383248791550189154550184407849719171279553998183992423796565607439977223649018784363886192413975992510051622199561526825650930240716146657167784061600296789945732436325227660154645819381851045154805084472091117776464721934299638922266344717169474735284629364057183415344979016869150467084136695769537101927523358114142047438574140237248493826702227961960532305944958264522105484600588077011308156125295931011424419858991301826519196479872214611461890746945164262117022850896009334032641212501304396513419500422932143679485894987329711680832535455050668447096777637166944193407741089379635392832554345022496343574867925765553454708806592593987132133023093890529363074404171884978902332626450178034174210839479695882895457462758417586001397374857119250756345122966181444732521417259761685550166098961910044211983033525334410322925270214812552308682708025031265535548362357741471767057573196861785180550426182149264052929665060489444216294791622227373705426136365621539622117967974388898213055976035525616910061034893713788769833984921485319976499124296087249823257771263180729517903191130544308286678841125573775581369533042182548708304741721318363647896385329004638755643859587162182085072806943756984999841126510658142074908893655427574353827413543494367991546018313296577485940642531036796647938899921351303430340820358276215534655472838682149494239505139668493530688481326680173193844665120145383476769738276518145937312174087986967570685526992979009387234467946571950439423846827485109827820870936584406489205169246690708767496327242452258097209506931244330223814230635845105954582406813025741139853673930065081054865352499131314609252593658936478775492125279044146013066320686335999524495147099366371023475282695813752189765681375780576360338589296450196515571783927702064028381865012197037464071063956181692783414687626434615680336212502325409794857628468629706466439853275398099206459507308972969765350921551635299648556176243458103727278824476213099398937491177362712168042609281714866231371805614926467399129894336339214944427439033094540454430484303124836386919900240238588330708628491597777186090565543284789965439494264305757308098629114762937651834185550976319220068655910610324284115919416480418079778294974634609528353092626017215134638228914992292267789572097203243014677854462099407722977814629290647525432081100749561320685482797693882754859156198457742038332315701581671539334860876738839201711868691876510504874216530559152302672363721559824304482915339249291491356497315774002662696578268390541616139469151527265332438744287593088557204080306614769558545289189652010064042194123250478209968485283356650063942922412219108191165010794616788668026331640057505780681018139406782257248534755933406900021865166826927638072646946963961176958473220088401489385032747979696764287463291300361711404460486820601403162658218887062495940455435335565576760327731862407586883460213063189804832376468623500443906674609194095458504037230726700532111541549268126004796222223677267272741546181981339923865237136772276293273958288513130347747786393394861163241079039858897520442533400871054365933361626953177314853274187035756645171283006541093344019753800567169270507445451941012695994514496948991088360034908906699534270164385999448614216817621830106258083386884240916269037468212922751081990149190537643534652132533819081452530756928606190626045480148900681897657148548699412002320070267517538360675142478937269790986367167539158140784186224053330594289315874808213670829524829634080572839852132645916148209145290281284861200774924507965573450255724730620731642025381660312003662179365671017489914395370924656678476414352905678510787693412575312923391062480133037556060631148513524559582586755053693416135971073057477452726183487542797857946193201873423385154496773253132958931931195999502411020811733435444420345016544372038335471460095345741628675187590910208487976564381029122933097988488422624911133819361781076619665950084300859209886103664703922683057921443077032956731476268746487318244527344111434024307047531555004146726337109907461788767599171774030783423250266988572068991899153458253067183908250801929066793156902497685404818216831163205271516734675570411129743097183430720836783277597865515427982113275513528330942753968837855352746243960712302927761067642134336236859254064015922006942410466057052079961798068988964488690160645776152903791814636305893272925086741638379241540345847706607108530096145119316806797472541294680131527673413420527657467927015957308024445517932390810575836250939169799310608014383056311124410893979389856700472673978868296098807510485520195337436303890162085992062728417224547569767721507489208227300146400469903209123362439920545999257518676441127393044552738765760631276399657897904565157454143943054941384673105017368227737087145682792169880510386080569854770901611270599567297571517735499917783219149857600114915802095171487076565718789124750723256348699738013044012146564810518389215486306687892543941683583123940201760494996930242319493035549492232189312836907950263544028580066648669336718079112616665418004796994353215836242249807067389674978676519338343780469363666883787170802724426952438705964356601266997639094835930905019177675650680090014620661682431456102081766451888082269941038168986090478292870892455909257920635251834576299037133039502233385285396624256361691036939479434500534008882424693415127439909072380568818694420575588106025987326209091086952633908054444519148170234475000644788078933248330617115705383017698945586655776874505378291169012328257366077740723697861157665758986083775693527081303454227180861314529538133130879503089772343843277808199118591199190665074483661653816317609965459992019723041923932968191820953130862484293557859213707246280656987479873837613952066167354701140949140692116651373295151311229044314818747602054778044651175825431360385539312158413284496644554012765068617909975229419909965884677811942667329933169329546532634741008364649037420129673510430389329232146091481844371255404741302092893833798569828568158295632323267689613912749991878406548147134378140203344303668193227341518028828532040923532744993604930453876558194810733814498193743097534566216354732159740489554414582006595450915093075144806926874336053876554396142696459441703387890926532900660533435021082806565635079830319942577807730442130869550439122614598569010539998750273989124695519558223884737601336061925308110971942022577805832519390273406358358884442820698942414209146089573014427732663008778958808926299992568631572511546731000339877570648915360983858280045166509281333411957045309332438106576369956951282049825699912886576083141750921563297167797412703044482525886929124608011898895297667059311231317872654829086706451183495338091800855282100289444941659022393758004376375211691583321297679816540931759609459310865070175666167583195731513463372020710919025015562119674613278673323710408329964216048740536311683874921212940336992121505661355115866893771794239674159365023172500704140478206490878157938288981616761324558592990493461529409775739266872985951088251796005037210189091601687809752890978425480281843169198371058983954842586534393441269979583963768121199966624131915417403594804214262438908689561485241361031478229477264038955598236997665654820140511690614058612847242039376418636387321892139058349412932858171869945189531209367075559684265341849184087407932485938438345455977043771455486719772677856060379931318864055393938748779495777034611831945215112382365657127650879316170187292023659228849309738281775987782730921226179948866839865071729137510055179958074494181318475544667621792908101908286080823689826620045357408122696677857470031192672183260439014101858863533502041356229143806922688625967506454258042964494514082598358044194872893579978034946800347982286790121579930732008697171548874569214643349590005338389210522152824057576991900084995463781755235368221954720980843940783373973069068519891689291333334558639877061285162062992256259287919752380429235648733266522888115488088568944919556464266439366954659090848251442362527355853850278540334332714914253213474280023161551573017369058159519471784756346315344544413740468200915097066370388912960412774130743443365922595694565421670488805326288281037509819318971407380342834217064463989835214944440712106975734794982197983001222300776391978607857398815348467161816973018388805029645567323363715942122895595146103486769194579167540942859638431629857468316729843280331530775747834382279615727521323707976731607597808595141262558223717385077310954051098044634535431557008423072810177465037536658934940474088590117291833900192253617284680737096531457421994663827766418694889780199068885638661532116279661370867161536944511344964551057228316609894448017301962107549512344259986329710733874188181546833019785090240663356888800783333179817586291303109656469654703521499242857395926216886861466431363710625098312653008313427562686947200340158357147257117921759293268407203807564574961741792806040487702134471793085339589077564755283348671711160181895252155806426531307296274183666367349961071539387811175021457510451291583560982973488603203116718538736572465439710225853907435714162083743478333372998801222008338252979055751089873627556753430092897958700007533927464469384582566566409721093587056137171809724459440936078236871981606850077288070588855683874807896893302859068441923446903017415731668600688756097567946383557024063250849838444032879513434531989283395556776888000949408038006307278585813715635260442056020538293635322510156592711966642264210048177226758592475485234814533521869650920000582737872071191796564054338508191207774671366097160024826491772603517912192892680675915659836042069554930307910685486259591595523802025263776478215361519949758523546060828465570917580367324542115302724316374927157095823295983936340746024944166818237021858025220710761010568508363156350439451146971381954939284455458642147644913358118310078030270749210783815109880998689105509668093945999140201428433953272429058022149378846576610894583914848643471528826269225281887178409342063730839103051167332573530126440115949269155036857757183849889063096834346805571575183370149406498741274588824249205098891746387360082226355579938049680100413490539594434899162616915343206475970839396666042171217205954150976309478034137624696243868452840880092814821602984984855783804686585603894979398674339651268712324354884609761584197253818958770847943662183864663772628683796122794425518223924210673697566695828041544410769676202542074104614087531268654711200512675427913937712308589592834920976954384042245505903042425573487396909119751242093956558427671698533792599113237157564016044663341368597421480956578797468074709092250954230482920395169215994722256793864667896000693830939877579877389869040294793798891563306376113383387153881693130863337292269210448854876701938470570543515191124403413150410649700677544451884823549748019687294790418267827111375600152533457097212340767333703512911022725293525607747207674142788397831287033039132081803401038898495495023331540964889858966540310932872779522146683304460311176571598787262956246444884832405399299096075265084665442075992966859682997985603089863254520161660979110289978594111295069234685051558967027844818529247182162591168190121988861213562472430147522721311830226812720054245876473923188876985851891632174660420674607464538780852111286120886382330876526450197715347806219240746333461490729308452623164494412396776348411860580356961849660853273295766217810642480078533871666102579980979297004521485976043291695823521599182791635312734685154964692801257848982457902406341582345919387341636968600658855455222661867849365031973151949546560879697109781630366882377198612432581186893449732782554069693268280913537500474916703177566429581260577170116307674230488781878255823401531756469646720357224669981037621709398253658683939860899182203134665346479012097111686902715284066522129425132168123317049928897213032502568790307293621829538101124366877282691077088550415447693586377777064315090744904911348444172298753390018770742896609630426774229199348393860767612801673280515079328044525014320300451437305864082277287312078176514950388352591979818765066078139322495647073854718870073086472498710254325456951572365415523997980323187703923186886012085644051861242865526557669053374497612693886057078338313897861391778707409524042071252373254863239648863304374785512678284920772574467758844462650120481844851344200188925500438878927360649945365219358809911570527046451765270502592936595480354619532230385262651058730305716516615824015156622765428377820436937522974031552814755924922953671834244852545858346677001742741095156482513993961740892371702242386683339334236749667155137066501304373798020545229379507266310357721399752992514557081175753748415512397255666885454567252113152332778243222644482194561654115338685178307001930984378863853229301949120788092181256408656312134703226494100894487126042241135629569637877699795909971053224799698932120403128019622540973335545526196244933060778948135017997047768688904850961081277149860299999386957685282934937176303556356318015451547089029488481457728361405312218379830749648016208341859588484405305594379066160010478734607060849124763384075993675578830717901917666146278162512478953238878615567698626770692164830577957752860780934714928939701125041799988940163627891109439520880290170599371388308735007633988334303131228980116958289868195500090112867276947720707498691690478178160251377260874038613210590493621592974594009003126268584317699900554846317881626768901501868477639325809337605875301450888840624834817496939559499862215342891622370721301656062925674710947487299907023010492089161905581852647305325738379611202112035656330228527868980116581809631494900282953460822976686941049728286404294590954792450633533045740284613852249957647093799106355788814806096804799489627136666814689144260902866840932898846296559111079112601777158925049381501614825472110731511908153135127925382226574701144775303968200071131229445574648530632533967156165575917658216792491177247392454592497976376758224527251199257713768460090615979051537795722996257326108808033135233298394611137916716855291897514138951956001185044024147754681693722975330107708719573533544413489568220220159766532227250196813456159557978295746952417921380921033635386314917010778614135461309745773397060120544924727049391466491424349818205321410232969847258324149857844020678752687110363732864250052095025433918995936490280338835402939443265871450320046669954753724324441210964022773360626423916142995053400677799925542565033510220678370736343515915945632847401911912555193819832842470944891439839305927687184114951800267855551268461745190711599023076243114375666086330726380190990050659176451720724522004499826469032878193180845184854478153561934742225118520008125595553272858727585703923526046856592764412530710576116574406753619271811324778224320547190918830135116363244347339110026322585994274063943125338227412674053605505242866027406971629919592192619878482546194717301226202363753243552902848678402163817383508640172439989964118652850973801742039626512307640447355696097761435464092466020927001383519071590654122287551715669585249060132348283852402283734468304216610856653309020038189773433927555524446299906473569975557659465876454885103458022069968161580759045137591623346200137802580588567561849759671932165446941714461715618346622060445989522980947293216822627737025297579505764758821242899643134951381439455697004976378256065164228907068751810150553377324675907317570052697525452730297623401639428680102479099899775677117216832587223418832784350367393887491662596999033729867636626352919237722409401615259849677602832154983689784955808234562920974035495586138142472993607266693380752989947056953601809671446483790596212188972219600902774687504449083035377847293017602912307175422994351358915887498063776414588771688959274142491311586584553692684571758857585836856159538114295956611065536234124872546406965000009529908071701109857715744868300813797688567992248530036344091295889833311164039410609085007650040257631651011476724409935571684701222948717893890614095686165067525929435030078375020065066210225692623825402113897929493573557363702721451367358762331000892524914756437051129949711688225079369666481709367858391731147699509112440896536507149131753060539582516919024340493249549919794785111587837182665709845604756948836868641436786640834432165665601623155616865023937334899063602442104676466121412213725691905215674680977958792845887663493054617274317322083239648081269891889521963273697403363062743537405917409819656982799962734212959363251618200737745696758830131130204537911681479778086469217129785952268088790689621977057850311731022684072665189548959001064668445191183482043821036608121390966967684447753666266322011375452218679923824104744768928064445386940876672888681186786205398851224729674450862388083165772878678252564748603084075920110136051087173901505254695524316467515311575327791581334911244549548433603394541288706664403838329288133894051418579410457203999165116803292625051877771411280120037618361563385153354639544515066692426631040754593695098227619808710208199121596772066454897120875372215881339113145609117873040587830860443418903727965150466009659174997402575274268575829738558662280987780153962377075594937560594202371415219861584425429089861179656036909290520952294009366762194542357739457980986910816144228975523251508020524581263491370673237990811905339406822004262960268889156312128526297903300444070770341737739136804445219673219430284744714701194613925560290354137349988606933216218662980065472714241174044467779365866637893959264840007734301493351637529952074324604263862397047254451693227020904959951127246281184339823452938454733023491815606968866190740695591738772828926767609259172579526634341525442815030382053345470377857488466942914160149298643540617809977745931741362016825940731210840408917502764259451036127201742396088685244788774372647003091663401873411386395140493396314322154376170644745381446996383357516121436260011412360106073289244009994979464276191848153252736131772867036814529562111852433400675790728871422532411617901952707955817210673601033471062235140213534283322417877518167955960222469257625470943778575731863515236344881817620039801342926017809706262670520690719866965411997593945548486957253291811140554860685393883545803138672180389434609408912891461410516872853348406226846451149822102577603778900937526783515039215596224135822859532356617594470253069021209831422652313591310495337138753441082210996948044539067096925782737857944103101361456818562696497127753204674351248996479817220865344500554137475238086215004441659238952768839830301201304378440807374523461457927717863402912237283806642239804296251141637944534996076469277473631210276895108639493205445307648844252982366793593432876920374643222944770038969260940026935050328402487432171127312450999420469903633902178915048419906309821859922437097238929519606802351988522405417850297478248012962594753024749699039291679977093962545347414816695069432391384319874161526240454836710128101486620596124688393604725334621996764592749925613315687542759827261863427371864607231284078990748702361287077403733040852833010515874343995972669801987249236538378724053004409674803665512530851666160738569964195056915388755181951980434762703438484380721851232385343660710590669659658869481863523622106450974148255756582982992726867283883849908079721097084405135993257897783427485120423592220332325003501023064633574603324718457433192698074247969931888675425111141277884853792126658399078693231322095966499998904889046101959296365280567719901685470920560796595076663389516454103116718050962030156361869016736363095083777510691089213799955984938164852130251759604435762153203746140816334540357788225575135198275776392601449572240027965620998305794465894325141630012266432455700513575557398776906210634210108417377588945563183349504667122048559250548613493512197703204032733183187501513392049196453868951959981448609282847290064124185325176347721325452358853520438104764546568718994321980481586241895621029076179100650066278059667406184967737287643206945812145730596382229615851827045005561179286942766000786111755083515807098281031183210578915445939099672320422831439153788315114884577532828919983687368531904712214061753736488179129147058436470010089381795698167437490535333461742676121984911080735885543968513716662350964262216765797248248505415104789881974500488775973438239263226157920719767517747567724242044196989287950674846989557451036218468996159052269121583793410822783569182166119193405947574867780283876717214650003872386480494131057447569014110551320199487115370810825575389551198265596208202223336486784903020657350436590663724442387634377378054003456368731309944927032367358471497663928892844493900138247599722379416831597079703051679462119526069181215032851977140128376391804959662570277683070649243248505955734965003898304674401667860264475072294674102579810504983972486441727561063434281511795787868071376509176560733744354896917169704070519007509379605363602065488083608446997812787940077153741668950095026734163236477069849493399342992976302156488297506847267845064876805719557039361874954967925215765538328319660179211544186125181814738374079679138237392353015732392293122139530185831793794604559509393186117448987717823189217049698153887022202449262868237338581689749089671285221301901526241611077912200585236007729948310088936909166161521579964017000873760506844878999886665036508213241884686684448689965961906624743480620912800545498334346337862549774775036969876833265804327710870083811868562866022864935460251612778923589052215280596184489221835880902581810048967110992250496747123806568556975500852079776983442894971769686972675372544092769995198708247350745401480605896207603440876601804207465727371152853390292872919364658574931045676259207424775794922758194753113282758668451729621807877663105866559857109231881301784622697045398034876553550089258833077477571379736286182009097531209321076725052598768746095307077966761126509157749704156680096389911137578546519032698702595568970475509964435812935579989981243363293364237176950155588522944965120783340702451889308819399733898809755893111437952359776251381831036143262924780489839144422744899503690001096554572325158840186968055247706253773613648415915032691948726048400873096830737156195390474922321453108468725069184687936695828510693444109985388117001137343569791352589529434281258313035161292600556392205462991753640133066558341966960943537457961151189550391868497646409451778863773072390032109765073511582211595272884090088421575674387281242528942896580163863788875011098773082599270371516384597780434839091432675096941112147484854710103882815609284810837301853342222496275970521627270278544542863572878660030560211307232789403119234271287835463103406007064093710274262562318624977658104849131654328697321933018025018003984884123695231800907869635003200429932355109424972061815092135601908806460138679082968742393508538274709117873126877981785806594742766287960193335741530244103973669305311936175357502473992438155681440124474849533687805850820399588472358269204254276030366825034228999745816609042810920233792973334865151417316548702364202062578072702710123904179142724173828641984080812839757641980535866011002032177503665229082788187886052720349890465665410361695042274005370997579802255506575479093089962974796131463733852885875847610656835627929885237292827804627503802541550888959143244332749832202178334069767296710397545682411520474813394856769037215011672123142504040368643863051769954031481763285058584647216341421187186410759075160788715714365845441424647503071004800610282478996805513382287231427735744924848328965693967369800474473978546520375551116184570891133416903109158397896666312288736849762766341881041067261025942908498125626746276565565942187573667615103291950488754974867055437574349527431094477217146976394868580622208458718296478212428528781613769075556799490922556322008620484987557751289795880802382210135347273690713039251319175506470876427145176805605180604982603586965689383613280195368329325602756063860123207155528275146844083372182865808796851111730983902477190649866398077800058085498493138476194830645026519744146871509905900472952790812282709505660545171964117346381420973668681961497843412585046542997410208189463611906459238363678650137919690652261509177831006333679605163429376954252061144517180960725548967945215727673942056285894551595867344475332698451704244920429614490989256551560633564965712442424440807328641050492367957240858264963105562210939618196626063878150953049591096566248987820201648503518908670415591949582875491229881533644299728152747941360107767630271008632608002111220510407495420241914200982360218404366609231474505861124344188262622320672242938587510430765930552971273020645626458492464875697096250440874187603095268399300625246622153361571071598683571006126051294903080186478677708849013493972094268235061306500072285218739541340055095256886400140576969000730261317129232092142841143753926744183184713913880125390592260764018862033378900354443246708167636972908260608882263249869256758318630821367672525214152760365052298491634176113943975822027176047940787057206423650234899906657971572486484858362340759017259927826643220023641227433786280870837199815810324841935367132348642509270091523649731172572107957674079333454851380119981157691894337382334659171391292292783515187544210719951702587526594444580530598125613229234406540479830294811664608962257750319590582572719751931197647624731443772832317578163255410099973806762354227270390457113365141717322004256090693847614139208791810288742682467500093103861198151939567846405681903573601955726562417968398730618737475805534543542784436774904047417629402629592012831075318169010553815755082732970851718812386040559408332507274797166669686188763328668947210845382969884220335038346130515276175786568933698715158768795246884275727132991896920249340310448543351909584307439464185064495160495582148254843651213876097831299303967894061991886936377202007211984192916998657824273827066347542354437294104140588676490908599975376801652079895053504707613744402165070710981096381308734758762930600554774503265053497971753305517423203560004864377720486680504963581238829712056413357140601634320337266341904755907962320066854655164681768543043310629428296354845043258778123565766252697627473416556933208243237910319749590851266269545348857069620430821499713006368007745568207079322554135858063020978816938360690602371459606861515387558286491842825017791704532411922918347640118746281447943274713077960919203690896382148663492062309791451446932559012424777355701566680365588964572170199803875241161517216220347219047091708902386736338922627500334490605718650556031281949901026058447651810212777342436924799712360342157608370538949050692278147652229610493684541376165268548623387400791157631569133910852367304752483274982898907597796988762053863879251272170104705321213072198838018085866176772067366350661533747822681034919912693227262300072671352151093722532209265085547676199147718285743320679770005246643587530977566057364702973099413341197625471284314806023202175218495840993946243806373426346819173640008830624071586846494473247796940294333111993170841223747864917823050599536861803169737660774297705777213540369555527966636739495422097628872356807963775393788986563276161053537879069470782960109713356436962623606132658388616500409754652273409432485849768519779696291276675941307371526468719582181326090448042557043991186934113890748618579541259029036675236120404454540730150110127073589457772609279154191597063285656156592558892759149525382413326213366305322542885794816071712005349104636387132593518333556826457818728914098142039585395870799472204625753783160609861589913053661860103992506050781282176434213562821354162995863062784409874109926387696608632020554250398512652260571265274313026855629831420356545734766092367977584711532474431482240223057134287072987198228072603035714448460047811037338913322474387725290712315385451617385717472782317094144786003288664351181665198937669187141857422025492705480040372229162657335057851347783168275409071706541135420420639597028657172164169398844480211065080514351639120631030365680473408832306840707121151344542228085739109672928704437745167779102344876405434427227344095361536811269084680800137749377151624245796821224906292467237578720152596125083625213000589880990141057669668287518004490862529398731579812770435698677649368155656510407121881089500330434987287083928842506490474699941423025294030373794157822012433320429852109894006717930158664125269363493636300988705658000109467445358852853100581774976204412272787717049847524183335941333826201776675732222180322739748411344892244511171665271173947587670582263411387536812199900996986058576656495630044300968065687224215212692257154621068588018062987500847760805228958475087881585275248710325082509524269259561150161191467459107636904137281509211803215395739589261819992536645219521269225438268446145939746554097323387311978501706678222273982896463405839534690872571984006430841265228787158903360440891676386731572078475427338665355504924395339529664329216980357740794758341198392760124547811404609190856444699606272954608781782482946820250817033572518459194724146948852595537037500600314066982645247190024419082615690185910679914073256329775656779994212828822081817951563858852629154714372402669290541123269101068838267408255271915052274660519233799940110197710816120137875844502882071733085130536416741529101014103323158004579086924322662234187564653716102017768331147869451391992108360896608581004287079148879700178981590785535822858129998738496931330854479890930021446142857230431031699185210926974102208777722739378208893690835413806881617197848333169024836041108171120410211040203298256455687295312271687095832159516696485843511617656463896579367564214443598300690967796389370971972808848698808057721889180296601182416752631684211593719174282733269256882349582564441380786710457153624733157908836681037702253637456364041153775769323770880654183719696975654036211757465556563867628883049686478111089332989315058070696786703334928017425849003838527541324311463926018530160236858243270227828016809610453692385696737360280133182996936853493749917884725194523161315139076569887582436959501898817794722766661826360267891957982904870324745213260442300800480145338033628104484697385287530144604288763133932481942401450592332163978477937177762718896682422424389400044221021828938919344472545806163632272692094539161184983350712352462452382757449007680919416205244021086860091847684036558788923316034444322321643403836192331542963075097049686758910891680515810203983154379127312043780415962574151391885253341009470230720577121668837741172492554620887735128534744938627632719808413314368209882236011147391116375100368338294248761638990425705938298474827765175103530359801140411638588475991763732274504598612775808137699435431654956201325136080343563435551466946552629178578213880904818528590364443261815484202151105927814481337486957638433538410619423875086373230652145951242600465293314058747409082323218686401323986179543783635469147163387477091537059279721135174728592688268079223636941808234135049336481032403144916944262913581584605342127298308404862025217628998719908271968157968118764803158991477333111762236036118588185237537367906929617330707757346554634812662965051591831725872001454663933187165348507990251793060688787991823839464921627604412966105796404995331318273413860636598847006134542995093707160778516096077965670776248083410798401175686272621286850217964617098549117437729984671554089955731899355435758879816400906503125044677880804884628378306097801298506854244680543701663097595294199476871089997033216066550052133108279820159488824827914462188195784434965254828494738644431535403717880130048660015322556931243942100672410360095834866786743042550637238961075721738338207019683619857407480887722741439640937578051572272110123978010058752886361271286826381673338776008936332377278387953983288192762101860702901210358002018864888963959681824527597458631757378232388945826334107387416936147773804796121179379051011370248369250606115748782942765474758646937886415697532722208297977315912167394256246251536181062127533227676896335976608346817127045107628632800667614343695276402686074996210200045844238618313213616424547740724511349184981926884533182406163422869192430554047024515996827595378640424298949053760741988615750285122606368380638709757871438113742745629642072256290190406352533727160976304740597218821905409142752209612413326233490883165114090841571532955423447192815574953818626909485556654285628696386733412053486814071831142217694473505464047292126046000637185248104508922342742567595277628513523178963766829882595134967662700215193836670381946979331152755177711834751443104791215058427232811573339238024750363210593808417882155262618270159336609901756062531754307738992543124553720526407445521868561966830546033529996708529812334155633872735023473331121814854079749400635055984233783013333086913854225432227018959963681782748488463908137503162437519384932715718600454477776375325836104021907360652109018276114126647483601073346630816810852929073706643429451953301738270922004703815377917421244726577682532054996536317504778277774496548538582600844112032178269132306669039854795358337227529795058344598301297533782936056083173685890398373003733937836482251757844076048032977794540856355186056281056476988241492121304847987209252603374482188717355851586331373315735874733699544511931599705539477423319827010956916112326354968113334309091297009454929546925011818359002015717875146884256368250183318760526009210226039701111049032282353437525122662925409273314975229001532021315173290464662049937191838337231346274319809106363353374434055497508100822749447206378960377282614480157067821828117394470278058767738903427569384036386373139513913031908592384861221136951272714253942780216134867182838562477959222085489265365192977043067353006260089586033942525773055184812615113212442480191304031182216431462262100603743319095905038168572043331089195334234873677439919645452150203949030784612683383988861220539295013618623136691739615362437756909592844193892543540984341306873957817275709056972687816816438790560742038355887962001892390146832057704854418366835739297345558708748817276580806671032516140905651725496061447619532419134007523734903602321563297195144274851726348820642183343436185267920240558811330259170011489059239402858935354078708322361643514530313475287887042602000167192337204949715551943681965639516972390380225493364411892640898271990603599407424838029947598817558324180391141534715259116987056784340509893092086458799278474167210301265000195026211501011036030419972600541039570068565059317428117403925670891548318508567959714473338003469396766441420991060855047239913111716698076410685021025903546240751650964076341270991975310487890356376694945245377054698173326081178334411872372710497876971079137568826068413715308387306990628594016675668051315430659180571886365679248384793364871961125814029397331871386025876690411815429749562053722767922057507517812979468835544092327581872175055670911533347472028501312441888964685857029982359492664727339951948231059758839115080842964429116162139352673761207977772018851072943501804325025022591740800946043400377752756760789908242232743156344027935961556611779156190987214730340706400183634510128992483806996903502140820598605151487823122448017239724981472193151236189982996076224066975784720601159666799759067869052646417795393346044966010774229531124762244641796772970581991659230928946440053436924427571893277306788103588534897239776952652063156060732552749193095167710511718768110505780115737539042147466352412145215033269947062124915716233777822712172760810149853273190345560554808024822335285679397190555462876142850923821404164832915829101261382871787282266364195474852843372846497938351691158894777326141048538165465800439116811360876032823867990049628352619817910806695945408379515899987359097889053575541785714189143182685966631988559518109967680066273613036368448498785345848316199270874954507271886534252546691888899502656274075204587755849320603165619944162202728022761377162273181163968098837914884190725169388288941352434438503249406314903376798975450577038248579176595326412244564876600581443761399450064397838598332699561883995242291157759609213978090440524638614800493680446232270705429063503818874346611017190257573175787531866651053564573483120878026850221633599088875908173533624491562895901242566872136532011836684226413794377382856743811881276203909088083141956810368729251635420685122226520457262546459195515150068411549910195689861017854001743113916363257640164407270715327314220293776429933822755051005500603696796319211845859849784239837285478887258310304459740605321588303355776715505498624392303534878548113456446278349946518939536053586651230481980621690178451229205355325631439585039164512404747231826500307186691031315542499245797710075574400763371406511737674841894607715070636132582110045432209415352494665365362961316632507671723389125686434432474942695033983894663469553532262171807154267474037921378872780542100287201113239703108410306402490620954562034040196961719903230118684805141738844987756121714650989498401427481239711810809543076974308244096043757285928393927049750929623162855419366454801213215403044275111611633172734801805058820169083333967259678428999004101810942515092576715807868895403969962471818106375949613445714745371820120193311877512841924067816338268745602482271752692087636063937405221009205133765045945783798537271863029156446301607289231289282813869883236831109012412493861080970306993990588373565375438975888701238632406496913594400338543042331098904549760765193634041500167246390989916855500360853100430013612826204379548479801599828860629098401616269692253148898844678859120006303308148163175400888042160270059037882025093185685743719779727730911756330078739346152463458888773709054591318382284381196010773159625788663458582784045821769337309863620261483350470001542032777568556696464827553886130099128132201859423513470182885295188514168962655666360795916594183900951752636292356931139791544928303544161126225250017486827289182307979110052364289683403641926693708644986838848574315259248527866112160183566325525075118420376781635563957442555016174755257310779715592971989659650612895257941305166849780289883412175160825615520065327495560351715089271251405036671640281428771868718268873987529307008076836756057020778450836946239810493750074951304095817512291457332387351399802461214274854805898647199884646828231213724185036596359396494785945513477048528071114316340357321349387787229005525293313268713364520834901560285191148981454064758675387768225083902487573020016629195773778890056894308139527268255628720568993205084341669003309819632809166440147357618742442717698436422588154264172007801064263972485178225608550847795886199188610069726339475247607633728861597836699224486078783531929986137432708473991445351456443674003463552896797102559170738132141512111935960375666835742562041360781723479102510693409497776023828777654387460273793204087634315567842730270115859846292547669196225159762766625977927762544069111600060075289990871905158437425874094554066249940629620538834205672412516500413130220686658775796958860492321405655971133570956902066789922075908745379972338846098314383625073370809658745337501361343887401063601439483918289633635841814313218728278128806915642928293886286785769997361155736065851076068668105367947611560696458676967387041758975103327591779149661177355345415881728808726001350802786491345803841594802552146243632050275912570469269462388403113656258703218761330267410702958851633028275327813005525710132482893778366993184511260726043618257445535528085166680935374099458523610490134854470228738989716362310572811429114414947888365567226268364142513535319805994683952826857983304124273650371627640331581919913416539256796419488469323622772465771697220967660396769017769413175186366258776186173795489617927996403894053153579071923976160075450304901181151236811951876500815552160869770742372816756019882308864158249346289478049191203267675291142272151504425331993224494691542053225117008678152234949315244266664490197104261097520392779699400306561825005216687483603394828993264348300381203551744879289069626444919201379924029053245694873803319368199509482960729953464564212613996849407311482570859026752986748523220329806596415001838169478873961098443177985700427437989615881530003742222376417771734388240500767030325704345293912466801667593508741303418550201012758844940786426685512056118142710201388405239577513020198757770545362181300180254290064080945754733009720414436275775445747441319081278902644674755680070778976571755790017615768883412477896323261487768874148442857565192605339775731512109898518739998378414610663170653233668220185394492783589355524877545566945295363472455165430176729646288724460097659792140265390876519090348672009808286327053936895821577662978494761866632854400864530695415386496422299434824468429760259084323409438607901831542504489400320416920952592997282873666539881679981970330849699831135262526223804967086313758450112830386433607814914963494181249723861860409851037500748769154273124697054239512232570896255548747942221965537454664709034179836181887766149173138289075364080165455561799779788219231022949096692027091526269618689832011976243984232950156586654600908160548660756861005844772332821379558582775379303069566481936156933181608369899073850484993438697940586005155469167191657402351312123060183158004215905255676424246253488830553230084787985273237677747507589538037440418197143477433724786956630883640769536290119469547771602878971418442536948130309780109701405434417137381057040547418792311268525473322549411094510228802374979928780872560658741304769177408543473583860933991621278848944861391979602263465128207125325236441259152286479539098285134037501322367633987776541150228608312995399282778088690239533179232863722708195485270100633463562293399620550645877528889077133746258855149898492631857110526589774605209967054201042223377556504362555370281915600145878324149741262226063787319955390922198542465397643243597544574255638694440949124939925748324532234150083827141355601664057556751693782650904047843510909963737394924510214382240525999397791377805247051919836116673956346355512305439407239362877137841629705669507697041731392270947931460532158938362235655415140731871154964956255217529661910460689037316248972369161266989721678785716758257298674150502420287741056591624945933028499220782297936626847120464114809112720028765015739516731126731530712834317884656215806174303081539005492331558566972084663510110609502797436806504835494609106670505274085857388916388378267489549449152156199630409173066181195061449486632950960359734830959394496732740144990272828506137140277237682667879317924282574244536331634935456623487285165353823410086692087992104281191249498319583289990728001783693368755914885907002522317291097548517789762806085943482336355655925578150263876756585693878313191236789030806971233422341449381332494109642381634003822391067797923290680320196094244678019813686100201884510453607566732509207364665116870975404723116411253790956330936902382747578823127661402347994495382811677567125474730709567099604150020695138453788738754124494643817453639885183925625939208248862894758212730355618998697568896745820573680699508541476021673695600025936843975834817811252664745869802706736828823010762857236895924290479583764674157515340122258371874403388908721504605187379195114214368404516526395007781505437546986863668263920241959844164899022320392622984426507760630445931644354813759608404860610605765919610170025641709507091387013107965013488570150702030035974645067828145470807095304096786224559363064249895310350522388274909686389647330066625839757567927247337144665136056298659789032585871637421744576326118941010379309562108764383699931073551475518958210077575436975574543333139262661603762373523973422068221472066240911104887947054160146330451765670331436823953888000448453547784850444318564927574206922622459839954758467680723946189072767826791879309720503125135640695463432950085500726130806654408863989062539867124408612596079898658265674789114442890685066796691226466434996253255834322705693609472435568817276891160951315431958849715315241039528227588722944858591339781298340373283329450154769993814096099869339269123433704429331972987858303587676329723663386273423261232734863424260864875193821031247171150997189895282697319643055054924802712010381817931092288652303056943061064174092904583920465746721094448336127143981447597314878145217807147503120835728060847085376040433310873090871263070296511733829000841749889287212828397808604020688799608168811772743748824261517109378025661191684219937877585747972539085087535508067168911833494804476078274212968238164358365443031544279606946380818088743699005102829438492763204337416815487523694156178217673010860711182721598148128403461874116564309240485392302231677266220744151237179264770055036203706941076684805108234041417374604238371819725681433447169366959183304780949967562266859421533072407302223727888702309573998455025626945603479567725118153662669647010026767937693307583352918538113817493487211765756059597507360796141474373047269529834320107752444475858344767689248237989614609375340646502216040318849554764263967623642204680047234933059995654115206238451328082450552702460601280577089294166893554877526008251933675885670420367048746488601604230891302432495516405140030366036527805594964582007937792806535842091760612265693953257305323118668875486765095062772704317884524120171503746509284393386177096118838199959342151216365560498614202313800993900823654844136593659484606712193098630350296018453539583200128226257967109030023139608871016856573739814447913080556716772767507594720426798691577474596586473835517833182496132310727907133712833514609031532646471883497884307459083488423549788484363334161646294134577718161948237907740296467283285910823816021375179775971259505937921757050714294171346902597364472939577358659201883902137877532783006511190231149673038408275905038297229863275893716381280189111982233031621021868512489866120753953432456071040998760622394863735602399029470316829539364074911603558799524438226273806507934523222277300114169492343348629050798379638994687426251984967060552367941488298379029992307888890949115112469003420072655000423881535666539542346833705560946808855672391406567656393532070723297571062830928241796896507847115877232692115225279122962835770215906026445245707857554178338062771337190143800005023695263185566259032212871706737234189801569308182825821886333888135452271803125714457922687211935413573483625967905983004624342463013797585195861967420045487532213665568106551917139850027416119874037090344107869968533784657779557441985171595324295040267453141475601324503759056829623333275135876113410660519423576894951060830658688279893699837414618662276326878444724385966757626536829708759208230766257343128051698871554389327172749598413587840919682998571081885597976383041308106920327647198500293846667613624990179692209416255398703209492942616216079878543301948460937183274054671807608003688980677110949789036048249732367880989002664104404785572476926984183088551969004179167219529331727386070002956621252293460912121452974107714518399062813246187038838553708563201204823795662750710893904321542939916085236970920692651814980207703011702099106785629561146290779594092164263157764439687729951050704533608870331347072932329252411176473026488602848297802079355280556236102039780343558955166071246765916822067054668808789157558530257148454389187550487439189080706369265623483082182730030604357081807896469974189515831699568713242205648773793652851991885081417668393600662302930808844366432959598294751680942934794868684149457667477738985929102339528090189537593628901592343447068208713431921557656709841199310769465554324118451878423600928697457378673037638306709694106222087375799870859842862833956915422918886568267329989156105421450852831503473877605294337960773701936389122301625403975643422072648444327981786417277578683102261071243113628041852667550271102296144161153951654474562900979267252335749412297032040570754773286787588713109525444083683004323017860571798927920917957375945230339530347028085980087242034948552824234015912621061901049547609506309580840403035213191353852025980585571962421551241739257895010309994420305138705048742344791422594942392419364822047386369262275139880948071399291434761886631602953481633230972297991170104740760185900248404624515868490685756079688605134952992080432791725498206388357078917424296914729539819962482275684634529931974931976176340683081932332198631266894347127306984268523245666161494061934160027834867248093036781338297508172572994727232131572676009280601139596969840155849533388822983054324904702929775139250075279438051257075480543296809333365277847418490030311864152614844116992872939324865665744206379220100485252098634241664809793108744674221888118853879319780378587175341215138700250847579723181304634805359867968599586394052331813097629163596304422664652784408884687257462245811077954472474751414796894453457784078144144591216630455909468048323483006555097949234175264117378676082091498380229256729890253093817736162111785280273723698940758692007707082660884344080388738928483447126005425902173087952933019963328361087679887714162010320794893454002277511707388050504240847913887463325118922798563941297433301159577397816643389732761473429003129173726690006952324648701157056579004213511219483952918514791634903080464138392781102677253177693268279379853534183505104929553763357938615534955461629632216112108696372995687705146882554879241290656526306230841706449596189433492923753850082222854602737518073703291030510461020198821376852603658538966175205063570563639233705304315053759900190846233834716132763604562496316219012732753742682357170907106585281667628973609936428079923549272324632206604980969915116496959209332528485010263573851889350327333328288314645544272198330288797059307471663577109064628600434522581228481574901147298932749213555496641129825695736821924440713217562740993655340863000721601387217078599288186392961670362862324662405446007393693590307044963001526268839851740644724586946654025975256319788733209825777764813095862344803656976234201471251062568955653784837911109655490121865420378902303626357363231470957704435112031382065495190641909974565891192817986958410206979670224684066520266048764491490463961454764463404419315344723358874961777759321763529632897030913907902520507381105642885319733765959512871706784471594488795687707366633532881344285957075664488253635214882584274161409456102684590119318423672129908654885702849384171153639573012788145546646862087219188879702373938163224576443293964669892724016869670050736553985093528141520144842456671768894798614215279491652176502412711398621591691116502259562067680121494437090972918603603747024241803715538121150509963954615487010236014944017919693680234311180805040258839098356426575001394982143895861792123044935807301735656118217247591868860835859569181347674013341105199992818492112094933805597718459313815218092902389609088824191266802355873813431716769961704196214429934651215946872778065382282269371862275674862424685636493858069795056978659719388063923912264597602974959113638647255974275594208697635245074587315506988745679465127419349781635211364080110506522926807151338492186866627809082859237544592322259651043847947533549623850834542105518192623377856050679184134459104340942530539701690899697914096967265010298521150418610101212732921019410988943800677823897117498530959222821578984466856047223257514041046727324101583575975894544835264717235446402031808029428571160244888499756671668898928070595292132863703345521082272272812454158373349437507201821420974587790990932946827376602329349238535211694323648923191970256712717323657590924189788266058863643799861272389217929349086099195344537628988283299137833769528826482713439597087644673288019160888385708832417861647307308376746481103824510306837537103356421735376098008931006780281872163544225994028423145608714100678182455605290114996556016270466002443469142867460849772179381654811273636993059080596418748884664039483071045213107198058027657443815983560283613965366027237438586337285567163035121876739987868795869070778316325680719228276591849414460649405160164111080097515917287529107015735441011931430365736366036999337789655941858322862038748863486660597477448512544667844350556375405436152549678283230827074572848303169541907421934465357910528588873219542929567032667714807992585448811166832443260330532708998705305498571211881146858318103750778455129092564167620759016176266894793560480465203372184634478413285535985802227494197928643097617283747583204941065152901950893285147198146663868299007180968498197698261862850327641634571727269818434375686994457695215335179713676273111623929953279007736152950893303746967718409995606306296166326599520595048185039573722054476009847445396945887080709043390248035482789149884071939705354479934566999927039309249535222043321027269011929817165747731744072587854854098487597276874664712228167202956228540991800652400451896983263326661029471873867409486320918248689370082144564011715141050073607893730956739246190319045170265271439027008323822462429185042462906896548620764870854450081283277962568969479761901254449210294300742380670567901792859351432846155675571016842812573857544997741838645700583431657637064771279394359958438674055193985798765819581143605551245086074624676508668266576034531004557616729632051522740304300804594662553150114208992295603277145518638686834505747751838261481321259460833430235258780854827179266307810485751888193403423769982558667909841319662563349921358473886304829941086954239007421549131167303024898904341625768990637422986254521405949084922797196875193679039462793767957173220597038887812928305039952068723371716297297462503250483292771778425264253413216825160231855571100288883411339856323618173182040481167488990183553996149354640924288394491005438525297536995642189797970833939825563114943950277608949759951547377215871547927888881187501569289422950895862065729914978884056706539494174699327216934041506145657098050680928094301759152143663079023035603378084997742933712947713819170763073632134959934860359082499318649776715561978286252611523451371395848226557060263233395590185698647889269724567431692106122765978854251306599492432432872165849028346832699158484159491892799506116591296090525453341105696177021440814890995515940046992913231379135565807005208342154999403688345523852982896662482220946195759824051073606388373513012624262280373948238287251514967484789477595683473230012363421978855551849370854048937125172132325290398378009338244905957828614010252781151739058102420259402199163341713675127230399469131944342545860343040638654666409108103649305891895933491247037376484703996401553579399026259975648701124762596615421472564357582592717889628534630417394105673572182554863153281252276576038355061244132010989142508061751269796904450780978607723324548168738638885821678259812096002516568265773529135283289487199328066125248082224409036127373934065648412744925951644793163829538333765366182706377943418321098948335674045883430193820524915378174162166866334317354361699993307648215917431158964791147805756309274333504470138463955523407842613586359550974798832416613966364377658709859470188446472594196704134666632555807989596218314269717743130709610930623373440885115263448662855255421886699546972706157183147578034031945094694301279985409752889122087539882395382038761388611510363578746321556027245296638947958457185193005140142024532628055898704204337138905300921857252778235953504069136326901364615590216977786178737909085509401085282577877431306661536117190705368601505093819412230425948932749958474755208888826013510773820544279654721662590417739487805106162252221464428032757540373152327262569253232392708927277731829288982946984464960796220035009323616929269906383871420812303647170945089715620079909550234868781173345000944407264079351084733604572385312746157202859843658341069097704347795393518772943255559819234571816348986468463276860743763020915473678916285533782454386092729140177264642067592380756119539229986065827095029528321088612880194301530940250641316060625193096816074506619415959894088110302747540013118443479919977383040292746909304281046401962997372748496123005352471500390963589726647671640924277673456734095082457965492025722265829140151063119770934062374494749040901295151195524950559460122323746121551691050855318227787235919822636277450196390151012214063604643011037303425186086696627409950149882675968514389005939272024334200968355688653694110227706085819772984785234342146492237196656271287324203877305152492427054115782520639010941159403021741075828407615966656776675722935305975457591952941210532558786099481950644951706882770078917402024572139572320576114155756995796697948091524609355331632585642524734688520946347374138749163633893333879389363883871801231355228067733832579320259085479197482516680073337577890696622385281233641388392425837810343637346875442552724605567187598804985265106696755042261079364963292679108802887859006480048198327972330238167664556654695552241836140148716266140939723113420353777977235247302871919569194100730825355068941538951874318525277069713222133010267530931989997423894295579883548969778061855216428281504377183479076588828535154191098009802941909655435613732968146668882211125132314652040562578643751753580009180481884298252188406088290678127765793364888471446308219899485836110449284173700770907523988541004980728724430445835430093470109261600773032334002077800839926104981500899105075480841996328754192424578953643469566300426308930761005741374772326447132418648354868432084961624967785967749126568928561554655554258201604064075911837978320760157253511999858434312343997613466952785033848521553122559293053805569377628855550824548098466818835002534357190953021218142760194622691905018861066458292355697297766049617833573269803071085791541907267026077912398009116866811971453917220105859839029188113673374931163299351626680993205485464851345026629204853125459906871127278896690843399451718689985647673979157306909589985122651824646628167218085963648296236922423093414721747738535286886915731232160241436418109332246386364897476889694565034445847597964876041629047403115289465273525421616849698447130532438896828092928784417379210226412700580323831427212339829597690162768673908082472569875405066490450323191535749996822265336446226521738630461415564247856631831828714823461364219362316557953277089757651484517221496808437197699500454910853377173434388182666087259840762309668816758466408833053438580093062639681708300684352193824607190751748865232593651624655024606655800308663551698857563758638435187928519309720116365406889269998463423269338246163190707924991188826406977091635077380198549860760501765006550579793726261016437795530353396309421889506303788421898534658631867412469615155361812597704103282546924069533346636547854129669750532150599203569943258807922497077908644905563865536333814287969729730958893368501115042350475287315546474668710842369913776499286758107866541375804986378049391861576693736837626265291376836952594481961281128536990224202737000545635222518415570164753219971155715384264846366079522591126489718688589459611033441959313119548604923598187406936999906636253870118888248587930418309812173389019423361051524222907111512664148300009403885742611784820290209710252497574051730952672602783069420744123840874331248151643683415445946498196970528836107743176293898178508433833649787848653415415997003861770820335116020355261185642289263776947314007132856293245958794945029153853663750981448564539232916695948619200407978268690800841309922945094117010220135150043779441686476297054354227639844835956611112417433371900051922223305839215824447827941392631473492937328841072163322233741691334548147354949231657257010617422110578570543626449095467094134046884806740434420739973919168697450310501874188921115463613880758332530909978130850747136254457443069091231498266082503285697978672414314687419198659913617033982734693337737298114856822083708195064097360232374833621409579568899579918702997104392105241146175695027420282731416961899481703773244833925347827144447832857968507615944006316085219520405683022880591786087037366098187548745584713929847151799865345109751201294348060457293539727657677853879350464325864595723562210579643110803056154482656948817421616482866224113595506566977006847929220103846118962094870101331608225608538837249514296144279015352846187170441421925017025688888415095930399163613200661423937628345615051578650097871660135329305108401840296332953896493286300374432603146005661289324677961568327178274036436510565713025830619134034467697081553420285223356026143899005029502358684064665483310871969406005279101667193185450527127270675940287393719008098002708398682493057888047514414784376049547891358065514130842700084874749567072564278176885227959763822741741610725105096013769780188025870784533846321876786106233936557663962667589179394864294680735132687149992746456522161166237143699448139542270154046564658137041289688393904401571180248128317386926932949370013073625140390470245409423496081522404566739192935943148972330213133104562246098709647237047633097802955754611256792034645768755880669728724031041059620936272740238067729777267212781218054072950202267127873550222137268209980195069237200015559915397685573216625021860866020590348052202846503222309227399186238623085857227924261849803833517097763115994075599888662294074512811417389635347723500677519152830005053342893504911981204326353160811252191916666406109936528184426426553605353136563295426400687145638074429440867185160968745519389494042330427998943548954083176163420924994422167804114883528018659452947468718818460939679773353850958601525730504511519691803733660370625884052960265627035213608968417425900283976675394095381751408301804611827955355911976098534573761687569347979981471865363054315473938921183416512993724840876625546457838511105267807263326987924064941425731094430492194774175731116190052698589796031040236993863996144629104515731097814631524408802973680022279536746670190978721130634276721077840475916729305671828712774424938444503708862555767523186339060041005252861817041427970107573851468914716905889353699403794645970802968170288993208494471261127272030588654552069979111343293354081748446561806892851748963254313069653873504441827824925330540656115311947077870712787011315461068185591364214213373045565490416191059994619430912777863304615115379191108818015828555545447279113775952164049989029982328027734400898264243743955777688002200833538154386277488762528170577893031624385398098679296695917029600485116026482844426873378257131388520318066577882777858943993911648382492954003233145378622044138925220659522212570801372280687849560779316016651525681446139037896853638843195600415338143431555890184405048809442371209351580325031341803969965495352715055171631412273344815468711410864971604660170304998229809103097718613647714052761820419141019235916670587117716746176999654745930325880722011085657493907037918455048841524946765908913461047432855358702649712928715062113318690356043396612480605109968537967660381961038360645419254997473808588288090493629880940953460127836370645997680661080338284646085244019842274177824133810248164875656438972653829639333331370662992391458888848349886925178352823144902002467166161523401680706956507938850324421318844801611679659931068026637072611423211508059237489167744634471849855066818894344402923097919695791705050203885624779222945354876991637394597687445336302025985572788267487493860923732417341140501649535682578071261224895303027340636047767076950676352543012359910077169320002192921750954147400297886545153302091838514746167494407032282477650291864983442265948831697035904974021001263572131720324100304616588817705915408159725796264766555775062441658909020261051815446061652856479092220996553484846360960250142064353083637446663218693582810945608353493928620031951595923041029493390468689920732606698266294656194979384336605815817318393652912490326033821572687501044912331360910930760722515892752066302966464534427803962855209434007818826507055268602831658167496124414435200445415914795256285649139074170548509892963600418721285286645171737795440252531546045110175771078103572352708018567336095975651746434378901979446480380730962555012899208591599769907012720616501064623013833953330705135190192249243766466994268652645210834463084197159131732474387763611251665593076210368838094410936309090408225224704685367304508130524606539591856961757464111154426102854590172924439206882542081505108926150062127100248519877500902352050413071654506548758570978880952408290817310350333118480348102892720947836465244393843325450785476663916654524190885010577137030715841488173323684991678794532427957109846458535106479693723510363995072059943262872213006087990578692343213734242260354260083903009571377138484910950908248273767101321550572718772637123907191153321674446044228893386882547355032181489281569412279316355548437749549154183731335477180365202056099772963595340129561010002710079765580241848876306018307233707131316385424016404551804492907442217259362070273796074705936911411505534790712925750813249601105043724681501490135628158859820742359120548496747622638515912424726684060721961574934012239942937477400623716715476573746347190929724297760342099203835176669229534599924836509818653386429022193016007032245928918707936356237923982909498554925551776675320770646492978935928387852427542883420385417345751281489481338831469308328624072008132281286049305015560100610065010753593846810141748800142475984497855886203045105926645308631510366814241998262725988513719224892563447568506547900583577772347599034111595739921805039431605592006837653025470008223461954968124608765998599560132668468965105194289808716031714044549562328638898429432929408432997507711033227783376369143994785411642600482230064021137527860345748467987718943616773822281490852857745851233176088232110447481478509114445040737136592851984014398008004149526493980240083662363878587706491079813691618617545308687653742428580071013173348260714876019647165845239709063472929002313454623080461758128908813927339248425412710081907253454885428986649828330959585179900105640895568982778439565620574831513742985210211426524276992059562114117627466153683668364157619422275516214829305837979729678820822967674334253424315773314967519727438982348473416367597723706946557765215222492793406858690165104879858745853738697878345874510550014641511351314260731113973464201621405487990878491319802708228764061065609348925842549530465688520078752159693489514179459945163291573946258612793637625135287516389568131954060164803138740107362525676458678655787223443641327656018931953232846586922448874101305738910009195992861646214572167650952234816657789757198706818134326460985472033702735994149527729502222667567294047069145002195252206046812856146077202409229695651528901681261234986691896664883051006076539381076860890218139830176038164341095926745685189967467749049177233796941335160342394011993207586164449988175073572500917720145573719983344245485375656954176185551577086264266644175637290428272989076778014073881131463013929957767026418714713712233036502809899506538916031411719136555660185767869167031281958457788370402270943700360912867724189010811790683864675267747333989908790112403667565917377214018466729661459703426297355260094650211908402852805197562269014835408207390958867375887992305864205433082499737126194728436817217558263070251863998665782925695968181623429947957549299078626976460845439395888349944974827480707659215963488798442677198535851012212785975820581967870984996156354368406333440002764429350902011433827029740816332365465660543868142781595856592670616942798786219505729320976648896213053123268744377605113296353730447615735738450313087065377942354515904498356083453448989855261188155589326831445914656868657206630548718341101717156123894125052880910953127766011062553376615060196656172616739261226805738434620159124452590808063875078797323987019605453160924066999648499559930135262475864353845983564610058085505103174707667941943139760784352164463601866816618015826923574218893771664117623337498265863262681290502503627380542779062101937464980042222891591640525116501580384972782033535003727427988365992249581030710663456206911805444583151994633544905712321634511419450413214705446705613851304904334486170644307423018411722791438695293325761193005526722262482492576315496218651143581101549677514540037600460786358822575530212053938908882182406516756352580854143304712995903812272600458447566275664905613828509695460680675932854220949117523549812100927610483327622918614133001064851558369113342631989892041945520519724773721873185611009427758923227733577995462519335632682865778035746509104252179350886140755801727437119509836876339872891692456521835018648829129111937251799450118708818844819096110221099605336311702969544260593798089274276245681190126724231238263998622145326214517271205992044733256714968430547331123244959938298671184060266555929734665728688387868680553671561600812022492812445978799481291201587412648753141228414981395969632623583283924285041749053339426267813229720103945784813334944435418048519040055178476853796552695708607595522157952984111107974862494740718912488676828101665644130574834263729669095641890234147059146286511429250042286164369743850369491049189029970985299511921327675534123823722067758231933438198937197511788970892960224284930319916028819235346369466488430075820431094634986928940495898287865516327457376304004432109385745268625066071765432914439429196815787118722825879694979005866375891529527958937997281214022283723460431384409986986815079338980581562693354147626123737594789668780231461242955315976369441091827568337279256285488060221453701946245486861221868680081606091268687063414228861858438828240544925134085741655121408200962624874669177010623505451863491503183668636484872928184347740952961552175562439097261210157458633956554315212516816115128684903242049717187596318577469606098666030849189002499910342827818459014889840727831803293993820407574811843279067763341054631470172385428134188921687497258022245985041912978707130376402931989397682016300303243464016313750540376988296640558830917551468693444154415845878675829988571334093046385108539164701670563994310933697169581090779003413382037329910492011987798266101225658595619567545928944776667133610194204661934988798877915128376991715437878262116726487698110175951837505006007985168673692558676663759181558400391505653006624078102384268121446129805433338457305878397721863968540529237334714047330759383902935200360859810905607941175407871468813738307397750728832146515694956546891098407282567298762040339143661471455709568647909790800395657476208198148402533329193510241161736753351872668188336656536461514878970887816845967907371606414807162873565286052159793233096199381256782346198381663955544332314631119572839777419616383178320837887746367237489444808778034547177904978883086403318905572456447600352586869766170819342212566826211143958541767212829474975943437723133854759785143627617514593465981183868920729445418531871449846346175987085094377142170652120081276895522145007799018795207421013066780237552855834690672758048880918803002533918252184981175935594280054590076341605055059542640735941984064924371822734116707623586812820735623474484758169221485647123353491292528269865686058475199032075607800770889485998542338077386216863674339784850647116662733835320271649902545515833581989112231103397156316862279990264132617437017873191711903572740340694913313767390799616109957263715430077415959541364904379112777196972289609324822836343049419018415609764160127563243208097159729761235204992318875632617161094913247228035127854193650316766847739862220539639116756905095135279159706715052736561220823245856123910977679055949509914426217008226907661318863216902129121110240717643131263646961660002989585915983849178012027839403621291632373629024136533478445528696365525083941781747986322417728273875849926595249682224320611538732067302061908035556521968562194493415139447812938706479663401619370251270050051606611326148311544844584239685430103549614593546927908629859975366981026458676285430898726945630070069630028886157126551822062435123831991917148511207240573663829077810628031031884848220093147348392394206861489544435004752170295503078422955315275209086091647279743451737333594974707112987927566579374023256790393572609700059326161438088430853213153734818388683858111992663261515392758498830580363599509708103544531358865125206873285307566462940078218890619008752661926478451345712221800654330724141043742871146481846014200925929785087873834504752957699387973338198045947509926551297440597965819192233310227177492017659670229438776727644711041243179135807671944370292651168306429123363857920476996711658368045872058542861311545224206858967955246033092320613054022987803444649310061571433047707315051917068854847737957688616239767969934520571339022538436179749317895966154300575430705680343143445765832754794216522183079841051407375834054948281587000626067976482526316223178315560740901261699417968437643457797700292360918502412959996395004277296891152569236430210468733932313788437582797425179774400281991801267672417897125400494286702697584102082790316301007312941959189083242804349992470307760932049347723334595685104432903535526339609076095192367200976075266628897586034205279494992012753181584829616310172776844710848354667665983279768932547308091636955115505799910693612098737037081608866523529311195443287906721591271340057370821575281766221587299511567921460923037352527499291011887128556102088456995146103122003217423754188156282008258203564049304087301263036536545566206707164804410662186968228867247277190328964330966645415211061783185987781046212740533607974704733418454231337015605415529306570613465927439636787598439158360936045458761572445595179912383327300443325320606926458379034250119594238369189605127316858967701792358359272896685690595128762805116991252280641751137918910096496537128680020572371594039145263209857833945679730921805911389847511308143349554597699287660413398066761054301248872669303052934119375094701766219742623372847108496095204202373334576206700745727908981971382294064663054450109855408357362776323009301162131202230444306726790984497425876199616181005522027290082488837983385493643755931506938651522486657664974529454837558062663608414869437238003049774098934356561664784087549015767651987861174771939235458987760287176076975839334051673239763152541359320061098104464550891413939879050730097941452016870331952615820699272592984488895918509919092372814254521245340198579458153480776437247123388077514525883717214635256003780514701668741671749556757563391722863765825141961756192546732046192669014769162738706166472780347881002903383722832695182878368766867249646558241691688499622260823198414107487666999300628701193009573809177899332386735641648703950433146285094126432130400628132284779981250615817387302766758357918029809235211995623102596790986832790910645907537184105417533389954048830668404155064891037859069031787538787549631194376554223353636713981037959941977811109187463763624809730722946513241847188559271897825426334939770247549230288777191979892894613478146055872048338901256185678125590628846640716557286584362553772206502401759973216926978728634166891901406598429214326313875809079477183645252979036473475075648260395182321175032364231515268846103522111171824491587829623083604197617170639385330563003117007998660572052181405694131998016853544205149538203165632097919649839374977130755541045950566964008627900968924771307466650866339198558670325329856511910827965683735685587732698703818661318237579463691600280774973822514471226688544069547197288497683676008593558988133408953387494377879881011347060773141373160135298142402046710395295121957969081454350199492826337149354716643365666516955321921880276652147613885040044530232756062218269390133358662190608375095549385414130327076340519902418921146536892837478248053990509686677658653598635508149591422000143299629844662949875159490376436613175843759662827091667054123732958476461040225499448780140360665068248170559337524123546645739829408034882817428150990148965869694233583750528161842462648645310734163115515803115496273452978550105438249718075502393369535180205455996096045033336895674904546272580990677743408627906870442133484649641784823727914128195606657117894846096785397717570434334185464943893131124500213336841608354968334158801606789218728920117382298615209825389752027119945679184132141258385578347246079489081090428385855702169918746234206249547277879623087830277845437159481367115249329324600019060213043954104439567106993819047956154339775493167394490016220259508354368808405089101537051742312121698336949400195890884649782671438395125118863528724604514259720719774612946870538945445758416192954915774509813150163634922124209385970187610009109763180348658732025062711919249899193734540933979567192469193847189161376533099036197005244364089345247514605077226700910221220816881503000894087278473786821342532808149518319482814057906827602374000051022899055449092067826180733997969921066059618923668878821234388138900704830602644533321931886753593890050818955003503382205575100951661323990862908864376399619001336129164220142811909501260987551285693477683036469791356316433525363539738419406306790824083417654370367269281167278124588379470729597829691625349935981663073211288538375959313717206973720185774617168520545789486766141094063476778938094347391885388353975970342654837512790213347174974252230006205592714341844970201689248648005509035828607130198596219484491094645541567329562905394678142634675131032345462179837818388539857569277786052488997714548436822649243765946884823220610958631550749058744032361288402587702650279012092427140182590291196233757223739186688213409333487431119408770161202175724818300752809278683692929162407773780137694130944136152812066994632718092063980348669273531055123995243259271298037253589829837869726758262083229340391847845438521842572780543935907564157112022772721616149182020294163475200749518227822113558414653391215866684473670008123299576777955087833260966265699197183401141417756534279999470607980375883442589926898761862292643940224237766325470246186536188798783168429531695632556367096400840184050787895783812266976989458164328197966263594343959712118202854082753948584359953687239618575189105544251132222375662240930016551994178808440847043486789245247942511109821050225628409217270855643753956706597085711475409716686505376433530444112371734209709658171595663497351767658138834885301336924380162945532964594356901926915270833465416805435598553338895391062640573787684306919979555220847278582404497964933612996306367636536640591276902217655237471313496251568439665228734486096720889474982842898888924786574295663533133149927593238415308051418934640827641583474011857095544249995024891332447087024181007736906597146215041417487037357906335673484666985492129257966413419284252890119401785096627300957543041353933799362834811687523833707830483110440108361978646181753856930621184666334357845723382107260937179033051455493836769796977827458888359568565615657632335083258567534602385847687344738815184595740925347285347214400050632735857644023673861865260610681703746794947183442159139754575598203162238219370863846304307313919931402781827373453213178847878989342265263391337922652994707125058121308723327205822340743040920807727624722517222483338912536406571155986557273089941213357405109674282482225472921301295851595677671210997331977202798123325948982443124250615581199536391391546022388258201531842949641372704097532835091087962366099596213810094385250750253362448653278270664052935649846362031929586218609609027747093464525852780338964871258134260355215883985845231638325401501685733464048833883734441260777534757112651201806327603607981015950546999751767632984364768296423873216582222996736526539060431543082229406646835395576652580798854201989192765265922897403629568266252020328284596208676887593118977786627487879746130611295278287916938380073138784172388176840440251111276239400772745779847611513723388091500556136506118529056088135793770580623794982926935831135238821592906770214378495990127418908055305456811281623396190617163789694020467565517772297145192816225336144753356376931805177559306123454209183756290607930542976466962614941749250575854822919481855883977439354432082294766639731503329868269774986409924654311130086284238176635914648533178970910602350519083907361699864010900736358607601073003575830437871882351644640051588546523601029208472629228462519453457515935350811195416180638513657551381923701050595900339354627169760427161544041857013351336901052320277959432380491196485214921152661302226359884024634203022978524204069614870486820862692954361298557656360478636783844419708178544523676615949042062467852160656677686594095884457243460573799181011124025277030084378264505300419412531741353212914471030193381545106550963345261284203588169168684506016574354426688965263003490654326134672526842937840827922260344866577441811936049045168197667455627294952865912916637245859891488323351769713150732108571085925416727697308303275811268901206336968947842538840426886056948603852922326301237653685037719301273343777418315556294956236745543686646527094791154692478803852860735730664068247790231330613807919159065446491233328966306906083372963657594253420523175962649139058805144140611413491922991162271914700422266283812320721592544886655280785501993830501686390267018439935937877415060577364154450022669608610960623281348758613506959712153661691621707300104498243632736305113124826619653161878986738068645593130242454597415810039972183464407155593748422916771630470599731091849999484055338284432326439890597528940049235514727818364774501235299660370790170760330392863399288575298343987003919407167369755134155800857552887878304272002540113495033276071371691082522693862194032579306102157388559732355302808395881139105268464012284410102461933764494489253198642307327181465411230042536767252542192611577597613393669220616983004668785454167303577512809188055684933792321727957876671175095130335297692334519410584320698693582771150469929778544894651151736009824757795734795934079934537677922538736634416490981370287820659298343323338143547947964008508260282650004076678671488606038579012783088227059341182280077674461458163790528879018036917528355447919689542147045234561996889310661476597252863618258159769620026266572100872900568034232713657921895836649762432485819871390645224202813688329071592430509685404178057463774783386218928541121867512657489215728611109427255397092364183495125174401245801789483880108700479098513077619474850484816622400900191158253839897780299196763616115562249147658423519892462255996875781345685899255764544941818140558574818026191062326123325862717063206819999496530668906325150695190140918144329754930874304604593347017377312925780189945404162907608298538326526354131709581055123841688611185488709948459552027535373473607071640708766135527565230169873676876069614641112649716010482635196393084189969533667531236584330177277731078500020864069735956247306503300413172137704906528182320492827579520737702458959684173961722862439062713257999822563050934368796184537929867768361354189957217025732711065031035803903758369145032519429922849746605780909120090476697894752875011412248112868095323099504088510111487660399379458134333072686942194232460038849691639869607214935016173694418713088116929194369894073892013106964493565432005271194815821867736250941627030537276895338484896672257653964151139969785078275187061388266125801194891501559503756438309419999116069034986851414807930819807205714626189928351310130482657054381826301164596687232228349543701497730007102222053599776433252428132258377205941715665118528497155265636116282592696056565140491165842085272808656955733639755230796415868836177208457398769413476492740078408912403161359071950590941967026131284568581487757902824324625737256064158806588557233114387169646476638661653936836798415684182741608623325608141432500701902972845688536898059698235989090417859337642498862958072078658172036111429889672060957532927687210889500872272257499584543203172334389818031275625577195034917315718827541136589585980225997671434209601577849638927775004747486447221743345640506306896648506984331926229680664707468037005229257313921087240767021986057077106105776235134386956634396009098777669611487434412189291597406760997983614670368555018454043287637938980437788220139552851229836737890745394799406372404041170254902763538974193215747013330034416401495985878108954426472735886606195801357137218930530170431135929421377500733366468890014252237883372251819031334770324305951634592488288842075452674876497704322143722177292660879317916261499155341252954907569697926441403135366873351990850139694489747756089350013804681346968733880798528453538895933887308347617924645013262666179395522135753106269506732842071326488139875409342458955128571890249245709157334977752660063259383204780725366676626482804898842126224483667493949674614749097606384387902707973862632157326118124388753259165787506365356889782281958167206531475906489419809816756333331961262793359131776591442462488676602124563424043907428265271090957662437867467409924932850205505724175402596023474511435667568104557607824637828242162877351562601482805138048284972190772336683958033813238845295432722979921759960291943268753511424554475290758907541196168435489268488075517221746807005253462197906875756031407947631265060496147066522738897135351245490529983246485105829339298162104035127214281345186215629927975747471242026899044435186407304218497035463404691083463753480469247029601763806802366614501089217395112259591484915843761082363168236324546318943040608913042524989633325512481149182143647148502001896987901742110552384984393053885241063588627612315024722012370160756421216959482118096818484278855259628654073045074022675104893287265798269177774089704143531727293339834750942324278797916172416533064859775688700673873366642179293755277381142997059599488084944109159621889902266347922682332657389800697803339194356505426277113702785041906940739168101864769418611251588826373001219352533056874162363950507496024162847409137809644856122569164552572997378661899109690467531594721969846982186671148601432851342130895892856217463587223262593056223090038387702813515808090617758970887099013360581809733898986983244032308049843254754416351036748801450408813087017873297078726688178248560411197165543683436757006533392677978820232393272175374618464611663242329238884608566639026490027599846616225720994726970174054107257504970484508377468596807975170185607151440604961331586154379670185890603351501943425319553355220474652615922329157626547722015680272470095924465939161511772840587174059776170680421228030028142456053456220169478942684958469899407327003699600446737880712858754601246735287002683764293955765659419179419954120957623008504423936163137726125153340873188899744035378238189096925038539846196223802392112062268535068023284595689299610209510856369348526156494461272177510415097188953628495528259249081915693824601044114659357145713570413894255466808899145372389960663821560761671581605137681111546638801851118580921531031630465703438023179392442387389692747687389133880787346743354164619968582876504307403193840003258079908230541732573457293585577680869091841785797021420445188694839312366191104211861978167997130703835855245861552387062803739449062228833751460735731981928892415670999423594750809028632745989602432935774427872685268280209090500640693420330051635805599497576451995861285561636608049436015860660746142586253316081572254520034993213917083449879981583111431982850575704342322266693546571916402654923331646116795333924366146422226725157235899783360088009847736745907138337886839011192985034901545436871775510005863068099627460057825091689757695618560728402167624073895333879668017307443227563451440643491462885895503210727441641535433889065520874574150149944306398425532032973990735502572086444168934680244672568662997197129466919481328082481005064508189959205670757602059726034049039283260068313374938794713454560219292605771412589916295999065078350886517557144636133297929198422094488898312719215138435334645987396103625453705550005656448478479960270195591759625290526368859548562284290007416854827058970503259083951871743869527528983770652992025904471047806914887525180877957336092261827970862564063911959537748962990017767852470161777056783477418830841886171403076202370768721996403541506201243903432502635526610453650093876227334530573264753059235380214992328695614091205335583895462740709029001094671814471944212541736624052002135868130451294252924239304911548121044199972300037346104134882760460380456766429253537856499356341435720039970564701852306622425095531019152853496038596519618791278326939995715951553676818879683623464023921578617803949814729602731822748133119641014682661854397003189473897523700664112117705917988842584549833759241504675982628791105165345663136143033417972246313620384146239932395605077482632930939216343545198177881846786795127093634273713093167347185755524361874286600852496591537438872166236867573813706483450053839058401401143608416769953062801534096984202723712700221063952274382684902406892320273648436277600747333282372165118146785276752141432201591945422725182584497504812423072730567144335986704882821024616982288277766960823170734184824805585136771842611564540988753333882553317263906141488743016791941373582235282397006198139240624010639207578019627556637387595918197381467519156967895668774175351364797711233303055293882996393563249912434340536440386168704664818202391183483353401938483423132043650299629577960223206339414898239478877090630007012734576438315710660871708942297903980593691554389314985850574051338208298741878984096878156273081405895509165959467384939988266590246209277928863096776393883379260679035524149685389427115704343536203708162829406285735236160506380745817075916897699593263508022278164184588986344493897416412522123578646308530149112965910409085504575917098107970372663099134095842767594946812276365644790452330856487251232617858487473968049807251360149986554544349882384197011593543775655040930464595461154613473934802954519850184192848289844624180217382094557029866394182107355687236857868652791061549747249094753511722181710479391317892850945771116217625159777769472435022557429706209497464575387989627033392524454060469426321304497051301396281303120029163755919547507268310691212224788469331897800983541607167629872287211475264527478298749671276530224981409575917831933551435999225841334591537354726013786667400069171573725690524457021312204094139775160368706004988081479539903528824783419871608701261258636079703628477423317011877482325552497471598498298732199691827925810844418886151274355098599512350041452420418047135386894438943217522482438097255092890810705873291012738605479467807689998623949651310326221490064004490483614031060358605162901948514271059121529720692985551932490654097046496057291624938714167167853952017704483708433620672283128948240379409309531095344383539944768772627990569414646913975389419622935770492416394790743550577004243231418552783650024770531218975119599824055677801177858237373230076205280922290955796659704012721465269766942824500581369728289226341223922018012211544832181095161449866748599577610139974029959821705385248653903303651567033632554853708567971686261984893390421319378131406014911745765294784234052830534797542618738159239182210909126103962757152029049728171653933050890128794290538575097924433492067711392894778157384022608631482297970523660576796978404845687312488167915211368469352056351960748612038681399934394743932541442830812512156431084352739034421260053047363817147057068654717347464850907401740992251074499002494520997792052438562171471785810314486240172957439355925110809034349890549606224326260574673730983873870982853494425751747270438062721802288391071191578361593688376016343110461844631593035767747799279903832777669901183847954092064059854743878272733759214416439453334867070696527001636451836622982877935805717949280261502149050477460074468415783192589084858076868301601768571233983309083940927491535534205364866124114712481146926823281092642646354950588567965152748295400409794863538585182471493944355947412733393387347015668790174176362886112550609234968305892311421345911565969406866064300648083792422704429573982639059063209242781947830623691357442849384156352721743856226754353895466256419703717702153873438086541532892381497957853897638420527333595617774066607549802206212853231849448559397447615533122895232924738798645131268103116835213590767984123761605725820272968164906296271804222240096404658226233730452468704118521734743385245050735959378171496562433058470267627507974118948326386949995301344174559195879587672686124351463953302292167646852222212482527192695528134290087409573977552355197717424055533561780887132795630355643092287024850367688564971826146284248216719672314851945037252417049292225470277618010754472255193447722977202798180725734213205893590614586456834652194464131530185699159004310241624363079052041618390083625076720231481728717262341836795425537185463718845362080331098649239983885451396000049050700641666958209014183312090884961194647686583709532123687966801313473358406361679562439451459773353318979274005621656491461766958874490962469978851632549583088550651723457934809505601243066999881097155122579536843309686259569811298394168424503944024796132975058114027468364575396375867400885547934046500052311132983431512354917344293152714366457042921763555342042025131404337709567631304245127692621896338014828021822998506968116414175713744864751561021022448845638965435390310658662004341046900918316196016469601283354203290402034697257409576321778594005935096448136364423263948914280795038499553516101255959128709241837383254538182973681662180017100212684992390452445540905871861225938188523204778390444488247903692612116407789350472568021971927847374208502981524586134039518444396997337419719250616360393400010681769251611613378316067514227738106534906437242488999581672778061836129369035594793902693019249908700456319977470562623835935615210604986354134651128359410051245701407335909389805043397578787913529917920424047934930415029327072418878871993935466093316579044747082845746263258249626515748784522253811731975500980568632688908467026503822803894116535704300044295968517633871307474932878629189958066910337414523982956042853611574821936390645921481984426025275517855587021710919871722709669208994287372345878655464193248376203492932830045134238535381378164203484042217499322951260064868760718774818289209727633469465541472450868895167386994325450654818634470064673192405235152895035142232603453207277848280487055373239040871391260620020074057641994655340607905234036850289540346089837449028269675839297624717219356485425819768644625154083187591146476551940829433179362719277722888000649769779572707778436072987486470957548568846921345542773538823929485378359594984150282646538851106491763502422874999233891552462810968888635425337341109984382753397151512989152901265519520678190407784476669648117294248860454246681234990671039536136107341972584556704968565810098961494248711645951631640646589186331973975455219831630014091309382333971227204828255605809360642591049480051119088368820046675149781015113812747339261637380796761228458013562706682308002940875358169072764260704795109747200546400069149096290098351788492954584872160178909841261137961975232551098502866903721904223366968001526575356325419753169765090285985104601150172540578873756722420986796944111732458349674668884736746515820327827182214553411430351506840588312461496493194678290567961112823080830252487399176841664292944132123392477468393407236878762124055371926558520908005709392212965912033027161705800144603521793237932478831550471990570421199122034642084792035528382600947472001024031056428073932671746626435585617268212977723934438231532003055147105197291575189270347138786731139811346340571847613143738588676685282200119336868124678743116918455665869707441757391396200507292518609980618071607742181152324822433858388706727282950283899802397785244911667952608716070828239873710278744871832346280404303607635619284916978068082330105474022152614707743016295053295552504709056542851362973537541140597051842983369403212526334823504136588406733382419923820407141560386044730084772055956754339475300945209504769307931844907597708233102859947039772858364657003948749054734874098138623211231696210787533193964278067211955933338175118522102994413248038744345033642239583568466142278690511933491236340685397585562661821915835684602089116494830688129988114285936821810523884202506573153572598079009741098103751606292921637310964008794390030293290302359991347170697317886456400684933712709050032985208154370537218742184093720507876238678518100749555116908957578771973214290501429217284829754061839860746096375937214961636164751662003805795851243326140353416974054519497517865178935928044759666966206119845996715819172291962678826593593860376111304828334844339840352949988691976259061176874570294684335213008314794858942830546847737600691397493332219077034752369417450950996063224954157515738959448773038982073790903057590380174266339822951153924867419354940601511412236628428143264175918636265257063840259649413619969391231799402994246479037777675888693263672059202942750158068925043029657755129074240611116324341061515612470704109833066949100896412809035913251492643117476729857120482440495972235476970789385208704757114330189694650002541254251895605897059468749914106482834007683718805921855970814888826971075817835074580409569271918776792778855582701401457372645420099397944753688484176091575551113165915592180478848317679707994729611277550715496944626778448854412647777482757541819869517743054201975831273320030075996075452754962201171576197760821473840606392008639078442293750274006214050881182888356135476923424043068498117119972480815201188760259468523870620882848820645352377799025952999273367154455376148947284317914281789818475028466749815478773585760603870886811508087179290367446543183572516574908938363517651398642651325877416253260761537184440573251768417371320724225215339823895177205943506618711528359844234539380455286057840100157824866130055359590060297946415440320696751986121098953746385383022260097407412249366172498122771669047960423669757642506763294980826708359898397167179162881478206871590446045657475810840528280221984103639111167349933503882226429893143674259152180255423500587820245528675018307757447287258878363992555598036777745992933933999465416534029300487989572595063441506425788259712579572828784402924768548426475254950123552450338322371414119152760142806698883960691912775721230367800416152022846306824814364963228925754597307939942218116821218784492906545424081070255698841358637168251386419028888840927100952590304757480872878967858120411732262039076498247551942410834675887470606947135598170535668296170720663797534302092591170421415888120749949521045049509900468988100729197416749363738638885044115122047991632625757498775727017226343305895948340475942369309684412668790983366522193414215379432488186104665794803081758791980528168717578236646533224414864526042355957601553915991908392081359506185216227915340364314845394523630806243199526923537187129374079218860804404627972036939919024767724661502937151782221259166193456282258872061077367273594678880418875596534456132425484581226630610921626925801663015160444712327018677980690117433841511892581266151106511841937391951506682748320564466804051659567628979220358292960696017189026951960968835581909282494102583690767965941225333675222506830336251653497148486043249676668798500342909910198436967002121735148496902412108171700851086932334122303780503552489001785840690675839241560393918076617578428423047684738016451398884389994725043561688417874894085612882059676706941251848796188681900541308813468938822775584249585628953054963428916403108581624721594803861367855738124665714092707362624769914189798651727488430198169988087502715026609404162010504473173721241851529116300931725886126688538092349978000017270179230898898809360387681955052136580405949410327954913691572045021899707992794386172855018764198304890858599806360122719343430666177977555323821407661160394952771905219063013653131672752328016746120201436668213110464206805478832739806985963428737029530001801863760195638343013473616680301137398254958913124800145345728684682310929151308375387295693322316409758880730929656732286691238709193675660498055722589223528936376075670243955897051208104640977155884258841046665027439810497581858971038020126626366411348045961328152316874210518378484005742308486978974678551764090647603086170136995811489309528057995749134489059494544966732969965362003488361567124450490748215885364653066250546759869272424051273556497763762960303810994592106308121035113227413858014378625396571093215215996063065522335305377151342879545527238197228657863796790427153047930397952468547438958524476101220870344689136254215630786139096920146309027381145348186576080248641476903206398561138260061899357364495200989833271635431765523598665087533579602893381786829574708740080568283122883665459656642305775521737533721489007055197706915053513808420058075784936299225511189102539044789788159514016002191957590094321941071976136731648318731628494247970800284722500799633452934026700501291772625339024962233828793293694751144172420622248563459060489931458181026224505338992118467668577905254197753708603275703294660599430074114023215506251709166893710025698441461269394176271890619824977785272616584357073149717748771807512366436475535795944134145700612934453727666570326663621503834221091477947287626627428682302063664211970686584476479787399337833563165621106176829980121805082217914324987610934726345342341299718222605591785025754936064244216169303572679718473181308621540148342246783650618862843553175092683413070787903389970836643881453034165374300624289601257781699006624786513519415143251132061377587583300749673213285442270039808048836051445858855623804651324047754817166082612084489892780912979708508059384046413851260026070812014788925121390150194793534783551947259415909753431643188696591357687081719114755473249687365614067454648716465717643160519063611578703833330221816671623581714903462461672221282610278825373617513518475613351903646370908534157994330549784831888173655272059702344432090550376994787605462696786546416051109312055529105860941290871796693104539982307747647897456560271279716176205390074281941524256383462468198057552050141219235880434955502788280224370522975222198535897580027622592105807247941107578275858296507283458460824203542111697594010835759301169612635661729783041343896762420728430503631350151545606689726311210880931657651212864877353023468699502006586278950276792545585580286740504059146838164017369038296799743052223074093329579446599830325997441187421111900646204943714553724690611006081512374925647721147004009031372191636186824854496992704205760700767492645851277875462370373344094372743363509228567976366591256299305734629908687364454744830639553649112889982355579061897912531190159288059913085468904936625244553902707952064647710310083914414497063463032585685136497566126182825901015266402325453429075231094423313428333971470739291937077389129750403029862889055060877863977068887043164622512921253774285861640715686881643082732335774508916593836227499789483790651345823559080219322212211881109323972491075654531046291201129872379671723959663879785725795252229575102252236006150173109356297266699991460406861249335413913593866359266766683405092206203210440533494390655974362931571907523852981495550823858624551907106133795250604290947110323154535014681634835027038120326397299141189490414360668194528459319469580635367755111516350907697332472837218983162812102606234689991906991943492317256876946436634750036320793648673669373211491124046572867258244655829638953251430252434601032654043163602729079370171092107358296540205120504773699717198610067750372002717468558980237516119123195771258051863230942117059131661710862091910115679779328516605421563100011027884534095002649770836545835986849680157795586610632776349729998373928988103439962279213408851678430996435346721414650914140498579431075582256838620641318024448446227796507316186864954989020583876454492142841594673084745723825735067104036425492428314703891389056108893875529677045640623043593555108304862103688515079158277671894569403818033730197074605010649639921388782546047439481378293152554534633670840042622290179933650826121104282520092411003564314269686545530430974169626261728652275991957377887080012386875583332088068612765366126420476283898615131688123175746005832596588099959253531422246252548392349398046153623535531622811926084936707884316320852070383792109076468279040344080081073595493073363568381011503235184101880148272478288998084894697969541218789247143410244400210954464015604684089735782030952910633915190107612180252142620066869469034982027777377215430751164743828717506889662187649761554860488678621964959865164454759664525102804067292057940028904581519525428045537961107164751477340758121054842631978983062130459510365781696006093581403850981147960617154944991480266840691743992746948780591436889419647412108070038997260626996907862455655991233737763990076259098890312421213824499429667818370761367498641495919369997396369154247607576479814561322532200303433852528710192016048460343485559304906235046608345572770075341549124158552853559896184324750507667223629612045128080172804499636079907988728828811345821795568126177951893132706358279981268243847582173446588789820344555508402385439101898123690751844716388146041668054797297633409344007707294802635432796894141464583688346450757616756854887910714108471448489177999577993846390811894125759676193942845327421294058550925079183258081072727460716725039474276464111306937442234012604788438238019306163860869408602649838329660790461099726129648429322923889826389232198397531446543460870826657157029483259041071430002780645977299450537946223224768575079695492854694498027920107052543549832806416794350385223948322637987017378363041517586431221596458151580753340979515235019189625713672777859892771419257303462783618305759265558805763615703040028371412092951171765005783466072332088460867886293779053875873916887931317088648821911471083273585654216660833034933458184705176544250470658201820360555835518299890656518797752628349628702818685883692814260538670602785660745052827422937125207626575523214826584181723045038371739082026220311481161963442862232330039495319409117417640270127725191737433443309709958891601208076150243234567099099904033164106585732824142897369207271117277858113446941375484195697254380337172166886818220728649573377339238720369741229174331438566152907873326206787044832149843117817823927523109805136895506966334067632899470099084347163810636323328961894257964881391981455198049079507763846960079166964276763927104899826977611748974841173397532526152361796422303478387234693064131819621376698373890188967392624846709836049450050197135617077686095397066280489618655282670664298706727339144432435196040255701469995743448562464803599009344844674803897806280246037618048559304015818820284247947545703892219083902505412636439508032206408361763148278610433195907170834481387506235207786123710743998930598196473526427666370708305395077556778075562711014465588034569305515919782446234062388012513691312581823114371992515370697458003283690034810434929802430508886294674616067324603475187068148485570961214137257017904252689701012971339758942749757191920492115614528146292168865203776939921983865514578021535576992890697064680708961158613730942100629269056638433184641079478298849752317796438180417128916924963739814807129258741145895834384275153263714564740864836854071978825221579838892148250104107778863107201012378743474247805709461144530691299554927301040926418038512476124826779202192725478024934156367886278842509165460787508147111707748644990794898506349100846695148414920681921327831657066594267795809715666833467305352300347255678291988090324737376394795603748190027733961208740657408330082774888255548646005258736294121145844942197791756836759813275987051419728740513294266783280857525003698481222070389540549869808190906117373856966010215450907130455496303963799665832454660531525924934156131343216568982097128918424390374901191828896587840906954300041787003595261028113764598509752336371391722724658051486440973577786542543657000599303965036964979725922105357981978673446372959100622958426092911881347859672179874915841632379732632478266380910611119707764663129888929911278376125199855179734690335913691095319391933404470035677279618939000357503413786708276635952646226884109351986399954414914517642377428459358049632669242556003385964844111495059937626143974580779283794066469599719044536256353246856532153370406204673185625638876208824797215985275124702158633458367649195873385380379749818026525347722647730090388260972768490535677630784725885832247548525209438634703350956009136406404879485070072056192447833493180540155377571828057937197165915801196041086744334773301949674914222637506340194434132925428477285742760280112777393216622223288661293375152120756480483387962286884072896101461506853596732553991774843343074757460718814856737965147602904650101687291154377059160913130002545997117690423853574420001263045033304582556185073186271095589576886663268586155456023121285910713917179152384920090158982663048451552672577348205111092014100991673390590432305424060404497585285203416483611612180111478724938472518901886373958966004906573298020059317908255052027391893138020690603613239986510828823269628869357599515819532233177258749502802304002726344160321763702089451392147958196567933204278840880208715974227683142973745358633038018901617930410505727727274108158900856470030541080422369722617041505303555282116680185319346645084139900767631642533730063833380504015855864857003932668350676368657963317753751065214019985318103644608010200072398237464057713919405611809237818296872137836551167294980983997081465533098260353593177375438410578016510809037471402163866574288294859901974648382951067603955692624224328382762683805401486894721208446730955422686025303981076740692934953280974131289035000745198194757097944939525610878429755727733136737872117702469785271358864663227275521160602628680093566702558060583104976533641427190857742466061475018625222622688120993999471836097069170700800884800531865626229029983886166940007892814315234108695708459914367132392463887249450040406678792782134551065343720482265472860562583306131524322489564768470820097376682064329063496368691204225515231033422445141043114639843818101183826907965533288414575218106798866927018659485509661184943116494939736243310507322876112853085017811905400120757536611572797525445412477442567667206739401644272587361105995850741221458454655861733461369380474102114054821358383263427802683684753188250706402848554658888583141552823323078930716053204709218775487252632296479715510481049363434539018164386625848858767065080034110468289825482510548526975869095983965480250383999663483869084971555802274972269876716470072460875716007081359141120083581922069446541424801468573799165482401464921878478729746476128121240690974545574375872628396192316486051853041438236680969528003818868117579109285873022506889935869390899466833699897649038240871682595342230316030029257800387441009928817246412964328808839817909452934082412189595049014815413955695169345167826108187334203900811672122790559770545118625304288092345243409816865737404182789171490938645180326758774068146639507891798000544287374429825494608277139122046564357022756261066358730650055076107435511721145166802107654599723867974775312095150173270132872105418994256731615051732546594779652676680817870019219209387909828185047720556358945332740952908391520771527272276597959846773966819830360502349199036850346385723843840926963718406584009430761732931278429934453274050581401564101759039214534921404381022795366856517869573210965040400027752951589421913161121076702539867214968339618556322643992421881258063070527990714613016666389632779428501545229745154425505211686377912060148735673781380486584738819078200480189748321427975100711970996415316653432468966205300629036605010257870389882600301742334802827404628912462671240371396039660367408748607486292533806915913814840673686371338505897324266259098907009825115915963691594046698353028345542494244809598525997306879566830165048067711042059208969269978605448597719565699795654827947767914510705296653806344070051696846427741873764899444498610030107439208484134460325360977982737330593493679543794262944032914575510494685350490897586013181592281377840493992655265385806213444445931309713602576833887835960714454412899496097781195546226877513876861191979318051315747650461197393021770234987921972097912250801038739681044532947689824595859025688952960071716591125327565019053465782090007442844676777318464122293151507202686363927938470341089318891671086646842160213359079073763316396034089554884213547940104039876385662602909986214043895337048826987370834016389184188694817457608701741654544928422489219388868360715452099321245599401958382796567852038053081855535932494971662027896513374464299272589703070457936494273469792115700575730023518794740667772343033709849807345051504194888127852966157653076439638120289887424923908271904526492638580549118737390733294250350879300323138283349034102671847984811142248090758177961940294548928726303991499387348812790419501845816943963616187744648603151994209469430654066967919601943625395587420269739210600233152299679179417343754278262169255909937562600007868939629241023911288604638376495381497879363172956316300337499637939582716744298873723487116793615170145377865812322498053962575858601995513977315505671878115669533939464650415192089958429679123819863256241070282095838558112491912669325992382741389316719137762616361868468343356482669536514502259441810310339238290025952608421579932091165105365403970487531347075035926056163863655929848318552915398872846863947324418096464631931966047915460500930048664773507563895943115266953165600064289962265907535119077558795243103995181266258018677042730970315365276749532744498295749254646226620960441747161450572669729691769411868263360947263346773968294213497474715900327812592464163482237701346884640554813380662323781448977723307309779220195818594966504537427876707805242465561080554303571012472041467850467624342195587174381615626106677576513148324990569304540864610741985697756358499181285510374809198526404188985887527929962431029252874499628205320606068224066421212124053399389967476890523251409867411760172046813635072610217333514024061464249208653268817216576815403517947458500501319555538607997289313516156468543579596905502544369352606003380003750851965642069642332842865486392214229161740395336374503431828978387189266398831220298327858116490323252437925772602599970340645819667568332606327147634023056852288981139497726087396216554795525040638504906300110727564942363568496145960088789451668610465527290552426575477641111247155552450876390899357577285654653248182506807163028688790966660123060063804438069635571899719722450714544320594339420828266356065388510460050400022832611075431626515091726179335929222629760851506336442426895648083802075835105819970727003126011885965980148939870132739764566136827115253887465009836135466909746369257194937164631198846821566443801731420469662388283255558350814797876779871593289972352115962313213551311246774364566432148911341699976610501726730751465067056577521304284595333207145814929353499023857204231546717067759118105248309664896772014664154566876268497810969888364121712169409593950848682817315934986303460195021516341551231410724092471123345410371533134261485695441849299610904583494108481144293296077802139315319479859615479073214319595960981362362896423227104007953894244577901403194777403507184084158985708746344304882677535039714376584603736118754413685142260381712780924099323933243754937961973952795557594180756710935796040696746500852406356935233989336879245891093543504549521625776983352746287878880947098288628377697937867798534258233320454403118420116934168900940203876815485851365555110843374546823971397735307577330505876520978728450228960427319509174879216066104718974485555284914169425571832145538349282036522072095042296727800865462195419366545842938848664046211554954264103390120494321110981214231127029597433939419819788047159641442558334870444109161648907887200612758376416441192884124118762157422488284347366155311686335359565206882879057539037307325751655875959263397496077559300993657027274929485524747224805221106657606231027522874507163032405572205515451881539501977978087879892449076963008799271983221586034093809644890642462403888284935277741892632485537004814720655700002780005639515393164364781739804875918395694273095499032352615258558961782362881859024919933028625876406844149087311306111188810928289273960046241308375378331164195754294332553917758921833203752436173719206165603995069669184080406334504066318821172433856840928932478525342587258860555601099128297527374659890950110280166002713042758214099325511477305420029781598586722587758088476974165840467503194216522271199823985681044962893987745025830666389194782605707149561037037517736251124302097876823333079826965506623377546899516067653009316733565328561592841954225165785435557288912933236806311355913776390888259089404248536699372986890086191702256293289041184024302139689602352935739590437472392817519801152783608713234546985824856529740863837985337466073392159046937690964371913711842391270185776332290195301332648833205055434226177506170365925883377884768204774045954412254316747358080660076229624340578414075194762978353635673069004144652691930430677653330606388534399977816800475090693284113552639412194086733823267693785003906852778857411170552166360372188600457620492402575945232257315537052886067374662846660080138844900098039831984631574042038174239479463870606738377998284556579386477120840564265110750710174108912527121793288347049050775749012259757307346521832596585665014058843709384589887778046444256466632135001219168739316664522358948640399960736098747890292803110349968632084186956296566483538647299378326895333701974571053306383577356729635450587317972608849299875727121347050342160588697033081417297299438657263918417636442340483364054259650972763856826899115751190794432292196183894304871893597297874548017497788850369700964144834434312655730168873135247505077572346849243502838472335292049357112415619737695994225495317233812162554337149833854337815780432880445904634003423324565871488767553883019241797833399816076569184896022646627259686873617535058832813999217588837577205514828099918060313395681708150939186502410374843058486201548353988515333597677111996704843750839047269356784831407968979076002026777950901929236200537508220482390020305840327089624733563299838457134727586573248628546392655987573216793276595166675643135617178577892014331904350853520757812671112181329226496669662762950586343117723025568335959167608678304229718399677122980598942394282431080444750305038099443716481294830536043699185405989557371907314780969848210655442934474723990601936917983218360640864768636756186386518804094122948581729771447181271773185495084572083327800260374838154094072795647984907956950904299549476535479849066744717629350901424255380761614140518575274884898006177525214124493793978084264075760661823771449634178983774355456446728512243779311286600715333696740487578028057835742744985242497892548460606187918200019117973503606449024797698717699056927645221811888135918446048268480141638022726076574549631979520337596225774436671233976285325115789105884105955935387547566735541304390638407518074196624667547787047125158267073074397082277513503144764112585876699059572825859546842774807188242830747526316521544788770195394882504064791742873866992144504081022278243186512595446246932082394526375558512795593486630344144792179324969740430787347584122533747536239622778184736770753331709835807666405634972144079987428158456442202096569970795846904863936201799058656606177087236168014665993363931927131384642917631414186182016382213590042396089845770291694245576996949498616145888637246087277854560427265069319830803951255243047794582662602711542908487564928906692322378693478798188980991896052942612307429877561165677391283811919679801730830161606000380425402943017100071895200415799269672382585874404829560060724078801177352668954810594525130482502248105625215658588683425757833617915445482636911378686638552564489070784553920303103582974546357715674634444478336888728095159074444697066244533007559870950959505059620103027850014798248723798738600938980317230001462953078808833304109874178547774249599850322702212021831220628116669998604408106512888097084777669246348962406939879668467189461535732764137592495542556996025190087159061481603245798392347936228603209148763418605359470401239405137201707440963363807894001886410183024059746256523479078976999242225211732960845031276700207764128318428540195840165242078198737331092877945412923348519951474558757493535389358840695316809739194654386971053936198267519452807069878538497919232869632109451776222168217860350491958029452016945191258750271562362169692294758881089664370454670660531926111745256816405882902949166761350979949428019075332304426187336454729234581748665454105590525358233473267512441304828932432261837190202790656804842079781789089472580545787014349693003153108738073798216429434742733951668719550836695441215212392668144376624794897950548960538865245893596890823469246413849568163329310357530852007075948689150218363803379053778816760932225127978032548289685289367687616212185432712517692062126659344346257958983409899011493249891017130033688964815822912189146854372269297202985238586852978744454080245938002011809806768738636205050183018678379708549456291237990234834440122141283410633283308225282681570991954541186954029863570748821204850626634729877654635040060001964908170004238555098722703449853090924355287063532673586667365051336026014680366386141872239616491054586949996945227417621582979287056016866998417774291169193118417820432765069784534351293161748696599787938623219299329311286360160752621268014643278441728164043731563576949976288817184799781103427823406397673456486603030388901438362972281715829794500420254265331993734380476308734453211399273278334776233410672832694783562671745339704699062158399859300286961400475244367330995227684006312136917218369973810134952157706887061298881566173269418363719573691523677204254425359270897281986858915834004204791778891580830208955667290436778542663979067108485645687934944835750430941470558374285773906095650898762035314852864539753521037861944795781349438323815849271301672779158357945673738719662307254493443307769335750866222404288160205730082026959065509256448578811523566435285229911910895440187097699163625357367714967773905376641598564288462307953248552981342632628264480169185968269155160316102907531971622709391798813435263790316642188773544782204952948725682448023520887134540031939854989796691369478476237627236664619341428099872385267568069410953095050112412410796938773218241342264306866211161098300430398264077791983734064431219616382788707293783037213030051062984946247952408859839237124832944786347207901228834646874127136339706467259341852664754428116202370405566582242294660129643564835038074783782237773655331689698142935575615036046983723119403873420505538715711735618168832107746916297949700164144354048262696215167582025980060003542300122233365598861561558277283977140565196647274373518309799977121702427713873408945821575576557664461620063920245960847369923909711983285253630223078576982661086863702430983279150345892513035714724585416715433503735737223165728686406803609491951919409743464659529738612978855836190129546877503095976940219907999169512699246992203644082514802931842894865558838088807011711008957138231652255622168793370403651955236058106119791426903298098027316536562473660150549536768723599920948883220626701295106832262484778538074940896390342358681232795330488215464730328503352222453650611315922233620623839791047401961401641405791630316380371018337193946702659346437348860310715828367803352721820209555731111301178876852236316358874971164770408989946830187015201150059148945565884896993088112927460965190836290929808851518471588353370571495514492899531693063201213614620393321645308378118173119112205369494737098712742696465512736673418300937629884591633144270859268801085440996587195736167103147395619197185701713711909531581822859981326297219047402802702239859297993949310266815193326482185214986437633429175800065714687961794940644798160610886064941224039885796802775432369483993763970265287813915561463336011226346316386977210315640418066198436973035798413642918365445593270621581243918853626737067851697945731666174518298629282589687439725474331752745407264071395483371019225549193080900670736431442684261425573662794770944483858830318313830895049297733417574751538926117047166660323014846350662158004732030167226841198638777607122409630099185428161753488596630584409819302411952360825396174517420405624052081600438710713619219347777706339753097527038747523674945733187067741535933072401442551492746704391761099928252686105079362793781354342769346589679270725664643460326194807663928430468882918553775001016763728104430672154901467039053300313326357606771555762944611724454453365055359763314627979187506348524240808986900464805046239738015697903857750118512355393822526873854729469467515061813397578107290349901522706595740164798355293057966425999746202439240128619448776810323366158750903172304239433516345781587348353816554409571421918472980350477980517269921834384537488099319765643024781047698376319749032868729548801739336473320246865205189919794845157632174784942938091345411418663359926875584320286936223196283911268665417243806875593771184159111922935763125161282488974153317382388554598416259711665902561980087441190856116351216674016959319569340509085594231816658395164799402418164728717176742713862297419312084661783986552726517932114404405044397180709416643826742403757812799111272801521029767447201292602750634388763797551508087177391451118578445456694353600762986532033301881476553051087938345758400976370768257418541379092378158284177994903184160835813142594172998150814622806635022909060063663185690751229963332027733087938784873180150057817247784168600433017727531859948443149374768159223180707239885481771619701281610901680728014095039898085128088207510388882635983893096681011567968939406819464220821975460714681949281334758267442722625427748593836564788373741108264791388542990604942735724386186320128777283716262361648026657099888343408523862413649659985405976146889552129279455727727640659487501028704908611486284933742598056664750828492135047523411010672821988877893470629913443785866834422652042472539371839637495915161339334940737335123353611888682830537716777736138116807025136637056602062923618681769988123209179716121492350477027631811769808799425535190221910363740585722156859670249244457815158160992829178172839482013957974194851652496648089665357649714649312462277842670269803864972712596060980677672151031684853589561476577761310137484733383212186382962780877797915269356978940696633911910740105632956015987344312556169832024319963617472085764761504181510514355194908036893038567250861568493375469404591391649009960399188764131123091790976342005883879262469223966731633746586144546433629450219990349740328066395042549181255864900471290169760744023871697040743488522686965864282859069305696269182467393033237894288301272637364676981729328230895903437345039805136110378886079354688772867952567232377250179682108863932611884019069397112987117173344825434578081773116443124277702562244971126985996542302916404897588645459625510552608338653077246605519071130583425318180816088449275128880486236059074744058594433700039137678239651539011594274225254538791536608649186093692394239757435152622038206596543597572450090951523694101546866778033561128994583593767112253685072511111200440594924398817422669384530582209943133310281331575250742626838016583280442702730817847584696062613465048766356757024826518360790919084111912829814526855827542822993053736418475141591957714130014934761684005680482375232331065278134131712174987756276618340360949330288750258471997413092886344146723286788914014399058047520747471309734464803483500219109369350907079704542319361168006879539957920157777183543273259586894945192192532393440804562220503294347181335904243425120776061914364899302260762660354941638446913774690497089709978125948701370500141168517982917859291642904136296294910272336718660414741379206675623741262380843115294578185565269330661893036007887649058450706769672372399004461575090097769139373025295751996664011803874642468562806167895310005505669116545667100385143740551547407275421832129282607550303058239941063064339346767561705582590563333862788014984162984442615395289173369717863393435411784423004524838897482958632134314381655615446232648893320685658875791679916699334190525182120606992948996120677095932298928778756365554478762525687975168335874646473371149986991298143950180659669645948890952718752186833425055144611912841348887872386195522921603937177322963934713638494257764596658970550280422242674919102146439676342953481543432004130673102506616173876561941572261821560957249970994232611114317396354634364369809657212992982980441225481562782419165216187009216401897216038540614461958871379620081711560503789065994335994823704505378896863237747662688725319048284976583589574845070204418910705780599115066637541256999608977196509405424960464365722242387024841574588803045431593984548326904497027581913085618537955640219288761438452193158703032344453153980096977593746639884014943312364395356317284407187588193088228464813818707054871704756002638425086160961187323380332796890797302205464950056560660212714369119221202685417826051143399125675932632824688316186896371556174250786267887668673275150197557523552830373723684571766909145447139232005873013974574217550050360971110690596864767858067677169152469959384868320230597161808052053058112384700619665658757904764127945252257150769913202801117649993216000393163243212403499322800294695281636000186276150555387073582377012107588277067253597636775456644989850202091908266508586639410975656055918222322465122704009468871841424530396655974431033345248072576805705753623526322768360986003360942166904464970855916946980761527689513514533548818545340776269919859238569249223949190157398879510867841772854756724802040800845573067911537256999143749347955724295470890645462888929389857372568402378105646227708831465798475265507466368896159125442137888028536052612863290756137711844868317615522920887421427117017287527856867829050493390152579011825098525483583050312412913236625975179164712171608845308129369573370175875270415075675504912847957292837397248987600676159464423832952479800898771079006642265801210828718998936679490241546892577937516472721937376341811382581307860266181932622745641407722062979153045132083821367287473257263237174072807052153617203447179202102245367480081165970606360883193611111379992037483881596669453145749692907073206863713644047759833896967199104362187736547668151103221636100014066998464897309413105440565675149394866872915472269644941366395060305706540394134157345569275906466870749722989641514566409753138223974084651310778889122314725225840129687200679564232315652589542902084279304406309292001548703604269128046317078672711255945524304216285890091216229778561809732293745994882701628304218053296189362945776970759892247083183076019194592975583808678569717632279022374503645146304039477535239810522177169903638388200686671687908431427981373711489727001320306322485660450070572949991128440295295921554991791382180014484228452653585764391275457267514107705872950246970093278765482346328316368941994808943004594201806039108569860212873134302360785261296142323338619500670120424805444395010538676687194333113450220795206806986855470935525504899266572044447306921438012223752329595769033496715287244713090578012776398284323318401437355711603502449608730871467082403858446877458417659833705544301042220833645008453872247016976723904459830194792420853849126797020385152559199803754050646173271617736926765624349021194824562887711477570975182361172764995379780014128500160445058333727977422183203387857645703676107676030910957006858955395381447602151069203118762012932861996548742830406208295329871355429339094949137744625836260026059009872955190910910067795038364435414153143297597207751446399544109515731992270024234317239147949655054347319757430956606037077658633122790529835801498605053482141213279689321027648675452139496506155263311551351027185032026208124273680796220809618858611867272085388640478327895938343949809614639269159211222252019360476754268329619704123388209892895760188887030285608500375951583146059818093653279648591192996437439245539987346523822014017398848056934107347694711652156143173352146302213564789588133195220868207937980046155979616544465719609866117003314852306836957779216021933850730057965891940068266738260273334588181683606138376600644501736545876160757062428828294181155855586028328489134245169849388963243634905889571767982707779260450782412715667199536509229552233469935314576785067214399366819359799831022534798651618166549155254347438914792451088441054825349945271069066333582773101530867091874492991258462545771049143936254781526646062949412111250373773695700527690354691744352787461601406440226441681071024468092164821708799166169632992375450177157100124695360594050075042096441572467389915835440701069398149102292371335746246048276407958871830720947623307835895319516608654769852998950579489304242286278064700605814832424481060405465127295902319717216660980842004656712638160810245113489063159114277531290057442842503141770107164149494706897714411668682270424174746035794266331227700873252097647967464360044915407578073903834619572838469751456569017393669149693133216342745064953434175047227931721994462919755766863832206260108251224047163017439372190820702453086328045073859423385929620440542504986100051090136034070641028187456974285431274082013096491460623470604249805858825863177913008635896728259179164676393582094282781873764815116840254823090830411467640531472822697296875291582999858848540909752749588520103642732029017314406023687958352390526383135141306515344208945203502027079246356968868653747854909897104940134574730717631182482721342604472567667005662253999688578109171718335123586515486525469891967200606348911664540996804418238170628559454765962287193204677077759657735017579829829534187761201281792168460499623834108319351594016090499222731688830779559519637758097714126312049964250552239212263298167357360586160019454967706110710107358550390193191723388023858841425553497875909315715548489792214449755118335298519574720852729341310958495265674297798969098094272674409532677610873502927250648648971000390284544562982106051958779272768997607841800369160175658060603068529063566531029557714220606852929561942330285644486704679189971137249877910406988650777856262515346939334383578449117586134238871537636349580712993378668838295256379438823516846506865776094333574432447727301290831034094399735367524993096944248051426510895979249512420449479229880583768645391930364346100396268536632533426988634897261854711205140880268453054859538475986335377611288202463565860523642070262438673911619222956226323012352543946002234284837218430939402887180681112476746464610886250154268682913051528918250245513358552206543269447531411965772234344799080255467642449321658968415907177739890394830424483259927724897409599328801876913762433943587618312022672981179754634896012898867767197371717684140812601116287733859435729458070025897781399067759037159066245958094917430263328596398579571371263832224951873869050001797656465032638369736084092818603964876851015188218747645277066123836849528474860551826023340814624663620810909159350659170052105298930284040392595983929783436949009834288468473888781465564073373437860293895936548897702647972989582944170216441766820098848352865216246769393173585831530962031531724082379581889950821117992777388042561974288072253204398230271382805224636712845890249537902162493067427615941243748182974495794783775837934726589945269073191737526631506278877646321551626414579913722918984151602747743421328294217218939737326983549586205926171774063904639430268537002030632155041769151107480119973939755456602829552268518152576329731569381288156083370695773802633870318647562012634130402895139393760848049036274967326758909875332645553036171088175705952182266594432923153091701399180369153032659039929494413220123403241213632467125483225798976946265446712872486498748967501849822744403119484250527201708303446728770966773651340042780098624164557895661178024247215076307580401175413884873014067581224421289777532991754446687798266166269322018027007814992991821889655258061117405403689802078473344507512750824965763439175002619767211577680188813702984945339366066040804176694553773608562059932359892806710739710938803064223854980260271351555985114389714588968531211522675769234760943357303506787666956670274238206380274562430292883143489288992734278633380248546929904113944447223772723056382873776375595179005101442188440059369780713820072681927594355057703404704600792877894310314423225323684600347305520752237023637229089270411251738583284664122835177545042639554218809538100095819510614588661264300180025688298306437934247628392476824724347770907724347932062945543931894631916050261887439471529433996282123781095727946683937829615040082964554247224605373345279490101598163167092794449880830079573718662120233435000119523616511233578506371589886468473335436094439192001594643964367479508119115947045134785456378977186351128742802460938244669763519398382267358965641109501716287516322917873281076519391017159265742652017920188698440067877076845130237655286284949382726840420026538122669000980193604394128049173682464763995366794544845985689199919574555802666295386529970167070390112180697088445530485376274120416940063244664039897369763746964874269817876854620367097509368339368404267461101193125588851119569002265012463528261576981654297503288991856107007734271609563364881454016763717272375688097133054876385174622199606629390509095586444429670941529325553212721882729536094363753596734498883709944276658117404090344126905641873565159178185145153344375201354088946694904429382655469959834112673105137785586144909695536343271162001825270388827380157118436034357384237529322838050949487693856446452895491749033595905760520824616982735929394084593983450475070483443067206915589321895380588507751956159584466414535111145341733909254876103544401461097422642855575405780840344671137368068275752963787740245639928597470949460100724072992698941132378333570788656068134885450417982894027690124367078933474922078797011839269578591560934700079511314526355793589652231129598713793035937644507912846300308132943752213029290489841469564721893733602560979551461056491249436980376683486972494755204029429048326527011891343929406405289773850832135590288696915828366596015040320799640095818298890540460747851896869782240477892987326220118980443451247990560425326786005855842898880969968699936872149831752970529133642682908678134036407952087045844909048162615448560901837053272751502665236153903001456709252232813898976944548863142324028331702209727416062589496389378041027569272460955956849608053771137349746578068516001992390987649859974166439505052985618619321934091147929147250453751873998983725038931453822179059135510567067734020441283360076625658803921543935716271922032532050632303346144122111796350044044637104846198404250096455228532967823035905628694358319550872920234756428598044587638689778343257708100173773385191529396572927251735023456800300794091015405331037376436055128060912884859939597315540296620531638182012913030728726991661941220619544410064163067810052291267501922127271733239117065152010338531135886440876373677419026021986121637938706467740170014289686826026048712568598251441945786293503850675358954559826482782943698337261919844934435541253421693893610363232489945259413667586635762105016086056215990931857651732937266895929276221520107694438519936254654429210480262656338178902576342720822949016396738559444774294088672285831931427533730916756245130226020438947980613846767349657061108607808656272210705965066272195374066840190875291743197407027162379801226208577569950853212900127065234555001170728017161329427545623971723612862534727900952940212139777809849684624928920407966776332717411245529116323782934373894748513077900841804606870865043260892019780226679379195624542045543942753186996102868588863071464957932307858098826468397320534663302066791530425414704378997342689445799303796808021643367573424321590286602609132674037709659167988783273699737827255286150830494173298164629425714716173561289194773529507669695994374348835618923453204198857251619800081922813239152743002570224943213359578308997704169966848715878204508589245031267674403100612597901627481829672129967558419514389614174176477050668370987590009478398439259037535716000321571908598226454217425423310265726848223526732479230057453686781390832170411408168421928488050929548725103477392745634730558776242593556461318571222522700950884489087604153651912843536883973170415747497508669866841105759693571911178396675300905725528132648528043649579222739857037285382582976908387890729476149858222024730779117097182236487538373700298468012728911324049122479593982102425425955373786027833143894611028931169111253854970278649249351919681061982261112178431577244655429870261955826379586008523715521535002130238662407952589030480101029510910960179112154755507226236604846439471533247179373507673970981462382195048884540861832934483132617006801467956369940198796880875489818978333808629830432261532221437675077309831841154337828592794637453410444667857001782571942085317667890209749544212470711570571743161447042314941823572771748783135123911898272000150309183880658689402747221107416089405269862749693571507177581822872152796542331910965686324072539995599791603021850756968006206706436141045091547448356755040256532227173673288986420756768116561765166900531445882795755644836420588978277453858095173817610732745942935216660392748885930599983921827088450017246597694057284608671517552709560574354953777579365332573636554371347741592627390808962150687849956167092294639895273933261176424740574188774453967761130430357271907094520966124524553495918525571175128352571819938446171732420996330062196416597775529638658747872982300721650928481928206816797292519117005194383356051524777694586947693172969843445055358948691412189416281448107842677882152128276209989574005484147452533368511434916805370053186186138946928083140045932691937802656649886529859845050115375730376269199279245561945027791526605084961556842611835559955239202002770848694885337076114234225017048315295779454410598755105719970969167925770261697449369433362783823321724469794020740269082645524124645246072323489950432669167541481622150412899798603659771559805788860127352143572917266112272888923706571473351384746427164341955128578867832194769582151193623492636468254585977956050557131224130647474602526971618555870978229742516558757674201649676588237154576221816611882129733260592358847207275964935126065724601735721248375152897264154514253301808500013933242025242647175028035407729243558639772397127336992264756588787116209129224193552989888149514215615014907593882653454706359583840115686628873596763924728764868112982770766497118219133709533608180083808177415139703832529593037228615746767238039063057539030675172981333503006386650157227241870832865875693524801690935959479934252133443283258751054519412056313664994808247226416757181144546535074976470787787800661721463511301220360871624570133950048710373773872235056446415613716873313001180954541998494731345295166828670465698818489582431026822361579346103522225419489736656120339688282869509255959985319594543679186318101508832530407498691140780446474503547291396986916134454028965221537982717974201450315871726590466879462622716613825590387919223473754369493074890504026467784802657519916263330786503581173065064787823056781221250074937510145592702446276149307443655344717170911629883889121365499434900930371550907585973470376821475393847724321860718910522573988318994108320567068875906801030452754217730235753877465281943587473996729975252206679938174435539776582854088602630538849284247124887081192222082522928322558143792176535321052945064518416820823459135212290326703578122741243027793183587584496499674586917025888869312106264392520763995645530647935301250047282233145581709081553956505515095940263869066171323748719151518363406301123496501711547435735109802316302674238140669202599434145637765385795933167096892676783829895690384658915658252732724082423197368751836370124088900534919203945184469818744246571340166528006764039410900388603083728084603251447403753675095875268599826099344497098643370269071248651686769227577559606809653018650611482832728201407870616102750322179410359607522176052538812776012400727532281834209576997349385260027664284512281089622830126444651832056671358058042235935321046572454418131903226573431390972521943508552576087216165857642192172137607718077542209302193835877707343651753375403820506157904683061023262745894463649999078762918408615712020560202882146838299333144769214451935040318547873625050347281355428734758603890865543290614332555098721469442958625601511988340238398105710187649356871713677005416960244918823834697398314001212006371901111559596240636887108383058659530966880446251398217918707090159641115885493624721548351440618825328210582635453703254330106156896281504927744535351102195941808650500020102863315159599267073265884800368303024933545978168350442677888235953724324202536711507293124779517485830845662274913186127230039596862588386138249044219472107060507329997690290893519343402361760933972665509691955751915638543486006907611968976522727345173831803559440696200796429235971302738127589890929529819716553501802929591952094065570506252743229721543604104795061196145288805100222223947411559902645776535153747198644193983647293065463104373878069512096985309476830181406356088987636679861502636578513338708789283484680747487703958073815329118827992966325027554510432589146732584192629324770344366678552703745534002804118224306974347184041629578882971458875158840493533742692124190214191049123204552434760537349736536446168386425767928036786972165588523788565229730334712344889921085957176236002981627826264331558818536043378472627341185832319248871294676897785349110594481649904104702882492174995161871282208835818480091444457334409049175640282800644743598427185436610214588926617823509774440435275890816331030029054082918300629978851976233018081352668063483696620426195833215068223743600533193517307899193736950193437741909867815870339156245811169374039747943107823729684463147739599996621442359613726497092008488750650690295016022592278567302969181694310780590654240337739838066127297369105314083628106244626130683169539744380909883249264913930749628052188602137563327438599565521103132971200381494680954600180991045090150348240330346687169056760495785134568946464435620695913262727003437694262863683010061268618466528193391637587858633511848462283881176398537502669389834658924203792417582728130373054240966106848327880844189409764398754162885872667820645102229153227530814533308769815678562885604940179136691801781795954838625005693048120971354050257756203566620039527170801382927470114295737453236130939235725200274128727985277126838908823697799864390000716962959629747815844698315045560199956228331223138557088300934293206677682822081208472445131241260820268641907600712407796742247684771031374077040359254042992017987071501184812022545995382493237348519013321490654881258375779551227734070834750668068438907817119895982372079001834453770851619078284769748992947285922399781681478933425111676297829256276330036563461384178155428492477787932619685157385688633679096915048545756584830822425567909504421915285361721338246383873647862811797458051097374569290130461446436724667572601415341631257533729716894190955283722242029324738379060934528080980435689212786255536985138015078581760773969239400642582138548043972141348085777931697712122675516994858761742741891561911298214924052719598754181112741906318046325241893308572337692360296422321735722407036113925976303195762196876741436019673644826904363926057390495210143231658480826339216710343531700562237829729664284426527317027710857036375059857419839100720845447198633681947253102418275543097387259457416898393202753957970284701104641763745190078984955513997970299872651938647779066403087342419191844244357532379906293049537458720301691678134903969544657646228423902269092741210515000737684422888760058486584910949938002888520710816362421983795487534064442201844129556871109347873412075242875517784262421841284776257375336775458635835327615886101824915534419440470108825490724649346286736993926506009467938565629757554993704945444717922095161872521140562963454263038380707984848035743302690940092914654360179916761459134345025053183092174294852261340205415120015303311166356495487118183528045583129358954072727934708582220571586419031099429273116603397017086715579968748855086424399452198929825671502409171197661742477811954147498961519665366663501417006809251975940198937615360299833854003497947843675606347335340870749309839232190331497831549364416613223792216459134370312118294917499309262105403055699866708927737322784252796876784539523404299500148314846654154336448476864695220998815686608391560444310148011473633784526691729807857854508457058285427068166953239661488706406780052348564328141479111802903986928779589490568940739560444457242343752504480156210052103366274258177478440551571055544209362830901437629876524994916982301031463937993734157362483369993084611231752513963892047148373655704506882558094512358827369224574135903473935042630499657397799663564109673777031533433612655149620544297880733227635199496443326660754817003157695547447372631054710759289295785540091030495273962942889289758849741804794871784843579388839439000878654334869845457615351747565226477345921958605436822083496639971303311659263984628645288152047035467711499306508108967691891463686858436223703583065863351768571950354139013351578675753761464987590201777189455568152597663676945389997535029139613026332726361822976563551304028408440862920558715567968496132602098197802006397279258094594767341061950774639095159679636763835345446878435401724377729416225138403264745610256890479827742694592378028289352342010550697753642658438318691342335798367283978045424644814284539061872355563788118081892783549456303522374183921077883161750971039769085564259596059935559122195909299650140284132719166649104953993166315832267995228355159443872698024456031686175298760211074138612205104611807667902595943674175469455045815583781485140666793242496814221798837754592507830793510665920589953488279717514188723181006424259361438366403616338586036128530698897655609754618711325933734676057742275597683612749381388642775888905552816528651389975023495067214107798856499279527380652032659881656498360804206079466112398514042495149462964551225371782631572251660237547494466122802992629258457165784956112681862607839642625902357376663494877971164443195012649751099599759237655437895823673185155669457417401362577078796071303129671470624883300238142487805092917702010378666649196816602345993876378543553525097244067252626471498177607188080100972882498323163793785759711363983971007127351160870652297328864960354444571642029280595752560643959336255274049390810534398381174119934237334553393527338438909852321882649218697147389288721377349272599171670016877213241576592256921648293637261131472667733691978696095874237352310727402279332319035269228777468747560920653464104551694048319634071817523710169049464763559564405400462107189692440287270143976691317610193254033567832395755514835561059349301917816118177902689815673609047516932074168871457510480241298396742171749446206634585810153193556745500278578588323201353692616882366265398166731282791578763410401611813621794206859457286568349080514969032715791617867888232745132302455398141853016592803384909169541128675267335219345673838814314612479147677372457554957199910909605164802859369365552786515652194976197559635470844982270994877450777296268523633157137145528301105063335799984734927399989258601706657731530439226771600602636716449683521093364522899703602788790991082380396242073784357466020117953044922493801052450248516651820560498664775327215620148642820311908302171370529820204049974449269934232331664414494119564816308539568895648812541445805518578847144662173633497609763769957896011054438670413183499104547499447279217352422949854140846501822989087721733543824943309777438413303154915952044136440808839101533586410553862427639541198993850527112588623178358193976367924790135345982927438737293681865172621669271217873086644559402104763884540931950865561670135510061456091870110416089901109660936022740345985448317937503308800804818087427056228649633864233275492726190830106707231161056874377578949279178609933180894779348141378649074894035966175453646889624147437137519959401976416048466759489491396907403203666186440884935341147394824574335234668277515762856508399461531060888965610057534173237568526116834484194959685847733321168930661060229561055524053413495623879183523872489863911259654076404865769199113713941889600997693706545939936297361843847960241686598454958042241737092466557426194872591083623018823429964327178596546161645150528822844268940827166450519501539734564446557886524018574548990185741193496524374629640366010840929217017797052293339642596955183178956663302865429295090355930862749002993735720099046202160829079220024070050739354812545900664982012770816272780517345966066509325164770353857738088920880216214304448843353152474182158329829037056027893132167217998019970642636944352942284453653555577422182863306483261531990554100932334167446094251499714335592515146472359378758713108633844849312602371644280879209627739975353941042019365257515437086228391186462225222868955750550458083477237295664985059512385470210249051351575794173350047959112868785829680953625402190758073028439133678932353722738078134519045764651666865412667395975161704766205325268279749993919279497164050046843123810401410387763935123088212702909426758375657965351796890584560589363587025542608561289477004293966564734349747909200069148080881961282520095285229634895073274549070135852171850310715049978885094094212261526031608303105054786696920411815921834503532701616214548948225568442129345481604966831652138646076702776617991709468087971729000559203909344303657061538599521558387933678530569224417124207428637916606684104174762235284220986433488585882901793379079202909939957712517389889752334425670697994429687303672662160422196107910897370323839315693479939519404959632898143166887683210345509774652290514405445137036771983664809885824371017555281450723463182762146543128690736832099401685017777241375614986423894993017330872415533500488961860434223593449407072854416568209668783862441637495841019012033791285923842639146833674014842458514967479327508156233550914002980754426122367647991692787970476046815469601816552202523517317761147573599021700085793839284445652208017844188822257920196036116201916466194975730240877238195397239373748264638722677578228148095267143313141014718889815141593847520550052619612738144572259992390416658799237326214729666291563086844284863553429620489602557682719673935488536407751660576738906414142704206840730833618919188065602664962383502958778630661802216920779519028981100400745965603512322945814049106762412596547481720756773376334053365991525443869134106099875696918190212925647201584432605154214266971006908221417224157584397508971855274616477076559123379013080381743754877854365668831671785095585586461236967629401893592792038787313096628604060397674172322424464899569413642566425549235670073439617797016937442872558575684135896137828085362582366380205142544722048133633838314053413107849173120553135153176716391627136644054191181012299434215938267630263852224003668317194658936545273854421969734242161683760793673795426379903828791816963472547514527397165663836654288778684350851519612279228830544245400033285086366366224676198217228553665895912705806642908610939002350583828456684994965499218728868353247507089472568282189665600408144623250644373771214229552688682186849776526886752630650450360729833661801140288556944400916890038470868303109032155696679144288937248512519975370888879686779518645533242964056839898945174605483970508365444649300435678869418370516105958146336169732844995933116472334319359217060608867681689457120311712526337974007417275963197571052607219780272835558918605629249938949249062729780924498236710049663173364836786942753680808132246297094969968365503702365931875420918650006039345050787868343254189259856201622157035263360971155788227888660635788090413252025380797716625389818823261425628340619246538014425732101484104678903695330797108248751017580173384933344610113770332386348184151758409311316935359749720560652099647342909183791266800839093391524066109289927438159023409088740323408293501350230211019660230513145755901082541235943470896372560592488651794054943336698383756660115787705467212241668350450521377846397020531697260135390375761464733419748990546870740976510189349526307865454310565668511231593872913585567533126932009598345882556919541582494951046936573274144718259617398893992045994266413630497978277444708764334659244385046357288443090202593794427405967668352267070843369078458641361324185844123548739560561134324243700561180823240939954495700408190353407308304791218610244195652238248196451178021121977043718572595989877829789891725008607690967649801898981938585696410888740982224513466764941497754066588025395431678647718075703879567582996150787057316369925608349762441802163594772481739422716394903176279922307446438883864648465057378952131126011947616503687213193783365904602644863541789978102157972769467635432144508948342868205234020478428462678316856561846213633275654636441637390888167700160847368503640722918125659374414872176716531805216086659226651939753274186998735410458727129922886325181848710549885462383893704683663929372506187256930112248380457974251129872875349724817007527179085134916386536233157399706643964107763877529522152590627665609562069363188819746306873423533034502082417725642280637826937851107954283547530848049942317380901894915652195457329530710833550404556038814679664833618201753763643896171233036328520885969615209740866167756607040616305302618084519478116987491308121735521216484993910010731982449031176237859377852835655084413961796506223261428230253123201849786976430428136597421201897388148547945974014143084546683724736023046567101543924390669187543428005859473643337503233173555592554307532679440849800816205665891177579665366915027453515222010685064048571105589028984979503974505795069634962281089501537421107329994726815862135473231556647099865238052874562840075222030924960952800337306209328506875501663459931310132512922892973864222861311636326108315669500130465269503584384620590393913398131699116273312555468703953475726721905427006616094434281589353395606166438897262574345352926309331094863194573588101186458463672373635195175968559605491643506036531368900081479894772723245210137684131085066780546093660199906191640748553603197040267284018837996839962052146361267777410347998891591636699588357115968558556056133359298122697162464036515484723667319188993950164943491790405753249903150721644591656175606822897205012529489072801957441901674217544125148347110410157266910593400882757657973538164765694236645777958102446357923020577023002266977374330071208544270331256624907644978902661777790228525502874424355036980059035359573441962789734749310393105952933925362495827495753867488019636423357236278681281263844238507906223102410906464780216731667934650785570761270670408901709425582585438234842156693075274234134163551072206751503750906652193042711697613666592495345878600383554261746167742942485605345335117662523577464348598305786033468351262846758146018688637383685516174095386400730106271809497247104303572610308153681381466080687886454763218149627451132660803321514552610052544850197429982830057103583206525428954180162364123443712833765974048619717409258128845623210497023611590486209956477061504724883814618422876243615353429519840993905047929839743142655644505065397503564482323374017114224990746237977257310155155906467633680526908184237617779693175119207690106633416969903103737734579267473741688815855840657186142231783442655983275422568959519455126549386936479555976725303280575463510888692582129127867703054748888864320613949449368550849786716197014539035470231167025518477961441753658970120830462109275416763253331018462541586239847352506571576827744819576131653187156440254033292716283625353055806006314668379493822387015848631999756650657097751665986321227173197186958866800243094916300453462062457277961015207997892644703446959752392965725363599096355588482864570937216606406706160301336121829401265003903230296516759596546633836301395204251966468663176229872446434745127670088654523483450326537009499904439484738479128591811511910137178760602237943265890991892106653802112933994725476357246319959590082449504772102850668283535633955943568583664681012906222729845131437606137556975690737740994533915123178202562042968710827104311521422603270698299765945855275872750292292692797746303871084603374998692682658550416445912340356411871211266141496449057197660864328930548644559849868604252791431621273744733234015352692254676214110524557543808844930994617435648625685096508638103099892024062538000384720724593123448259963529546399648501833453393062968068096036291468674184395088446046157136411878658031896092453380468618157456406946574759951046566425857843991382882966421602217237956021657480560014689277843270733794928673469229089386237000778320476914747360415270676385583930207154652452411378923477383473569474641650279976168743078478510091629943488350374235695973976292726218314831297522629358356436859597942172486977415875038042660540876803688765334778251193030011298336094944847973273924775369223159193546895555552712350646092723604676475752164411091713611991406729540228377059913275526841188912150414009729928666293762436565204780021941857516487312852704759461218279967121555749183475810413304629483227506470566912165778425896294202252283913401498662995921699152575760082880128121703387190604872270837447870390783859985301494507514672641215873881636073174661351586093597404222564285989641243076469858587106716923193350655337383379356204929472940885965173215970343139187712073821242607987714427965155201360081896309589215100616652990908778816104754007291586978968011012600951793466721887447613022853839195550828584095948011447847207082550395215589153454068233679981029707092095575359754942473836991460196343123562391107318483887391657931496210246663208818801888140355413246142054930758037260896630188950722760592610776163639393466934946716015419491284838444414704827805481862635184153442665781312002692434594802951190981630204739650216029114140831933733051510628239349546422739647734414420847085699446737486596019615054411430314989007466160063679463261702764835644930972007762051088727686923258923915940063984654621303832508896902481359850680096557335415344396726253842549117816853086893325186430882555978116341228761167236010799683926141600161539624374109744626256077806416940213868312877090252421751513722985749711803911577429847330046397771034953144249382665480944526862979419727720639688854241923020438718532233189287014767526102796065112809763911984400733624642389640232665061669957825840890840171160599866432902766865626701856737742946425699370927661510852452057217654060548790192706984867910520081974690117424920102789779039016029492917951483463917707358262284681036124273586802134725879417087645062370194046228716756088656038016866633898562459491227481755202114265212346793239759874713153835009808361404990037164610202710934412151774362569594535531453747228223408335439120889298358510334061066225316660067865627412801504123208643174885289152955057586928958298268834308789347731531401993991092711600017479782251356742399624416825002627537837268091620055725134396193103788167936528792631064886739427692535352001701094929667289097875475299313870859780821662794030635152789821849203696769186578471252435417845509445103207838144808462988424077932689941828108563857417925682877563383568544375809728803498213651581920498041520005059218267799567761096645464796615771191905075884088252962340664647222123148272298226242665695761431309365754719690929152044816179787384146230248692409896895799864432936054042268960064849182471917712401709738039439708842719705235964280284458060434492769447574373672869730546494465207971358688029389041734594184897079583997144700804569944216670755429864777746536666765702565741869210262241987099327341038314681792459900387070996024764085457471901929705568931274570351011485653117143930880863037241486635963656752324702046887176843400110136513658712497679557882640685626317913502465954958583543800334563002075052476160132998596205863199713561665787258060902496091800130364371809322574210955876307864567551444569190467016428055446309583374425029909104576081532229935506434443942039882666719966024141884393412426188997208762385225571996394754844664198101368492990247034131729018972620887434063766669552607737481029540094057503115421216284014527520656676667499183263975976480296025121391743288787560750687002079771788427879543517486916560709741683363375662508647435620835631968075412750935903227546678720933033582957133551722094516820358295255684029333586048506680657803181631211669810922299449479384775495292007576816216033752604736266419738876288204048651452333218749826833842354060626854463352403808695653772330140380287886467737644063017591153740403478987579112867455305374634713908932598213598366196188596880258732329029307253868911564175219295522251392378757679546166252570439448352586877932642002971074204559432581115073395070416290749793792034244664573955673053027478772326864475526797017840630150841703463605830942992103061220905503271536265309604572956535767853982461125549992122545187376277893176687667524855942554456489297854585905267141374945070332957329847009884648193583407519122344896852223861945195456301136436915742043848690915095534638981291746852950396536826989495824700348874831589916610784112460081333876333067871112277539721246632211971107997500865683361933883896157849591531621406629025954105550420668777293655623385000661399822193761875555639573236950058968003167920373335494240067337902569467952262867547630378439758100611359104862599492210130280009045849357401567166984530303223598040641598890573042696842345320015031221040116220634919809244084592858417958689309246923943385080617094311545999885057873709102163046747432125972307510911588897561282184030830480281836668565119368123266229761534872218320620421328891071093041131064876547210298569466500053932487552588422366875713037584528376102589405783915789987166983161751521367302893141460820462166542494575049044090974300168046978468425211441832146313132298384832737190350043868319874487357971258312408752054985629575309685566342939925191177408147222400817276722370574517119645758935368707418139820524741155231353940227129560627457244639760348820223006545412283408323728031016278487860753651498888490172283690235224489676998749126686263953188304364168618138079457185985168449528332906102573617793049183163722834277594917524085460698318866989871613414667707473238163153593289819048220200665978593437968522933458539829610998634137601597270732089239111589393438613660934612975760326445453607092842858273928891717385738246425937743646799567477456056000083407440125713026593800584309334980158645369721211002505813285293747075493298927835175594481325015309286025898699971406444665012999216294966258283489683110243891631541448255878170108793275316631517967044467206044783125721543655927141785780833935257248155262643610803139004355976826521900847200190558415414099289594578887706347925049005472725962914533926035049055309462201417285254542654946949686456482725732217906464519305054528956917919455929168812762617916551991366109175647362872936017988943969341749792501123498721352149776518891633459361191748297425203412462027274741841657144230786271652650301800451987086776869310152644267395466772285259211627017466968100537115201360482972536116245274814123218487787969455086368074777682818777187242657617403701260368679399954428921139891858076384322164830805363993932303717654063220827221658080435575098217739980350996949199718488434714655234983597068240173086852171889333700780702227610135881360489586434413609054372736722983565775840854064451596957794063149481883474303870619237712568324157272904383758223480335734503398685607103479138256662133695658205084292537683378879596595325071193783882364143503850925032637378171787711012142271001035605184646275027291957146134455757514000479961529204856204316225740908087788739686634787450670368235891818087130231463025583537825231522992466773867715783883270927214764556768991826763953060363762085459664185206271216961737986723968822343712097359746021182941675303684703979239679499469323040224968079252031255353920325384910773175070395097326443400304492218268462836202431843039876655881045920053442715231465337176711295404699005135968767429356890565051894102934735299545200994323914845838778992267725001040305437339442831255992084006526510410026113331247778070448460943767226480351480226484340011527134060369125089924145698496029867953883893704839615261244432118686750259187013647535480286225118164114193524309190703700112091110325389117428568554484539050740091293024306209164937460631449528426528609095759572109938936671392751926727747586274929145730652797880155071677391727008800127347874341176611143684956747027948220122194583462064001028542489212141529142230687358559994401198039228851019760424300321230311193624009416764125163696683705354475824123618703183662875466860793546088279811358114655741721928728932620074691938396934223821965772027370031028309619470633250607481770227591932623016051934085924347487625436644725761696925726875754090756869563832590741947874540019942127946569515331708395607632828203703428966988883134406565350063084981910574934395732963486732998335392580014645903853027146034294075570297106289296383178015396856468332811376576251522926715077143276550407550436842013020862912444675743042907365219797476809880703218636444035864133112235337188334684668734488839724107086582225411093270200826586212896564820429149262024914927619821177548235724321757602505688893984940707932930713306817055249889763970625452883107026153598188062295791608047680674210444773356931116772676777669790496774128752883619684727155448796848601606656158808662185877130091197433920075461551289128061220379098196492708381289326186687748400633196884736211170233445885629627382025021836697919061740292105934791353814206707262679888576787134667659991898818128194264276291651940337954100640892560305685452117049398002920070298884319572641393993298197935992129402092640540404635302488736377117070724599528882941521192580172149241275969065439619715840363201424791362435213907838353574436368227118364110184789019210031377416585960197308976559976132462071969909333494057874472628782153087659068319660415599838551550318420577945601986075156447187586405660774680741644462395002248064134136248034560300681733043046619438040285076573346467151624095152231728518392888664050204161333648558126218722586073651468595753861697853704096172574097616213081600676836213183807389389788614156262999376638145940937171168720365565837031697779502737515015045959886882311538617467718476387405379805141788917363157276362597178201678700923858291553540090331431011156068156236650766647063930374611825697607884233724286871525701050516277872557725395429665966641189053537995106829916816709671538317834169687600016900902419262856583812135899456050360143038992074970661865769746783591127469498928578387540547030932280752162651673861131621663698850523940453101230286765297010419977295162368568428060028121727235908025568219810088452498845326225551455279563321778476470403705619695287424740446221756647530326143905639833410907596285554361963721452337638096985257241534162433181548958659016564160981291753150402291470600277392335135438765305367036047505905229915332271993307325649853779504039212544883610671943284338716120511970177560994525631067713733172774528461751151563033568662276424707098196748125639595497960335404848117708662594444500810673063808087781377702556430396511748191199371576006644293550256097900227703476038444741373851832916403905607050300660246968136331593109156356041005252019884444815420319530726784885750277900346499015876709773748492309412870341459329672088801581011792801825854045833007889863035791087450412965001265023228149893884615367931815591507334220615900904047851520596277059829790885214768065700666984875939887045483512439991065658823307677277394608023501509605589501972409280389082312230000770227800905163223476660658848219060385748298832298252716636692431374661571252137968569367422878612594078428122188844043829210637298537255576643773963338689556490642071739021100334191272810366870479145587981044545460492616290139345891491590639883866539731620129845582041737646623597214353973483948200531085307371053375912588281748294437543187033467603864647959319168253810572343977633727884433701726991451216486129570314716512525971478492658090360509923326050051809707041392181698030110366775740708032090893457257402172023465467557361723449446152388721208496808917636874157826449761318721716487540568433364269540012517749273035287745587244911797542867815742707395697078011489446753979558458681039544697395698511616526602793040810125437285304422448985409393403616517107711636093089017402005645291478554654393843646373644147794689702428340502265705240491255374926541264911501001505644471892821844955226002008619085043753478191484154923418755538770753750819220788359698997463191533648776966723169746223440890050659951186524969173426356995606441743254211950328839367056590994528934283081972185021246573778260408511875545177375591916260344641144372482073963860555800547243749269949339960218468357021453350324098898023040632385927768330112713760322288811888382503508394208312781871115884416432152603512303079696450322212675295102146190015412999079027404066144583425877332046021054614619222471716193877847025940394336986002455780243860884856693235621193816674278104157092695573820006234798056801822712924145861595330898350713807223300061936475643369733078716051322769023654743298501979067603166772046398296219024717950105462720060035836801752474779221001779230150324665341844128921572112885696612468103883484604174195035184552899152708379859280000723863246847034122072163563944178195493300363232604271193806350950743003173413129321202346156918945632767781744302341444324811776189866459522574212295995578330949410322790250098024020571403636603234475434637538272044408383582710242217803279214925650743838220172091280493599786921549078695849164498038815252444417785044790438204947516089495893893398640377406397126830762521568582738492753868730901413871605989802391617128915194617357950407672246334225956067766871398860565565560036645087145406411029172551534953742453903794977742955826560683480771199321049024127300811247498428855234243149096427124658106275938212860222308773735455253698562476946195642400484846014711755576597302702046656249691602018924903271929365714458256870148350464625684683001166225442316349240312213469950245978848498058440912424046395843067450606967106751458114730859145252152209285027213079057736382703203285342405858640696932644909389611815549280949347829317788634606246346613288816478831186861420579692637592948013981359615849954662560931717553439168885450720030461929337455788842107992835685302863683789656502744774519215152249697193853275392104195487677263451347339726880121797389583939730980522574878479879520438134508453396465004818288839791241257770188956224527916114410409805221822542595226348725529473660530736577334308586466566701511787026022135776599646484993039873968280309722599906444719383641854471552864742129228432786000549071748816247376673378229268210999182886054484343251164081200311736398074158344695708093267008602058111041062700489396170566744812022490569572543916190590854346716522433916319945966023008310023507073744737901596118471463138560404867425769952737081448404836475881647240368656055599713775758384159106127900802817627724640823562523655017940868345603929902824040887095528139323253999745371423778761347340120334800413688990215658814825895187342596330098993687883604424497842966111889864998239464300314634341316961752248741114028121894611715418197063913851554722921876689521623171466958127452593965932876606194830440447502009566029342369116490039502955996870739029764580205325213077431072728489642186230319028554252333101394924945126956807799152968983566189869095114615165997798278138507659497090760846728055271098556580364926698936345657465284705526713685099933328053391414709556025384977781924549469498843783608634339394595288952473594934629188986593969037501133007439851322223735780166121102697808321279956958136463363447189770469348254922894505023841335839767506530647346595730556542875830217550862633558230577692158387417012882173489429836552392741072013540125422131944740737887409628378553888164286665379320102504684176283760667842425187229414412154912035874355456885616985923496304300974383120117489970863653747656877802658283394610669142773590194665008455229875939225105867953907344625384423909714734502327077079537002017496741773409775238114592046671104908691975244776709762076689910989274284945169970483087169177331976279778061511712858223210677371589712891434881510139273074480352515006483648701018054188054786045572148896970450134511541677378953848372743113751978558017912385543167807000651658573074445912041327529508983256670640862191143604030644178837249775162651960834070155315702635908069795217375136521521202534029604242728039690447132262390224064186501485630891497236673772574313550386714448721682813308512930364859438612717951151854249699966967157283553507524271949349186284536228857865288946557490714729916607144025992810300796632287154958441248101270473886281587322654901010449956929226992982403671753551564239558807660443657015422336817461296770656999457206676621617399523299437783798425367494698906152192219694410942015895707154632884593093740308708529857325143896679771188656145011269149362268006746603048806871033462967666817577037716842840802763263026081846642857353976725570151466758801820995027906759547045875388103622878434099685904093759038675104965174812050024003081177985026442183444135426936829850245887248723567486523540655205096779941898648305817250620279138736876758627165577528571881518585736188932808674139423930531752294122360637390651505246805887742910879228909362116114474778609005351457875963809124741221069830034726777008122247541132011366490896423871046701346184165498401370402293828730508242129796712445172547795127353222573347542626846073066827812697929945374427518794364225036468619388850444173179103153916539629856345118011046461623217826116779444120066864351008356930713121066619084859250294481705210769860626468651979823617745217609572406743670688025648501671698328961239626613539194564464844707065666098201077614109300507983227893664375440769655044348355622361225350529077813587316619520929844936920286361677773220462458043583388398253104053517622517004199918070152404629451198824528528077537583201719678974123139081182798144744370168437568744571628441651870917977923332723604157972490649836863257183155036976048309020566547025089823041781602291749618740701391063323460126294906394469282656081100886083521278431001814782793820861731552161765465701818309049944058753411476356488230715557487551217138060919649469506124904153153782592815690020187918205711042082125569869174730821983735807663809444637819789610188016982565853976002450706537890550260230588701307699357648192028430551561414139820206009642024910560999279547429247295745849031890875446575008221370843233856643498635862892060007573717784851748781119438030569212443357731518027164624673607604140870706952595115288260785307992557824587801005272612057912435442394551677883295614632587752302621568006687540886063946432009926857988030999342973749806319137938933045457367260855848695839246431772787172901962976209623324240317102875557343048636950432281682471429454546768949265004120598765352745287372600830355026648445275800266370285569830634339851722389524928428770639740680442606102895532383223798998007009498529129893768895004046694851585656988427077201112525192750848946201101552278831540337692005639341619102341166517137473193450695146930153157747652510730082121065840093013173244743820519517911742849625784414481707838456921246854050289559097992664058964830793013277478817417469380085429616023298829358058252909274415071277628233731125449984309843219491778478089267248738008284063069214252702515483949032826454978627009010226280900715478759844762755299832677480204839650149099317449677132658423922431224964120334262078276677217324621045865135833347720767001210666102815799072355148259212842993410466828092347653113827870806828333061366910166234130337453298247736953806304740693243953759953557336578525508531478025727611798956742571676185444425849051057023867882592362653765841277413664760274362721265867234705236509818652275629800282004561753952842069331376268081414197533983528381239704887785702874026518800605241175530886524623530947740644493489377552241999986737939550748513760738591660303816043317467896145398452745048877404401764993608477103801354879489614399370235456600698470976057096390226249393922375451757624926873207031242506641807176592196414275543766458113551742610588917482160136223333732350472787574782659047891243721515639181154077987165505530972037945035526748277022665655159766376590218843748074237199781996479731961334925733521669934382403675961522010337835763778240353033448175823885686845844091963020043365533297891027200796002655656339564160609410618816228839233053555592854008411860503826697909534014581726471537506120226160002039218938848008057109031290442674297438045488643490210008265682812031019380961003791551653408640539326663628763408989079072725727478331056308583073533935376079041017447967223512815234782399635763385974244631037521715168911138305701046526732452460601372310722884212823090816200294705942294170846333219156515827320306270948240605490915874452468668189781816296401192052592183817919839006190825505775127123517429701480139431957071395771962118108519505593512241114433758618586816440551946755066845439085007738511203007867617466766993850879568203481677560186696666181180027280803534253627917174583043784068712630022566030686829377359976955604570204982473497845523714258382845435385570167146050040728451101633486493976296818779163985983720993710467139615903076991606681857828905579929870640871170916406248209045732294802038542001188481206085327298813674439680608610829335788441853705610284375123440815276240303287763843529737474409431804998291475795009868136416382475468909097111707717025374256210631025396286940262335817594367507774361468185455437499954526847084109999109653034484224720306535197371509332204522482847919079415937771573654821783465666126174479111424904181842059275231552162189449718106703904652263373688330793815755099870184776738764910874953169833787636265271886829795778074088547991449168767253407728558817769835575048383967875798004455553884731179476529915664019742028151077651212666293495717644072985703470467039398707889975303148818028017024732826553961838839431612405730941253010594108787883241276084969968696766256403762657195729506868492670100666859176038878105162925727055232536513328689516390213569955855546372159149932202812712835798898525294768712722947364179832423638966379169571672202933736012346178861634908443182637257616060116193833947794605149123037876117835616820020272087959471963289432548353231216637525035456039716366475304200014502296367328745569894384657660814631820174114678667134126761915993277252907321173615572600533965986121877163268360893967895906203006533822792039546285370752494192094492316996640397977009289078603504821831614479503310971138782634340473399251546468327959923995687000629458659372750313574812555046713226576415520491225009472423759096900876818084143088672878853740695939276414282437629517231163618829813466026564210843184175699224376219410828569174167970476185428000661765907030252298417167273263721896415299121247111739494584080541999273874321487188319020287943627302531191349431277524873369148125040777891647770826311861396323146150023150318765509160310587277444420903560735615503318199359688190453615608325854207658628104781362206901670334544520070794565467945008238772999320333625919628781423352414278973164669612321476265078131674737232026588397807567653155348808564615220943927885101350600598013684802875524418673393546035458705954905043565228448219191292567734354800224394562101664759192773035806294991087337977588927304777354962009972952848267960876824213115559215986341612900082957086882692172244259383046720678792290100286142080533099502195737719865823545116516890874554684806496605085531348272615064152960089649304599171969164230387570141829399268712318076271170132068169049643005801114435916699625099763386472063435968158346561581558825901426286201572929248931060512354083128730966895320944115315994165949415293456479768737810658735466834358621398965544404159181616053116177302524190706940576690773164220999414733539345096622609680529763435164789930810384039866107278344202389638230186131492895970684978525896665840803570541525844958140860463195480764250109305719192630596106430337618352081074620165022428547898193765727907552631942702197923224023923777161372300298011800496093675851043822112635715917814378173386902085838108617278328063251027208639480423161596647124190473287618782976543839272217842224845673806764636603701575929254585664582118475810047259033746077669799120722926534654639215435717855129963100532151958658002001351369242573211903093902032985513065992986173315921322474341686112108569465168374770246272494848456564084129473795422230892233071888195569964670411912551746135634500291682055878009264200934719986162977486909533153042059278420683064201984383755846061747001319013259957654431436238232093133094042146691059232770463836030613368431883248309731566122856214881935949799715910862510645170145255581620642651829214241252420090639758451525883484712806583632865749365787479121054172581954791149077773755855226401332440061042344182516168344854848772011400726565083986723002515530772059704797184761185799141788270404232674221161852292318189917822764630359489079149510919557849305736388810440550359051655482751572445805834772846141646334605513173748589953142492473200591731161329529253810610109094475968247944490896485409284771441842843149331373398596119560060390563155702264310078134788752410692443276134873583681844128419963035062756112280799429989403517814660088441325535428795696237820879897956695915510547228750571675062387644173661267322040319575828025951439538092248254260034573553929827261442225074501655281391517084454716301800531564548854316423011654742169169660938921600158253173681992376605114957605110896483019373009271173951394214054786115098553486052107968160372649278355913145469671507610635543899919113023854800233434534828361045812657818935394681629239742562068933625926585714795724259080951970585125507006673389774716103501031379794430857395740953638710799601461067980218925602885119134446734599879339453281115654169968272828411300433157127237168882269515252400927756942357715806254020019411766571241232967844957180280800023939469568584104615118363702257397326185384397979267576210980506911813876654082443077535986168735433527654005525148034139321260806102754973765888188802738220225603609534587108737641299345512830125504134021732319658271223474561296185719596329881681972312830315669675151223673163708224937812779136181808551646892541625824418704188952510142991530820615337705923024816451232919530411054873826821289209381959959001595305638805911388156894012000470441010091128222100942478635097409262630467866204566250596174232075185683143428313852031160000944635458450713879934272328084435893569113760970419833048052858171857855955928696819176670405183271699080471790675500068099077129900134478462194525226311369497351746388039491551811145623510259355119661866164251158545633504396318092679535566279539511803400773435901536122768611224086308511086090822000899410923605742756356052002446599570874886127653311301513028846136789415763569131325670890743916334195844311363518993746418547510420542009190389581046923923463037798905694814243101725484869805396525246521409268298237978214841920413675165801382543373567559291007323691617121104418316845510267628605694448769691345628519141088622224145038680481975127059915371696279958323441746671240852765827667519274032352334433313607780270193663483928202540092963399254059214052543190614600689346272310629401671417605088780003534201764717453121422646536784222304294625165532963328383700276501818357156336477902267276460836747028359653886849649972104956985841194380562593267282041507529518260100603679690245692914870958026953482361261155135218895426327997242299375938164033986524113462070394901487310953354502632664608789157376371625794879690256218549176483618376934263069301742900491793956347986552035969003786660999685099239168119483153082483822808130204496183621055188821812622199574182308392607815045142309831999899575571591268345854811790503221969762832622406311600042775625851564190838765413207262817829059776550635685341786063926644596466412237491430608988407009651989478939409095379214784843059011501828658611492341629641545149388857956996073886080833390624880382300032533416521029142712665801856156278774227460692451235087820355353020532286917131232065684360923374721565568950349554301729018203912152591878941253451364599476335293398308273077181720509772404399852630761555094822806152749542077212080244911839427213301255389427385295066549720482042677906502824339182804274192134480377691278634229424196627835719798213628815240164837836528319601895986624356750689301272404881243118040639202210675189043345244182664633424979225098276589756105395605699221668628900287705303246735276428371452967627342486064995867659110983921253300304701430976428999206789242003199875490453377259616946861445103044906099736996037874983570979460692092822702630058509171350669387817705329534265973505248250286930781923027160055337594521473496968075808428963958363883932088353339717346138050304248757631325429133651517157241183112113843968989950311440912518013636363717018851673332436582462911822031553135619143547449125311655552973421227359511160202065299369261436913358831365561711453886252339137883140627604299594841162038501610424277493412491665947261141002712581294442139161418746889577290717857419203354077875868299790782009045548616782066461530380551417930524871273122039374641781248791149713073263772383209987037797976748417562422018889043838847019288591165692635083033288830615712694876403272406208001835802424048112407090119293576713592377372870639534566885647584467304245467169069634363048126461398869449387479329229047114432508845253702437677965963067551225523650702743424238251788513946488534251223629741853348210348834474736807822807260979747859631473984469836685352069391910884853157813373946757215484594029946472351291555540261829697581229965405806089455369139597552814664664719871778155006742932639970346894354544586255040120451456953319056581231787695734322798691241901349854865989604772789537597225869572843904116102091330115932435242098270075768536629180561687927375302585903054431394263719043283980155080842396956031954071784925741365707170009785592209982556457714834064068653983236754414724004171051707084441526513181211861517369480837582130194114250724277313497575810669423651098609452531792932607806897406971344511193948485440363322097103494795238518446903249219040630192604302340520052649864288731140152323202235234956373341395203910885027749429729424074546975180533122977571429294829493644830382313669469855505567126737667582598068307799556295495391326485188595065556910667245982728727130024120746763953909672584166446601455122924883414188508439523727162698391658060572173900972005360494394205599251225431468654303725797118200470780965377836177526781320800893257065002055020145172498035339801914706413540800071808111940837934180625355448332423887827699599095230745369405144507728486076204981923857754320326612533259545458148640767892936278428693878655867734817948517375156893648951871897626310110113098563237910170630919127315017227567508669083963720392478610974197652736790192757747939611251821243353328197180811558567948415522383445059600485030737106667086649769267157209148874300659438885796974930379214675858631809838514462814828650587806264175658235931835823747814529136276111140558626566428397570869238477949885205759731380703077476167964034152227449618235994120430941842722447210181780128880067813072641765932233455114864356515966834570173650190993819335866835501409234825218833420824621107961040598365652161538670113581313189597618682438889391224585699864305816258143584937398149833795557168781509433979150551719974575140748883478773359197192634373866978181381755680005566219935508972147188025564863914082468924692786800476667371034423496466573441387869295244285111899198385744448299384423156627038012546065390715630211660594806762321026549867956634996879835774459202942139278849057195371022550711538758324633479503176444165699434375290012665462574632111801154634063971430810932299589581793198548447869963296238811744284440611522819655932488382953424549469134572657560811820054279708859615885503409113862782101100442194885098210536656317569523964153179957360512890087684675797925889411326358425078240973048580926832550524500406213005428732763444238049066637882334486980947608100712948451070285001154438522382467362605118685362224437501293389657271853259881848397097750789695120472120690537651232259020419316348874298479890041335509886875918066385672610596523817110748228993762335644778608853491242797791182052352822985306082239875705404246329629086251522492997806837370041284413014651424271974658091107788566357623116343632689933853105165507559691672463162767775725089364805252088994777367898222862397338667780852002327738546838467268578251263234468143366576651603568156412423244461311337276089618343423163876727837282074593707765029191843771914890596390438055332464848403208039370472273277754722575854383985129493031564978262234505137834642564483366673531536699969531106045570843011231898682623526950531871004904072268472081335961079135974221054009194970386259157318196575617556332099956150952392841843147352555217367587290849739051202242893691500160237867321342882821583067079850074760582277641363707243288613339491182370012682125540943887480370220334125533400456820131394836751973082040587906389955982996340663058687571613417334102441330591283550837902700324194921712615308630706985840331993440318139659751575633747316423916023862377816269674393860716248399198147188004322452855471148332112591379367006262028829223248158103058563205690451311546981390776781565235805898812171321289132896084209797268378841000906685383003635888604526701796713133477403989165325701950151450040287371442995393055902922788820220887524753066635575457840655304409659334044352713764036661792151899156872292053241642664741879516384493945685542587783437284400397446500509234585983583336199281176687336895005683114233006749443227785535575791390985913429567838446191792328113616715256156732072619121868575146381015152569116362391626419645307839325503521453696968629728113925636723570853370056390417378092383720034130348325486209393745860573529322689546610167162112584981821243384192384789577659720690655710750008249938243786026076708486854318399816462550413765124496313737272779285107552702730518117985919974010802732857612120145220191683410353780151888291168844324800346653374585411463453817269343873441396158485047711607250885459964532459241312233778930931804215366815857170190880966945175605965415158789547641070665826749123877643459521861955755501749181009763136029828593867408099507195673827662793866666736536205048890958278369975571104960289624823184079958112284159900593115998723865477486503425374551738127038837432574127886371127263459253576499943745012841288042524527834162692800877341824703497246941195847011990758544645029841878429273648144626692558431602749128561556341953026082554534203128317990799215539741963919598848686944045996464585550756471932986774452375461895796545050137887583301848669773711319496662743733390396288311430059596031651814078783094628727897603387289497242759723626205926624101894190560340162877617899010247458899749934417706115963876677649240302018512688788328568481486416532591174380442959587096384041555117658501173982180514800239126785402097702349357585096403905671642888141153763454047976741665092997282528266040006953290166908157213882455212209335706833896996108284094508570876175405549910271298741368369693779550654965237595493331050510943669533508846742018399671609872807474919113411554087151478807644796061565361125326531125159994406967257224113817087110098109866591985863166061578766640313266112262403789880115581302546401104039989514826341509233446400737156980187680481216217191069141559918868012298317893268414244045707471663435613799492731736659816815996547937806186123320421860413923317594510104445119037167617471950727504538153334065425093864154087690326183514157110640680445658216978063311310471462025721091676472498450569244381289674165640855236267796087268492787454851684049963085504097494620129481102200477851259434575036536674097108766885977755867696412355920167782376505372538289477967710492061642310643026854541076858992041978700149524985304928837354491668578139799148694010957689490352614909925459011060800399733087234081860131426861731239506345542558956058796599868056628009739053601693119611904258943335503629369759742668255075115217368299865656665952721601274934289143151263949546729378101669734183546309170440684373170157605033532228861891417385506970985417941026986841367346072299159182130098096944983859686767206690876197610274463954107954847133401023645971854364038160805377010210054857153911267909987550479962972019191257709811228990915677024995983418154418499428383432134787094005643205672248433459788871623607999411983666654487174691231795374592530510100290427400457938957036629903577733582164984731575079506507254299506220772894009834911750191284403939709141560039865929141618434326171451837295208713834956724443475500489450993832622205491816331251701884437849873088835600188947420250368615352285312895319642425121044144801545165431286358155318389411328581198163870641769669684931562093456718311853884197444494261518878483773640318131773081931126453658165528677018164219938155458827451101230831953429938061952843864017011444203354323757685833062377143613907088408607965294115965591123041103907716188580933121447685096782201857725809815280271228198449432549540312408186831577274782911127413214124869306759792696874649441151126634154357229864624087888364629000067962939786665602558014062882712519329962402734665913566753544385770585654126926142240907458096320505885708384099879738039884390103486597288351407053498290656728064768883975368497547139206748231683008140497826083923875263731776036531519484959231058352789539314495532521650363534510172704608874003300887667993792688736561071418597931307215347138923470013391456146591867445522666069030822531177190532542315516585459011227524007152641422055291918409009329053193618284120921774753551699994279716636610200231079967570942514475078858514417549241817019469839234126092941496534576377555688505257764367574741805521004772100416680255686085884844972674501290595702520839462629136687720401435421995135731454567795604691321903540233944309212071047691205279146605019973585444050791406388909195092843697511167384757774714375451283184272788042918528390701032350300101242001673164886862032312930564739559100028044443890258385985582824232074011058387945683526449596611372003237590961935967544815457185566249487292186762490500250785578330067709309850305091594795063909647585196131123705660399437640676194887017449301146968283202650788248373455755472185292334216463934309048652145706695137924102376323763647966914782137815358710729005123103052287226413565311391246001923722415323490946238807270896209465006135161911428528418366704323205344409600611915649801828095625423931580200302228608861027311973875150625495579556592675863774589301308714913225039777529428340328733970047392455501747295794251617765968729057819301539929251608532847088501645665835874687336896141168650905018278047644526038102811301168670572621437115528950218123949504068379212687987026365311292256166792265038386651606082953018220812889611899757808861217250715447041779306963121392006961622752799004218235397188712349488089738692805534161160339197403809420433075638128189524143876557301459332552481600841737926421577530375024356248392196390371562178336801289673612803391013275115116733207440783852052235401505995895887371133761589861881487822873297917929493561161807119384255995231036922445270833586805537213126192470635833316917032620010951928127694058716557741738513020572611059479698461714438806554357955454890590016653374322943192790279044815766729399400074631892501601105846353950385981236535285921892063509601865148780147750390565452883862938245056114635735796833571903195958929831400561917454535862904050488316222867005988973668008286612453108801842224305620457003144781531384287753928234506580070828175463851426365748963351482110878602521274633113513623426184741501353700301446525889918154607799821286531391640773361789841960485171961585597425816606761244557776678201242000594944793709420059742942462352032136036936032197052746165165334425398744363516445138987568896173841482930192927812003278561589530508437488926360442802464208745660736202865508362437085580044719639555952297807329919296522866043804173899484415879632062553187970093068648118957229420560084829467231801785609778925139798014029756119151760111867020300462204425187311447023925174475491565722474299720221104779472481442202407530916780223875059950949798130392493836337849725023192596722253905578927338319510294794237151785484865118593345773574472021076092004953815927658815652305981928247615796746648080414847742556766989656312821904116202379218097914536348245040016320221568180099132808087530076709972204005130759230263314494842696275088964213948301484276137407035037705210928354452522956987373309674472155132215586229651977223186159546031910500702163962699539295495171780665350730209957984598210061615579713894030316685880259738755521088359611162640072053856325302640256326567114193870740633811128784662314832516782829861300929790395016422610306597529188302662075031565040689794755780023768095122887635903826884670059890264622734674854525351911901598714867166838468941241275858622182221975436587454791119739560025588863610210281822068054157150954329801998944678131211663115597067845687313301578591701233712452904760006416575595810564407384272865735675249430946158606981099414359422566872806286479087228201880511719011831942008860773614553745291192546474781459575340474029995929007050271061720195632716858428537413275323602983015236366733456303590947891959479501014246516865857287382706936423130385147284070928220750769437591563861556782872719672946031273680550629839896941218772027451075671757472157498156753545417015123836212154628053211005632760038114999289879616595664096049721651461575809206225846808405299685839417760397569138442357117325938688101585245381087145475952302659308561691890172426060881707542736669448104701752292441175314290643165656086862148778754551184060903239733018868255710997544203056233009010984222893269864446342605920754986689022327623681598449034952020182637124416206892339070332090205398639826536558843468833781298585834451369933513892408440462662720535153304645895639897495486294778403282007919914504431391059755584349510946078106914805350342608571865795483539329408005972722015966175243323269909803155175955019218521288568711525241168073691555248047289191090041734375128196370606254903212798616580919680632084876194058030154033560922943851090742287742522008636113515747746772450920401396096174062360680401943898945658117925720484211875411792305758345201277199343382498222439817642061763429957623375918985742301821395833356829792938940027405591864068736011051369154335579176666980750783076251528101925236564464359740265970066337704082031557477292985345304793572272300150960555023488865611991105755999563321054818679293694123202991321246779454478336564022808243373368628636204140609425559105478316622731205910229428221789421183265873655243782638168282619581376575277885297649583524258583287374360302513834961940217352008052392384847046707725136737150864334240173425120308195022125003681952532406308402258146599197173526658878798023156117211567919600718652610681306070031800287170439069054768787514735522399119788940734367170565374356572407306018032691697563401788816212848564571083322974507876956639575231436239994096611008885860657138495182176542077819549634334704819875149098622890219892141967774916076047853612677051479653118978626222832960908614885688505432754533238087992443312162073140068035440485517157799931365943323626557845770664134133397052450803613453974636239369329470456427237955922846913952153196371326557051388888957424512606501893407171312279807944494536064593865897185273690856505725143676143711928618330046544915586134989702666898586521224604445800024746729241441428917039050755927945833252853326874529062240665587229681607230065971699395552802049943128339250817142545961447348829929529653265908543880849615023358393169687315780047069064370201701635325516395927669308551380062476654325797633578651609829093024095552939421048549881577120724305397248585746247019899152456582318462845869526608584484918096799234312737339277831318623625401129721186664178502087552741716072510199664832617763915210091133625884121840267872875835938004034638850962615211893540290467465608870822331506099970901855881884949422261683688793879636239644088090488489242418310956468333457498498369972817407949556998525186720871807012014726127408208288981647792244064741390266094909847662806886155279209751604920354309482787978282592596260190281408609328818281845929941587702581033852479955246102093342411482738077042393995421092420598454835713060256109466699730925658998043456842515025355290855270302924706427146629362785968528429558322326135581945619802209054614213704170560591475874120293218831452469823192810193197239230431868034855259392401217869054460651313859440932643105128389432702996419067727354844037889632008243605295667460617525014514887711105078178097207047560853656348390960723773652946363036927018505831053636578509907475678250952402525056587687063916295877355260016377311362956819564571320332841316795180542752832589440407433966221255526256799121733260655605007944743947169648305943012790763218690880230789347637379716889315316397977032065814009972438011316971319689209888064591065671171547229062914607810648584536486918008061333244577188032505660023823735269731646551868164318085764256928001444424066998666025299593535280475691180153993664681242300190243734602540782775909474497963403831126094624711075258746507095558963610486922088289918584432684336055840355498035192908012740427907382079809190615553948721170205473589424841212457371195212096448342113503178029073329613873868220833285459607729911917553012846202796800680955713451145083522051082206482276605249880234048665181475233403857374319773400681294558395657172954206622069663370007617604767839845051015432627598377153828192609502492574381771843246087822420719697475133807639635148433657381804365995842347600523817623236869272899164212387597581307765920047945409991999826898604798679378052535401613473150514998883968024504908514552315134608497402986715133678574232513293972444727343280989804564853976978282045739326947314526570668091716887436354395089414356159402918171185623710043809249263798644117226904224823168811657783179164656309655999559872732725049132576622367661144165462166132952559503043850964120837963443305710630990364124826050154509099658466274944189423206564558991294226809097900933060442671280302196153029174290216539702941315539338247603815092515922679749587474074143754899371341369560752938567683104196860863387320788977738295263880683245898698808802105132058130636886964956080940012565370255785693016002497997768241422355193379201317867265410098499014764052291196753543952345328290165560675038163427274274754104008433638072767734941472760728223358883730057825328833606884690194463429503683396269293205398057715777625669062323752931262954285435059336190737645741373846105003744312651705039566785614890740852054033411822327223788438933935322072652930288683499759432294651577281632926009946149384739576591475652966362050262394168349996935316728880774404413886177575632418354251443655729630897433877966053500162528692728416101784773333497795365436037052409355487442986767169232404798703587943552158505614941072353096183803443004009348073902477513163371919337593775693439191503089714529501101210517734538474797418065481429894276958393824923570479910027152562222984138565273743030573853565034622667672034550702302347709151507055235108483566520598093668568112806303484918463835360986266006664527795107449914456613467985458057669927796851864086231927699553783791017905683260304928717224557470160105915362300319294059895323754907590927781611580630475596480758655079323724906139515644222740440705682824120194945169312263975129492639076717425173013895612999905738276091967299605715612003495027958048039879517563137765147098409031977398363448528067132742189061318908705204000687005178324703689412816376567677206066190208948724109248867104087526381781087589824703163677685114485076355568456161702569885152478132212163099352482396671042508352852546549347974497816552864084208940452907193399722304997123704031697265722454562855611538948217294590835299949614296177067291292215648666018259450564176348575598864225321154142213788665293415465764704712756189926228508716943454513905069676740391429322813592035224368147431433335320877058049008061326140817143719704533967075010531945698844965365038303103932876863169387762737924569434569627172967169891664984893497673703649046728361770729881547113147884785747490256572766676133825926333676628759093729620086179098425110584781807847810695328774898379614339288946260073827233063070548320837981307141468565058621423237237244870124621003454155783227461671233526024502793395909066220053474673548262690281160683875150097222877370614822423255277989615771791919009470715983048065163336216218500012154185269315132637119622750016030664212758199176347795725020681068283899089728997293452641015475273417814965428350663876119111309446319992996868863384845874693414492227706715840832277742967823357502572272811930257960054664427382332528501741758567077657605098814127069100169387545756037348574091143739211752036068490106052033971983764411300232854018535503665304221804790833661048998114226695699595926454081343443836092817460679084614973118073475498870906108294980521553465353774547455859745787020849640574941119258773483032879960807742576644907367632417897175041090154150415257089959547837219144177438531249518514239828946599729633878530851953339612712580066242947282998108870197746707977390832128183908804105371287456662392878713204440697972867195887738129416293259600820554394831271114754133953723570464441522119706128050691058407794139115832642042079407200483643626687527418023782423601423409281886896285462422632577304896955551034800279230979955813801277534393415163050038748912198006585618956848903715098611442859434934313550233426499956786454604153641119091148317756640127991556824852714191773512992622485797246349753797771144939454843844823989087310876797279516747198702279089252546625294913409272001530634325683351922265317978775496800505929633917511003279025444370174114456711956919738050400051228428215621285823548381945931760551639273191639486955023574687551706583289821205270976333130151256447854300955068449006758308216823840493194240937563013911440255290600914017166890537264471702063888515064894218319280360665485131151760531700438455591694348058244710290386154090010672461866131033795983295135076599814380691634755791015739715602892187133122818811859116577402616634954373836118079937981971328653249944447975993055579952112735597137531477941762090409630164117403815801269362674362903317159474893398690162802073574706191496736320530560092627324552486415065448566917791775103646613335079524389332474438866718561042782505207946168704848066982433588471714752185870273402150083964711039699796268403367473747592200862091775603968317616491127698636389687135837499102282490153584721197778338209991952646401910754141952253521559770395389646524562012096851980641858861495609037414178892330520721229715601545304659914319981172182964682495526939946154426303613963704107301388817881440494927579182679282958505995994907317678087596144315494405586789257099885853472334838602521530286180873638301264332328675441825369942279362673153307449970827719112429060101119479488334845050275119088816026099585777589836729770301483709763995018147588796319310924212656523704061137579801850364667150921681081958019391899355389463891098165090676048683326211622032281595006485468017072780093645719531583510340769287528026547741767829174583646075945639726244865501744763238447433945958973017695436067682013501357162881238745540964390988747834248128775614351154392705971118323616180409589498217486263756244947018240627023946843101703103579477683977165768851612278708216573561943601964520519368865185392516004304522444779806058941961835956021944879838133835796729129135251811138204191826128136202548666512162403549564345465630386000264859371793569137347009257395404421382414479966839155657491341829815740813228092599734553382109364487263030700816750105674658837098078703940275617769563594674217432247839324909304277879378874199008631396710725619664221811136935641890405245818366156250188294656039241714391195312801894485904599221461045296769299678582877791992136147593918846473151501023327688401623678288502025478428549650003314322712108897619829952502917202771559788889920806547488100130088405502337168215286725922235716698251117216968187996596741589294254137120761014303535625953231130221177310873289879237384754571217380072433348339972915862964730172547005166060527811025752112103341057366632170886696597554276504463521332055382622009077723488054301505775592117070008900530454847672523461798154565492301019700046821820049213505654890897918012210873892727977090932764320877912548552225408180972392681384836797778823588041092710686659560354328674889766463301442678515332503777308529007985209242412244403014447277805269455968997871003261742261589992557118921461875076572853898864933608375510678198069181115373531514366725889250025790017410173753666791425153246121172544300056427919784761805377419528680872156947297356889203387008631906526311634082962953926917689659459277231645323276900373535894881298384777486522135821783227648812048487930345487315912747150319649670180306481761596027125837791978017317433599719492963270507021441519105231896956029151533372905298721796301906478136130098502174529316726841800712024695201183482175920626406424438826492387216301279039121905058216654850435195887532533654804239671228923914511265142196386321125379372675066966872414888869171150519750873770055294337673428525046519619015488281660020851686253033937166745249651622346852440108730975271651206593325284646754220061887772527298989148432264357394991748470852968415323131479447484154332117721394148176213190580768785981178804082996198735998635236969738782977786735422720863155899470506239943505930500889585414540634201284209124446016686038159604948087235364857599671925946010825986866106991603205574161012342039269963234173392897849355798359240039796601992186373527731673518186436961159215060048583934155740960624041368499954782013200871531743940395128974512574067419120899751831372078953176389671409997328477062453917424183422277580766106968761065309771296288395240036378647394689795618361939239224452721885283336493136355137211646144155704128929980866904430717002060193204826529179848428863447333113641179529984632735356521159886222945551625440718381131333873358949439173102162339296285345618781742348102391518119088787965682904549386546557896501764937160735453189598665523759105254812580762414593322458636660139635296570352364865741213943434878479348438908744840631737183962086648968637251511780371586780556902168490364895783854408728111556333136310534799999824993686182738192367499731336426777643906775984509709974909250198406947970635247017144118634426171379834069391281388571297052812643904960109820802701784842400265439152989007502020608017063172132408529756296292481224983887783152976928964865499888226162930541804506907926177472587622821596221751799919159717996638443240083542896075006475767650564899668577797121552697356473851551561533506413686826202589951714950789088104373334511207612447729830193813768462526195687624342123080903467119109984095098589791022092956501971005424062946625682906303704944554240962525975537022150119323919454924211042632660637735730478737606386066671056589475844477832573155935795532345311812789594785248931990820646057263800993176410240757244616804726046567245097185275858243511952896171532930097207448576843527791051559757221606894143802253933588320903188093727627014736513524463161541241766615878256992683863456902276227639075349290659697196250527123595577126754253076698853864489835586212691622842627035591787431125282391518913837376255386240035402879349241394695709243508686969091586634863090885795532868807589583469808126982353950999508695293262817394844327589290919204481202127971866471145614946626947312134346827554527563859975086072164036915919560208927291354658649757845891814783814922618957018059904630842808065856414917228205618588139777344136161272976885382608588484294881048395369201465454136711329609964074114504361929447499504879683147811071130672421366124011382093462775196629610974372867111743679826946987722628541555434142771716279604545045777474852187521785952824610561268812075579713154911192581642298185415417535421415162689670515615636660520936260662456179363954250107866809026512620791106548639622603442749558764524960736774745051768250128540700707740224039724939453082055821392311991515999201977868643718991331689888995791986887759485788623620451586373258022146368832257083880327689884395991739827708282570624701688217768268043479328094211249277871233097909830470666843683681880721568725614502199674902496618497776804937201463341618428444269915341716718005304831959797820369967495449206326836918173421001605020987296450624355138899156078357957457960402375291772596132558189384013288438112159924126131227464568610455433629269130134246000034715230133704966915383512768218438691771395450151947699005921245185354903438439156411151396655203199424838915658613112260256307954050012543492904691634380289028794485473836818251820830266566423903991940547974552857517966212717980086466391654979292114071496716634568175199837840575752107668036954713144484129358291516270046996004536445708934102812590669550555616358993435127579948442005333486142286020105112649556238348125936609885634188593252156161563781006591195046765493700182680208514665058495702970565843945314691038269454832796822240691008747542020357358658312907887507568884555525724112633600455549716270585937592100061860060628992605091978996573067536201359463215573621149066703602031081883322433144229635909414401941369927000236438920760066167320716563030682623235877187953762396371842137696069376693785484450998809949416749947739818010244305792045082265524631715081014891482751863386355473373231766001200353432970808516086792516922993956102209316182531139578530439627419897511860343865818161129712519718414892940829782719742053386511524037204227986330945868928644544907325351916718837686500516258742687068917098721423929733688118861598907609923649422969099296343872140706134382017655964837859763430398264810197303811330694969552197383834180669140877980758239792472218461210568244283414937754057382624031237888377301546753000172951287107236477958797942731800884852660694169259648260053385501896260320914284064637633009432907753104617779243261451500356410867307616985127265924854439386635092579597264239986942300177196847097000330532822263395805376159078671063354003836782969522196662550439418480398044466604529532957840400442059460209268580170866273767789873098259760452130488596853458550901956946126267644193496674159810166038541673589824965377214310695106418887987868154469156959989585526141805053843595327453942534272730373114712043553648365051732084414092010746962927187235561377755801543059429235178287459402658159450674994731370506395449409887545504525152394687561042869457979664953692951753551640861822506918365555975320704124987302752924953770790016061687539668659646667091150069386298492624716440875893882164504299248866691148555829469844934748844079425739613051835046512031896372231263186848062786384942684603077778698968758884739427414303030948317567198384267522621688274520316836283430383109780777625825871611994207940556719204973725841306557274279178165344291879890683613628934309456829841356125364639456047952026962021751988488411114571724943564392543014773162597357899544584660141595359299240415358155544095748298737243307249386855211430307225420459818993810560881336608144213421744732631816310137513415454911338748116748064459213627472001156802690640697991105280219492106279134443631333155866706864347335405499485978836124321392403172874059003866004460473147990917674778277799864495227632572419692940466594694526455851120461566670856050164287948114277600191149163296448381563761626912413492352955941110920827232058650107114357971657294668668180886425054115856611557795668015224232238439805188821568089607289304411107715240581779559296955076275658271389804157444056510655895821375863728519016820024145762061050118683925017342463002198703978262998393646742763142658648766687695784296621809845937613386141216000733928023990719075855699758709021839897975004189480143251727839947585122981036437924047400144850788206444025220642503682419558864101727395918048260754180491765464709310587467974083482576357834028467163208648172532174011606095837120707673128062579377767187104631720002868663830807887665830956460361841991466909854954547995571904506146996033391368273451433942164796949547616686903932955479502683590331233019811057192369242844828830911101041245155379948559938945693052067635367378896952712198381586374035643506549222344311672084498871194032163388860567822226710238692527232565553919886786943565907864449423095040958587425343310398466756010228943113339716773847646993135742382880744269930629682334573223695625058525269080974984618332254170686812754889777992621213071887725377180663261160296690411926603169665017109060011962753304693314174900736662054772992219178738733572060319153432456994212456982613367397858856485155865171429935688787302838491919951562989459116660565098392575191745604634659622588597443319048933984823612737195643369171533671814483784206447428419366512864727210437405996099828416020910734251027058337857210919844401977233661281444862182983117223634977181724878175412127012187107560061172589970230086896689112374254323078755286289785796289625682094202424801623025539965438189322656089896887722889150233426345182470728048209150578973564914592792729807507951652000618285298390606378546740152768765032230349518536361516239710046227631013935480977263804489526270641420527339644302069347897157670327000017711457282928856431169153331787900411687568802458662468864877445706332497059881743300356677833434660382708869818289945710679352211141463032232641275866451390040650751799869301370942209668512315730126191411569793352616654981805186638152353170505195289768126041639528116554759470365662008449829272950468838052672497080586515136778337959749872305620700707700464087290753394908684481307528064234753062599131379790575315220882155798497421711849617464168714106058353394201383752782527474118902701623676878104190862894001809871386293852384861663506774016533940400424389562332251532207611781669229763135835638456793412983022770483180384439563574261173189080924395263795916422965544140008506832455820012466769967443914854750790688453929219014767407057294067141218778501096052853145930186583355672259895687994659307933380919829397192385903343654656239494608585335042817863186643835219607098193939382963307110460179378901068855948360091770526658368822398421146974335266588183397767678793012246180068899317728561080726803320944900454726842420511134744519156134178130546221579339562421718056068854845305104253788424290819741146549458645101652258843708141319220463194756843789364160020250787320385735524088984562138414709867260492273582423179892765072509610220831545405830384226987341828551758745507251692031534216217099643920643015692490969493223951565679260766210978818334202199424007612537572430652048243548613882238351061879342577002993962644365058549341653699529211348974243218016344073164038398216913411872956221186303834691826836521094577923776736037618729685723576340004746573251241539803019274949116511831690089914960094019007534764478305362799561705538031026171979931128488326355855971145138311970202364333238202775665841294982509555538309741922541849280181401972939523953406008457391016804803295863028059007013286415331503897947877663905492378543356969428818756460361718128956267634013102527600720803783235508226711092999871646945236990645265802938796832966894855788423371531376685708363593294156659230583399845441968283124467493113999366484478571263057880926994198914076978825529116663184690101599694368206805401391501481095317558061758185384262397945137281046347505085611415268221764062937138853608549741501434962824834392653154541920131932643641430391276421111699991841947243850051694246249065299092575012907551112975255741722497944649473182927911391719328176773938969760059856999761261090855794150023003760587602968806103384825179581167807481841225551161539123632069598794152912813095144513089064756536938003258437584416660641966885473123314814711388563271366109829213656409746525773591111038003815063483858795309374064512070930059757476220048125595145059280511928111749444960245833187091393486965441643797610714602832013941619682205395535279016468705240339669096095841021715861430877556379465269055628880524455232774385370335002887517646181655699804345564761471323036566615440702983238131212250074511321869139079677606029474668345931697198486922895633116951847157693945140891129294756484612348614210144112078426223095737192471246298966044826037548469575323727885549469153832314412969096617419434186961977677731019969414948419362162583438828396634240373379723217838486436718765598852540544122242913670839918176097762076554474152732644730438038068365147223767692047254909856497680493889635507145683793084232331294768625805916447729147718730585027853567170299804518354220848722359598832252641709122996675232041968091882029509083408812531597459999787906490145514048494108762301261049297669465556061532053329294957254535742112664888506165691947530864015600945340946395052395694437891383514632605400164702972888168381308794718004624651786673759846505450517253842309114099738207822533731963109090238920543567371367144600279700403589907921230546896605356745472919470069261154544898246663098756707435326805177064955595617423204164001985080672433508830051986296584603448182862009065772308628057260904925279446853138819023445942745871156823108913611123338155040388871295590812911537397685112818885202744981166934474397560254194496279521872190488826541665025399573627369574013076750339295377485508630325695800015489829516700569068918443698723834266169180404893814269834559161158775109449843015243312254759297657617845577214827927993849096296164503950243724148377851382205125078645052606057858312244341100598519083537480857905334702914644084982966133801788812561155610214576216169942646035483836279590261061535450306692143331172933497133865694124126885016936216209080686284190460639326203155737349648315643935313326143980175647186923110689801986005240642210540806498227860144352179837932988267409376998336171980047595798739781247652220579333929694514523571167597874127713987693450380818772798663654972478792002861586172525574678552215973025386592541722045907088081510699420549873215396034416141365506448710725130155862235636601513182450315799776048862320355214593817771786296332640929489078858393122623160334922535193830571673826285037425480789475083993528290721013928181428658031730263216034386419037812573885629580443205128374000314792565385631966447513058129554480656595823677528525611220482427657418564222404440279320651233645314074596923167232917763379102587909677427951285061299556440463527696295618636069138337454777950787928519013187189952142290848072398446478779489302334580855958096477678610060532703272566395774859752145592102275918396861221027942246531192676596275316625873457152531227609392684304836407143082787525775948505880364772464003883495455655522536119516327006189741611325985183357781991704504175455954546710791255669792685341915721817105491721484448455598344532968409776120654459916555667921096116300941398540753190499929155274288866205022405747390148862063002690122466388485283664269864857551030076344579251403467144926359537402852141732032618138895729489997642775782422324726206197240930410551657282960623050584455870583899169909636686207853830676928627670768382913458085816952710512693742592327212067205623888656649474058996847179435305635292553601915746397829896990251349763223953159784399797304378032972997183280200963812435604483867745308201628786363582560691084107272016284794672596700667262681485703075230502932798070174879884064991365609954586063125536230020382594838272000396001872796267204434417535685227555631298406655982786820576339977917610076819169641649869799901062891754196203381516291526047842335066847326963984632467418456786971021348633525317560988544937779078699474753420346967257567250033066533260274514016343846592400422208515840026614765083067438478797418637964504699085704796434281513017464697386489030660526394661883299454957021732217782312860118055611928583648427369868241378642448634486002916039023824511986716821992006092457406744003921722876314954050121169440428279743335608902258485375885889375161193373168765543479577783971530054471847874394594899593746198235687126041530237930184107485392314339494884670899067054119661325306035007200997475151974075794905080035316910857767803428655370865739908608566496324620140712418027585841516212288301513651963743784170131384738940527287178996311491114764293780432595303892662311335856119741287427721076110345740354968518111032671896899648616052110544459611220448141474360845099125477651472654452655548253304982476196875121674005278346642084990372046310238113800862111240969056771739732668554417503384838553518462457377059575761183012716439481055070583979593985387132493874332312853054511313476066186773796949177141471377093260929543367197219936894037125498663346846391464577221012750509028247832706970427980640506679411616223197536088282368847109583882347750696551015427114928102610813585293020176721129311561430012559838415327856585915693797374623456002523036771019789126245268584448816574535951430012146263864961670867969213140957296341888695032543063634710996122661270379127913220444412789401806153401052621665634011578112235679193677646679963774053287036587298725762245460562923004624832305267667597866825051071255398530959535229297002916370299171852344987775912382890975328758797211846939704958746984816385293215444048838502674017037929991918862317134226210740673264440606929798018314312005297878638950947044957876616687807906663780832661518930526305803165553610744018864676916128845738493390843436577564611189054547225469631429818589860821971408320884123189788671680321406809105972191839380960650595557258910952370633887465509338691458819790793535700253013816883461338845530699039774258756765372224127785862259166052120887220885704126525531982903265008940699989797207798324101196080332194904017833340106690840907856846806026675072415898700145551619212132213474726802506327033532037748652815548463845540243900917016431750628808222875411562295648261757140758411995181638597571375242047123600999250016405276375104339479142709263443631570332334998288923297990167265915227263788929955238180943922688800074828755228153104462532770551999534023678271520110428908687642294946150998622418417425616846243461281540326921815211511616153131501794375497477132030339407883731219496675279977889774433570822915474877972358933712198692973177180580065366906844540474698950052514530864337918385904454432767748593439570696237925179300407798759305085285787543239859170896605840021724691584611284551824695881772003633552737513775301136042203397190833010915760959751070784325974216069601024715111769802882734721871152551391165862425177983422075934946475074038265090752926523035981394992139551971670620845735692956200210738752624880129580926102883314193796269826703328113248181132287121238795147003837156171321545191590984631094749497357081842654312500586982555489799779230740531057279451512158654071952001163037751120803566242894023655975480576867270215486160368019580534965017442424560119421212386609044674904466933937822108893257871893756072843473667366325303737067434741619755480308883142876832547806338787313604583521326640407738731644511598589501177933818636538265350950702541424261112955296886562012356527435406340283177720597169001377500626737805855063946568243762127878779793534636146529158497628415795926957424207982114733413630606243946776746577773008838711723260217932802435976117373777901785741248163752023332775247495084050862939268671262159707801354887138819931208220214556835594350613951352439745302951126705623343413133363924348384228542001718120487210039344995876242975483328910000543292410315316926536754744017231922468908220869623406861450335559695908923468619945617102398844703217730915065254270510956630949666252031110051372341366796420373405806497043002919372126558296249187729369228236725281514770265464388449078156985279155258797505230221932603821311291557650207186547805490797010973790375417341882988815621904094878643638274597704404345917837580561833037417511825802594246992784732017015711770117123519799766893342960606996275316472012975440267786785996346043332142532227128472711599031500684874799020024175616312216304851559595064852543478239711521761383567771804455981590050140027335283913628186515785708477452276452726911437812929062996773876093696953718874030971514029915798255216886893914660699615423107156230241909462259487860503371886950072270592747302509575053961067209301139263153206221152032280534479498386466618196830015062143722473338242508498013113216652287034264304333519241451656880817781648330919196707872071862862095864613643261857446043399984345725999163048549621977731413842331917590067275290591371358381933119807688364337042311872444559045624737324698266937471690562250950231841393070311471648434818698385552865627821946425829222036367110171171223017866206311880567957198665623937520550114102775492361052186817170251557143400770979971478338927842820101830642136737415499586425788789228104260524089221359169343163288965540961008958664717060792528674860495697300744458911941381937928473337095434587639494203400855779151012142755008977076128341649953881813081201530872630093791087703140895785601195807738302373908486219221009673593530879616233228904870847300644127196025864946706058907931998164896926951180402132720598567443930313802050628478475795349961452350816007306735678510015584610088883906243185710478811672643655075618918488902715142756278095946476483586623758635802120646410782482910379275536493244892942753657188924680134859160190798591093284081095089340506407909680827207379232712461627006608833330243568990801698466221067849816196865282742069362844255755255384530050901136275792897839874469350280686022435188554011705565170131034313506674295736457567486881835898600638086513930112317750198908564479979806319885146933067081337247121404875732136071869530295505628549124638570452102703524710938987224965017719806348164281337637647679869800200797505348600812908196445328387700311673340600146903121162200002428421061224769770085152463430112847921168040461634779622353437500638139642547334584824546910030200681685731113179202234943240134763509867669662449119999839918889221152409255403956260336659433153886126916988679294918940905179265909919705950329429996473849992785645577803564894611246789984040446571884144061212016467515181041734760705523008461757762151688029937279095594879646295947791548185141826809801015119986549564683743316372302504685557577627053213022546861976427249870430199539709138681525786699457753170195630283576285941431685516464208385203611522525462568301699077001121610356033487541466383608165922096792008391722612532830207674797102873074422470900582348549996162762230699452400157732011768923885101915199795232676951566608282134351696499583768324440642056887633642810495014107087380382451567015967466219201422008564595961123378686235176202862790388967320702433491286601117350954982801726686749881652772558295864532850558363593020312356067446443382407613214252954050224076797706049842992195899459447102353876993174245628140137886400231340548004575607099328365472281006825313184942138845904526615293180678769344773696382924954313249431627096063067283349243383868335544833136349495605144941880680586536938822755939903976658294138748495492177409097728729388061962600757115185548166339486534946371592566516860470934928702243099902438712159482601802440102653400549575468252766404880395801838081513316516354931097698018359472124230312974024883474918662088241629662372311728068086950782721395446839191111849364116343388523519934086220869448983463769797353826995362195065857993274605559102872509723147657003808244407059337906470020399716326279544401017662496277811850830798855726971044512664451275404131240007681336158553177868753761801363817456503250139832807130712849364702191622549828780788283586132559993285981709092184099834328226663523362789554446181355636594635415392971314462333160908276164060584117624785670899825744231538200056166064849307874329752273185607857496069999563814918702385694874172996892523851280302977488813651595463196123958245973440475128684022508689315569393781213806182030397381104352826183498879025322421165177206475197413059434113021878980438722942000723201974295486048333726509111965861980333915407808302881638202421547035574618280027884888503576160366559931628983058233705064276772812324377430704761040676384924169342531435863265972344884782689887237683881906196094266938565020357635277484039625056240854364071619360020248470405368229072524353812627296781201126753226050006040316153339640037125701334296445099945047079764944348390844958489770370513865957056976634069450805926936602439778643689579916332414997429786645988370948973357468678203735135763375542226142626217705512024199293854803532538035175387756043064201899949603764097260781265833002869425678698089328356235737547740550797791588214693891814298658849379616591677206091735584819415162471338486195972811381701005848770189419751975318138821849919294029119627657863235872311915563846667656560005132192499862751693755739299944817176515846201145215549093577936093813305280806070116089539163883856199739382010118199035299348385614187465407274714632220805262760149469946957417876249713472353297620006543509406988940275474210649436237387641036783086761673244514080479704637233061137570193857356227731430374422547182695834685805526591366382169037035971762308346478823030917027298859814350190275116096000858610842563460155299235323361675989858914166172018775482095939767034783365500286259150596776862395866960966171970687936943238103086964564871993081467706880096367084487781454270776950328193304456000561966328818483411250601907560872218900414530279910314156633904334351442462146623436859054650374030438334962052292277602217649751879674293326356577447881073897461492676008187007833231509561164253876432783805787914332217112226928794505334060407360605306125397160833975514282870528333284912335719879383705166314490164955922663777146244493353412634730263279870462327098182668846831275390741985092222455649998612078502597273383219431909532735883375657297616159727622529812002813350300962979254738815332706853674718872047580424993581407782256005809860766327535501191351967463469272714148585135349179152642381477232762540298761899591914328036404570030999309977243407116242350122988266713337953014011972186917722710520087264384211321236841422699452843350171931445031262720252257895077488949973655785154800680255628649818006000633605050911285768493268911694086594040664812338661459136932485212781599678116556823877315150677380714871536330110070888874185162263193605808396496972031021696937640186356719122946879158008016038665401091818421605081038791148202922323971576846282931975105055114655651698372659724865130015721527515405789065225670519824287841334410554552390517443264945277111024659702762864163702504829750570644304146461717065959390384093289645446008529286505848028092159579355062905955190036188334547942286784485640229172691661921795557893438992277497752180465841437026350105872495810998501291325694604075590968086167075009038256977085647665085012580567638381532536369599878636104387866071838131750541876511813469423409201507618783218430293986735331862631334404027001838618055247167199890133205072256373129443514276368031997879482500936599082934497980776930554161426806750082802615812742409640909424492253962250778060655650642375353925822718695898589884664543480512864660173695525968581021890751803874552739008082908057580868595732521111024015757257765866687397170478973619791602349720076114893061944310775217104728279287400649628890012068525515069681597126334935946754178805822209873103616956846563762129863227824412253280873478630451123232647241216686007545863737015336366601665052568484161156285142954473163895244563806669224967295161577848354337357069814729564227195719917674185627745231029846657247357720376626210940581075090493318365801328765489936802881992490756046946714622930849863958998491974716851114060251978290913490760370036759797655923632862671348565415051525726265514326133528917957748673384347897143433574336534426787981681817169513331845040004708982313938162107814000202307218342481812199007989502546739052708793075748404495111380875699537041431442820147014839290460985878991992582036640029263418941962402207670211479066751083567036517009206876551894436970913194728647016212264310933938398347303891209489588596702288990064960494916064071716505583831718832807424318323207944525826504892788021337093720867748159000398355492361703167745342782823652325057406146447211847667235590245367323644146524670746569742739608859831154532765735200970754003866492366612750768740873206485457432178395805000846555069982048667540849662612253006303535804725627009120232103249335151336858482507432429118651058675506744125934095963042024079342494643966940267067395927785671349019808163562095826270274426272784138327007000528170027520698335079509546364745242873013963607498452127815446361212184281939659515777843383338245109011639007212009551007899986597888573229026740423292241615290018620567061660812937010159186973109484174823094484523514480145350713610025075274428812208976455532786042697564853526632369356951662036627385447175065265798188539607921242838066695836723363402799910309931199929090757080797584470185038804361527762862961224315615678716869549554663116646120698390015733186037822259977869985603766168233797075451772732767803757102356186741278657463908836635441597789994744402076731463147338490429564365801316074734587072733437592793387886819472400107335927421549606906190135706543371140491230843337619852424532784061055056488893982795646874440613196976856533829453055343119518939028216913303284776279109916713136285422467891295602031829332669345995249669299384547755466568060845904574865323086578093212089889384158037398507190985046350208470328322368125674260229062569138656244131762903071219172525455598407212111782530621813250851370373510436468007535215153430755313753085980690501651852060005522340765061260640380634254256290776586954237944263862077388856906191960108577005756567507556456309617572980279306100546985580190522176027478335628606414940167023118872173423986695794972723394205133138114617681256606528134965173182213576819506598255598238705321462859838949876157758840816936066834539193936617285636965959104375786497825808921440645351357201289683675147268484598360851821779111456576773100157837393700127864603950784284523371933871467480818308152059464752444089134420717604400728694403010428559653002243601106123536744801080995882970388440687485741990265756244325272797648614221049445660237943022547167788738534806823655678821397707407523509075355264906629456831470953700211473055154767606765847646885185415017686644798440404966948356646538896292625116438331825260326088045746805212350808021107292342394125375487102487428919245379680976529646886965952467826278615915814545138611349847018579063006001082213299047362703298210902317102363021190140049181409892847162966622628221056264071979878158641622201913091606157462964925571462155356551412275256117242554919107551412178877315702659097849853141946663858662631790483154725346582998471162258930433620093224424049033766245036693349469029220545890766092767924711659942353572333020631264332432463598449625312297966215061402606515413518102103500819064250317316754493563544174444734890834262489461262014878937474874749394351996617093827140305795438644990515558975664853611886389892704957607541022128226448875008642142268280877639782530091032760724498538938136614238063677383181274858396325592754500477427963317684399644583090877926683525007467966165859827569828640990166489040062849789259293116685867528429187093264465473200012312464128344326257242574727305420647595421256860729939190293590683361644974687874468291909878808866701025342677953408287160126814421289654957401906488294852641589368113594106527371697443970450895016202138424698624554452437366457775959042590892880923738583880973928926593854780925602132655709988284497026067789537784173972287913891524937053297766143540711548972598781395036620432887508447058829830930188130612505937708288676690975957057057291593103473830886645729778420026408371135624549744345218325194388471910159401859622503295864688702388735448864706753359418445038235386057792114984723953741340063819996456812167863568098376204579325159850496147896129721660899154915722514969509983118044038125698034330053832920963095945906784092588743273556585769627902350230513519265729351520635035296401049531273908758000509693888560477164136129942673552120632138282435911389642874795794326832188773248620087673321913158056235025543352263661251622477983650851094495149878203968915137035420235844963585999853211936674617412233806092581161899961673650119049995225253888744747760775049958311026378101760607128470465021013257051959056885281981372581855113204545537754360470957158789370621544208473132645322923348306358635331831570993569347502022538985416726010968068191466699807601410012378150417252053149657370004327698991923820246186897427013002555865143126119479304676091198682705672550209264920567323419089099012560144703984503998398881757988831221592734919745157107166463037005745395282389712653824866201583468219174398178014292432005401111180144076424617672172086516452273406162647607752834716481108926514040485284085025023828913426645138197549221326040263519395288524874226474063597143728022234986413956336673427753772332510449878841832916415755055525758039128168004505109745460159043820927774405958866539683160215588756106212308830781819109308350942746827692086422122518241764587865686117581466737924358641911096034663718038541203514315408138550887932804679171637477029167841720982201627868190687070633645988612561320764539281465618182907460454400769145184881269191309797606003885542869577692765014628295253391818228600759924070519879373507742964108235235277112617015836184588234094840739723237978287553277518493495137896570588448328140029857823900775383711875903997437717297349342039191558247108888369928473306204095272084591839962915651352348350158861646613312592654398450457226787193250318185313813877860278431850752340769976376453961703284255152226251222678864417163023140119926099818726880305689823165184308327752421977448903017717717820558177235642946358793665789915322451565951440191452839919338075351355362343758917038651605073187179734601671042761799805177746524598283216009984806874029515181187127927255788534106630313640774051278346488540439496380306947387164110148215555038129871246140974118384622967451655021782467785191344120807398985830090205238950537083009741803988517880922146387632566372949056498602114861203802957883582416820254309301794237885712935551375905634107589475700063212386196782322978383037672679783941840044270553878690972958610021476220257791973628279669232584323169675168338890016881487746453089628531229034908549194237229986532384956067993278652234794148571704372085759223081415496450659100963192782062512521645011600097446511449538332069506355176898469556788081006110401535108562201520201287697825584840561247370723081357450331954660067213315153157639482685511539810636895612525920912314088327779561423214970474736810410062930921360721221010816226135472213656171602980586818632965172893240308591277587063555895057132921980629195583746808544038719052041252286486302926063161949049748492818075263442534864715749446536732792301209876115848389565091607185508105069489992299730812687493030028645715550833756434043830705394864705302472216602458361112323099689061226572562317110432238318569461121572833422837255878096892772821070071397537717319769899876389758747711630312550467181929784484450345066006458401603227735163601760397779287790774671256003155332332511620589967903568799078567331806690974605352799182263022309884174295319821081031097423389664394069555319191241428186672478271565495797008307337526990208844799777105970405443026490070428493360253299648837415827654183819936167848865704956675269230497388351113184646739553639265146790452460198700649524646818328915078335125381270721849634770836613742422618413469901786485458440057492704991164169636620728826954281844534102122302145450148970852694644330596246228503085639095828262833681839061417537670084848147416805478067476733286752122752315707737594864341552125677530805243790098218610988370390879563848564065314766040853851135507090361304008911514355990232978981652562929975009129544951395737401196790830261093177333999743525843475622561395416550671438654639933229806856366209511124944468432114811977329553253001781592040324638422853019531012884084141711428957558045727344888663245806839857240074250494845493751450107643528383731080656879501859560826975595950516949263530584193195216983068383819083360463591961410074044515054592664151758757643025625576152038658248482791385316688821169636118143352022521457036483620177399592617860563631635146770242646081437968469170990974612686252131000745557508100464228447614351912246962418748877336201470497487774062663385580504955940134224532241062768318383310911783748594594884152642055523192430428545785878139718277536067661729788064701623229444679325300360284413492619537148629610659461634652060452514025316835021030032676186502431591354236469834316714309379074469685806859874353160740926832098741795188131155463981575008046077668680719553839290943970685795852751355940206601293034979477901579344471837343935372236146964289453643796686396546195080032995381983125371272280259940951839482509826243910144981352521867881390479713916894014184944425615335573579280744331985768440478874690026438623581731812527497093373085347277763651411255090732339655763805182695129070175462177470265123661411097774647917163798470551831066743498589943085738346817082881444425544961219880177351596104831154254159913287290512364627426451080540603942337260225313808101453631007806295434830806989910042416549268161982842423679322225266105211811785158795718986432030185244091625410126510134420676273079194912054246087732592751214461570872613161886927997886672066032259265100044126249466144176347449601000980844244769398356759054817526485616851588802763067356788175289309867491078764191612926165127045629693065552391898019440816610662037172182008443946330423947069852000926586735796100757960108796806771970471053112560552410712917716583445785870008080886890418145760567434517517330447359696393097150283680082766432516843475227501128870016795831536430009710621567348349304642397262243634903213586422294410543918561375781984576008324076167271792724028734680115989875142223480882169632174704149903415394803590024730053844908213505341927747863141402473801247059623500524840313637700972578745886554579105150484835857402755589937013697916948210511202348951277259162355339220057906253011170123136494672099843972539237197555671315275868330662758427141666804402563510366383906124682481206288672765895644313027777076819082975912966538657278860319340298320665101235335705479768080299714210058070237425627517847979828426783878688343439656341306107084548274459669692794112532292879163148090857741827093022569747425431464703038830923857799219099684113258503986579034140239918240814773601594278850260161160237384108511589665081950753234605302158956782813414892191159333188915024101848090339487582131679189577026106346870672280455152317128589079413483778431688982193718553985347417042846156669618090334594659267108013262697092149448446003588690929913195048862484468048068636179299452697381632086049124052199581839811139390367017663052432873468870794112451152024425914754213528137813093398879158221763528975814497172933943908449114360356137503966227252291281184535893809716384920246029611797115037677867076754073681479492438225353072129334933329563742463869376130953035450822568535795317102342622366676459236200710690854115171687246282294402887167614477798751057857673063356179853019461780993806457235882979375017590927940551369675589647695044815159904526139896733617416874128162734930967789848562829417104909437376334829606631271387548332909291404655356879501912082131794389405371353430513808865381290853803426080576990105919615392433399992123287335249866283417827401459235441750270634534574429022688098375736705725766864666628024930109812897057896345053433286554921590172087815453463575380759302921823975720477719955476749489531665037639263000758435797786207978004468451088271395549473635120759848379781422094805626165061662998693803646278501675079710790242784503298672695996521349353838174356974299984554563854806948324643882738932815257005779424545349329170352264114906538115093563539161987696662687164313402416844037567424788631242467472652510330837014473661821308830102334827727326022047375557815718995687473676570662722337531779376607944996374558131234557633097386867851503528034854308188475029862734908168402412403874287952746817219649909754468174600779513488812736865916476298276248943432300469637666987133865112610675460113555690692790700116268795819633835667077517934905113995110949642056056934416777972766351083990162597606102814331120548028123836196570847527887640001865050851435202019614753447923468198130608427156005933105032543160525213103729184328253782035137853211042526277166225770774027732893794501136132193165452501033508256933454812021026033505707779784136621999373602034290064715875031907425949302151768526772642201215326498271499494388480659951096475450435164944135600466615312101056531485523934054540151611771942697463978825805475913772471410725935974717429824929073618607897375158336633527022493256195357605433493646144283302703781487569896725620662166135499783952464482265235992056481762738431623538071471458476430445824861706470604562914543973131632505534047805212525677776238457641680069060168605865927278523615433550165589058035147716884192043571744003585157969611186876523759790487989593817710542695452974681490622381819133361406594934920497773357952682414352539985766627924639481104400394536380942398996729053611743655624369386143765188136634626101302961627566922784153896419854849457310828964244505801042878714441361448334437102907845134277054148429803244972772261852022601978213619224098893858071840760258293963761860256598504282720793584219585657679259882412346649697673913143106693593858294205215103063165803861509425087118278504840336348139157785101423041489226708569516856438991517629846831532524610640944195145632504525628892739241327866396821675510246752333041208083182621143497739718389287209570087828842679187858056987248974018198256366349222381114132208141187829750668925398750811989242568462147662603988691434845885816008236086136904979687983113910961659873680424192318717090907786683385775389505331620486573378137279323883390908356723434456828345033112154062321275255619042975388400593973997690578052790275682561563890484986295175624181764469193477951658670993544109643028569124495297974554690962113529988906950553064941126235620050677606799709237778714773874374483699103756975567740561486327947939694658513920769454597637105549560149342381208534403970327059944637234246017418710551688441654941193758603400597438478937179906528379231928137176017218397980129499375718947611547412403644039721493143827492179871587042069909173204352437486419891361595233272395859200359348617751853456407918709718622767482756404083334506797208960024809642877783149705682363821064271975796034618852327491679507573328660899335180177242831382704946704561372384709134391336765994803531115976317979865548598871825642422004177371247131939246008952084461215278199579492363529971847652156421047872564462931171758928743243094503000397613513421887186622430493109993140950142714351994092928161075113607296244961163125117617167324385459338605353952200624922194321914052861221317406007757235885606844488823838117464927648466967231868338048480314165379587338183054424959692611518051206983070861402326064197468825162368852601250694187793326127807181571680244898028315160635084338098733053109782341798004241305566998719663671512008687436235788250733390101629097924619910171031098673652802575836558498430935947834359521871883406411201989728696462552140927093595201244821457529095854236072187171588279836648139834986671847546526082668234852566484912848586173327953919270587753164101862068778434870037623656613021487339568369618594893545772857207916995193955907111493306657853585540331491641630409695782348052072224427964176485282879701628951026854738229956277964288740558242725034911181422630485725603808922839948026318177785679340876687563465756097831767072448823906624854786728650013076592406831572947681884993810720898465281650351131922250134821110767846441333642326681557172573105986938722119277675662445486175115657169736319078251395143285854518200285608783498186626135660343644467863736622513437643074551791753911814951970686826683847555146599962676406801669221619170490513113615619561706351194002573228735830484997818952613327208658518215191281503923161924856648757791069808982642934109789660635122042336722294316956656867340400162420626940948327636183504890744913535502551214756565797711670690496494929945835183037466384584846894614809142668107134400112345319050462065743426939432993648769672351755334942250384533427179749011007855696282608134063648613611322842687829293967047955001003721779397062617460713417103292143540203033592240462700948180129229141936347746348984437193680549920347300000781516574834643368529143172669231639393801949772087286514529983442214670096769654000311844858479756754859916586715207627475601469185893752860479201877652143359050885111694946268334323868005595411733718689963385993541258801882259060994763932432257783240464663420896790727628364884502312534969082527109041690093012262183203191169701859264252251839432252813360788869005761788195220627883108204315421647140807278794655041386696801030235103919577555944234144889881423787881375073332444223108039979732594069031369745220634530547185412637921736157101880335942661420830541073743470931611473093870635429083106588987196200933250379112722272992178925906645018854840345590184378661802052097176326427447024175187273132553218426914118565490909867185406456798529525587847715794139885523163085855648314560403493490378954264029630952343202494721787494126305608908412000739814087604619308670640783679094235593448189509927878307432416018086219874020093401854207645823151394668343783596558309598002134030910656644346111207601414473569048984949405127403683666035563673643034650083873386424381119401297214495512967356000510981428448127821992771481217025355185397313675316444558356859547297773851235120555253565213438657575052750121976905764249218947446685576749811731132305128664087786232400010353206346192567749828524893868527895520104849908146912345857795008561587027419535457334496366051377835991747059600390507595280925128611235655435097346171178327755284142158728521693291836112760307319988201961442647804099576802053266685807851235691519471492251368293062897706076837168883099759214119992275379948217712996968008068180344003102948641488953803581560995717426927190701321673415462956952477387616180892249506318773938524568542196484907735633490317126829454197114827826763231535362298226467333194898458122535731384193914237451458599797657260885094749783430404327035494486733690278565243018256061562755857502573556865147888089604836385968805651786599739756906716902057931344039701116651850547357979090180321679123960761435303281375477012179703806331073788196095568116395414146586828313078055292240890960112305092690858271033542709245395502238326814475174004526831183883187059618900547910001010583551740489217226043745798328223344639269390624060413540207427278831534099983542669483619489551750497955589167578697942300909046873579688611174037636409334090578341572220005072065352193125792117703111247875258413056417554430713704302797810808307797699111572754852524346738132001711837761303814788702344442420796419358745594636968687845391358158439772311878926997712354034635232018688907963228113414305779680052048733719685159179732960138495602133218525176562615622401349189288118889284232303190486605298082620925078736281587278613557221228654759743789945092151854220439815199832920284773520869757111477480145268319505278290495821312556279505302175435919919522877521576410814920948835173533206626578523531160136077661650683820076051328338061657347108129767141601292083800119855288729479658877830365975934607088995006417174628405298046436121593253894631516196518687611788762193647369143540903434255616854326751443072941568709575632472954833049948426751032247367777415987436410393302764512040024218784823947706250443267104874006407171783421434538508256055707485670803220159793256470986343677175219346295047337854709803419878137531783797086016757489079925283446714428260121864049336680503808397768459595107247551503569910362216065239033743504441589120667173144285331171351248571557899842241728958022317917986303029222539321340933705985567572295098574741261949523656712493096651306265226779938269074834154711277799162235287901687416454341000337971701783722903515639618331258714608500957573324278141310191796490934223951137403565133311240322471161388026388716815999141744540320212735709947026111939226264059302453856489523500251142677748255162034441535154202500722826586659059677146305610276793140017330802856649081065316573294266749305215093569305541782980366694709147941037439231772048753243047563369938847707884338394594604293099801097007809422219449347121476796876419050245529584719051500427180578156819219589780778437707742602389306739298557086732879376725672059951104449512492876331676683848865521847765561192199343287818834198505932790556531464077727707845853140670794968846945377603783025288627472433333835784433840626638095413717005006759236483421081159836431706728504377624132556199816460456174183097195456921067993030245973196550467226567880206358583557956188257283748285286755783586652762205261132037628074744034187004240436797682809069410626240510671790843801682572499062990670626335940971086423891285883299168352736282109721534393313422318240704936194152152051061653025138933573325518130383415571828138001017426716137369073644433590917055617111155568958803653320836121225127951800615001924224366300958683447894272901704022429112370964022623880430243987877923794312747582567294152504008465632738450020437351747400927652211011676519097857295969479141615158393202113136273367080617716145626108515998083275625484752091264868266085214002454925136697185716499524319841682673273078934905341740933110915149335440363021372166245811380444138297137544882491228227162760749621969489693952576093968067430685855927728081435985365682398650004427034480581793674738622756066648844408205005513769533070402640205177039573710276550304473559304256164184992602951015970662674994328933008155789989000282562813628459146623822808082157287018736558907934677638013037480143211020152263376117986747204352756982629231893540210574918701852180153201388587231350502640385979183748696941553778719678772100161010765281127223018260647086151349805315567232423918636321593831932913175877216927790526536667842337083042468337041567398665001855587612478156505332998829761221614741192357445835816138997709957909986655267269897175673019703848139739045550955811350637829820182704480597769421960935530428475353751674540341760089542129088473908593845814665851054807298273498839334078957231250009002116281907739727035687075990334472997731525625703966992633896672680535310719664455489325735574933801288236773644404868883313529995846886815574349411768001963038071751757848797326440781638030058918937627648960099636840236604079872737863458796962266803351449012147518531521381906625618491632796630037362347905210421069910832113166123819973005240532807638922850432851647286829264913443366986602751339192162428264999954914097797723231246187983731223667526535741648338940547742458304363134128721682650422086019909364081754337076102609812750361089419733862375210288707618338248827609720077007906101282177777083769006154103115658819092739944808487950900193796765588915149019446298168186729045708284726687675277492367703835067735107867281009240494126123928300921761765979600273817465518245627062899597890516852157157083488101099970253820272645202874668463087804824390761759141834415303487680783132264836498419130586631387519835081594846488302538744663719635463377983713097181794892502936622788537171399876394810878453721324387922556461388705702114336646725795162967786622583677894473774303938283299647492307227151275882713564223044414965926689644841059977248202088428506667878146921451247794645629560942280451448783512388058118273138035893031876382845658301505634147150873666136302368724815931020768435932368619047220523174744764188816878007182649372508317090942706978931846133984582256975380201250691858976972685291114540186955918019452238736141180949597872582858044096648199791760041324588765833060269944108770727554896556290812306708031544647188678169000020320628515937413814040247090326486334132416502462142447605757568535823393778797346830087065721737160470677481306779521396497654602983038938564209725234285149619671650735938319168306678652605604767292742075141146487742629654775963379211118956986610325071492663786031357964912059984937042737448366840335199681580084553716033794203051210075498534663375546800885566915146226007626936991960645076068852286380701458111903322611548423990042289439027011846639693009572690066101694271039909507862590636141314063853020443820644887260197250978747158787434030905638982115838948918564721811174174621463078312142814484158672054338155122939794116796840353816057489296002571762659340710644938958415626793915445842895411738603592083468841718151545333057399598917481160271186202320368774436618103885674676679490014262191989342501539297460907953047757920003772824383366081525369598546357643522615922783189039871483118387164420438230375161833554745833842532853204792342132368644371408981366580927790747956555925455548015036403993584936206981688585914143576973650143534162215584097093881189130213516368857426463804557722979202079155843248493228430959546954742075106786887710564144452213287507500433463455604090620392286178134666998359385261996217002934675220809026212195777546317199411901267196151542344576814741971397355483892037615034186567593313650476093602912860264492165608732745423143898964405024962602692414100064604184326267672494735509565694026742455763866897386785772663055006262624966833602535590646332930134679739993113680505678248270321835200291616925054742099570761673952579236302041410420849072720143941421781921299077010082901009145301024474023754898096862597278337202305249300052420512511659311875619103332632209093092450788901226989765993335978487824197620462101347683732288649838910218688106891035915321080330680433289622030753149230176123037667216124414400086161306018410304763330048851186772825999543912837519103405727736987833094447915220362088559469446324504753226532758887108160670594129739316815487781990366727048577899779778600819207432430578833842356132483501364134627522002210821210877605017850577491470527788703162296807937979212320060342789621240625976759390585098252458577748476662059515043877697595339667261391767696242665257586082397088937067104554307626562096392164739761444167446072189969609331766753833108778931630933768684717258488593110833085036514748687476800754080882186564430731796461132526883204072319569323920599776378295655274374391472409034207696675469201859772895395522783680079347795226606696404022313925968153398732201285256872777540506959383544108213230395879675091559658955880269033296578831211363601179214609074379743308609973675257047511267860601711482934408153580167415634344331429260956479309639276667085113263154877859331957514169112090917639788090812935556499898239764458414846738015458208716042657756064615255424306131786342191967842984241668892018434971958918400349587936263692547673053740125338815867271193591023781576587656592103168091926844982405233183783636585101343557907012314092269351516757319737436733335165262875497579488079762952474833296895140543024509459215909137136449977538951493945660280678517345613519482100030488590807317749163070434298954081003029649656263548414216819206181560467187252150168949929208545557446599776203497597420489960666956675702982353223816951933932016054686908699837430783538614612377504772090867793335352684962018269792905016726745218073159317458195341339688567203623924122000996076784262861053951906688918001998574918481572938308668227575202747194762994361333106431784873208389540886042756690836885130224884019254646075089152587762112639431370718475935006231776420534670749213442802031386104897112547838021173484635066760757218307054482246030144236799918687176867407079641248198504821157650682250597075171720231190075800408794031341584094175637411935834396434847485177722392738150558466280491974958617076893876796920398016184052777568835276461880325101368614869779149157453441175865574754526063912736365446448274526180796420071757606847745174824933748412214189512573221898410655632662071122659322207025123778917794321957522785688267522445599036316886657567392361083573817212643589623974041152085391693402214170219807150638347749221656686003232940015306636224615331409476407523688946857758130997540878394512501480214078976033410074073278559919441879009224684140391584312066004577364532793074798795028675730430975911194768424850358593162993748621537455868165472405945280128431933450440661178670084279881782897805622701037085397713642404323356087413959444488144922987895325621642466253099449705072574630474800851586275059728778223290268092684057708897595013474921178288682817442758820471481844416148973687391859049516733197342721848873429946544624701102809265696817159416100800321570559727898976939412504023575216285433928635313983211733123071988925464937453666380028295819213281990851765241336216418724314313523313913961667147089139738153622212908874226892450919446814781316678307511687902229727231662884148768833826069582096225317570340694585615034233494885945689028438003966332410001232579391723607698615848074991452624502494406461587479023993974144381615787842672794153289591275181413940442095148159792245905430525807456271949248507125152421859585038746277277107521385533872857294723361728075017021638041363365370456366466638277962894770791944507616710398168253482214159416177113389443557770617937292233309661365195877057462925151538243486788088403787802866010335603240001512329158558864242644843435992695996704465517673046140351500048916553299104392896326499839840733556425159040044120874479826138869065912842436603482770629076897792124246114581789127537438656021382328432265118974265203613739387430805854882254841998147990349380782501532300580056690671614845207535497547827700351903550182587484622473242130187305377461893613245860775408378312538112563596217812523534058105233307592368673175731468820558465614371218144701405387323068461087074201261460393592503252824873095089861181982336792490649102654969444695477564814416386956551026646586470327447581646947286586334556761309224820805145900029721541833935560823599657972923454550491032735400221468635748838385011855337560236517223931346829616067189501953459454833837427742567815825073745610536805851790531763645789413109901927382598892288355745913047260884224489097956326324595574879333562998245891175665780934443434585727160983481247714911682464960575109464125823157791265218814834251539928367041847702215048294828365485373742891097767158211133236597354804240011207140749510116813523850216497058032965839320729345351301257447887750221075187640715200453140665841544815796568691163676516122538971508214436155453628343303527551714681747301016783785820066945763445571649262149948002585000314682232943733946483836816972290622426291062186331648463566421784175868464524846776154123057465343367266804630592170838792108644813985765850344888454050333275377557391828105874969601153906697441136333620399145099150833522637349371136533943443674304653023684940818132891208197354249545818030392199329447862394179327861764093168329223157094276270163175316517361720561263229339532488296240616748485503657449805292614642499844611005044110977843139926508119645034799629832317867550370470341951719403939243494402999114367573265173168482101313099166000729729516977788162091635788515604698775030610150946107280028862253406098641290290963642869579099128277179151497848202344698424077899700967237058135941397465884154052665220950116562812881714158060921387465889608268415326666278667263307099642707482420270669360849576704432833743892019479206924997170707180059917471393808592220023943614941578685859169502027714601200110788584839458049819005009147425264845425576971548931310242190328519026758297324708408602417301964215315276136896174593908243347614039795998667548743161588810269138082015922249207908762999378396418870243058473322155315809647329395543423986552622954016319290697817733593143353416978677579639148183803639442468427231042264187033999896063940822174597905644715511532814664923360768038363010024434491046598512704883388628542978788480294266125335534016375462095006063402534794845822685169637970893160469960585934428435733481553193068854133012613356353946942929441669637897942056788469704034180050684993292942003904422859232408104894472967395565998327756009882018555583146080654466739754744961944387233823021541734684564043007640649154485926187458179480233433007556405530460729645233311134826377925559916724829255620342955991790197818542579369308218512286537092537706502454546733964399813589138731840480134752217905278363646051338407237759622960591528753454074358428382169640728533400404411193920554041768695683783400846805033574196461938567500325866309430168668631011747945894600382200436005613398714118756665426067808891198450312952810334137566260036578567362951411870483209179578015659122117070795923416952669287424761077556168747122097092269856401688741512839975622845610742637322814411126102363511070495096879340451768220780509119247763172617650926871292083111767643938163726556528627362249631407850060569936614702709110450437154164878738643343908282249420886731473973478693186403073353891341759024678934042918806527986865621601658927667287944175951601966814928608787658599217433437656688365292584067813254385150248105393482192622449373721011899181547064565936875160703370947159338282890322519942686997616347514041640047072337719018779181868480529992633644364389760644336737662484931363332510604827768001625018838546715288435233137827094938071596449253500310155286854749032682630109439124561598880533928446249319103107267233874774109235713170489822299445405159893663758105565474416269040850071468338830055466263744726253894950089211158260882126266550178956215535784133199816792867968016938291110093967895576932481032648242126279017586906406545030967949088473043569604814999071790909927849110670069520550861001997883768209486114899905692115445843344218526635585294351863077877830014477196242540646761320936677233940321787576559947611772275030824054619696998141088358930023610412132802563486242045496678739138628501533918545167689533111410258671642137858060689942514118676209553673266882032798354021758706346478166396187469910733421642867025840585727580631622144305924106321589225215532477375045196747574149406767831135087442432795734233287482124370047152021001268010581279219306048195148520562229647856643096899286733504677126132561258126038511793724096489357351473970020313810045830731634278685824615882233950460512664638169494100076234166590948433778324749821567024646203232830283084483792766009859621109761521380530101629138585584118553542320993469239189119126509699620381832946456637540302906192966112611260545433607343452567330107942574162293020323051573306398235850268044382949326117080281724481055242340602896913962313987613864783877380450988838729949736308280620653933754488831068518261638354231509300042748943597240728459039433076674177847624730908745908197746489793430167343782162549179169255266926839617722269366981144805123304540022444638881881595400932297992485612597388550913687685280657247069245452241600681095912494686127438644249725179470127330827230474482133777911310663863824521210747015848281311899539748761648945524759460848018547655911958685542148397935968957574021168446049303909225546491076177500913439921704815442933186477902741908514609949147982894999690944984808424535861082515676913075647070263051202240134748552393506383212100691502645196673847902912545715134338001492412971733779609018409846190511302502749771929779139098587105804480305286226334850835892132456027312569481292804350144023433291662006319684979693514130462521860514143959798541269968058871167498014854471647759987078727735522482175265810908397274148583680019895764197368915872765263149579213750033164096084003491963940941659411023477734120126276778060764117867174194607240904083971542101754439062483417320809886765387667934929966567227931559273329957477218841652531317179712299996335140200205009641870875440579710418817045732090727176704944451350720311315569258694286537093345031650630220011287906407330824857546727979867197139698733632571426119878954599591240322869853810309418765514519804617075418571178891750676862227563499479241218737204874008692140422655023255913870665796332996272291214268462914969421670944488186090635000182031167558733974537898298499174917945613407645495126830786945355159153762548035705853030245369497103419398305740514492032979076305760895961200354702262449460403911946948949967228260103651389893397915145830451624833935997570544668945971075054798183919588510587256764747698907551453131778636117234350449012574440065576679574179244718891100287275864681505395973118569732348683301563929926094655348407619828713769389558907466874031994530547542616728072263271475920105108274960130390157106695914033658069227394545744004939001124727445067210271396863862504506780506496844919199847102825950961286826103489725043519289141931990568950124654802991054760559714507880778540090607228042997331907381839692865266258625071179042575814095018025208836823462876560942458203863477940279492346995643817604944309159627477045129484567344405186361600746975490400665946137887440009868477001027495280446145279073110439314404581463619330055888676811128051865967811570613137663747767991972953379071116744278916509664803610981932219632452821561291789676920677492395378413330658170800503732709827398712803139957994219431070358051733873799595512737640071595857438967989284246675751999158742764687368193163325157986313750845388186536060502443950662983074090583241021154849330094505928643066267960710808074273752914267231054753260679836401334198569345814802751004286000828018024177353370585428671652689473058734257415149102505596401145885584777247278456569832921506972483917563579716194671583297373564175974729314436439182344285804290123692338785834577888655382307105839712387756816270735684158875947464376507672176309773953785605136436333571650468965609047528981708568188122961723637839104425166642588135231221562516485548929707374835228786248504722560576644822751510074012210785580665148255042282480139962020122425754018718734321187807179682360584362667416049804795702138368595322489793544502661993274884311005361597760716442803471982725396381914460315500289923135609940121811571851762117222646308273415545446715195452553671278648986411681344207577534399373057858616705661758919297838246653353306385963878440848500661083421913309436914680929238171524954495595608063997252268576545738738053861475978803566652733626200044150963491193852548205521740251336285887572961126021921685001183250617673003017587972775345785832211186204354779841447766076456446536791705235981431000553672074906324851418479529039150069570251552593117055657653754590898280596624643445805244539373945969502149000910585538986877578875390037871036799474429372699157132779418913964831172083872490082372716616782320236305897103540279503727001354770774470884433283171752715417586190990780944903068034098856345139717739960776907899243705224419191364983940360733798584449153093554666850618631961620037217500568481721775629941468878224455089111428760559627405713877186214491032416422172853982331969762901385368859136642286259826982834124276291148211241444626673748447802910530949434502410370241604476510436799258520797739922191442378218035999049159318337573211872132232044314358418477617770301317280567187780945008887218001085650861702049740333645434382056373430744325370809983500808005006470083902911150707091278054009432952725659194650069071939182899462973972557324328985141471259539047175983539409483017104433529336652776126116777030601053530543863451155738267991045099562945938029990138378633371560207110571808435240842971258625945920580825056135422865285816818045420604193805910957553918218757668208393063394245575649576716895007241396746292249521896750353309688839297649642968018823434401553164817400127410904179593352197026680615991100715105832712623472315530223286571577695330677074065419018677586145356426844420556080345950795089714690046950404682248844543948249998139734028374263809247479232118851959154286511764733891100100164790383641121457980505200827868056115316470728884274202336299316127373387278778689023343034000200683364395785215823769000220590249102558155309934515764599671881784711785763057828055094360613956444369776487655594175358513526137762701743310909809040712128178494813324778188169931004810202614690258192689625462222500058275752672101128330318724082701445528605021103286352806877991830537775653723764373974731461596356066426705754822151280032289742199780163021293674363142744777481276224377602998031335601959703066070720009509247256379360647802276864438255420301197430998841507503138420091206173252933815700613797499250736605943231506125590246497312994603834155602711579461177131784628703204332050834089543156473217408187693830846650040860093522703033370109912058546040748413526536831753933568073090358946833315646474138485575140433944518301487257239254955551056181770856338575025478344758590312085516281823536493034429803610597761443793195748704070232925449129314470246133515786218787388760311579386928528060732077682842154818008868733369955461519220169342400135400556674188426085181493734932101372124591164004041351030757049683529666590115802936271829560385717809901978720695812074976147164196417120753441206912865704307019103924523820730737310462326219609928665807140429811421336220158057632393134884353325716716305540417470855166460176452188611866409049319650494329987927472687380897178106571785614952057863212604211974437462384615424909039148090207116942436308507683464371499296844500391510421298098338065305181845799741542028037004078958538782428467531958903575871010308158615069747592394116854354461070887160602972219430295599615439451560689192299527407265645429351155367871329112183530098477877861416219653539714417470471255948524282029067143463587775100557018740607023950844189107082827178547458225667785570629735399989943996540082151107210557902043431138241331465709096960885218257185098389719207049592128244328837209967332159999231087408563119144873979991375929765667187263204449538588570225184961014695986047229199632979011294812766127489096323509217522560404173435132424998727483564893258702847758958800550935876075692431852358777009394004647902351395145476745854810886451476794297406494533250377652732962070137255930883386420654695367736398845792648763071127732172364853723738968137199566152465219852270370932762426011405786942217818482653421726515026416550600732110360315910480053517694388927528074477338939798946983952503937719148306652297738973236065602345665855322348115047193285176100885297619935910661746235381608612740058118857687890988702557548270746859262345212363206364004711208025587710730385962926588412884851804361663557881978250760520050750554460521995788580655266809360335352242273331233563842614766478643430174827817342248927198221421012268312815474776050512712601103286315519131629845578268621309283238586093319161883649328583842033219333276115232546126492577256991221002241501724894088693457455153356651299131276345354994696968440970964949901572272658554197598550114312404204327436157934382144128055767190940879084042575920344413456405866114216599126481337687059896115156330456629658485988472833966844832204668517026180798457610881382907556943787743715804601502882273272389242545487554277254784696702124322872171990927987734100158318968932040842096790587965507217259554663902329622390155464383714803814294403927013958898209341910608268336861491665866782448739974680686778447903825299513983745780071574501876691172107124784947215180495899024083163717302943559566277221168877803435166703334702173614211555754666631214933127892447537013676343168555845952754487396243671605872866520796595495899549568798257401076434422228182458936302464086772342059209234698939513821692509751237145825481268267573786945144818799395372011967584719277387528193483914290446481652750875010446975137217533410852611397934411028043599555409448187639154144870873039883634707356186972600335983464899166545247509796982077437927676432980519723001611071898315708354525950592872823558522278112803402644398262702389390059580758249235199694538918307339202707900261232369072940283106982298975191997210825903158125782003381398435609293367499571118628078614281511414765884117163401291534990410586099946566660185568918948877011149348597469269042863073603050490551178103715263583940841334284612926470397367256142694086324975385120614469091816119590556162023334233952593868758004341420360741919934384950352213499238044710304224453658082371293333413240904842610941316499514056059947131754402871057521768127419582754670564661562477087735829524903721103444373972197013377844469464747609130565377382403160174743427880379579465853898202163835249507030604536232710930651140455470134905970161889248742492641471023978808766326595575951502089996621841164843352922418482541743419365002939391496427859092596466931292621990197245011402376655682713496474772763295021753270995537403780386437252324408148747871684266950652922571325694320145945656189129362096155134133437836064487811509876702254127393077381356534249981170333229573473801388683269861004639413372288116578025363938285227274084372660626543362147972149835564487424966790623116017280461550699166525200340060150700680008915260183559850076780749522882858430878695639481206969698723652754857690413361132121029109425174464645010982612184679279306970682685575025518863499104158244870231261257636534661783758469978803268036470493909410168642264255014200001366091525459876032492678093167445137842130901536856004947385957430954381394178389365433758369780823531384685861135422895772888847908413427942523879147446407490124048235206751909664288273610856063286457039037278083994395646842919097650963805872419882054136640588850785102735461195728596254228158325828279079511332807127378220038804453324101652914253562414043214162532219561376373918792529100458629302859423516048921282200135578905853728895983916424472538797524578593643372455497169118764924138985229856217708068718827008142710755624469335980241265593150617870638661389673573073978102932907706576813414968389652529391805044267902067584774813184903635633958341741316248076902201493448756160698772576145953100960471069563583465325713758606573916869914645851591910418471228335330414209674074613875481014840484375253193779124294653340878559080811266066164440607271082320486302502645741462483439263727318207474324110733354621007358978361929829695603344423167432177423187127971258507645220843061171180662631611717681452704971562160508802113136995820305030128997561923084735833217308715763896391250185750450199669602149412496398381110760131386276980274175926512955059781408629672196779796414911828889890375954986045665227701735042443800904557189868239823787971243417287475007203525659705250757751983471553149368850949496859319787708968941509733120715533284131883208648003910312723584910603358952465896539281564387777730884054990955770489533111910912563631162147468134873515634747684348077914270247803428482656233325987804498476747850172737528389116799468576089388869638765569264992557730538292075907117970977428841636293748676051583950772256862275581549352075584858408582594219760831591859098257105692873119181274673525066032352609893494668879037053354029568833487182671842961208250803218616041032062078260715886585128408610209407428066580084234404048178005315530208640168992954505848064145584548952386176595774062981328672827262671300343632840831604468522457803417539577332803993278597056695201717715661771533571174074689318445052298504056922770969379950014175408267329334521719736595561370480630186734427647878385329288641261401024674985793492049599435192850314279584416225420145161483396540393582847690325861878976107908673999318910257963275100884764226558941422180750406715179142911174936221977603045623068978635457430046872009096729597002726381316526332232553488265221824256009626209667247259459717324410372997888129942276699570426140796673555731599556689936110775254753034524030357891364274243985321114284626032937187972173594030232485468852943721396190287130395172163877186011010735207591642059694441175021371115439167208152142631617443493753287410396201432508030630804309573841702762524119660215951172345101572729993379261910372235339137146665060849014025360428640859776536120348147544384468218649058864033259543832741936454853791687060921565391514328112571214398535180303717995673164076983930082959784682841621109473762921264074892457283876256634328165980435069279792924573297407524883844728017834348316579763858694589993576540328186546776700082400188590802619548262603702978526115219939510683468566774193246003251852442423995183340187172551416293787822792732420955554174030729664990540037872327876779478764558899599289581647806708975599537703603411674400715505816485372593199165404204708201639675166754496866412888060044592944151665813405454041075070942657761935103626168004695850943463458826792747452606255918962723365885595135073642850649742760985670144379418307713370711531243367244266519558142602188541770899245097210946007567129519744284381115736685217261319883049743875303307120187692461599579156682478412539832647860470120249258715912012034024503156090770473973425005836935011406997323006303378531452915875407545541107282445698124066874643789482830591108299472282925585238784303514357680310675676793269823780249473851434083662499804329398485194378137934135979615904408482717315057016977429720733969811994749153672731190030383304312061583668764112143144099776276350609155552638065357142435625709891679064364160484013466738829065729287300951805172072495185449993923845734639496940169500166364924499757174085772863185101669451363309948078649694061303440592675797713475952428592881634999159086981340960592963051867310565396900076241303769872654138223094143058877836714444432912749432847535483458286964144809433403731557593013494749968148313947085408578199310741658880025625891708935161417621549298680554189509429375388409278202537910899861978258921258040337039172467736458243592966842331929451043539411347002835394925772791300646882654719390388107075731867576381108800032933690586543393570738326164038458498289729044924957616352853224923614255518424356753703528092836435191979520906826224732690488469468676181936499347273660341121500966707271310050130497605631348042752819204250790575152909811200988639385528832713191615945677054952667604033335984411684458761570176952198498254391355836228948821262562433614830116203649297694948764400224705334452693766065792891860471104207099359309619363471410572013473768382374312208734688454327829544682063887557477689647635320862380472356768202286484061775402908926067133572636182851596944345739070397426736854865997363395397699902522869377480453311261494300068095271001937319126376650694904044820740047260118303426754633404447937535338497534461605102503363411702830046036643697774874074196361021788637728519003347270614799247633544518694370770321855868773495831908560123074686031296792598478577878714008006103852313528652190486047517561339431648681607445318493522060146146977618880009736431840335974731651345778284472652768089547999275425507259939512713922307542497896197983704844160627876804531804121613660185916723876150822682490890303183427242788232749025966360849993002592364119188346687354281777759655756304821379362234817991357151186746614742739769966631021640775795360017573575684664778875003431982864442388283635776073456930302280814106852781546008007987957369499965251226938502638840056522561730926346713940658227710708507493893406032903065535074079531685251016750575432593347512151491229048921737222639197344829762707305470707820018451665134476623008103851387277671916838015400718008467754015545232701801239967427498053973662157330976216451682274385751067394051969011959996745561701959088820638283507709371673500718208931796934087858373414879412739437675113514232260295066914031294344397745673966234913518705865117042503137823430883506063658375111194370723599393425139286159130126966645261266626066921447314734395548132994119367485598314179147939352379932310776404736564447400897859527384972528438093316446298508673511994393251753539091859330009445917606933472342633429824758106816947072387280660250020188850126506040814005753815263504060149109993389059715954451852367204007959246872249518359362139036529317000213347822506989095412410472620349394132644593376016515703591627421708418576177364725844489829572648601995475912712865794269534069856647898494638254086699083633188330026374218690218337786298519525866525420705732590701097711312651565940756922249787483074523004577490954961405787271964903641027245361607808360829460085592449225528086534185771911982973017172156719508860961881243347304891176906432807720241909531677241688592118171122902563478179184199662523054477265999288240421617473244001753716347249787027887339347744553610051052247828799072259565077321177483703840477582212600951990027875134498887314426166298044309311238802717078435037106820118827797978879916477117698379948306416761210396775875713541547813437506930891965619657954073469598252450260649007999396631166190091590519976187106624272115803799282421232612815654300337173263984878986178494531652077257334741044659860300134987376569098341958778625466512212214878716017849974405384996458015716442985211566397870999815598018195078564833410379756677837632852397754362156052082230929839217246469231575689336304837863208192489261218457129474130510489248671804715161080384092738896339407952602840082427468722769884445712883361132474145028682563471623197586033741815558861482315608597887311186990449157898138785704183515865422934719699890322908512933435698349505008107103346802111643598373171385737972668434343023440407632883614467028091435220535561025063082581548875137803153879257592124244940799969363976758908251355089511405423694346448681225429255059479062542573668235492416321046752335632280743667026549648490633123291366025613413030431076261172385582440606493345844797919330922061655948351470049709833062254218927598303232865637461771335107033907812665460870239698565498863172079703275180719368768477246011824254546677796229291618024250085615869298108920189391542099353840063302637536179347207225223701756171703489015188881728357735246382850752320480209079758322875806904563111182775230415434732576584054259669408720712649858116993245783796457688279187540150046003352258785958494688632157892492894008838747991660090842980678053376138657090151245703987910411802660759026153280204853759523430851664228207122098384709153044082586074939256494192462936092044993054276243147955403910343980090627131163987499354286773458829939551864440850655890964962671306070583924931013170524584647149163515132043178915750512230640084643861524695104070732973936603550086990459884057306680913527458615883414322699755319417407692354734072924222435854295438440948090211844149037938167088013128760400488712867654110138066874009974833321198234911147368524025997683563922102322242806825926454593845714486506275360040755217398463308928863198552347756164182593254582975504384634473373836332760773017768188464172318063051689476503435864296084185669654263433957815228073078326558652069802936283628860823589034742417214650406586910092702488031431275202516459615661381297879981988739774329293502186887529249423817067175341917913275450207371076939084505010681154050209752221123698684053445310141875379596782359106247456159496753186373047767412984723252222372291149397887599996601696614645856623784911562135153609926331980230017360734297521794799963033779396982652073166136660978268351278690125052078392823825315774353084620133886046170949243961886007104432576993376653261065705182555718660086260640287185263967275135674284195851086326823395048700976865743710942366637733674045075457079907873693907104845072135908517480776619216700744023663759612926688573052789683437389420189481154325564527181916085467596202281688331655889370339150856092826876732658891414957769707868147626681507180147756703706395890530801169480178459679110954353707339763017964587001335865074424152110409290594771441658340260462129997838563179946087914394348528384693477160687309985686316491414440578698487056574794679245896992628898623085741850378315628884611616878821460224105859450639687535761724238467255110619630792309009996443302452528758590479680263517855010468003302806948299958658744491515890578745637679561662263257051780544685756154893412757698444726427112714426412749946164340878352502159662159652793684246395934170143742908012965352543997064235268044902181131546668121102875293776999925929834766840316773963180982706399965809873781480777449177845043163494460040283008432645852612054028560897747002612935636266396355134395127968346208015947647385272522847007010091793182778328372034108821372073137946425990028501128685752239920955674787476601126182755600157841887515619317421554639070030959289975706843027620248426180409090632483611730145057885810867824966916710030777079913229403990790516752916331293536367039697543500301545567972249416718853852118999174249468588412852192278415071457784062091905906713354016267072616942496916682819517140421897037957810340216446794466257332826800920547564456405197379409504009303065041767238900842334335870563182828846472087358182017682036706894932904374556090442614332417138896331329618048507419036861487667351802575472928976517909452686816700625396284877015459028890591223045973487435344271404980212887407203910507250962992506644655788875801997354626101810169803221265281927654149495546885582265576658023751411896411254411919047616971895037605666862461973267901476732643607147980938942400937749157958035884824669783311193381889069067246496516438196630205923933531846821017502763271634737790323590818563648047369001175894470418349955414780802019729901304650721250722626050042754763347580411121219199716699293852374089300502317618721626885765607066975524600492832327384009144246976748389460235084038480608110677265103489992796274315724821958258898965016911987659709457624600041192486072662426049801437877683860216249968336246335716120475379685461504313404437314485028501818532522679585124988371638994787641509909271952218217369781834963833311640886413787279704523041250304729458960498204336149715578390616811939106634803306241431963120835698963115027430878265450355525365560004367276385871787534134862526723186094546360555419262309046370367502441427674698965815078234586486595291855723344919777383194293524380310738773554355872640885508521486221371169620626217034299732365150960055195189324016555052942220356906299528924915843296291563167333605811467681801458150682071498193166246444824815540745542893786084767125568767497511736603674960189228600364920796102516576943633576424043159982906139801335475298995330539071514279770983406238798864141464059394388429884419104539664043165829671884139393258825595131474580611950608291760886743798909968470883763533209406433410713120714977296325977859323816111618945315952538021235985547944936925083382672381285993617792989682637155360140815483911921799571206008326732291347128780033757584046891486111646654814505079500617222342035469745806840085575923775249039652942463342985040341596776296610298225575482274645799082455472893053942125707593128197279325438535735074518338737281722611820226655400141665327901053415200333377442055369793162060011473344191645693721310497484206303557260249223434199758776669225575629033453332269791414649312103154072059557584414085541803863917386358370758052972696740653092113701784918820578562367078998997587500882144146175474380425876052127415267667054712618873728340400064917801935929450525679507844529744099729283978140588647331676123082283380920970904002923694148423774212244719353846497491971152636646032389728164438174507474669080423614737933703186737052463288496363764861944137635436557301092007738842483128140746441165444023036357636716302531026182544648388865226608712531259226001717955977977807649447256060360590372753266268663712348496277349971855090408126230910777188293353461441112466214385400142416848800893387696094503338198035520025659949415971957163235917132289291232212744679442357302394894357163868805501331037040032765533768252963160447851356771903724802917607736089996946817878312398234696697859239575646930844534701287024922630767436737130424860842954695814121824829408643888538201206835554426928412064333733431211330642388498248482452714981379502699378488374270975840601619762104839061717334766289555324937331349570360313243394510200490235316076507233103779458073873525046902367430735632418033709845965056026542841877576454339644293351566574667482062979185920744460789340300234503147017231992272900341471381394866947443618093852359458803943685298906875193250695466597447276409526600364493119406144218045727365471175838603563722425253964861576324068491522176162203825127288822863010474929965385776856182669947461590266255404852121403846178318582312754907480789709807913114994228078575910796148107939571430027351918683798729199309127353950969461729573166884268868312194110763098343356332065120845143174395695648170837376286637667911085489296785115384026503610245861318765958595471320884827594289383365393734336311610492172869783835679101565381043976608510843231962306672839386192657871465733239670986911609226418215279388204235868669017968389484346518993133783085795700014144030198511865922612045019796804110596708032688715459327166674873168219202267439534847014497473742223499937652259579419648428491448484742022058645857202647578605146716973962112576507131028975818074793830824942115165979136181133886911860644467847467469150278501351390851375712095028271320661263925938952267266507644893644641337621491474755889830573313873603952288026052360920556695382540589634895637090673834838865346266812417315620831327517217437693225960469758677788660168391356455305376713931764345083542682001108938318354241591990367846769473050461648283981637651740862367486112504028569838186418961355672297755099835311250977945409019274485866833466781684781021282396998192909671722316481829225400413036272254001888914916810036591073458144154312625478487555105555575974747783823371462379201667941253474553764542001186815415015329157146027607713050904319287652807641324509598096735771487393912400707406410278550069704937392630684550644270230165971814581518804961147160207851383241152655711614176046348232116702446214538379475858865563765724344103609402018980469439080980006141852291171488340093962171023143330286315256153622779444612552575613135914727570141148943184263655045484286151477683185405557452229152001179380140331268028975871132511637319334860710067469845847593137798015261061263550668069982477450349932763988672284715127768670944446219195468025140606672020556294326974574386033524403817852947122295419902979649943190641570952970922464367406980450207179722800143896113514216266767201242365760385550444905314061951386640853885757104743634872170268818650128504629072465756928348782537855669737518099298640027573219652744756302347226668934219889349211592757190306200423163151976972271558608333641355988885584989049592250144642889435428574432554429704630013708369494137066821352546073310463083034524300782440449479864713773083206618633569483622188016559539735050774437257034050187807643602343835542693095293095296007999276571349805515010986565693779825511520881452790572414178171730946254906330375504697221343653459736498448659074558915775782184013763234273700549406994134133609624517491324300241746633168891129436271962871174321742390733538626383867660478547322590175475183675614158301667236326091545998509810262899580072653974232569618751857029602181019233494097016198883010704381213537808656008080746663814736774002696853887331942387416812548552338153813307538781745622581468982060984936714484861103843002529441688172883880438118983740952972195959921660312850164424362756072981895173983570882689693200983200153652450528795545706449655538922541280998297090620461185695311556850101448631265784614004112608450367089762891876395836624064242692546588047850978223359383556768354001081913516193962614312289512312585514854919881190218263038048019915235077271098932960612935699439247983728922973311568795842129431540595830343285494013179534789529706820807893919048060055025246422912295264377849450751072468388201493221749524189253400028571085782839867524308363114222722334901953573452267539384377407831239059531417020286108290043881446299438040556946980033942138882434413033761677558774266308528335976852694619558616044386592548878682069212726050215092059208359007513295448810561028245450650007315204113265215200847987034729984680628421703035419149373187983721968282075753358486864159342323327509666269379759732076629481823255667505568573951512291141463905378875882151944451865855837970232449546082760174163853019498102258163597191176695822121923678918307668577565171229899223093542805971185973397804917183720347166018057845853445178811148270096556018079776166429603871703959639991671698635363717511058516725531135257392732716477010308761620069653899545111016205020755055522218934784929308895399723893332469132211189340532940546170537071210233774145869073264477935254174855636519741664331532011057864662514387904029981668046973880193756150889530085562876094348992719227345215482017890226194258080722686491556242708693544028953295660856336840144670260434121928075441738142009224193418873144593208105640834992707749210712950428533258273569303587555142753273506898875548365238615069701334098736377043260810572228130681437879597868315370874813620538818015047606126354944054515202482742012139761099403769840916663142639777429475202512800223123894642715119810210971689074894541409263993115583950903679233367219500890465913510875846370588138392865800030219327133627616512701750026420105852954267028556741414447872735339690120470934898348884000466845893088106823009217141939497410027016731419666238098807532094754137502273258163165986017589518583415961229431876985523318733927829346201799524393647223634037447983804275693047744088804997061259471946720259768854602865848623918117365314073112208235533905454474188851596907267127151939071334606076012700369283413094398328543891427184338319336452439810662011167622106954630166066979653105828199369911461867281344663534612276790444288033635213434629490580297482390036803241860997615955240231785103553887522337901596905819155330122276391142364946060278278564773421283698214444874875431773394041510676798212116912970906774970868702197231518854571458973735394857778452507614682713854219174968328048204212859890180472525379779971065438657656587326933482460649236494969820834272365759553411863843069933611301705120581381528938354194260273309336914151062152569429953731601204676771618465788896849513063710289866570151214406612867599197208409974463432071612200990118884071350108444072032887532146463789253292691658825730026389486652526869069244771925495611850699343849099117443837253298137097532694830858646510648738954827196367441478123971105491186827827129009988192881614176003914894370887162476721779811915078356140147714222673797500995272636151745644146106830533248914845766749480375082888414186477556557774003638636869302335835933342366437784826887426525154988820149711321475347396604726564397406009249664591122133706530113834010124751833199450038924013148106482049528507108194945725826286360949719120715202309186765759743657724055407699498038634902299031788466326018420073971487521270889000029376863895120313839105965963503596576522182326322391244009575218238474737482419721698052195546719529027164665158103325704870709299189172508014394812006231210137468315867684964138255520388939511130502161775471896852393508116229608546116938639700749412729548310466422052174339706459355607506963378556603618546899322582964443928370660433843937065713684196107043237678340018650670615126264292197962398519100424467143516194104054084566585316679286569289837585690234398944260361460084968575436191957452884141060388943368344416026538273383494202717038059190630577356588185801108860467460987047592586628767138871310987801872339018153664334465843729552913674417279922479160998763378687110883222916213965620730199570661430814046434572665508104554457131815716045590988964641144222706098144267444636346970128254012127025692751404365734141078806313088900654739037238021499856145109829976796366465153695939782309995135337047127155520230257673914492457789425290019741452569986414309329304083235225091306119157221713062935280434317651342427505862875746520197756928803829643346035646931398881287213834519059272056059216612985240951484027203994499273023237193262988384800881826027612529863154500528442817901714574392750619152041440887177704459680303167432582766611458985329007148295510811831436735259094373743856061805484054659269143310321096424903457959609773644818535875761640069511933930017099785740693807151692675215074213609552506238167476129809331600866021828181036825737005866090565086392138726238094430137536654302022861396732138744363820881229599570057803929504460260356532949892460114713266484273888088189940365284458242789872727027373492526667241478635565934655053320973968786372065445036133076680582404111350046751525068894094692167387611195376486471511051684617403915744004369683577046380603316647133483888388377500231905901855943109858477869449586948469947767915226514226209653321978693375224818399884845522893309324622883487165689950107787437857098469563841765571474158767632118841103135171016988904018593912998286328933687902598325915125006326038980731182427096451978325480752221197957772747814151076487777891595391126137664351619062858100793488070741065595407884094507199105073967451963361437991561024006051697926706686049250299659092206499347987511034193531254084353918665105425663768219417304624099668589697999294209270952191893389540987189187176598755237673383570718540053283457295821316615887275934783826328318821473311360456768555578913673215031742155795199325690672935039952142745107241633520094160453376990069493359417038177288770799769034819253680004794831709989433690206561625487653274006062654681942446951873218437131942476028275928893146150245863363439229159687622979541576508226822345905975569687167851368438496557629868739452265988899569493559413565857368078486500243092853922085811987534345690940698581951665767578363970592218526811922692718724178365087547302209250377538925929908668487860216804495122062020420814480445709266112204134894774862233144812463434176146758291203975881829398876456349179915079156774183306657371682527076907780439442554172621953354220836034329326222428726032416880123225390335479895007897932096236655651005431465645770909221763756885320828245426501000721336797552128579428083345369978862319327722149259256035136062490633067637487793885446471736850933552399109759483588529021033194075590791087410564778916258258721280345526783063641460137590509473554770387086782525538158538144241578032221530874062471634527557652119226346434751731769228317422376953035949244642996435199241605283335148197674077635942535970647726996458532351135729419172640772855581510864103170300609110325818003918882382221024623757836065682557566323889949834569524470355466874551009691471810414709608999611075898689373127519096788008482070645530702563125410201971183840167748800923645475339373875118595813902536137484218211320426821639869575095819239580718538600810070908243194191881835924796944218155795099832595568762686471260200341635948592581816541894412668631701308319394022512194840306635800747759639978165257523848473697166014769064882765054395669523771678050591290880383186092966507532909276476257913536066999432199600763301615452126890621543597036151213236031245147715955425708240684036052398995229399962229863670552872021472090951880310417267175674902135980338754283801271086636139820207441118157901477106201323737835501608471164578678633286685382914084394762518729120566553692307063849493911981686155592483606475577936698792422759151863728981801630238340435597849513183360898200564030940603219480200171345263239040029945781924791862061438032646648333388925713029849189155045802198898549945962828822060310587554145922082615525404559227096488802361802562877732053424240870835384255080034350401639412077476669109200598824898171052348458321851454991623852638080535146116772965462987654390447688760803840442283990296700295080460528024809976358364888221905016741165308436725901383423085712226434217676802824477918207020840836587770584973484791540115731591161304362710329247028855792108398140749556939865606713661598928469430072228479950708956094951982545017052077758184654077917192590894551652278408991841581275455439351128762296004360616726897804996947665581621625874191069830542931674904708079798893563936510671369153738382989970157515047169805043360793992679910140842083451196816201021835241188036899704143820078601233181744110973937150444297746238098774708037366563801042092747330791731613639722093608448608494929082857220853899318604389120915168457250040501989789558913168007883345755882034441717768517730778920582683871877006346366389172105525657158224806967938965430726473340287894309003093132718953825421503373736205474087905004085150838799429875811819887646624456383362926907939145381610788314862296219989106393522596684377668751482370011436332887272250457337483400941932406842438252497663819573841180585336617008637824635449865274138382310257344390299389727483715093902712540962176469301757844906750469083766993994478307133637804453111337149095120189031761594862519672259754301059741162870527626995847767618580941961207985353082513827777631704267678236883019654704291767336618024596073134687688784612304792433523626266144811654741198295366366524127236355794879482341581938783767647588781194605328179436485682327252065466063461850439679724800313493896610210129565470852221252645862415534539850585186749042335288390607494974362628780949700990762172619510777498213821354994843893324693934635863490603297787909294271042333067151246833104936631157565866168113700372229697755403337947866839018210241080203444909171806758535728503034530323936767943281659937634596810931441204055343721706162277195452346461862937260749701327337036338831979967972158690970988119949723518014609518603510159391684311461883285740355616786364552473206678574022317197210821253387124485120084192298570682656291226703229867699497624780191177446044206720233020515219951783811766921666655417009028900347496883063454202372617351728828253787018210381228144453177357949408922743577555660098250260094577570450081376855814238412394663227487331643124174587934318112368774408974404873749297956352297565788549780671043752660657464469261318794936000953575623423068600711101541298436227692287375143519693372704987594558880832206272513112059816999381298907331721957161727204960558540369415064737841832209552208348688956468859877995810748278029918515213458051248552133643491817284677605477272860125567986844914831976586789264537401165823111013802424936849307437520450628099262922810095560724892640126456099832034001160123644328496711291034140111300786050628344599605258164772314779953198393868443268693738452021668882881095614392401568618882134580754700928462105844266379139081570329303071585955024227558018037922554405289826911946876519656451766615964968594280756715785814878453048781420776831917834733607608665098224217307014969862799010501107831410334710604497837446096332529858608042380506729860592012943859500515963887750879574682682531944360279192498929604206598690731250446631052943633089479609083436221469599315028887858298226529491066385175968726457196290563775263274296126793085646161701236403397040070076541034118115460212200068728087853535379502557491143139439663677165126417006481910563228249335825558939825731414581819433831163267669611908993250219424532118381290294425029788321246772587323951734967876602118198021429215332576768008885154001476622150078908024728832465689450616143381006009887156420221038895738138014234743420965282524955804747033477586440452700246854783484278052355984682634889524073661342678055759308023715746940413179381238282210699673788263797768169966539699484831372860315057453894950046266687874138460705612873679802484299952460175375451666312907503106240922484953322024440768181632288719999517697979911885791489956554372463144470638389161100265026944853732025372656039412257631702766246773171668014066267728819584116353488922020724412470425138167784611131908880226204846597740768055531290996531185556387208147144179901860481856639808948566049172302273472698436178690447589751601084738517184912725597411143272385779290492714826277187436906820006741075278264189299138008717859546282611027704982611174068455263167492874253502386586322769635418227292432100129850066955873680454666270208663322099293356484814571748188023996467994515675639328493333278978779504496026983170480469902380900069046898315578208410945757716130276472803170299467008036748968866079255182697162533517359830010566558909590175378868326257442593404977692596528496464083271200201278173909615216696923295183655721081642548561300486826826872297404207806981733427052085608283143891561636047195958982204110688231443317473722983874734150515277883552690092450141695092710439136010469227648003925699477513684090529515634236842349890893642046052568849755749754385068192504580744805448715610777730159206107739689432953115958629579882856870976652072765287279296070846178641710942429122172648017199632981915738484684681888682953933883974583924233512970145713738501894124127654259487807163720778614168431660657294003285944624184713032476233389205478882889279786346720664480570550635199067490696988252070972970124570448120038089011827401615006674020358246744086265276927415759473393602151559317186299950622731042225815690950264686601655079644353199840372144207418471419569069209091574561493644707644099536058351328738394690949854688526902411286764518362835587413836148798464463926477647135598360251989090540542218802175200539654086015163085640539509193381161397648132161927703998085276079995322839274579387277701149454367325597860735731688428669204647167115929979286452025048167503852758496727564515867441460728840595453599534369815634653538492152299816991663190145426740763548736244989568721510561981905799234479347408967658567622690118127708172713152324377087137920188199956793260280109071360842741440056219878558958588525062552267182332003282355258466330646704125545537735473563313750160902896975318004791233138639211183650282057339527615545195675561420925903535091607452364629888128259934175395106273157556603866926625815493863316027605391506100709749671978055541983742312305395028292581777976128843583441087790421202958051167955770665576579654004993351216569610674223762551729466862669123724122214600684500063805472397831014273578180128793599767037567551009484764228865943046714160060782405304709358698807578736746988719571469073193027983572965994381255026685536709532074877665507940468078233936617821684128793855952672806491963747772224658835138413880817670921292143176777017165462612136999888537469172822008310864514004922150737645010511014393115771755850676796342233671786366795675568173235069357732755956827686568858174828536860006116176586439838744881222357789047597789549689008950406261560862540965232916262017027345188734353011813302850364920778548416366650797376169196824400388613687358525501859564584910842148336863630780896330779007662739505721653807097576966262963020666696736597146400854795484016746039780488100144143938337836938367741931799717686385786404559957263287469702335500035452664524241595681158901056459808587952981646380560090940779414720188538134339225295613285982491306311029264172323607874342952676030635566794206820284076071814646589429464346191599560312880254642918757019582460002390307442439263311392697324310407322266762047485131405357650195148017368160698767513467548465437944600053430583802997624527543609247666142445780529069522711872955106613907860288603691008029426808612285852632821866397921787143922556707858036665768538492360386804227239469154063378071664937311113243036282386611650812793665267628766012797585027334101861220129711261288664415891055109516605696905999386494167608874501195332495225115146395412518637845348047787728072877580009213136185310234121899255082678040987180689661487161070168434149375877098998323088740728654133163559356135167430956524243333677832102451535191735677763593894094700420025593851014171411140240282385589970529546774329758635892140896219159051829342403362650527716143159491548445103438603873030113285973412409290770354934105045497621614758882703872862281939931435516684538764749170672313635367592231228229826896486081590448540433651612773405539926675043254182293431530593752874804268517505786716687996457866955972627530701575323115178027049748856879421962295370980659753707079413295802641170550394264273618773301582921182395787404416397091834940505938328410255902891838728804866432758005253129460316313104732236193925583182895773791950285332775018243954026920685329200384564104607849677497123216170019101035691771412473770056301055583767143557908501189223024389855933731459934189898758316724357481989695368015577655394475183998371318576642873780815363118924240318345859541941107348483902337156000034755785386295806015187166277214487499908026326207842892089844767587816030035735310280869535478060005964352010750812474527714731567830008093220540165773383119164080263646789016213410751283931755315615652430750697338000587957583818760933459320655167418898170365777714525419138764491963134324275695190666830765074728839729855769972213457627873508431364316867378008136250215794912432183554810414715804107039023289678941250661087141681939374785227918301656235673284406470241347879836479283477327364577664978083942874443235661269833691167016938536548475341632217109397334494008364844905442571174102579691680126100591621626585137148295481398442811803414889216817992782180885802112171012817075060394696865265915558400579187140593208955264875594942310947390771204455706023435744181425168801632115726409938247170022616203028637055976234388971481275227230025059265621257273639705692898945822266990331915392620899516540022986033797138180733826502929110348418429596697130780539243815268041943512018829173261686349932995575738261761148309471498167314869650092276421098599167477775941677448036724916174812140290584273076903520475193925853506219757162901786145273951460312795702777467265024546948301136565476667799522745521422414411281606988873607987626416901493270834002665469229605680319326520399910274737997038770101011300331687430882577328693895255887752880972498542657696512970275865762246612729331483117975526832252588669081583218624325418214940836025565880515519191909853169659322905909054637793551319501437218125306438368457302282784203460948440461002877151028475186534541507524498268487912845084003432851717804360123413824861950591662980152815433320163571767990829289744300576184048839185117723576921149727695417106118736585777291954633591833480263642176891519484927491916127346360103086704216060124553224144898039897255538028008685996143707251118495618646975653321601276413336786962493330426934476061149691843859720764891905563584141048041117499006532113097375781707416677195700363362119302431352235604961955226769273529307576598425661671119423841932323818297750679111689845739500422668616856355921612386131750810778833683659731135436907499038473558250522547305896271041998195037487765695271363827899198909241255238983137084070739597858013390719314112649115333971316991937327274352557110069101522174735984362347019164153108229346280138548121498849916906953602882420386019250627124312633472077595545300362008478362000745404993808473005816622798035683345280799226023188129228661937433614832626874404936509464775384958837897159149121835138807328823724456340146867700804283862563507341331689366570784455478630465700983073137389857745756998342070420613255681739151780139647774418074752645432526244753853105017392742071211491754660087810878990437186642397483610904126412425482408504391732262043544699985324689577111895405458223271160872717975928728391660365422309915423527250035734914016828218767076322050703291201883508735719346566253205862094683871804485079630742962495777797269167813861383426750391682984124385342512145388979445568499947410126185052391163650715402136093390811738175415601150313531771249866463098609213230963376977432048957287068799501881955682882974313084356252646391187727443244604789147825796644386192350901782044320851469445600426772071976022131645220138456540996252263864952809962174372826044313157209217960027812175321720094110315152373856041433380106774753670322947979242797477919715459275717197413539218463875049814758896867027391313240643229427401358382810747595173551071109195736354664868638286904454823222243958042984682618449572310759907871901652259712181090961463484453920451619587554355208323174737961523507762063808296743356619585561133601358339584176190606498443717534382402577096572246497005932271425328646579447842170718577619126194516228282018804362088120926370568779733894999849125851042790720107580863735403962111228294920700743711002747279048507938536770832633769594899043470476521042628171177147116891450150464687978953286808074527951514811456723226681473743877310021884491793773287385228441697698447177598374819827259800063802930875417844973483719954858901815766956528442193676989389156525235602591667701056248923354181960825870654808028577929976237597475997295657933191807809372505633921856352868321952163511885043319586966791635955195270803802030713379265020111932823351018129461388918771159311651327955033374144591216676169931918863620222474340334247351193576484303206661845445752517148799969952330877487125887795847877425619309438798114887747516128314034131809244544935396228596278831343826729005723550669017255122807277967303600393256341911900369342944033972661127295843752357146358417949035737866311402676168870865588240984576260255504838108001333211993691066681162622166342749386147852121286547230153939817938547098464130033916758330822989140083003894655984240422336717064852787003652514223345202517039782330237132209237113516899176491555889839740852573713009361874546947355680017018827026534502485498712080263369360924428151486283179715320700560710648581426966819165350409986351078448969837335636602517983782212855134190624731418751870549161375985910510227233435666620007756112319861456004820318075498647498904790263404532840908835857416377837876928941551165625844553787365161662434345778661148534524304065316257743785063092939688784055346277502367967327412177314810750119865412370372654076444325315972339803060657804318276496822362793705202641013817525569744223047363702287384045940891000359400738156220610354785478513641352468463126864617371697092383621769860835949217327185549735733685487666045076343945848189243114360127498420696185214520486954847031987432005161744754906676284483804453551054683555692854000966586146972528706235940984200215584541030280646775439977734292131435533648641096135087136502702490100590553097384711123620134377973469191275605819013074426474049053531525966891145759209389771582105800615997231097926065149971670452459760429981522067357688714036301797667435994617869576656547334440688488810286485385303048293059504763113480643266124885779046421637830665061156836831915338612510105058681110525431993393552890578315024142551366927255044822657820756408249054367838181411590405248758242291008773601462585874775499844490663765497842047661738093286347056042673806818087491550605783923742234613639567420720857183759370505374769427400064071441465667937056211359324203974719288580416156691037060611815036907318981447978018040927941121526028947773028125220471219933405282981846521809976908889552838809864879232780621809340526388450544928365857504767005933863579198681966466598725519081652432476330764632196144386435566086597864825990933454436848958850740364805361650054104908499017098899817372515643074195141319795391665984748104110907054943293099968623101957163693859278362752339561976897477192598907380168631156107789555627077689144804309341967770446450158958988458956486416525690494891946206099996030934936520126491054663465417584819795224769114253744369639780984762340020694083858753330272294560016695944504342522575246360204461232622760015693583033804795452938840773136690399599554223190935354593178381279789726321433837649185468179968071118308553866559012284932130312522958084243216427065312272136403423625267504428614983558770228921920369007542390290639148441210125087470521540199480001299810604366663552268085803445075586792594634595585641003877558619646330192442059882765879507854426897254567447645919089720636311870516770499709891502039967993347380783883217791881724626199344480347396988787690284791891431983582348741150118246131673323063017474316190420626571846608564039342218250996320784764104214284043205765755921711773077509617993493463171576743528034549131245386762950495531485350484206357763435179974092129171952071526461411742364087601117310277716654684640921155961038009254195275874109429956145468516644487655930865348445741516502404493954130416177437632623061427257356414326173277370011806458006041200045402327874654794665930449546924615975142521166867542368666808441362091009477853182946099260401912819179770826990576580877085514297567072106221680715788062109439320199339184092969369449349290106487348832625529099256646196300568597126960103072739580290291332069142005896343954464026922668361199905327246611595158368434403048394063000940887568501022216748650447530927294079132811648635564928304804069851787299150072315877701921298402936497151631861809205908531371971734956792416309290143401844734944967621977998819683259531729500265352410910441622726592703464871853975723951719746865377883012106723581230866932900406736602627527200743600007701898808141693643379729028075355003290020454399676915984636181844229335524215654914471628589396034479234289039713431427731745209516197778826692105855233767975754453027932901366187118868269139041349716928144461515492303316094619117285068538400155268828797351418862893622095627114233269267073911628962510799635317204544785753062364191728545006493300248315285320738047881580826001393953250196242794148704385213274340922969043255690737646414791983669549264790430724053349503802412596035801435808714767454867725775302263688224319443120936870268492550166992078638898331080256557423910817657894436663392207967532551249310222173690641152114014773204350186226654516029392524643638807404430210803835969246393486976832999583950569862575791481184994283726037018211643172426464649359154012800371330987189613583947495643368730269348977796762146980654744086866685770331639781578815994270360968317574779755514693156320888167095158699465422555129072561390665698899052945264643796836967942668743237567724402794590724403979175222577276156824988721284541710010650540949772710867160727724042374746779631703871678485158759064290976382513589700783707077945387339333908819298442354496766553138947461847755659098692316990025025519190063276887317759696977377150531794860888464046012123559845774642485629260734152636730327906113288708115871468348561301213372195201811791207983870061636368489778126388699445641652781433487229739987675572084579016434774792510459785781489698526329993690756713531345979053929721484782116924958672606434890514386884931653701305436533006097007622113217050549388854116538165352251549404417274066813662966750993867524480216148567708378647465756250520495569314772496373200644577526434471907432082251127813156212913840366141183221607766874077174192126778527744628412212080647700093731351777365469902957862319120792078357519795291062668870480529558157204223156448410756911225127834726041441994817200534814215006758925734273934891729357511915188039073592763518888091087873313345416425856914258894442524245648210856392884232753218692834369873421383466717355589980566115485447393171375318423642005253653979707281586447491443317468491707512466959382639406668859256321219119462314028824744777001756929414008716450697503411633507620214646197796827981095883107387401632500921776118805137957905455641671532108933009490650621799525106139262583724828466108587080464405847931595913025625036330378585347484406841609919286321026582663203823025111156928792475768166749363691868274098017368411092195556414995275677311399094355149908973801747913738079197105827427325009220445261291081198366979190395194897014373593085890242746444322078312646992284884553126343121104837279074901010175857737202884527456428268729625101236730678342991275691568505719125872299911313360840989964975758829816624473082131406413245123991551687916722959082574486513018689862594657514493288754254088153577921933213820016671890546296775314075653612450403830382384670994783386895537729288362317638142991652726448562885403196181742970377623859267543729034919750264262202225639090449898237292163517021768976356558445076186490826895755798897769876691542676982873897352076818965374493222419331006757169316662742367714294180568606883865211271852898649601221953629288791996122932197051744369671825089429001953681245461755606254393699817809466257139209940331089906904643844179937370495303947516671519415831883551135006000805178041714278913099348960107683447517263542250178577426719545729851692575331190551272479531366324777739000893430529562258914488141189777807766173679258830667352538740146924959285443897244544410235688588617997824469078092594282247397263989459719091683453476285319942163282767170094479716395252468640867245058086515697999116391084226855290268796008157125432552880594745778121052535316276894999750816821194753113223509840483153032857678670702222952737702524687923710857089296591874386644504703954932647966987784437745098961734296644377810135504945221475962281593730959486681472803420936558793162963592881484479493615279329221006786149500417255697430179877909286601484220503984290299017265206300786364697784860298505770894720425002028201032299568703582246829307651684664924642921232879405261606681921598463956314043300428567412152185798244093427203654987103402295456524502191351181570277479300153818014396184684384898064398227602467980578208769034026779775124285357306373840737774160912841836913687209356610511056233308282827538342417149139231746245373664115956964673876249897950006884758353827307762304216755146608403026125212028669151465444722136106853541878845704018766986384783716590055105900711705534720175024891210451596421555811462942788759647231202612968973786483068066676590884117412284333536972829588628850061422302968089776226681620205743402074412838588797394104738675025871520128890665503295673973340845713711583263675400733473862373334005073940913838639988560198111886995202365181351546452099105025401003898702592055176145586422885949119438102573241429438144303629847534671344374460704539291118898927629026330168327623654427931356373384805383715038427522528614360796777674341501032763005690240343488250953662193900345127511211608038070691599114173805594033010077329764947884775073689683828489505416471514515739274924423716763532705705490961783881849821642566313756814072657923249841821183781977104388516166000245629091703768329230229680134301845484130944552428839733192179764955069618488436312293395416614126633650947457797431345486632213013382547273918439606353316786322838655462329124925425841061728981000268405732467713447435365334819781559606323399400849825852562971968711783673687009421936422693816482174966855713399519399701908592285810837299001011136767531556449408550423095112100312414467570684821343528458372731316282917837953493980127120353401308952693824917799120605309723690972665398751117066698051353124991646749837489414710694662588831714652128452988124561457005035116345285556564566165444837619190019036317438643315553215880771836910138137599717308378485265883831145493455518106281918328706748351415988409173556744986113755145731990948672179344767606598093936890097723133095906898001113052455962372962908541033180363800742156377890387745658577454210964547467637935794614790497507113925978389026850543258737460648989929479819300829355918284997252793592741481911968157315595519431340452523776855716535636828381782977665536040520890312788575687619198988352385484763156182490363446551470569141047942945297269180613164972112642729325973654622789113000234984202587940031101816439521080169441000089760643213430415515450669632506618745957074045798311441818657747621668617687533074945035267053235151009306093237056053067137344136719695857582376023223891176272347150923270008385170600705307265759882360334991393891685400630761862533535388039978679164994982029154152412876778070829130460733492385274731420962298332483491939376859962022185173578382937356595931706074798433679471110285538507012753440423453868873714414616384628528220816603228786908749356947575776236794567318687380556155150800141480439914514408123304684178322949278120420307574635281126926130959162373705970585839800495086459724911873271111589195834956409951176341229991899120315582674743818025191202907779766689341591614481503823541765271081302083268884121196929677311405544265663769798839137304937562005743496244360691649696833290976915931539681393388705592170676830859153110460376345136644971938582198418349618095772389656755399490520105426292663562666001603404972787426552023258958775636693737475972777303572605100076286156592324429070701512560730762902639301173813250365379273995949964141675615347592220848184487387224106247122951518621691876896550323841215419803261046869231553704102445179476135084649916047679812381340722275933547586712800802067446495338008307130608962461786693960871099347766077707906334832729534401070552038425354388933138711324383377339793039327072063854651407065744463648177743378200718892253308872218892611925878539807163540965568705702155179577861253685406238650980964408676330163089826495129527766022648623484843165006687977432144391518229145788989535652498096286251653949059659971462470641382627147213930051439320342154579266776014490345854740379567050543551157098180963752606188971835977888238783794602920062237525806837047383594537499243265849964692116907983932315462740572435832096581767405532954669797182749281923077553699471471768942466819715061884085395631003788024659459926014248193266398180184534204642136282121478424864422830803020926630742067125482092545895024355883039946270105688185000768936732194766929563294410282973903921479452644440616573797045350705574625696810846431030151692415894982029452769406596061988378192187083323147123715932493370550464287588877302888492477530245572998501463039441157621356595299659607472728607341046960077449545489008035340106978286911628747023726048345742529565626818064163656904023257979377133312808056244080366306488199136300920231668465393770380244007324607734794524574997556546744641283464311256397244104299284017417318331776295058536954730474490040788459019116685359454373267886443051249698760878854095829678339773824837153672858052331889337453335155741430110216805595423355017902501939038748976501769125105449903488899014788662969803278403517628432397257021524161516554677851835782442293518492109686107464391709816216853472261148580706983967121291537832892990073091974670035161778619699794092356534097668338271958038517189840890346938133164187754593699554125394085283743406115356783145280998236612593050363831712930303279330897245311844829768812883080521446580577659535471004664249406977740335586070306322319031772625365304408292975448014910505133073831795929567178350687045844489188034554462538324779083147471581573681989074198976588320448757978931558914502922239711407732711638612873877169173889808460466109753402146539682635974649114718348930898504032509286040727558971903817991631041263441754437110604707088161377669719196646651349285417549078202557558305173639599313412870976787043855874666574146227564329451904072589164103757062517465166197250725128123988543886448866553560462491835054143262339774174766184937222910881450291171983682844681200434777243412375611019328107904681261614569055893511251910529267795258088868973265498781178338657436199842291506506446725984799651334710770194363308543101779521886288013307203322715442738169975520965029583058708317445949522661376292244988968563035395848400422780508441676529483690410256487629902420830173365781082924931662671528502549144676332223101986549133120556795548958640723901256360259435946370461255438674705193329552463270222966124721358149240892953537379872985808410261936392456222188346730906830138982991993796563383988120108473499960141222458212183169030645765370108601082802242154974744581216571348546313141279280238567994546158115990878872523860951523502705986735407851409070648906365840489870206161661239956322127916029648117009601578629332648965736577052127910241732556102101179194643693165098897361692045221077895434714006074929554385011960890481704413272326237687909019657852003593141067306825788713203782833292331913807822001194028050380170725371934969335475643788740888042176562650678553822768843703454408190914958363787325846805697145810210150989125339919506816928822919813731089340640637069204899037066610284274367489424254065418512254872680070301950369666243423706258070092928352183988095828209915199496623643352880488254030451080335351569987934858835267645177857681964762407511839452965063365007810890762963711162271593184936281595983747859509252862673392108169920200513935667867501239265209034569332062352578857826923956139351966835418809866490041989877157725242025906269738116157361055952833701283140357061897835140632869370605895602919864663518053582431246437019802894633241539152005550554313093917966235905023090809843937413577805494697780843957171724231018746493877760525816673341409941505270937519548313634306257866256146148248846595011703642656167840902820492149337792292674816435764938069525831156097572089660744310214335230416366784324219026993830502150740403630386745865945390313080782426827045916969267361410183411798637979160595291208956876116666437219193965707223152773146095595221311467732016570994898471865201297304542209005575958825471100963979671033320718079778234584737460748486816878366383385601267625568099906043190010632481841021589184121763200278395912505090624950306417258827054993104380240026253381192075119138659710371011200806387519206036235383852951872081373526161259495413558250655723182908089202610994587737116157685690129022358229251926904674315319617879486150771637340627783122094220110586488682059197691938879596804482371200932671461859908079727921418689221889427200562725164844214611016618466922357386086422905894509581018803277750708902881754084121363944332771546505465149291305616883375334609439111519529997312037159153103098544525634799085989865860290961050102550744840458445510196503642566727897559774057744771790079917705534562611212409096405104075644456285664233032334032622221248455378290148843285521985568230927683933765789008045635174372975797563456532070569490375469807663461489806270353393356311383115466337922359067571610139499995530838314185517076069403645729956787970467219663838854958294739174876498254144918208204481416581758616375215713229560958425735075202296466059868938979159396211687190850570652670892064965458702577126378618353119219503510824895603946864131430390354191702832159122570573414017525160527994419267235702738192091640939652162830996345223487233697142280021374003229728858355109403355191807866515396070354976005319733243048689088744678624887081424879448099642033141243764175162407037465383227020920929790328151491718789762719256207363764291886453899719552234129137460572709991454074058015054694694310267873006106392587096462118277176929480791478899029277632760602836676336284949565001934783233363342658663410314097789330328725505778023020357471906833806092385401216554780870861607245701709114846734414819872418083245070573469531045100956764885925639929882089164826352164455239971688477024515668230547885888334424269643258514598253201641352057701245962217555039681583056158059784584164772141666571099801289328286193144321154516183527630671345597886682598135622454867155652742198798901717133610293131280131654113973493215955407291816813073895648233226250005284853681489207430519921755101416810748901136971773526317715760092665622101876988051207124579443275717813709304005957767456506607171207197252160838761008502691299476745633368609589916826551596956452945642480064523831406916078692417047914062972599318366819662181322397992207793272443779669504796004721501713627348507657580970462204646146872386257504620809552426903365394697830995155155207383924421573802654749496163360434680010372267062038292424724353422378469180751445095959759455594344675594349859999278782932849590106229359152392472737610441411166388060598467576714431449882458828332699151548231843371709106102247658346437524462663092877717729365915488568801916413111610097983341000156688646249434151622646600267183108469678102665791601740565284701819747897801889028546627151496331153231726996912595567107423584338661153996334654973449156424410240987142895814890538431076166293205529551364321815962813589570351048213128088665556787991042204893894747962179061632853388237465552522580390742179779156160879314128470376200153459011877750904748695923522063339347400251546955932160764279849352667656315302295765119116134627283210060849028823147986491348491446226780579433849483542347524388691101452867938580027123957944244435734403825034377805019046402430228100571041421083455547023361426196236033269149789316626012205282469145731586838622066277690036792026546091020453994365903421564920649495075659244003694166534916402230228794026294767698935282899796761691683689813806026119933394976295049357340948472998339643441191859594779993514465714475934009330675690075073826255261293864395418498799586488640073797714165190058214609586778735692542904150877669748887551630545159094337593238581588775879074824629462052278077987718140080624141661160771429430452137751841872932459230538451172243835960005566775575517924991620185668779562614413711220492961457573569301744355505836125063318053701012875707366251397137465681917475335254839357620104944583598194259250422270245195593911093919813713421837210544001530288449616809180846064154673062576366963271710136271974194577726499290905255756870606304224731074854825201150157065553615177284261489998948352538393506411882708861579637609193413363550927548584417282884305574276042544530730707931276459611645078803090886253898576371759563360005473057789243844495475181235548880896882789532482359099535018883552519323549256175119472035154722269595818653781403269319404860363782012304773209389053004621984607824928338844224428769470554833238483593315723077735660817639487669882421450735483838840122186690620742883313674875645054491027942863032134189875080853712683811999571293833806793420599622731106417952841249230656430044923858770557686134631852344617521469942352653309701033637373657398829486847673388971669572018705452244276398745034457361232476664164621084230792132326227813554447347493263397522057624142724465969428020570839678120687121018330614417874802077932937622175516863829143868794916765364089109282409283923108997724200768049514063953084719917606966809104732573568159334955954805026684990296057630288013567128013427610055547867477808956656954686153641226431964385024396876991907443752459054634437899978995346961890843468985908552380638669372910678823734066358653058749823177786836088401381230227679324692741348467907283989036668721182376690792996758203182866251982142770275115698200746117632232582375154969586156027871869399740016539933730322636453452747629265874265802160295283308458474075844432896981325762904162731469644482190851968128710781349064589675283023313020877733181984699443250991424480003448486857352480787335700714596876549077990181952120348203751425266989549169758067198547703067442880503846776975266609316884474304039212756095054441015267341249747647692810249610396099103201372636628922991462548455926513845984855218334312686141243862568145735307633060201769307409804906128919569476703139274840227449750023731202837768439476499922344122944814456575573638027224001276092769702763560025472822692440131873106028390241162480418092421514428593340604539934130234706788918914445506966768631996856673968994795583425983581175473381965067399810408579652925960916369940682793607163658105897219770687684665926232345252887446249005672406875221785188823702118567363469799951098669548058553424372307256350515954703633102970592513187584191979697069740307320269491961838065947118358006988842574685960503982412248576443542737636068998584221287975638918967270533421108744006632498672260165074353539387036926494725677401709643518221223628869483935174087448643807408602461836910163741393785392954393783904265912815249497205697144764680333417798024527558703071038769212278248869098607602785297044359159585343709012308849603993243171949232398611602716196211645134517440120229016276016192591275399017705235200826343105236820159911974157290114728937195805927928611205355615261081721073013796625985274335785159546973343698080971059452048460164766121577618120506658948169275419798829607717715766402772089943389602954548781386745143141848891448434175453608064062737952013917997766422660240919004667546037609880167418927639691550484131945836060764438111698108887168174260697657156376226500419530368809389079916303566214475164252632691826451479824328279834826030237264191250164202007025692911848508026233572936389835681133028041899108266923493836530594479695337250411129831817467958300173888885803657728020122923184861329992650370079090272953202105525273881109467384755809606283179431930781578265578171126527247321257518976832960690533049745426313688367399602789727303190095397605690411339363584303419118414192135502465539106101340941807449011292745479747216211734983012972248520411090618029911941027222243762136740787044696839403197949779299121821659551821857579929298462564852766234850001525874467153086022344147667912334249277211648279641639628908513124557384782840779687215022847190756896343328204788183981762024227315697657732235107212567381419772942351215681222719441483864323205281229967770463575337181670620083458150038872203114647937933374918916174988643720834884623393149654908501187827417823276640291064071760611395291897123517893084781429083164366944637509658801242105102363740262570830794668946833684551763099574427358664017793724506517984528979135993145103454690934295368807415734804157496551941596533478077730019498798370996222829774382282631405255554317061163249528956163243528079876555062804834850766884320350384203431900997176619833657866626261617046286725327920172690229042018808840835993891245774203455620564213801787000954035931046127890078338940729816578025157317018078295330078858184699111728057938525132269814297875503763608505266846117351863008375972808351342589879887017606835948822604873164493802348716003359154172293111645775698910180180132072797531505915808849434588266308549071661035451375533927684115839214763024347545039551070614406923849739505402590347845966991678712836471135403289053483874123661021346528941679369190530864067077573943053134790297062990537530443502243108041536882747514709881094959741633887080767724948739590326325248590163241039754883505571755681321433468602020193418512669395914729542835675429601322519855805987598148306356437366238764727461981735270997599322901260897864977744460085576266607412117019427790200421721160079973672774368766050388154858261162700838181753715531221910452205070503432300094880380836516614383477358279837399066442511162201968853326535273760334903630134357901854904441967178343729043477692835609436179176472487189046604979957326465085120277559681064192340032472661910561858168377863012640629334233104352867656742706164828180617829728203116463464901975658507463716192058833695666525347034870208374188599173267817610627930144145771781801105889461492405949236555673362656827758853485157690674759177357358674421492268744932086469112472922625103910377639738336925324799339696129389401684777189775828954964740386449596522319060245363246517299866889562193650133075441311910581268787673945043936022324633415055837842194690187520020023765837452412979015680840352457918695298316071962745097478881145089472017325597623640862230890545728550334692706457352028219428111755341270988705081201914780222806040186368228087009405504470232263171885370846214270436652065842501465810007356988987101345684033249660484174540169938444250482329122775209185666211151080798454884483148762204459084051798354207120981293124335387240029120108303108270431932203264092415164797100512049828298970776661512871446413682243974224392080869888702237763880016755761607464432566002844808263812925254344171485061658799557883986066221884959296115342127275364042317662395183429977207727310486650838581168913991439575540568155749314147138465501602785129727650301352046386335490714927258718507358583961822625501806623344296972687928482466035855516072700847728708012391589160849522873331459961323774516310681545788124076377834969655237133464543542295954607624887512150487159708384144180442819226486022236380085204908113897747188469737158180993534307016214448360125515191007281876793284624861563527849120206318716150364171202913393679582225337132680778250659879697141993642762778506156294458799485601928024396311899227089673345314459350342413757362742990585146439892312431636601000408954253089228923988140205029017637024371998925768733360804165418606472119358753856962046977414327210161683231784171354782382939852394098157613292192973579345657513597414340892140172330595184860096956379316161276485948267414426327123690109757106225644680361505754963811153515246544388030970970610759463196740159781886056105889610846676621882450598592771646144252897879777893327535620995167409640052099830810806558592622281482891820827223051782388258023355827847636525806022736056073142412179008236516719353627829497195304468460964333407702968543798884423723818119549812543649496248421054888941758386183154428595243419666204860410386778682070160735984866743040923797728320773273222596909999853447626754077160160707563304163223241242776061975955128319650833934632560292614097890848076441228001836685096311312035332028808195416443470845331145999440840302476473878198982293754271053201076827441468511981364104433662169647018816247917508345709277640839690773286986133119854845532789610131549948337534251135298503799011932987390126043475316586921439219599132661564710651287982865205197522279627841420577782435156074993779609864475920632261815883404682378669028425070682820549786981800972175610753505088127427197785183010030823357901467290449966706896228013138126937765602286582055085293506408186295463744604978616577571740729268998782138313868586786594147396038346998382261394127722143586443944941190464327798323553442400285533612081462598429645880234141085029909263213364776294547555371590575598337547792727332030902949397487589893092060221363624367582590737061836682185212903806342419099644202646555313072009610472948697207743980768298320941145010893691982000096293158916514467880519938274994612373582495631382753492337802862152438504498156105589354355638870526458229843731280708615573365041757201396337724653768973796011716624086869211994584801552674190231718506317889386022048697268265361023277380956484406869987334700748210601233365920216772225509959481009463054255231978429939220892870071974917177657550401001639241009036796043489918548785011044785889788283617467729840902529983040032957841672787350228021158625781127317527986654990872492137108642308584577269397979063966837755924822171900991771158211110737402139317123760237118585095598899965885868878559846739970761915189284153975950312414143978291713617461279608452699077343592013641886098140474004274427085198104564207789309506831538234359990285613094645412143544369356201412446052484895343207155739972924590943682960295978339273486784254596527324017209022969899775502290403016643833075797969947931390926510937787657271147543663869961214716039408013602365846817787708798217445251026844118141634543074129138934747934462172861785722751702152517142257679973833627702877775162917478187378891460163290681288161187015661699349532984450007769442564317176056939898266283072885680130665280410529641252806203668929929671520191321095383752814753951888891660659533189506971769936723610084515683811056685385961813171766231651731176160516540428079531933648659847390636287180022751567515132998130638695616182352764149313277352441274255843272943951381437348049492914953261316202530943825556944467739193315644840372746276511884429282309436258337196943203333810640565349037359136139336495376718240835950413382393745795222710832785388660079575318912733278728017899807561412046996149156087434996965063559881927655518529239320248288348919353958818284114416910351172179898066229713408715627203785246482961449974144390734394670659401747349384182678651205641240615132467772150239841803891469962638215869217322610057362520311972360063962823331119570007530731728704419386842210957338729078947648168292276300280403160361538389110955461118529492857877481597775568834759829039108676827847135883405996832787387877427566706224700076852840861094094811063907692488890478735320339153816914168169976045094821408847883271381886926932340977386039227919413484609866154706773446414728054072625111247287139995709502280565230590228245483776076531568876918267322750300980432151046018640251990173837200933553006266206549790578529067450907640690576601567928676317202241559257006414225388539309844738953472549825038058184544007953429675088689521156290092260373692842666585172489782389597318031087833197307245592110451913418076006571897476378511749636079108242846160784456473870218592609281512552249444369083066945932715796695351458944626574989354575952932308811954026091343174203093363510667585914523979696866873309840342035377406537365330619934694175128786571173563051738990912232933507325255138485242323905848703252677874065256543912971841915252447802196157883002653637643136146995028825600841790804578480308218819765791235906595884322698853658498785790335296084864602416766197807554922473916316346432393967958139801426806050457463749003668132749639514972369207963973544089859915723100334540917486097865351180657617338594628054466895641581628530049048840507687228808155346223468375246821342902112008214172583676227896660409538823112460463924272390709648682864687638925064665631088267424533925768237788252183891429145091512199085827817691192259387604603803088861631989516668601134521790919603960997439387269453262886153833521426876919672304501806531103032132162799859810786464567619654691311964971491280566072936153210149174346840921550869478261724395942084323253486114612166842502612950650275073189656317383222855781011771576656818019972234893354740975148780737317917516550903783333670452661095500422415998656829090738674160401389793219047565017299974883582182525041772948173311887773036846193190296677676071503710841594010734216390937025979855957670984845678443683124727070199692689858492774846302139471724909067425089531237681188826596322673648310728550456132638626935170109243361040357848720525142488642519455555264923939741207520237421117734960589630742073153349528560935567809659334606522180526460406483596565065785382130374925979146755400270617034278327948497244064220571698577858198562913360981277897863406750353545315587555849145221261748003325160161301844686235812343354181233767734631714594572475519663621858624648890898379048644902939774353448517012246736504624858835821953783355714067751505849597829390631938375417328549812831384581072190609433160153328698482035294555367009334518547620400395010559160968489076763098444778960059244562708241943299597738629579565027658147555594222174136454850372365027463613509682374291402921187811773711741686803227586024044940777836712062420981475589632287649990726872693268029941987005246216698161526178379450883148333597659794595244944353606041904755638051365859413098868164693322170684126588614185843291799002533977584425618450328967417126309836852032221922670480253971689712975468014308671719394370975885326589988897288058640496244200536012936197907075827538610389682845813606315189856387433371403167591856954647208233226236089498449891705681368034661547224675746037773783196955812479699368175585054272890156084171433284254541958352516656468104342817118995829166593929477552020416781786659214242395502054237210146062285111846137174988362403385271831640102357766586835133229179772595083523725417608385742113265321150666652346443782717577619998877825192164691213768517312382688965121744029384223663232774352132648696906836750546650964204157303212892802412150124487855098692685354947943101463897151386555466952304782537208691165076994209667497143997134194697267323232465806000316700785028851107482719349648286468098545929639459238268251619266695407190897110010555703685673407268221305394577372575688002533472043081819437707108900094164413386280227793864478357863675424402606994078917305771583923599831412422647894707576407255204113485630450979370509172948967716877424551479195962110213050354410870877173916610200545556519988933054701820201157776272844461914758430852189541446148760373074177689198886518263984294645641974786434937398296612246572765869689233850630020787033931728769481302433486228830509455639967289158151126280383861534281601397237508368799510030521590376417141494483786214132468500225652127199799193751970074800500164100562819581121439498464157531000082373702196825862570722897314601552947591369485784076745823018743061438003079811550085115172083153250673198458379419776341738753237033669907810524571349044804530809249254974434822884971425792643318337919695107755318112840529370175817107056893504596419533470540847351898382240328782413728095328429154757891952885645338269686225347814524036183778969331615602209803842190493810938064810958688307220386687165309477582259325222049568329691409694818012374239930889092360264367813862760190085239456936670081400373471697577945992822378795800147526326704104559883128472139318566126661844571384933070430527443647142818408812463123537910248121453254539348027829598744670413633675764386464536962334418353481560205125908478192986022576120075970023153327440634896913773683379771069576453258177363899561643973048731744337101490385736243217420991027785862748910118691168734852423609468790383286101724289764466869380725617447945236443018549248549614406357882901183069042359122680214795102891628875784025918313764913943786190258481458299828530063745515420461398633755375001364889837923787705689733818807489358469737504256261369854980428024867824139060410086578266653162281135822877010449280511612968706414284654944507392991968228792792002104867543920724315445671291095508162151428104873183745398376625146636225651191623490037677005955346837321690463955621117775544783963042436223990970146248236754834076786642008450146543788325709044919971774630750039116154235313845649013341014647216427847310697917469382648689205481275704064418551557156164794565717342467862133984205886930169484900249151839708311488619894973762893057532877710312989982058150993737375867789615916941046575712107671640094697158280486478699677418760408374443009856408248826193237279742541616618216862296161448440630622097535688690208331743378102661964205994172997882742054605959335021586294327261926531847708658268467340065471855851853916656378758108267405161053250567118172200375395644578571807636019651768299235433955554765406559534700096377065125702142293175573524875427871201783607472497741043111355272596364969049934546569913452297739773244189011623879447087603872067931330009067369490437744752635054852533696269514294835370810288524142997990979224148114530818796392082089598615784672255036628546381300496758183293679806853000186371540581155295707410072958137675130797505487296089458716261187623742342590201085775478752348218276719219879124571504083773140349026224447397641823597300276779593986711815510264395067697259947397086098636901374733606748209593666525953293879990006210712477355948520019090858693435100384878538033680501363332596517006231060734644335143707451404514691590277742055904906534131371342750417994025622060885418882795798100571769827075916658702435405209017949211402834257271131046141201308163488365251076853634208173637809081715420830498446912439595927075306103877862773703477894483245755425617722411257530371537795307186526158718776854465668694106987570748751546728718224114252739014754594560466990285727334601048299903015388505262667362397778432079011012052892343031654179802332216643556089181902593700211266597821573298721498521423509794602341319084752665113027362005073709190817075899361077017407355686589168539209715578175144429621312940141647120421749853595116621530195304933690229354867762844687954119665984357919721745091542679834404066757499151565820058821826256841901457174483236973894133534243089858782180488585870434885506508767820589161202549360431226435723247815711990964489738061648985634864779032302244821356949971823778147771327842208019853838294217119198679103868356832554528938201816335279471049919712206101570170948620411749451245736987811286480260547075766578848513475231422016986420195736865133022038625592078761365441896621313608349679928544825239866561635483646866710518652540313492434897090699357303620995836684718249121080665610761813197291441498589518979842833025211900144934497091177181193809396262940101252390299319125895640661550705223717093972871185556097817381444215853440775165866385820206623930306706758008719933347679909407247429468514301686726852826473557051084123274914708847824119432300333998677476586240382477916778927687397164115570933312349244136376855593192947702959211861436183679709080024207014025848944500515751882584802169409219029426887923661022232301505533741138935134307616752946442301495131751049461038414114537081524231869276229264884547459407336897304038449690959300962246945529946459761802740440352483288021476681655521402098754000870652475061355340233246564689959561592723511697592922766783991804567861400800265764462784968385849940601347860774456075867226451930679591989338917009277177028386676798346266895800300587358791744189976454583327338357769696029558226240674536619561231763798323395096760751158059857353865888764595645516020963924875485143424882732885000762046886474362641560400421893513803160265500880648517107571698413021374921234399353616368992648549383771338172288649762645544758403261301509238594753235997492776245778734798621124964327138484383381052466049215418897186381916198586497814339729107874051258335310554906848304574286072268656975453259759460106701389074423476235514087788751388234736337313716901924236795038438215508343458577532415794170323963243110409067019169862118264591157427437251639319261156262630007035592783098565646526563088555921724349633791864429937021627507826603051513095170130081235051630241164290697670481941398594663548002577295802031249536650760340965151121107449085380511722121142814238754740695760646055147788576665899493097697376110487846661201612110013120882738032944188490425702029533978804904727399193910538623721953911001979476068916665393901715635823609898985756094422944540247325536129463033374818008466272031207371343291369641184060288692099653333667777628990980207970809297146183128281015400663301748576695921878522219182275579353814890661875778139227352694635159499454860932667677377459598028828221938675196913963859822091254999475584136690869994646548492119916008026012658191379500772794391872426356793998981214377731282598565623505461291609219232807336166481150028862689780951246055632531686004900841321567301722684913194350342361610011287938060172154412189731144943894329690137009017986175820964441900902457030122945386000763766091934067249689100628277416512711329642101830145124900511793001836347254257774564760606449909509223107076802230310948537830539400550365029591483325452426674110337158154223142421400425167832483406161291911211057301812388664231193590469580706944648621744292967999171666628047416624047904974556317525329751232132040300857247714252112934700516966930344947665668742237279712637191454563926034586140086625869546674550592006805092770727664241494090290658101581340397654630847175889975705102223107625701662575556412867487417137282603154072141078904769006173812897462620396130296323275342196876863848415665077258260294849122764584457610063985184196794927889512242688302649347107624451497060287485449648125047283713834567472102765467637281614159911866733764690587868835917049645978593777334698718633209959459833809401195781649609650914631674594818937261758543812781719701154848868615900576929748435220945801703650823567466691053187207522151631824783514987352076469261817852509022974174783287554993497755523388115943103821463847375685653217187243488687340978298539012519516521367532028020523390166248540390154590427421420043499363204560841864203265825946954918001927806327473849110402224889675927789067088654215259805749121219839754496634669502663193697853031191888275113346350335671668966335435383185966341877114477949466876759858681310353993339664996805033357323657573866792708223416244236634620352239452963727244339240371236927949989259901372703526684848833155480374104530011382716307339966026360556026007382900033846709767335669682791595360924444411990849720432168977905206063259206622981389177444852490941778976645667200455431845903590038175688733510230771914927086708567922675540165588341504133937610936302862311979088341441099626494562800835815954004155649006893374585573144380548834267823007675076389763367065395814296312262239257056180338159086572735442565676033065993980243533409630803677163039591110763848544702503899881656311361230504751292142576320914042282472066212586865938740888061556290796613669548753308540249129568482731538824467563886470751482290368009159542182894252652293413640858921924046835774804103896866270845587778156006406867206003683413551970870077553900441651444165760365143742658971422293902646579671854783396537062350507160608085620529176290648016464662039345816694529086496302418032364464047304543875119131086172353153551094224927233475273601990527311299524126081341828471731806983126908349348643317625253564090517223469892445151554845624033614243217317550347870913442795827903668816674167453050226263622092307746569073505059461807508337763397646248286795754383642904703224204540357356231298357219173455294152824331368092913672219089160770895662488975509571523692101143058261404430624098565175024472371787241940173925095081568217893565544444973492109035723140078415350440608423271752029057519990208082938420274507773550042929447543822229999703662950462969843237234362133631902150398124329980335901133021943474669346530424137827927682991041533478178691409896408966144989101097340045951285467224767651472906289376851375695992051609734504401414726574051824681323065121168113390812696441983899111423815581987962108387041860003242591483062603328484350675290159502587153900997871836385167290549227758451497688473588746738570751298148307138686754356209346706582506652795059799933700018150129797989548058007590766271250931284826397761870798387288348836350662718484609427706462926659426004873257063364925975946956509436563041867412305035128182775101111419759513221481142767574558732018316075143760693013525370375903409203995562478068377871234396552943452088964820709388509437233239665051734486840918981808263493166953895592675086384892818943158687251271834909500485921813394071097917514586463937393895015232701674127880847568294561000964761766728067026755897540167301940531242122578802018971961423170502897055731918658607048790025355565546575655337668699060227428046667579094646950178197120060702443073503326034537647314414467580086102568978075864674202447930712312640062178823324529525866448522033770564482515783552125807250832285724846568906695821337500955068289114219139542792930082479736879344457505532616708788821976136120944534138840548954252163013679868936788124475762394257886651743661010894852022825125565434152628736564884986976065691437533200430448933249020097208424311816926777757563472197167075331652989308464334650950181997511193764380125975116668393029950812650633570022374985123910080728287130023527497055218085045448029678954835187492913594511045995248116225438958401417727414799597155079016769597526385063373964774211070130322198114321151486624689206992375354494703148195185710107283885258444765037284444891904759322690013083936681706334160521356915080862307234517113324776246195136635736051446114427341943710073072230317679810411913802143844623216701639891460279231042191384635784923572163654362689074731330371302647108442309264895832896784653013930582358204167819810608267621394785852753729477286795156549610699038707322667994618929578276680797203791176990779486364777715685528912041267018584882069011380788292992209548787172012537778990438294449585651023069681781148298554326094552407238600629991707984856856797459399137303164808022693744083697427205914433584335756596845901041148565574200873917891491202697434955360075230962632304796502337449193406909079319790515490171438641624213698367391646536103083912715809619485125854924361279437207639214475827833257635343883612500479793177547919222760438830040449167789420550317625210900829065853617035184822825101370086341206248949713137476856129805370865883108605227953311233720990425303444866575621242598451905358701839750060346520426706663202101683726501414985866370459908365232915588818961451107848030014755830401794945403344793531769209082384449738776158148864179722392319263200972232569710754706373131986777841340394685888753167490718865599383801636716800940033113325998718327517134974926609471584067086354333801480387744726276771267682466557623534460580839766652425758134462795242304339567960737789057718317167556822022125142093531480975119326302113426462925352244862532868428839647710902324828258690021318939248289918026979559078619033460025928487410147512816600375094935464335907314514465453999448447874798269849051773414951707891666986072905436370744029932961287971058037187480192242240478203129249807556949186847844587168787498372785166116566249830167921202987814342244381286450478484194480995367100951209993406277671900411305099288468194348030726294244963584000989933080811925665940635561176333675640887576698752402994639179248802650953947651032013031696493663681961713633985042857319125212086011135535938425621094265314435167541642325224216182949349282664009118050671756490677010610008706864723770896878821236469761040938087511801273701781412327832946448191565947098718854658409348433743217728798278300308826504473467570137484113670232763931283302570446231200450125827867065207301012845856351564324347582312216608952251847174621557326406180442128139294531775902538529498106821300514879677914753810177885481360306804213398356966920175320599332715110766430600295346893285974550467669195323286674058818069162546349340377821544629757761124933459859942088364410968465166667406087154934023949125328736270620768171126115377698644460810359851973020170681998487302798713402833535429207416366293180321034475359210339381862774063491997197296920557241798311514578073470453777394434187818367996273976302578511305302997397911991532348132896670027835430311191145303322695140529246155892868862208596074359699005303467044066291091515105700405792722616452758427307513845977960026313968246564522477723767295301632990994041658020396806611415218011194054552558110431706755145662956028868645187202627977596247324957158866608527684900662849722430730618250020836432751718420005390482458763727442531959601494626324991841272607619232441093044186210684545763323103921204072860223811495273288639343423243685024101246317493055390449419861105264767448634840234011723902833827408123638552046422594631736345807976781655590068406694629844189270185356778157984052626416871281082260348612427141658980012779039489814298221063941548535942974568155163265714864962803847835777671012883876466219957702202938046419401787342530119320107721729956774095338266784283684509988428763660162414071573327758355758554249319579169784946876156834230696945977305738388459442025071324678772727601743287655760253699382865714849970474910418468023752089184672746732756074955428393806678543949222599977705491508231490959265177874383150469090323509311099547016297071681642608568895950214168726327482027081685703921515885913587484610426667069575476664486442902940388336887788788886223475294728591517338914761197355360708508117725145378228295307922825847231001467715236097730578368584885192083142368115330731395117161691531619480279328497951051347090098259627981690252102528017515703487492735120182828892011185354232206969624911405782345355290743531828947844040620467954227215771859377422892485257663290650127977067276286756429605525529809225833476880713352210052258362103337377523053463241691696174453722258671472445384927623119645966462862255144067698528442541430942269476759960180812063975405341152701679250585864714797247957788351782917256476400613738865506502140340627270433443734842095856694676517523318344819164935080176617989257789983545645273442441932869003933262162735344769153179716133246709294349469744231691462906420775120432153711197038298488733584110288690940573645118413361305011661537236518780834698183451267431252167317586579523081547172422642168927553405067484543765590085305449808864856757843981029731951786281558230832519136872283688633005876240491921443265648460518744508742838468567175421625283306262858579369062327121009212827239723204438147879497842818286241759688776639266835677147243384546479806673425632438990498433981119016596946740095917456249716501235478688094635444365978773276924441455415145385870385256356407596678382901320048697647613333631182436406076219926188733024546157740015715335950100509056481806989963842881378876423324982707109226941707686886875267722926695698694586408610600034290314513741876359711386912950918150299546635514086200056846935181276781115271796817191069787616506740045146601917827729276856018775999396240302599702457373692157866573215387066278471350786543323740350875882635998211989830939029358810338549273484124000777774024509639527939364316405263678222520509425510153094774244057544077391091535322842744546557247954837464394759455990907438180687979807739793369499379120295022801065338992506770016517035041210343451988969578364189636757153038274684460071323524117994260243303685972194772812140571558647080892886938620073080210513593466354634380836287868589096428350367522175001289982576685664374682141891360150566769840497228082716334152464366052550346131298023996845749254757000811893783328305944682003654441766624942678247072248289487049930280102089956628832909872660620709032244153591586624827825492873809656200012266305274708401864247020060879242642931220302113382591247474607184839857218754784333352318633041291185854391901115069493268890946775132060933120962657702734352801518306726836215201944065295973402689228990581771639934657828890372434665798276533525847024572147025629781993596683571041542776104291202961036713690102049323810298585813424242398653208893585556403779125940082396735617256943779457681868439212740775600080059431896780311962559245758157794048296394511188722929175411089978338487807733667909364750197605680359893837065213527102347117565198505902312196225468328738753427183359838022672347606940834732065351830710727331894313087149963735712448070714046936529522864293529188968090390289523762018656966097184875460593285592965448022684909566984481832142797353020945231336151554070905730886014846309124818361393628185860316734428201452923214470551842987947909178269346393837134747167068218712754962499381334422551484573023885271412004105021788307195107206658025820088068771957242748221947070243825007412895105063400139599811835368935526834852097647562755983305071756246460239002151082510775200912207699471466333391271116195463319515539148117662018983672499291376307871652191915609754269431662531537046644229324091378280572706486075185963476506271540435749263855741879856846566905855253597881750874122709819209530355752587531893036382748144589923809362664913114252934932045745036767752706255581373009501078571667281955997906563069393318095958264198462005787924083645050707364678428588865163653663627209555128643990965331757649869372652144269244501293308491272003654051864561488520824252430457909114714806801747591380834157184817359605666186419360189914643371316630356139617752952446454574221210337781137966114923342124055161531021260814890185484792212491706310012518671513003770261246971597715981001787469273119581254383484055994384989371094094819040251426346857689039789822793257634156689493734778626307168930653590849990764072098549408178026740599951839827761049512142756238831917772898794582939645581640931571569955176715931701187196246573128273657947894873933275880064171306100072316253046316560918762232876489598917609572047722158466395789526079424728150992927849057418203480445032729656982448669573592202982451198338407323010953768962194946091570341816816364620804171552775079493499269906591548997998879384112238488311504557535172340509339895470470469068761019354990772504822523096119421672087114618874814947103494934459176612817035610763431985795222377101405493609643793034896024866792611785233509176452583386583632648155687447539401506085239361673756435433022614051249383107489830802242098094558320360531043616527149298701144430726976339527198307735111390154368556668315698684397416075555148822141189627195939626888998584821731817176673421563940667742729715294326318308333151640420333593106115931561460208790787694138600212153565449960482137292962933134410136374904606925756322889365729691844099577139811756572386133552810949173870835248093008141224989256037686690786842581661058333033260843724310669939970386525996536415412915926937546288879643254288474211020534594484982078151080999447360359438316052139002282047532425891556408727432877313085869377283143253196261144716729300574330312772896645299136621047062108196393272446719604577048453435536728587204637201137186189357144874389836994396488004465967626590186443375604452860269131364287081639662297942544631373754436805725974657850581856400155322395663037085437655369946044143213034865395598765227033108138849263105210392502121625875527985118140344312092572079340713678529391979952566710110039370979217809207926982803410168406539695256489376467106731152415290959130123619078856097657198531834975920413505220075518676872674141009012044170629919170916124490464999046800514578768781960127133858442287038212617527726918951733796297879540651449926146642647089056888082227502144172326113032922110483466055642876459851138765841610678013393808425083287813950020321600810747050664084411129847555703745219429538897950137486683243883492344882265831274229575878986175501582185638556334201689133090361093420219558102062526299843682789278983984354226249009799604005262213589791201336527463803661074104450923073270647476304443227263938571447823937609020943998804146450756792995825136901365666558583930632433469011975679199770372530608493542000331191390546380004592052483944540300010269517912124315617094225231691539093426204085394145814115213452497777863801307877483174711035325033731282323913342233481713596870372515382189029488378710216846090676197620795363826313313194875092431929150197932795729305188656890977968178427755956156154208438658920451783202591711319129879042200369533882336556220512220398782439630532483673801966805413030932726876731303379953804972736962662319319631310172791613288524500870862643371791621039248752472013585492599124950246323916357197763336526812886979053269509189140023327023654054607882726966717030291643661480371360629355633491248210638840592506649738605666447306026319392115666251609862442872026102270656121623487206827825036114273215826360279884620601707149594568110435984025126846913833843138517964970456552414298138305132850478432422803748595518485762988587267393385815624135557904981856911430860235619970482626538826078070635784397443611627951562137922361039675344207528401321800467269849346843908707481805100433935516172633723723871871597590353608962604506516855088375412828875643008240405954443930171443908785728515672294481791215606062048216125401674270475184235444381760520696070437373960079725318431680642853365314495515481202840914987665051554849450280382031353796314643906184357198600969435370338122797624046831933785659997881391143692570384701594730871794503852020137919551975821091557460034285491703513842257509999174273212110821482040968539411865707883361372365299801224476810726252021298390937680305861803638071487543525717363884120444177082566233784629369630556189409581712580686598363925491204119737836757201328689126491129585012799118213773324245696160650906399993912087239524285813352039203369085289439453029912960851727336505831911737095055299828161095754013830533430006220851860385255784238833978288027832690707613395187150905722289270637302766404301231278845564394410082178814882459659128206406110751773837309201517481753071857187255027657028949220894349762038356158985335180725754358647353780560749424030713135467212705534527297283077378067566642170500604902828961618915483291711626632684684079851580752776764009495092039478306947868417134632417846942748363390612446144177175239817849397124508267092016197685373202006598938390313672416484847508720767855104524414018891461325735011997735917441497857957029972752134702162397376313873737139429476992040286952816325248119384867789931134510943263664687691680944750631451122863906883486190439819017435000046224836412322183088603066654928863005953304339846767512861449154533452585843292574951630833445074606897556569376227945486567942017013092857720403567799218266979048090343155667652025825000238976117316736639608136277354824305671099563524930851990596449740893896409674116439945063828069560701586455379872512309617280003582879897089972829614377166711120761936286994036492397091974939363625474649104416669425961588224954520572985354400028876868174607623571584155088631445339881999624703982698457784966815005325049297440201169515663485817791445206251927299115899081066160477308395603579235604359127187142431649364583463751815923131617882682609464669464866771737435605694289235295294118869347852822986059579987693425292505558356840198576528233943182674541643297791451941445783029264138580176721382647371656330653289530989871212486969674421247230859678592648474795476688171227035414571508553721889071079402342929470977221557545671179490239191538354930377905531170065914167797369402929363081456587475462822927171426034267373826649619278100951448902597607675804297035254208106867301834729742176911010475941703131179916230739599118404551624038300055320015182194016029973949753223231396778286742781790690912034796456740210007050936196291777845699074446102601911920516183677663613678111683146685823371021541991388368315122507616532210740891338510228352129217716168106438034562078820106829942552484701411973406924112138190701136104153647100170438141194447158900838317625133568730630345563123009969000319627416733633188796562636916278420859662928740846778740092674918622712771999360617105023185441513172700464065233421218308890973954995136788045094339014742589772502135796307817648287349711533196509906247561994756604394127939351262691845380902499024860529376445388177193167637905362607644818480094860715314975239322985185632219471276116677684700550234495690618784454325849014626350838592126249119030823301668242832917840831975845610317743068649291002032543854907596797508031042745314102423773948149803391716192403212964925587203917245982927004149328903804476388203925548527358601711504757638167315202915585629781032568076821814271372997073835905371420667406565755291091720244225537758835311188530462754366658400464279231747602058970280604188074821089320512262974951037549627594001854399360237109557099638678950634290341666616966628370738154073789576564749398462678608787620289628595866855381914243619508759141301850001261917076869472491140848542167379394631044563044408016864136393820196418944202288300396672268532906451269019382047325466646702994505988374684819332861371973862357202197331030988872825167693853642634066511644053630355480122024218487188763646298754936049538719467227300854514339694448930892060782340563155078945237598557509405584840534991029210616955931495576324087116810139956137047527663116496689468054147193148835044340468547037831216661311941168025941677564616218463019638923729160292444085095517970782022466625310921727131557008371258990303974253314062643080121238074905099446264809101180736978629301954600862634485533747313355701416632597013715042557817168723110664049408730922949355902558482534961836949219408592419332180892789058769141599936709577877771580825348710296479332054908078535216553790209149387815511843300229963505678893862799176970508080607520069486292905970692672924881795647008909570712260623172815647079051925435655623044758858752136148071023075537398863311266302325582422434725271161770484747417848821577872435148032839320182636394916123968341013285847314803737935315161523009998891499642987529914947776602967069541158939317846289829366876384579917563051130459004566847839180572075364879100947331381936093381848329769924585294916629255985978374406709312662482470432838683105341542945795912806054359577052574423958811320584449438563520892026068339170407653185453660908117258563413263997111621028408087414354458433770555728667889400851119976006049215104191622894803564222189365456232625468988264625116407260511396278131528850801808664789646614065061065764508545770512473927718989968214461628865231484325661653170468934544144405925370705037205594996830301015949808247243528094861927265481730083751553779361311440168032086618546005406129795004494463679419797512385765726977447876275583368676216031512871331397640593694312870770404816354845617922853980173646137448184521569262518351745424669653445440494084082008451149468828715144202953780178370716386352018848961998409439096851432337874552198949993822665217250293594165553034494689108988666759399755633152621478609632252162584483431475877078850219986652191590377745966201309306534484165323920334939561904620449038149702603115096863576269597929688822129700735816656643301423682100235964979585367194570429595278445585284526484114261742330928863553894402200606048381561480065281768353425702854604784602521624956375435043943336999117078499436188652619964183436357044887516713392510646032017264123607628654076752890870628903432301534757215341063183938649105565667923461626186094807683625156600680049544050779547137509434883398894342510709628030169285694877534680814616587135478687915446491131584356827006113089424755203626034454737651051143528334835873007968124630195477131889740170834427080395722227450297218481682599734433496553876839084192245943004395813157889688957168892335765271966456043747571517872118777904585734891547951250968210652522007360091426666721642285651641321050180669474903124890440369026131916059911804203037918906742089069898072020020138857073239102080604479421663923092514401758008324093187767645741443960995825396600745908361696854154227477515047173228065792296176347683161789179525565836799335351859928604162647614486655040666949096005814705692721129043492746850977319943982241950971067586268846688815878921621872446290567937315154851728214080825132757309299055178073882878703322463726494622996710044486259104256136990695114860936591034034393313121549428968018111698824112729448311761438982589203736572220111865994212339874136559485854314883874521133460803195863349861886642646272889552906287207852980509246136030471217846601239987698480070416911170047427826433312997515232270701699732159543396911101774250811018992958312745475259434729622940843854285532320057745635516240316319968007150598247748935702749446728602277388757338869309011568941345635772292867930262782266004710958083410366930102898165218114739355604295898403236274634035027515070908610541387688367642161572868988927730921945008440097381224207624277807565186691729003483192492743062286448791397838041740969668467439780635919818393786170440401806412615787094257011247265450823051086903909910590618465017501586316671933181046757551990359193114459281830626773070522619040438447679934795760771056966484988353360981145340148987078417915833578565832709225175192909965600285201637253292795537594815809564530008461463840487119137087905356701682836672020712452479557397123585365051768772570662912950039964535091448250072251918620831328949818512527024915771620882804877419577708490828850053961281975700042988515164765634485004980519650961456734114343224574052225698648302608948552979614152666752810664930933134919775604915280019783496481131987212680290790161284823455187306572138864840387267402670651218461428759508800917275702152483424060927694964868252552879541054546631855466440965584988006580343437086779186994643312335906913315045048975558208110415755292087573923667814485787735765206707664936835998175197280645377788338866417456630298073508679852191005189061139891903179963959791883773068178820632247030575417939820244444884929959394593667663718525281764315184524090256671442978921940775870981832335128312311032228224180389532020419731736266082677833245315914776765219200871245181617441968426457107456445284355597129976716958079645167835860077508400430702386671952795762303189519260776417353839530188533562554732859051533407448258236401903406589600653640509097100891670237317176654723771416958828256835916703322894575104775442762194101261946815913281547530607535680907038256760805338069540666048245154963199460715590543164387958400587686477259964648805898575953012972287215613610868560610952767064446810006955530780702180337162599036402776615303470812504643313443648497813480875014525952379161410700622774411625461793583321312990748016216508699431659042941206931432018263370524591776139815166126957675374134756182832941388979729498099478847181873853014790700038841537209453993821867241940563687693289872673297352409670896574035760083383096002183488102018203717971081171008324611902853961455764502480010434387557561501021804931465781298361609019031651745554835050882400146291422734012451468876467222371109797963758626488620244835745264620958418955329015742726242470235055768481756643396221048441503628916411419753494698976158184831252250945917906254443862584206867427377885400098977832290029144843362321094892864237700206526134323794777707032624890476474599095996265943588566403909928205519865655150673234004679072544664217178730919357658775598047558825659467574160459229242819423345342862018487282824330330519403752448777974497987038322338986537476984422856984154443492220531529723247098988156109951705039542091458629525983771597916606245887411002035551695225537381898826557487388808565255833052909160370264370724670311655987024892437999851095818147014751780561370768931118489442719485581982930390796259599633573410423074185344175916571169216049090987927458410402992137699843314462841852502168677712275268758981364745296126628903847026729344850322944094152000257880492380253448852354721263816738355373503645306258607932230553935521474252721772787671707843454935290507523346500510680512361499369232096731364785903211482670102238435602046598992323535221864811681522475886744577109362793464784841125992066610548462275320982012371248639838093020702547266336905944017665473367296598762257359466213524897177086063135381627444444177773356562463334957610698034791762316420607593686971129242381054021960553317684881148393801211271218887204353582235797459001548455578408055156863580043103201832491581597243995541517333284856016037337036223429719746719152627245311610191571613734070799009837745293810223070496604365037415636057515719467517290984413548479896548153807023370135714028168705524083567019074862074136099704069389483162529945903964004545881616501743187709014211569016221505086525918930685186837120877717328063992445697855445393961874332176487072961573037847448125588432860159235382730067804292620719998344516810097945075336309930160750719599243451037813592114503042594202841175342444509626104209053306732886323085894655944383009140961582880308736563431658757969513673907203597384666754021333059155304736040316207290114850831683441133993473995548391388908619927014884203265527870915355000920376681399415705811540584733287970909690571570076203735089696554152552954449536862611185059823819343189392334467259869967789086199352646572105230844881336550950110127746114352502260597909409302862123402237531745771889271084689051734637075461298042372817634770467596196753188737313411606726021379245778523459347356429310466668675332739075858576434934574888578214922858998759469571403661008282626833361388235010138027500247532431066207237510172608992164960046866700190265729175925132177176312382951192558793041677002728882965719314465671434572181709617690955497781628332891664942644592027241733062442431346739795533212069245617161139216682239432673458436324947645773860486366721266042390919080787966902747475591394502174942358335935171664574249720011046459578974603122406528176283126434242791526947386181180935544357380591020858010119641029975705254134778184189889496802726053489392224877446946528454246742487008039073988645246020083070582966256772826468873592770649397043202773158507420749112567697995573250494460828078462879921487892755877640461658591481738093199380440285936117359986718137738878192510865943407502310310452641926713163004358027444885394101945668355087842065524339253496744510785571344560724674363619938535833947111177608721837312853370416108357099181219760991417927484135140402199034235562166796768935175783036115230374144229678420255433058665728248959155175180165364476667641085325889047745192934131459434543721079271559811697362132306366457415251641072178679679637741123076503201139682439300169434378605638668193066010850541926895420880366988650455448635707831602540873783804486197706972761626781955900006858050548674389178724387910244156108797796477699524191497313866363887076331146822657690187433061706082090887581961016759003444680494628854190305425658286945993392891540763404275135125594223031198301779379038951976865220982943801583371070499285343340760384707728812044329086994217684896145575625049838925030435126144484480696970441254179496594081339358659371924231790290114469692238858804708409665685257977989277746648726003249935457537431075120897983217306189219795925712357746819677258129963750810734130273174197083330092401693373845489476747998549742793241634866298781491449102010093908595187450581825076393590374256681712860247104332483612720474702702826827146942300467282827157837418468968693313161346333714877379873498163139655383258461562248671557211336442036254974016785145132735278754843293797046476515478332028097522731134385754048541972045069269203461312581946951998686311990142601631116072961766959875196338299536424454726284846066389589187624494118351781444963479758329050568233390287739733712444019006447242807798121271428932770669344602479159781657251771919242847265802760684205413182345001430101186634965963452571134580783504586160699596878690557658040051214399429345102065338781148648082938434758111630145889454289335582771073879373429795946194014104611232691266605113391155600660527224299107620093631458493198003551314561096223400301332830370705454555702970630303173874384176693451466283334742557627855400961671859422015787242546119251893600599527125257603618422125963402497904598163192732419019222830022066664211031755172223508654496312669718506322989214874324914794459516697390780791116982055370525352677988822324799609654098911169734435444546625639548559366810373686492675832496873629182005110432236315192299578216233357567672748678713388761293115817845136801912359800076690011999929164514764033308270007826978918776663666095181225025721364713969253474859235881214518350896296206022993715193561906056984486898023760106685003178250901291766091367301472226717978887028308816464499089097432618322215787791741333464877645741278600539708848784899830862448525392565581479758183717517682780533360968906938040212680409147676735109992135797751173745055598951320154561997972752337055254051598642616305942381484263548889690511448105114636538752097685753881151547815920255949140599837097241234324127335411564779928144818424140484999708716139213305010041464707297046892673065300722003154484242641360309863367907462401576907074999465963995841643452111489533529609987678409689595794842817180806064339614298338457133565258518010841640646891919260257150855261840510493431824093603692767765133896007738271601046036030989468114032438383218422873300353544926295062807926319787949898608930084591058629894131296147386250232074234099498005297820228717964146561154762810144102639732485575029103794333247777583641044221557143141830294224387626074774131119795882146040964146900179556090963548674426699931420831253303458875494632146095974505724025785015839701502680022720855705119910652452207557997045419591453895666139071140214970624449761819721988647196432148246723376929151951158822740514079905469501529625548674010937687739289128315575420571577089033159909458563094369950273886504006989518110617085008696980285045568373244167557698058168826984925870947378996974034344361217522688974004594272096169289240998225152170966594966092385428575752738538436310325237573713438738715211850348830975747620443997693685220100041142263369121573091292376628177054856129831472926564798384684536121988496772319696726247549554397639383270420630659248026608171140351424173106078535973371393841814996767096112489808552413340564194268455385838578979841608020983178176811253665490751733997728530481467193881307882432506885865000292109832339688391794054265211296138709949599403515208427379696516296086139142466810331304770194076420221822189272499492026149331016428202551798155714650908528837015354484634966803597542805616917000312622904915761882398723611356292667392025323988352824076781199482697834494119179121378158011183395450196373056685897657741598647595917843833651065373971295596308772602832678649518416769655005306795480747980269504321550244128001448763486717680296020490811951801270465574277527650100529704803612998741605002605121264064029811177710359396383720871926180422236813487745940239287925531220540627294388854689762733217148736515372290841109481546236311182370986764692380637894233982395732178884740749007066175020448302879797011785979888574356888258464220770757113059190506414917557526881513899042248957145125722376446188227445293550665887689970596130498733228525680045996518342249040068732622584898243277518138784659144421268600393968147734372899932856875522501006881838040342156386052267529871254113708651263203561717202512554978051512438281142920524569289712291808052871406048627637795693201936948431497239435364464745267076350460978818622144470139465110459694197527473561647034544813079944646138235065126701247119042668646916062718665860482712564454007473944237967515541594252467097285759588875550439016149506260064729665469268820588129110470984196528381972539542084703341092567175518777528345005625189205919689042924116807170142576022466528323822698921234799433242752510422802856902879557782833139331824980569719566556371935788068374116403752966167136563405327628197026580652671207465110457342090139976499772598034295503506037644598016317425184346366750682337406617301410432863961038671345423232322884024188760642316134644664489619312130761364645199979084026387234210763697590943586704473718500800399815181954010455179430455370556693306076534435171349951238186813233238716034803442591944811521072260275805018276840316251251286857720006802863637760672850903803428969059353164072117803093097906218426789882009097345788488538679888356720512024755870946964622098022657800078267710257210824490338985047215280734819119659081148623853161642956015208186789822467092078711980441450108321180617585524639331081144836977075642751839955373706525978197890048199042142235497614783963134983915479850821260149259153366848226390290527328301865569665286246893913338064405766042134356953066177569236038104251852133291567203067075559607350869628376148385572871899709766473910146049003980894505243593683210669843811903578654110726823422674640593244388971373614362399432544495345553665075252918264425902046938471581718204074538680241655979733067211805526556936329390744710822943386366117019157183436387341047755858842869210369167037966804943339117479011727801722306765423903146979572442153142004575475466849646512356967933580319647458123642234238638559174495586412687913562172458860423271794894415431632658301943498691444993932737481098295290402819764464192130078327586069366256832679409120459425345735728691603469569723244179934925300612388867523303734035999704933638694274391014895167001559368117005749467616059548661688129317518861516280559561440578835800910004004416584584116466023417019852760433175034506903025227802556928575053264076218072023632051231811174705802404333978992657394692605240598197962581284842608736946728360383014192494907825670377929724948106972016420148952664799386792843330994948054968950982991201769149508347962757330264607039927611363536852876423778719602682818164132388934820935510832306176747416599709037256309618798934065263098434473645970898300204862096272381365935981151400361140857602041082074218288373569442045853928235683518087138735764255395679462723907137476695135806634898488389841063594762538973089650767058250540823659105372495113275411647265117355674700645947279433069390203231144227657237891078985669800033261866791767262913312087181484348616217362875763149754513846586205930994779083034069956370032749546503006536298046935036565633833210477620195329665588817160634814822679582696073098468046749190934398252241706578718324774491084820030344005595684938487859573859889380975134238001998384375050805600948592349831244224245757592746649100955591798988368044689062121840555372705440124851635857448511249448848523962441811212655187220966956214008113584678969025662761616753396010311753191756023428553251533496082697767325048257763374826396305202548601624131685327981458489243581852456798969734954337634506715846397783233575973748556729515838334109340349059427690598900960322138493477530630282110020968650067435602110718517158595091991946971969890875475275660387082219525336747891011415102236954201099854893872134072810798722313471584622284215935937090639831594326049064298414080546750591664961414491812998186016117700053307450344992829928320638647135350128009110813726288537485841960939222840635928445603023220285663979142128827957670467683114800033829239988178947806091166812063542945793472721079921601153313353724439298951383089344850329849714761382042759376861156699221589260697516708575878542432567374285514657743967603657474192127929830931656439476876659790836864195114127342156769062900449856997315901733071597448706791124508996499285022368816908725897381435939422265334663117973142863057735089492931127819931665395300182281689867699328609861598379405998109616623205027790710504317370887237797376606351809423352958003289276737872755422209439788644638765846915206404431794301354610954104874539359658577295875279892055665051084877956297872278138184046153677564574321208145886546328671008791309700239601405689912854550829716374549374963579918649866534405322931509431279060864504878752335067193939448395661323896580827481751648161928942297437760763473763487605570397956259236910655826214531193177853818140870793322096644310637303760277268994009485619719567016862660594858722504626078625275807660490338262521250292193090166218127686064889697709411438960571685687156782822769880226699782509790451386873931526669220510842788816736168608522359126907597491271360662942003923662147883540141368279377795372042292963062978565374394969789218015904592139169568292292734831667623232932831702320360876537797865334163099457879248352266487975498096167621307314584717230509547737868332521437861784688487822040935007354449872024439511136927258665206464301987621754322901353357945868577417307156661186391972417855204863348888221497395764548836733840235727530267189819319218012660830199169375772039870961173512166256338679878574726972714124351157289550262422219713682812467216639227068288577872185549633928703029573137354921712636192370945704133811136549749764481687317709180380296010083766809178679316023013938609760632145661143521431542277908053902443102267559834295220123716048133733405403228512067470392661639400261087064438570745892652755131228425491045945556973372850638194239627238811146398351668762095000795892131143484328815876164458928881688376069334823582795980693492013853315548096461121686251081974042631420753319898396783675955301674756798601416898946761326156020157865061327346262234950947871945218176697730859127677075967163309113587823865504884495620860662183064495812658562494952617737591417952134825657930121269938544741885590913187369642953908887023179825916820463275320956458227349660622752231055082521154431279902913953284005798565452952819403054608888915446072233021178651864448526556401420377047586943907528085906520389588210716434680695971028344222268762124818010120912944889797191841369116013794045396852440935218073736570192186077430191320820327840193448913697374377664097073527007108189201427066239146794746055095661774814943273321022749683701256734442144208848722452701557504262644182941165563284963086224222465377782397634341079556984971576073897441594440891237549576096562189657236961242565259295552963152853194512528958842782465786298852299739309261523145427802485333290811278966349760478843904687937495858872679783974428618317341402009266228008581423497386351282908514340322974922617426823634842434671587533083721954228296757899056774723345451405488825668217553650658686503924833304455938397164664758254570823699751491000820506518287356942537925471356877793617219005532098392041399029703463657407909676434918598221883391229661112784772041977422621433872070240968304640702098008060103843723453058218018157602848093045368744335440954084535989534889961639017924574679931532885265066217004944094551859196205855596371987837738805243295967882605691342275648949648995160936774940543776885811462290635895845149960138414269758149195436358941410124021762706566596224285914890098497328866214378600552712534996371040059302041296641788423877698226004581722133838158351477494963496415434793970646354430970820542079328274836071132988953665629039974211371741311743868076766627847823423160108443436812516347846707323862488701844161521916727349960113759829527037834999721506598592694781639949985390695061630603765752654466226707236255395254067475489731963023625184612215348392465887075071519422616532006581094752536630745287470590309570520177521719596421798382463418413971197855152071786125861528849363373007351002910844190573842948035447540413463614266792841529526290328578947370886643194783238859972845856915970028281794725603779724314114130631453509180014592451021573975287388340611940504322236386974377058345841921829569020830039120555664171133477209651973208078637262603423925890563623260479950084945771203754247077475324545747460183420663593310665637519842909849622510541757946530228369628412908564523082152103702404857071706466903092419727410675598672357819180920704962023394829522426081438936009290657968248074202857176294596389001594779733401384821709734765298997971373792718762450677986453227667629849768234329697170805120944486398909602625648461133931896896088623714166364396114513644554615079177157862919995446395316973408116051151787323294871038017803849030225817490794146884193484035161048583269650372376531157019490900067054915507153747975744154588767168936228556533968546390081722300937416916695174085847681776177033322370997224845626601128321504882196765761312194654184292060942950844554957249943909470042123827771501530174825106247244918885992026556679171726673103334815771875102072817018233453101526753660880953459208865704812106464018779797927345841314512371237548574505694698883495461537042419034036290077651686482822464040921668784753922190912144262143016230067476285908347595689357833613505207128977248484689203480979003866777957683757412123008145859855962618279037852437407964202444186380008034974976995055738487503549272381104995119167230845103444834144072601229323631953632936633684364798603567879408172036601944297425466171181112939999212970115516873626624781559973061272827717040652166990775417918433909762762122230168248127267738890125821218136276399744137510190206760175120544419331334436509161983176894053897982211873874354678117582799296798935206357648425162725952831792733626192381399784035435482885588333518073103129319172254581052925337421752061837132704999409199302739475002114661520217086398298831540731003113933852912483747703991241555014406261079095512482301961140784518416863253313952601929691800131191439392649256649697542377634101453356767988058960303869319330788463367324596167460480461085781862447631504437582812233790257525448791708994334480752045536806799977945062368238616885787845575216649569473939256925663861096171948404967160555202080668068654300242798024630908510433684813554511253283551457720978535189397961021423670180331760107720714464559599150353201114818383780171544797595624222766839768119665805874232145817885886952292320424593100424972861715625160150654570447241078570908690724732759692336655160697248484790172157944483836945461782760302203097596500750136476652983635096378685299547896119690195231337456296261922056108105068781096421518049560188117566689835399674681003900672707851403040404775149666014795809802424561027046341958268595248118618151310622545537608220591473281925389291538779616323517821302644950095975559295102460041196378946912465335555809969307926539558709870381829251168477766262209212211120337989157783507631743037570774148854747913656147265987567351789625565540473006944209807204949065719515617342031052753909770418004275419068129957473395821361676952291926153711605843341753051898169822151081252641970919858976940527780276251501519667758752375895118471657227272633711986841154991233451895588823138131589394752907997374604836753235590594435289186890801018163853970122942578000630279583590913048421984143893644238247239560928523369046767762604451608144019139405692792180181189761005473055398092962248141564363701162067119220446419675818098502470908894160370209806546911577939390843582194858809596834534445057663595902420198374453000457287639843336330393045966205141292358798558197143161462603715679672616232163323913153923861133020482276471247218525912293277954508964326734630479409061948329864843980139222848007389004526380987430096253248229197173149836859932877353785344371465118808512776206379710009131391857290451907464580727308393735254254484629183639955820467245436041246376808384980814041068372036505886375788894478531708852930618790811876235095388217433758249575482203269971459675158375963533083078939063992328024058498848144927899730297182800881094379075157120285974267323137799686060014005083538078410178661505942980220476580775568416740163066794582687314107283730700657903824865971200220908656349867715864420731107791379711776436862505003410326144853119084880641577397776271113282016568385801061517428251705077090193069950348190584148962810932543703723078932812523765216858869940923983447996621712445405283731087313557761632823750789437217186881462268810643732448135838657496904895189112615276095489359203047849668998731289846739397425958375120111946876308613379991582800522031760380364045639584705478833297734405198169586657352864971902407503051282362041872095281793785120028077909452886189324583526798849813003317971706111136999202504724747433115107069856073996371694348576507325869042114751004371736479398016577697742023867668271613124314524833033953853547855077561843922453011814142046855156966511447225314194117912944490944257850825555641626269824092182798074244339557530734074435297533742248071478337096889145562879134858361055089273757929456459366193766701996931020825749971480344361941492694462098490673382386837983218554401370380726060261169021055170960026709117026055951374131277955069806398930365748106118335623490445049104341933736516170127206739919488602954358835154493543800743210400788924626252940529087342877455195214867506723396091510240995192696698844490405924428670047339330611806318520555060657543232249775746761529620533531339849256343279904860205466451357544649196151746845673249591539339931265004584813342598323712692288708841954988815079343922132282828295149138509871409054430520936783770260927697652333214212911421232064721870759896604247140836236172997509296809194727245439051353034284968417702238421080849292786969758725264149647200791422757807568717065986352639771682672242264427055988593050133142985555077419583745898815698780763526629140287310260792540389493339895963070595063872403609058910621882843568739361554459422069135563527379292705494682537062838396423181866855827292065345686318934079384252481236428447676281934108211064818912112285711950747828428367807427641855546662898147754211899176586546784658749459559332756945448037260125324644518236162661520452503349293554093034822335929964988179267649708093120543350036855834745712315963041485930577084948397416993674936613545772367756416430559012060988481926439897057388282781856114572901472768271503763223843404550653582785809505055831105988744488716146152198169182333506268071844228875495218508570240777412648786901823397756446357577138505839528011846349153508163362010666215980224538969417568992105181847750202364061699739979419481810614634645034086947133622971244027008553617784803647244884803654338880579707345669159414393817084028552779683395476759500448327374565670229838780585026462129324859173123049683788309384380323548244826199287491681774749972177499174041428207770424133791017351034752671956028859148408685001987589657911029353989066861953244890275570880485212706429876538592081096454977477914590281702326260082817686404012688322868887006874493659613223116237548151446200329898009738047418278898692130194633448743960622873316375903809024721607784957213435951015646738119819169456561226674215980718750417925735772830798613634923109762487064024723846502896323193561098139631549843272625289244593112311237697245227770505782180381066972374214157152117744270458709615994288176122652645402403882100204781281562407414501080864864433256428192024327740341791467522961329224592215016141174525055547397509492068592024610112250342900620509684193201997387602582152986316677255835489611554067575623921289291393883083254535107961684573522489083674279779123698195223028052754379356789486454915998443178018233022279025059627735189067543319878309098785141946575924263729643757276758889624849931910510758052475503744340552028934989228159909793597861415880889364757068520754761819066642979782861374468066824960546243641635502753585289006253387046163755286071326376395861610098026212361677703753163672447537713328253185990550297381246079525298238954781607797363503410251579469238264283980445951268228379031581583100952428643435403912344916876930431124818029597161843453226924562287688553482719315756992842977033852533039059156562361569498348824784446810459612890550307772310552063526984802886515638607673378163670034133676213758655732614295489633758706626781912536041640808276276809472260348950382900248594394253187132720724272071253485813186452199696854552665786543469279489682078597918561236483081688177626780294582918328266175593411973353028584889750115192231757178282307551588217456298233386273662921614537494527829448715294845327926374877477990149856612783411459911442923855767842748131786442274272472287344637785172242388539206827468084641835296126418454649371205374276297742052398056551378363512021656773796581271734929163112534598497350221791207085416772823718327826630995016579327958062330494582485812714361529484449987231298090308640454691229954313189543556114068761853772356565788304984497010751381020127358454935579847211030872873516137342735154166222938694590286585885291655565555629326149813133483836356030362929050728651347790853312602887844761435961884206298721304996877617949086598050476169287111722216026426153794814457809903837511801287501869108125803246923517620411099354118195221778839844056405193092815924712263294921636969931951256728737136729140359611595709661976666514943552173783670803229958962161787501370946914846728619678221382460759220583880461352574784962916466008354696393080692981613468919874483672151740166113921779887621639718286044188588683317188608243530779348691085019772247584608801851846800596861443604569397165329498348744501266891940194123078818789986122884265327938651751302816921830273970188463489186030049835558660159304895497783345249318605470194462031196341496193987498311281659019128922401180719676678574380836886601598243003289634554609521288964720349493496418381138528788582766934732243817473602801045493202034122796387336383257491732200157781862160233783203657617126457259864629823452658080600035132876274482968644549320689758643198757682091234649629781661836224406221051575488101543790889644312839950518346637667215254789282470950499029373672982218047689521755782816620471549964705763673883388849509641323233144005387202952354671149067466260329254713970072900845384846930839475453712327012886283735724029799325414685150190643423046033043511489211311745889852652285218680317639285460002217108331452328088528746835329479954262182972907177276179751920603250887245130739105359519513615893334143490192651584890248255745384946499429675471547639261828762884481715231000359214388614078839933720742102047850847297563398414750041571217819794604732762916647991170357173604874666406134180742443541084572187722730015202129931393001991007586884074314146765897003738425072579580867068069392970968533854422792555088807088180444662946277589370669476134846236483061436913830233164431647985818600011078191665578161410573752921597264073417247223001349093958533421201860722187234548388098546896652928306425317413288050928052546998996754045162390453910124793574026002384382050764498181138275113444327451763872752994516361085606204495222462508677210492669997604027514568276237461192062479102626606081585329343551606828477339716882695381862679038269748915025493713791084298725613103146630359558412993517643646011196562101055020630560652092901650382458575899776628945046872868134993277796486737089377690031403950456244972033810301916359712060405346825412079538084426182339218537442542818064610282764218005311586822834389029873963493597148206475170843334641235284351577184859608532228929816089857855463138908965676685860160346452061443739170985132127989026087483062929119158136883722331755924663487111572539091727022393193630800313268127255265835425731000134659978158154509399873661388933575125720751583531650036502565482269524948371974179012063936669822330419283080864019110528727203036419270340542016673699506352546246468988489642708043552325719154682993967610582775898156674936644354090513951361238958500743301211495132468632723462472225834684359332486053354067857607505018233323621508873081447636658769794657659547237896542039859523064239849228593825038274278212696926427729487465386499167500116885667715309547642008134621881150486967075720449271543083508552285366692744684729560205598485046836640819170431199179402021884139442332300825921680297395912082029867574797190891589714323930429777379140417850146896882813073834926511081932783353839803436460537342196409442899043374513310914753633631597629535649668928817813399748224430342424070471476390379845798994091563315710642516162172616475295219645438056758276417041239934585588893972875086097193987096011965612978402253431662830054578835806080290165787421764634574113068807643298572738075198468717441760580263339771290009829995711825902771735229843830068748188129116407113424347178017973886504805218183063488313122712814856950609411668603152960229394220337214056517611073389759350575776574410906156027194041974069801908257876902856243868145005963475064521506555645623571614761211230222138640476605097144137741359521890120673734366004509404821934156415261892768080738220284343445823215060118621347244386415196399737827585418880234535534627808274902703403867092819708285877197793655622719556192496361880607164714476841583129927326139151934586871157756051221593854577164896377959858752689240628224887557894013043672563519986862586412947852552021080690890960949897924921546763259573154828690458406330112292459451657054370607918674123176268103105235453038330485460028129175813088150579729900171537149538805037389453135131112111656467376400370703825847495402535358209689854199165703729684905312496335663597007726432814686263588306094672155024755080967485375916152974149934982978512999796550916246576964811433863438071745204789313550919149238623685910225782330504510146096207578006476045085014037853087509631770569347171474728253713132277015388291833830254581100164069255556547971645966385176012542327339815401656094721970381736420218666739520070698645970083740859021086137666564542547904258550645956815011100903901367372157364780871586366322957689525162681126524670680966250068357596436840105959351526463614511809947883532552801187581715402802761034021432961206467757137460327419437132542891142557401822070617281025257410223818149137283411932430919830076036675187763610060466165955699856977793498488355229256904827341131295786492835266486123261719681005020923345153032438693166356636485025096589354546903624683326129224761764043330662114759069798645569362916817116178741388556352923353637202668455693110463115772454671747458682861592308637220642080164695421041706813309402037564586303099988075941198332927803137730213212955287375106470646066501863610705355857599932472285667763316889627616335765627286020030907952034870927266962903918681804177615894032466019438360508369828630109024579084266153577859258795405734447184649382471421736270343187999237853087267681246648200414160921065189467996549567315833106991672420637596745698351933648610746285286864266149424743553330732925943606948390110596568243602449654178649403974603097009458088341455290069251470537305637443868171601995859968513200067932006727869697881152212616936261807870503322186404465718503679648101234292633573039150676988655628847509783147351511186018057756154162279658706634890792030700431355522748408046869996584422661781415234804666092865891909669255018504432128489646647164408842082719957800377331963927898468433234365251376574867252536460213953062620538234577177332482029589446011438508429843728036441536635488266392706144928407552377395880195643924239789772019017021082335900001096453480180601654581448716977596982533895013293754872875572905251011672827766934488740697498816048282029881373897836611004394781403037600582976449774604092558571218676265086007025228442747490831467114943794780511649568515619052885527705504127150291392593111350096859737382140401439387223375263999140410871824448186678582520060163326220211646665120841760558280847142358377875780992270352495593429665873984707939637164245234480754520842189270535797010178129356509417219254662657582834585107136995998437081546773505286934844733359540188438751195559216862611219268018768670890550018069498059485087049557017085129747096433322445713669628902084429803190878975686842891122559091108091301890618713583445755740394873502038959764445838477582890003769255799933105550141574383440422375504914932301714582811795111998552718207735015564527219366173354064953816491613410383639754542807204919447670376306060713087053282152506470260843407848159647837654971196795577874681553656232616818210002674205735897831461714350414720216692317341988475198846311018563079738740782569200137998219842339321155918877465086174521269904760683476142138144169133680896927299690207904696632649975700440318477176351347154791863268259896725083271974642538102895073681877103813170300031627981390553407897082672149894138818047902765880229917209196136371259062737065457938795536215357188713324459115673574075193767822769518760323489551326910629680640764471038197527859839299176123087043119622335195106271434976013281569933269993914121520259248013820675302186863966473664228781575687471136885083735179186577929085225763067367077513231414756208580414266507189754916823424067753302352561978372894958176994001520654275465137298158777846731130005543392015066216550144398236876295010629180886865261527170406614737462284242034892846713918613951029886075819084061302240940175481591385462830409920991893592520275460379266941732447383067835177709422732280444326752219229968079800256142757394663373943493417668426092423287956725890308937627251892498841084083294444045949978892238880799338604351787912615619431640792624980807629795398536819896897264217218630088959289868317980293990300181437990591848205861099271365563037693634013505214661154640942651743704953297350579216056554999114692567846628769009021911725046276358692074971954044107307761718394513678136989880128768274821668962856349801168387823902334508594048697988366422323596058647911711243483824380290923335787055023540062340025047169285797519600761290305366150941357245122324244982088896315442016876351203849024280308832877089193659902290761447493972108026068136008271961073263910283268724209185274081495058044545251183772117644339923795426869447582554227847995960699743971273019218140126499186061137247886973511207599443639718757405477355827588274041902464469116177967660405483059350857416884171999318920466620642260274537062771364814221164220904289017153851002180807661137076998594559579221558728050264436293663674283539209073895526318201036354170059639523321787953024619682956430517953963192600506003343871175140594065061985814117059725190156879422109987238506966398840432625630683135860091410481554294884027129690431813708198025548222623386212512077369750416513222301457012107402636767806767668113354518397157931503124554834811135991931371193080130660684204580337945664460723039634982340178909945018558897226038960904815470735596049684090795217613631786312699067658541727348222724906252233959972499470384335903876312359568518088151845440386456423751836320709459170936431541705431581359024547652151152619534424181084366482573794181588683860497327602875238154411464744331261064464009647285123412170872474566955650643760877423142465366645969401621229775578064465498330185322155370901765391553486724448736398390722316872698065678323194175449107943951256117246789921452842734542564026215601504975337192977722386088938880184458289037342278645248620311001956577859647025828268159985692931950809120550887313748535736551672365879091446439363597509460786339486920561353864534085943102607941121831592062597014409121739512604041835945950501381716960921264629065059919776820194713795990201712764092320177545040394826339120087911732357629794992338866478198436214241761365326601770494350958958136640608246495866405102433296719038899472351548744577023025169059140753929288171327758513111528297531472349208380507830474303794533288213380517130738344277274778229022823494392043964669521786670326232775312639646071652276343322116365860944526659764435341450251297825682718023313871566839693229735052267370549818768096449022496527139432518106137315256037339313175732842651871602371963764357748807324933993914956976520464442014866483677188789111175721890897741475198043315013315511025543795164974372878943520780069912899057551202413933131844337357846291686543456984664220788962417327687116028500635734912706351853119303188500183682004034325771809037218264565043596875057179922318827266342652090084181559484361432152118972641717839023028666870406526759224150109303034782134714102106950678499120034554544191690616524125869319775787585967964127254580354024453508897704667176263094181486401955133704765453914515590060631970507864032327341355980821480894807320583928308191109213628105781185782808758627964218883384764211637607631189187612782937008512944157038304485513690729226643167209143900260556480079340991126258366490055480610800265278538353708170073581829119998145753527806747243276868949883687355394068982955424670459931931626372810413639696831464247635371065600424983932834582423114831395989904574777494836863053347195623488627689117810316555746957258391914657315817112451660164147122086289414034132231191741198374755343978183442245654234918923463261099753190997956625735032263501993842175164470495618542083859698408169223612640808513151667730672132796576949882741757057186414883888726486960155534150751781975884446661003178895937985614028417002980928392248930961770047590659122958789167250573765242181259008383643999474535458842451723697856944237011756471966561210138367885332774607479805724247382213551772297468897015994952491322364150788398059135371009336244944188012263552571651909446514364654852417383301884075236195219823535975592880430618589887040328628417196565605632063127683854131640426620084808192073235472079693223999767446077483983649399258644051853586962393881178369863295286938732950495058943841335050094358141880426334141176622537385012651973354985993755618362208373481011694897581037194587203858353993666398041094818453871333770492045170707209763327484841412556897820524805437886993436511625912503117428125208450401898531841265054163024950438606522898761316998523693226371631250519199250438769912036845794143334012905857889831049595425754490857942816369317024497825045259360232868040266424479836657920508174282978643269750802986771300806618113848218803195080619281724281360586865930190349494860377072029281014621298626436906966572692105623984696264721489800545509666571473554274459079074643788101737341948588574788636407029656223800772113926561450184752366051581563229480523074633887750483302231776703225373768873624683468095254245424206835086349518318596017811184477401159906813734578237682082120988963599543789085074237383853150252679433252290449337765921894085896178635157097282205048199557234787657474594556231441708426532938248132292102163084377029757675047936749846659175551726667993035115246305186915902684083928330729581639493158403087245610943551585083818864152440501766714818386772218635726167298318014987985556689969738605472604444070552034455327946485220754389656896452815689107655437702149963877297077481367627497581463719726761348814784864943926218202030868684161991574801505778701194427617664265306210583506857767815282080503640372227125859248584335236064671556608018151957094920258893614983362395278877169170405967977877828578697017256466598312700061864020442193178673097404812132035162573287979950297240646024044338807829996415113157452220837622440097696664228903756597648472031198389209828143644800799140225081049868719509255763955939107316333322050556067565575203038425040269684524944085962124975866595642808792672562965384971115874577459227863188449333741144946347154861765314322334253665190883604715280381514048452838058854594926935711145583387154566185303988268593323398275688323058059177911295497126980436274084567452598406980413301547412222486467705545464366458289260980508007834877329315216257777756195254679693762802572971938487499432910219641314931839338236189758901716526285222706808130777133474428711244663279813864691843106294302391472719319272846914466053942344855185691171110039646241008295283260528458780394367171414629615895458344639447879903960937198827411699038579085115651206680241593651360761169489813616987105555191308615361437892745459969058136948546168444481654220979347775894283612516086470448551139661261043537686203834715709432920403394891825104123307888835409063564775735978494274843812174903306882976464188177885793092410251303858571514938025481664703899414834925311308716162122579545531605190528551803235579789220530636509134724859090834970033891973381500458179700241654249204023522699803888410712888054619807413843534323100771296447419736737780084477208491897360615863967350815285390884116519889148043461889605375574312228282239281467155529649037022332908253824811413645352326615463987160578723503380281879495124918195723163859176573599808769558428581711084774753000681116731471970861601361839508278335931585042677629416041644781771278786433677352202684172356295968383756674104455933600374183331152908795513733364113137171207589252660565087462367753711973085833147937471166724494664214097972401715501926360332929875521634974159268558685344354789204260022187943288080537067205582498380957967439493896870175762413027590852202763483455039035885025722655099236660297422082600740958090517368103413567089014913923056123833625259856240832598413035362060118434394309587891426320125626164771200415011243079639465104239712596742523061355270317629594668274954294246849261053759902672775268374378545807593108232220369190562910715646183934948320774476029471610242577036375391039198059376760584083494870842095657531578394189023170173785421892675436218803099417875692602545908512304789819311488658485382989222039816112990555566404031418951544609435615252953907519761394503535401235247155726953435813301067329494804914923520040908920640584625965537686202927540680266591964998758204070111141455348295102138123604743063988505204334748126916998781858477911781989893828482677395959678286163614223891838844819065154366185997399537299271864731698902597625515862521288062871367954766572973490267153007338513415823580173413825657194654649793878551227732548765212098374069026389970145057720521457346817842920927511444675670810258686203285392082533758292226683497437634768411192381352407249005879521017214641539475837991898931875875683518256519781362349777535753336398806360023348990140422743728195849114278386683803976556413333927916079976024634775196684188289755484823520749898596571309931392486435329717694779219971877540173322135052757950631318505144812997483433637353645259581126092114721289983947653328709503370467538137217740144098929481325451845760900605858069089779044734598041949795751674559125184418255684420606114478439205676963451346264233066720734966990379611980617818743164378801295110891292511507152773191016191965878799884158037041886002557711091586750738130641667328418898131023128147859035979022168020867631440578315845913139339749136306358262906713637539765902374903557522678837331849874659178975131165971798779646787161000359295995231739800593488520691244095378967766899467805587320753322183014914154179002357863982622459879752859233707463018116344857612394964469132129529753124796746168888902049286080462700599793902524223455246756530315409692680581672131997897357286400071494475094061607617439926630228442196570019643671963567247717762544833496022376782397943236973065586194227672646077788733284974082632812183130165195191023526517802103991246734025212354013317451300498934313173821980590454059183825646538878000670111060023332018525608479576071166513277528566621404262755353765069849007651664711150958226282731374712700553588408402663457497176069837574538281669589433196465308724820209237842154722557170473843776523015255423475304195314515471439791415774280672698969450842827989151555524472137244550150200170207638429945420155356155017799182708050301355127267914230311635808864265958401148725611331192281042343735813723834825443260877413980741075227671534948576894130999430210735927202116231135374193695442501646114536922232565274752262632612835216561677932079776644195264697454596755317715681094854228302522217247495758944047913940908334932672108505530999245676511737113590856944065257993066088683560192088492932557014785560276998264412486349779363845967466537282603960347101339584525630215622617345481218371813051197731100151821490551011175694666579441861981053521049243460864011409666151617897466743582151909311473009769912028059457495675051597013033646798744616923494827340528204333692572484634037527875818353942319184490856316975392941301707774870938333596902445787119522435639098510114235012623175367175730944751272019289204655363037393504338023950551437052553219405925008997470234185172014888007371633422335550355614309223063456210936889461572505562067972311362282766327359315477172222129023185963932567778245837580549725485771304911120017455032199807040078388313296358292064759355601987385736482666088771379551529751770850470039735459485961380345348679931149246707789493917225483361253899187508577775387354548870933532062915097922641844591041938431393398088966232053111096596411035470133887126133670520679116302890755942785224967125504166444081398988444586130973386663446890964747120982325991043145679891999462780887234733312149008681975345086273741648806824034231219776137441589004207791686918245966835662390873681606375650912215944888145460580714123043152456584487824525411878821568581992664530155889096262728539760795606212385237125213821767127360568808383527356361117704564023308045661777968892563827563080354269296850971413229506583112582271536014262893706051310310899260476188087687513435981427253735084805151421599176247822491538265557201996596121650170639960279292157927541790585043039843748052119072497111122312704427701002032634086377064641566955090259472039029870691069790126355152817168148007661680550600582453589116812671864163219245549529107152724588558504727806000057606558379253536778433137535720723040977468393034123400301112943701933883718554045863275129890479062247240075345267653913621379942708071467132024406567969834078042410776440363762124341947728296887032314922947531920474046526602637885347025969054619590513468796111261786863483907459471737821991679636702390420892129209176130551693896097017057886153427181783632269802666646949269562192924150204947049475162819886932698004343821742308633896589601192304509826446103567169711601278410223116109074340316883147546201215149580979790616996931729618660965647310009064330555717377312210190743628321420194689373096850369468758259430945152841851241609180106415600537462703638757793084070434270317772362543585837509252547626531861109204913361172234188192204817059040922327596356239928898928222917536996190475341070247164996700939096902481886232724240727784531533852796352373537423896405212142437493453445840273972857445598993754966418446563074069342666866214846019786676114029049203843108380174548684761345872336039616823686799227426641469398713948787371804022902301828719367153851459887153201689328109115758377050364240415877890417844631639556373778153884709915793243460334435942211124073993003866237312324851872953989768901724744736774371477833312291617809515914261272292068074864348145125700905294342035920102538218690312438482099721867934977673401712946025953375177867809958580365130950884315176587765652701678444450297630250431819628024427658659127406859415499364173949051034906025786321368790145526776776430990464394070267075605221149593177481057659606384872922809876087634510467164154315977029395421974404650821462833329151377023932155650391475214212332252645162256910879809503243840295171815940023823918454238250709728078022351718638622995133067466303047766227504794222904501530016714828937633000553333942658537249893247848459621097746978144748239721390394291776372815378164225553255189682920493514881474680345670959301443154664461866502144090214875492947419688807538071527815698560514216402716675206850321089745977422390240843300846078403459818492606728095965775799495145756621982114883202022478124093190641714460699272158340266477529029185412303078247292053172408070701493839757043722298004404832862860934861594455652547841196880691246625227047396260822242151856811809687370840209690042075471210266357146428351942005892282275797871643513653814439531887425071524933451572949588032949989450567322864118163216978647614157247761831199976370955243023157222650707007708795118342306836750294602666144209584067682414171149137366481144221935552057481285151992254038284030210706371652437483432345283284520120519538541220974823981778951722859972083637821117986647477527285442067203910566134878457575993576468985618493284244502714517415280378581122442288448501019096281562604781706953895198459010300296815459827859101541371173150418179465046614463349438597924013417180734276587975540555415115641384763654834195013918617297301724017778146955828393027608990523340776332698885322143229546553507541764587603112558911747992087076134818106578946057410886167836844051677624974137035394848349628155019648422652532977774780357893566965136388704950316833907028623702001417052351850539427535903141597962280869452698147599233663510102751495012996796062025866140266492203445140147353876348435461839149255798929562248329897105444504503435320120630477735419012578822619514285824467080584610641520539217921192555162704359532229094541183747815482904171486475179430320646112035377708575380122645688905235175398318831936893657492102647229706909776616860784183747845675617539740793147608955190736878728477925483156088200399710855515750552076087624858293357647825616960335530107021545112924044278659221267414373351176970911128972012252955257174683781656302122622122967736871628054461299261374944215523172314072954775603972573470779661010746849224065438219544229403904649503529528761832367036258144318309739350352366067994459111066930123734585196055303678234263625105839040016538018076749775475949511110526240675421639189642460127595716373345675861735302510462718790911158506172999411695204448145732243387830590953728007440438826026283435217777465947811131783519201977629044328932628539147488964546091403614325777492955805129773814877241842040248155514756573415677409037638123359373153798782445138676975401719509180843637246776307110789573820257615913193154477821269556138644024072697530934213879181072524403844548737123432804490284874613289014224492099302737872855824856555899198672108701242499521339306437624313492504685228691129225321032214788303966828510328852971590233101358008364842038407402999919921575873855510459577590805124436951488442289676406848350874259892741120999694430297235889404586053807024177953743744240775016429994736158850768313246605427130463586540343609915497480658967237244653665384073301339305487986918929051172411314577135113053050539264509788826609037030438009844498342394070215326546882337358240832102733753172376575124911150126731508930986611055910706872925869208025868603304792254251221369009918365747297882704548559806122172240501621211791462192846105424195334129393508748511234735301841127557043762944870031015669285304050167578795590692190866643005688356291233232367362522232695082141149417491529917904434469482523396052044138419966290041129231762578430146973262269535592918491035594446930192755016860826990586027943629043754135539119644453629029028651888725945294854799299611944269885824639447410004201205380090650763068707678667010825252359455465766514889895810457314199198717868238630508238296910018721942989268891879424128156817599758253853343533415306440305572298348144392703713935282380514879849326109059948542552458606356229284188980670804241681845552070502282586022752102155481168966101177155721692548593889366512506090139448971219283645151708648660933303945459352722221306510358958475643580242830010114015838840755558861196518878291372622886147277483247011144501580821323480223117157753444847848294579309071765539243186278636786508576624519820248575009209719685603682448477076353557906126860227899470397980027844819041021500411931976686225313599513928697053946670740789477070610340340352804148322565928428058713823428058336071713816197168192946198450337443146999656116295083031871837122555398474258313521867601680666543846459194678071356970400923244207238992044102918508272653001460304893878046808756128862508499984323316215639076470088775620417512128114827201518703186348371774924373925446958080713024170252176260971928924830416552041460089080987841565580167386483951064690505139694769892925289060158326325484947348430102101875032730329825532246115870963810995411305207835317234455249982878802322251835410320530132457403952669179432873145530735549142983161468904174602923048221697371822830239849301139539274306104291129847780371942163279514712027347132610600364871682789858155451539709487714893272161346133106846106904767700376497672307658396190612223018397794954354746573989334257583604847272526809352550150680062994580115184527730834353777432960981143988666821708549844282014798056373680006099666185719269140568984106417807229351466277293249822614582825240560235493133167764148305091986226156260323483060587976103736041312963531568901049361426645314681055158639800438646043022951984904334719582725917983841246630898908183058519224339277819156983109860770656607607142580417460845582417535099780904187571918313521440584999477278187075439013610227162978346967986262066768559161208589341318905772526815417887239284606927596117595350186101377375322955292398103301220728162973291961256969928791398532994205032222046415198554685234322098863706756203281585192973653959145756716115581146074522550127992429968251772941963235725483558934774164307045444961917088685985477866717842682707463893547536179715965808889777050413714985738775668540464479005060026007927352067931523014902797771375332078231340732709310247166930101295430213373722116976665829357508871625995049096960600563847286685740411926567817635187845124327910905370975089611950051452711632188495183547020475041390839287112731546010203647572803211198201345341429778932516638585260403387154210216544811589975857955422180757086650322067824017501410042372617534944917863853304806112237305304479005680492441971315354425555473330027780496533006778808910306715505227852119417575778299274457597994111944351682454713564540572314973272777219706128846319620350153245036908227422109338513480649495428999331459951981505583500491916307353860888541816830661546520954186829608099472104891771470550251497181321080547900823458943459756565195870176446214002325904587552947926737829867615949495016941819838558087646430109693469678511802778836970275063320820523492963330249526619226003810170906932001772587160899052760086176712978708336161692150325640491605438630350584559510231804752261134397195230005631208054905057538340476120826211512524991489109469998877853852814600572468307496646526832373439539361586979525502829054603378223052579764272273676253307822399743821531727057882309638090880775271040168342238187863320357330313898760587907779975663017060789186459525605430970412843747528869563866085891234983041253769115314335078381129234510417991812155086544232998146305628800201489222478714897472884550514684848765402407760550083688490799065479752489527186022707059931459346969958968109416174236041575276007008034527849410316769286165685909082117143820812013186119613689536761592031122063583373013019584604426750213679698535584904813734732010185050295769074174526478889256501589578870802832136559258684865759719094229749897173789338753513011746904231493343332482418791304871556854970656162296176319401279636157168498394207809361748166869919399356802192413724902586962598164066671318629642611560365628485453896920278291302227328172848370436291466497063676359303869938582006358208226825378993404976001832955741973691561998218367856127121547739205080320646067360655442494656849426342460094141311809809081715990163345907124304557328954551790421546943123270797384597292541831358424130308325923773333161450428723319119139368281328841124153295094499168160870495538431384495870065409776000659272907642690164928034088684054821129123712572673607188540500999929225320444797196942069408878409339534873431799910465326360700287788759299595959985946137967874227492147289413039975298315286219345610028806570900680070376544643601611858673820884055798827349603078689316128146527065233147225785096937057968671831759529424460405221451625492610863636662979164378593576108460947904547939608588411009365007707458870225335897103333405212284904953272643706959881442019447044180755479876438155304238918797908977632214187855517008230873104397371261122416518822546969311179574193591569661592720050234386742288477547537720297026896056818096655803663416951799799998546004668179782120882265281009894793778950254050491927436663232938790220145677232553028162265473179582261826265749595337539925299074403934346874631232759538592086510847355797662968245801694787656589083904192150040829209157613380429340918751317026837898195474228540991883889336835398668868618994150435896154069083405530625048197224640135066230500317814027281147525577970676236582866674430432978041480925957546090777849539059400426074690303983115335863889175531324373806981005041991182370481067413273923116985266897158265413242956932119955344928824835928475300660680843434892291467790110778086566025022813581675819294881654936875475634979234101120480177568399998675675506644355002972198127401639854707396232162876838548645390829199338383723828079681053153181450083518495958249395917842766628270368317340922411290520411093017729776327835479856789866964751165175609844202351078289780544424466814363257160744602714217684249424181714470363310606463092285027284165166029097223623070275499149783163855886128845098005562323537871011459316311065369892670699999346481539346554807884362080237762278790291965836276929210348180015159980787234720369931234610125326591708609495152715063145026580186550442993502802919064828032747552359470242109504906338817241511305407171030979192375840985428434667865778337767261521469541807712926233498324681686168872099765545982806136049457388617340466483064345227096233736449280040771406029101137031333852103884531075175817329468866266632363302869715794051412506277602605174145694181975107632793963044294959974550487486614160254463640567156175265391644193237639671801151699217462542407617542860793669258237647345225934532141821751550648201893284740227228013586192731465305202609603923434571013351504074395043921817782613857172150798204685970211882973159272991912298336783643515560234142718956453331268911854376292650402852075192525330568073566953099530048913127971204683559363266988799016721246719083033854905443642148899280784005373114606645429333707626226300508575901953532974771458995141957507810683799390901435831140488341816714180771126517706537245004794999751828439956977491686236026718956471259473282226819405676437816944947049243444165647549276124797530717088562862441956908700863506564254607301048418214776066179213472330767536311846952003066602405865172047802252625681211807301046364171534095963467621876290323152000278222449543008443198085794223475490905903172193768791357786283390813254304171633739904079232467282415449948479973300880397857419856493826804292814204082115728994052720262412601632911295702510023643591896202851485554184754668936809768557209294354231153615279883535819033564035694387366873262322714394436341745255304004701087989844825109151973546882307740343861455836584122615177951248369649365601447376327305177755244326658493018310811209011422327796663565948502744214542909274397479758393296379186077479539134631019615572211391962363760519938858955340150523820964592155357280856815952407873306389856740845343131244274890372435365827418041849013191856751945793410698009705372691392528862005953464133759978212805339229634687001715300824246743833679406858633514198555366261286379635984021007855926902856211749791687857816007204100494910165285173640799000068734245027220535047743803281484180645898053840858592505247477012865402031115278965507825563962077338240560630337650695729014264875572698118941246848384355856421711207783413318234479732909114344120353944378281173078011403755107568404040576572440577809949453681398183364336618133532603702666250395460103398000033445625397751346000178212110615586390255592347377345843744113264738648822245427582396654151023723715831806420503487187088373299619182638527772650262197389760046452352781288238412446502324367541831244378871842611340123769532985086196316205289030895212550319149420566187146395860722024855913378616220283616550521941882336437310256731263377508540554162619873665573480406903436719801868874103698255948270888129149267137436708260013438200767706677473261413768949799523540002964374220082064584090932040860558722148065086989527333640684684164861810686219297891862340142784202212670727879999293791502933701809486582818342753867535296169897725887432549297081950995180592824994046482289981395756900968356183894035885658570271676056550372487229626885807537650087321561997432497804137661380152547078498350582968602346412507097752410944389235333347874759188101315912767721494821904802061847119949773024784997017029724610011892759670466705049682388632699357964189061056073723917298565024874974495897709583277801754726632206337340001893183854379446813973424339078843289161937473580471981796247146653935710345443021861406630853510069323738699944405427082930866242273516686382778653563203013710565368618610761466161502131017393262525041531372661584064032923415643809008534095441684046052877149034766783660408406877306580885758145890725297651878525450458783715603825308209084508533269839106481181784859368241695879527844578917726255486785347854795135570234803633913098983488351938052769788705919755907378177704906387327803597821189416052850473080329165141379623550110810140526843027442041781465366639281842723799726048185853186261375787113491050716195894596504726523854768589366558415733276347007749616078430232363728862079991077414539301123883910488542384196530546666326701443528890423091269533618311142219753917570256707490463002708157578032351060668727661291034240209068632752256353205568357699055126528953385820389988024605173141101624918968637701450760397697752263151145789156703757383929661946470914315917367311512369309059559280832379008933254159338814534662224631693415994755539536006067864377914594034031317480977887444712765612746471851518802053390976209630658122992864590372308885514493131492501853944338088334326339749150225236754135798726984223777639357897536840458897745829346104196144750450231747163472459755467507144208066838386703071186327242997133210415261821342124451982743978829352260386046163592806528626128457812040279401200792261379263789501416193673735757239081180730613051221698360417050919909100713987723077113408037019701933261602759089193947216980127834463205376496370393659734589589012301120785934014790587784467271735842372370273982448331865949783491845883371977383244455715071331594013232581191501508023737205226384254694219968537969124997247915832254404825488085223277477363471633357766080427361781559993935666722537883973008202671708442929626697285421272491085040515267846434149306912870524668811102041911906662556547750966001839725326655413433949706392735275720013376793756227823435194163488022985256522125540209179713859901368312062697531804058430398045756770160543897286811002451560807387768694651199427813436048086212003411190509996621366590765819741165310744212363830021390041582319799053204469950523460688668834653808815713976085641940217606615754739929693692360699216115172670133944484443982304800917026124373219031012727334413583731410586876524019386330145356821498767893383160388035304741043995650193080463952202265468457040265468892508523010022235006452446325198783524816112646138688367757281367578816775351320434526405344307438188182280684931687123219196648239441433959301921532862397609787285731283599398993471158128640757251728730551935207173634861148613099536279895411003864477782188498816306800982073996103272580114561782785390947015372727858498785530872849985981037443909503965959725388201658625429009305244641162151209448063962446314391002025163917904176062932902811871853997993235702946890605703128724402474011234880193171514132714881490592328441850749600137111327769050648711287448044226672208814028705268047581724841537005692214853988435271210503719543158162726808601383651837409266632514536023067773773822270491126838717131074633082309018020800513492897872011709958193723215862989094661748420095068209148985760663271010986259717538574854801602598129530893112456401049460056527172253271039232302703717799606637324351748723313075492781362326617623283118322105123852929229488398455351434025304005519165168465244072538703952087487183824228189866942039199778036022785626296760882095062457958570188963395917720221321818523272193711752686456868638494129689354919522179941659658982213509540744620405769441429029722190716224127890985834134807972997834610350240597924098637189197548143612156466216626261532740738791373956920961305626835432319983869343210165539959296472419726523800453144084127145071668866952267773004274876446538158715228581613574569537126974288451381527979585022368656804859252736481684649112163431713441977481600368732333658497937308432175450634986894507695523420480411459176315637161855471220559786623202057491640912820705278070767300961637712336087944156135186550665094313913442188807135092673786933540099318725484548086215441743424717089367553878235078204323437640610956154857385335984043115520219104844044045979072457733375891407696814573187177236543158957115899982820750147357474976881327880816938552785332566123764320256995603671961465144702359018117097191757855803917721940659410492314454701078317645315728138847570342278108563702658760309431733153451684547619373017859000411773286236411366514635326155722477321080355038713597475768026454144849833681372245969764093255715432886968650535820433758631020828101481514235562558205261971162491772534955152779091831255629705860422982682786608490686637358807229530849716823809521014587196133369309388292951875962820082551095972516598631638558261264979930497452139197672229059462362890894829414371745280657562751993141908114618420599258421563896419053253625392541376200043759447814045285321151738222096939738922381916932825763552483574565787102038952471582158765816530895606334528113017677095614378001424585148510009715818809591957696423498965382927120775391010674946372157847944367577309290691363870177350677610320854508559438790079721716761052857393937719945564382545011346034505994434297498862505564407187493246037951404933920314274182179614528487289539479780575666607080438443531192825482557955157591308699442492293189049497099526615912282222299270212092018822002942732463823050361916106465697556199370875277852920149767929557190859522135176450847859109713951461591059846190510352535441920417225398255627509809710943344455226363280209715406766216652817514579464739378953889326960146231245184198213769862144601908596839381528399224082090636668331910211428609437884350719799155362228064054498961516293905298668951986949653834966465973303081271604988672707868409705450623688397030216814803884159526388166211759891975434226889660262960616398436639413068764893019384784180032038084696864072244353752565958830040635687565580023465981226837121696077766416327426071492694809124327123717247452598968451155889578924187318713608762244638553870066951282638722381604941764770035286645656604113208345358688482716881043989355317397826534848964899969070514289053418687013520204144038210572429020584227924698378390663334881236557096921904181522865965071189565268198405437396659628628941171195605672136009228788341832531661826422293078617115462546761429105245810865129809998294474748139297419052215859771904484572592405740067757100801479616986963818528456958506755927097893093878371188218103590989464934853732274425627228688809725232299670954319755582555781182010019343098231581009111648523327618558093703274765589752434901626556099371754141174916720719209123920032568540271595486127653615073998658912048691588202173633144274653351971254856465243660326548483050681929616535376092567847258400660277804208048057311391598071589401408983676990712065459320140586709944746987040210056530105178502420048992325693754007113333072830392207499007400552185778319458793973724355943791744307165758920789357480205918772617319289866331201431047810897233920501443416972779426379661024093453031234398414797620485385516466935353306286755932150655699082951970784903963097886093456099014447368355584597093039461565177307390925040003655697078213074914303493888587601250239811438976014120230673555234585659222196852190277414624014351707737010166689861654689007204715190985303204611224784902293233456806036329587420348002266129798080308637049136940794691532522509759193414982461801510064387825633651548256273701003379095528346292782027299088831671593161226488386868790597804264438073549085758364677830091328818566750198408748108324452528584502751016534295595764744619159561390547094003035695393396438208890791443016231988673924212305619962890833098179967720449327550142306583150670606221338920382736845465133880638730104036573541201974860947473850253321092493271381271100167531145343922671956806417463596381784657832871854792278526208588172996459930961887672405468839508899728826682130522120727024569712795178043912362201594340666067339030308533892982071856576591989475898400453780233679014025253673822621082645364781897722865815837188088295694363712788799138047784630931103612903753684152860502461141751678330595657256987324169005068544704435819886890597706491698001164513376764202086625001396101508064654248652034747973277382959328572195251074945288657350462093074267371263330467533752421880959876527259154671826151586235961527746865101639338863000163305988152495118421779484893878686359218495112775326176544463565193372494851745187430812719172645344970575064986594138566306975777811492248592953943266890422765774414107339525859240572122264477521853917035980098422496491756064003506821718174798592122742855209319382229911125935604612563292510557978651812962314785247686210572688962658974447944069756975252486054174626574927638647248851060304274384094630421726822694230857053821553630790789882654478637771571366885517921157404219186113611657421700753995413734343335333135224884631294868060319068830739789296318402820908259518842059469357359885974699338091317874219391254988348740748850089842718145500686533912740387172269689010106289635023278107424809027396828024094392062271437556630139563513999916210213998596448728879421347753695214417776807600529908675445818287523027849634291950185898648012707360358554981138453819749867359844270070783967013651270405151759677407357596565452240629065477839954781172886857189266732015454683346460447122757142198357567712950549596256818641235566141280609832714005248704167871124392911654702621672771146936971060253013121308285096605496951473334082955723470000513781929058601340692944237598134960210551220099755978789291683264697576416692624614753906395236652711308889648391576865306587556655738897180191745587504585186451719755637630430856528031324919409913763203656078393498127593783923142852792980554364017985559024758391352762972847976517722876934709178688045527899402405937022796088257211630392263943187547312405136582237742522478901397959645664742041073971560829284457753800839340447310048187118882020637045637772810753044733035138358959021643083973608156819806061044865537629635130684538667563945053513704700099904736170662822204524120674446761807558551912684810233112590158985401075050846734578934511888553566917399257988181590545171669861962231741005617838787031873920877715792140970084443955114109998723085025111657234056982141297750118589917881146189232757563800103464671060739757891541271198026419227083426360108757456669308638217490757395296616878980911226968824479798823304625209602318767677384582542986197717406398910840304360839950906716719515068395279403008690728522537501193324060993796235837240231613109934236454908190971373699266218441960526730665623575962130536409472075619333811727082760431789470757981058824379616422229291973807903782281629589490254360338139603772739761042801300470811856991383841278704182925627467418286027214284981688047245124957175177293674345393227709025262344445304863964582419410369732276477632305412070473992967749400260382031441765791702215453857955802952236530520367300144757976479097441797440269087551200696865007773633691658651447116170830556608769011192534840781187016625059907868948032906071430679738244360050602409837564635689689255133295088526989341980511411542498721433394478687172118068035963125332204966942762442009157102212385028823432392631233913346024789896099071635690231784559181565928779582063380930435990050536584569392834103714890194153121594584416198667151090672014548435682177161072769079061188739805523958307705155087285154745819019800217223656249746294735168308838512050812570315870248547860578403781519444353628913873331927541666705429653509214508721229804128684738904896913267824541587983213174214451050241755963991985113473954554243144746924080025835871122138412038409566377371918320751056045912953367194321818042993273422159665428776354456782268758133210467182193404688266500013633670987975475816122618847336115105462474560583674185470561129475877859482858322104675258361282017593519593143141703040020636741504468795009482096054125283465313154006711960427518157860377772575473755761623439568455093330083745718266860019841055164123649065884438735098492273456284956614463448131810224557400551695535998201543132230844473582716696901123914462119192791306356609959805626009735281216878085090120973324253569969302922391188284448482534005999507009093759026389624535499322779290056585576623189090512228361899810104988837488703041026351600472771635207628097743679841545722354078723156037746699830766336713856722540252126433012683795699948713663528962068034782290643298210100345178112687366526000995768776023309428320068910910690154059127534864264420840951390990075851243323744926376060905877327927615384203761486881888853437416891608043890192336149410888622649462447002723607530680800569703041823072279839803771925409376485015534705170891485538482089253468393242183349585741213486334959295214329417027911390914152045400299680946804302015500155620825028857263201221830640630891392259660423185356465823043759169722856443360910981937306973939573937167325610440539520603323303826653434996221384801699968240233189453917211900336577051592519329598279908764460490605616226014083640140769912468127239882928323007027833186214665093637299800648646333235186909619178661827423365464795146868621592260898397615175062834248654304274446696793564156253457728473869829586483901549974628390524457841544336039512146769997707206762710382318509181570973946262429199155293450451372469870975436334489347693900678123096807461115711281690729063593577979097836793721417073346529913084885375222761247131421289084138710429537742644237033425184718261635221983419662237596040554658776046093470578232661892802357275778997514586356197545764190717426259740200400878909541958557281300058961412532684228068952277997007575500579583354571596579662120478623208026776177940345680310441772724781096251137989572042279693197144321938477662636270730211184311052002327426529790400846410557844476387671402592256573516667361495822683782127063898727696192030482482688178159865834854583228633865026093808955585162352262003769849450669786181970611105989320891161996101888846576174024676374652887847493186439742925793347651894101295040597894629807991625813863513683150554926131571113630144318594517828693247782339116748452488277795291429550961951114064620819796991979036333406781152376689610776286046161080424738867849899753122264496906474881410059310362087924347623672749791919995514569858952288794676847710120495222625612778830754277785128263068169514564266916594716023198024207683790722635121871878656299444773495326495574604858476904907661765475756616409878612344926535125978726695926713089402397732800442706190459574030618258701630497934864627717564884934195058679260448701785613194487924476356453603193419352226412942636361406728891695283596081895098757853466355805166710237409352674450800679496436024356103918998376683580520788087242401261999535775304909313330440927916912024681738393298445414792847600822895798901785215481648100430436871875974344819992068559257545312344435005218716719590414205236693685230815299981689165259869863243609201505967643802650055458456888630516200499364981401853596386680197096204977522302383015032086119833135778608596704778302729017056815862228068468699091076815704797123727797094931009761080636186263858958849441950315546525882605476854222761430482131444926045181576317458737017087503275982859553427525994105102099113433611344143676006444933979164694350728687795092953537532986958916860668289475933362335020914598978924526280340640023695602279863504229937960576415739271592748667180550856952906185034613041989612287465122996793748602095151937742455144159516063248521369940110417745913541673189338794698969981669641439354776504715069650091973247885932181169256696545199817650985285460064556573422276421341404151448769348543592996363867820221178282135860695314478158868336293741451638587544964106946202878785513797340013561470245422593018926040933205934873172191090225852905658137840200624602232374846637937907211158579952682933898345504502418042447807378045027910859138023913603890001573762138435870201624388134446779011031814886316874764591836632326481765620118756733275359586453425878933564272128265914248308749999666100685457396118738603265428480500778334446404958248529023605265820810681340097996232919238324471092548601537443367808147108115934677688318117580458183681748526112825099863910949171488134965643127644779352083364120428341970682784645380663381997999507407110136896811416578025324214063701493134923948207381587911858929214448427082708702564217330401519077241534405690336612591814118270602877468401340930607451006224314751201015028345967712436361973742818598370452525911826827089486975537807981009755054932634993951198452659957887855523600551701479355291474784207557670835654161428683693599364687726138220080335710124009425953899118286116159967137464690300845808393341949321081286891224873189176411454584651326976717396820555008900383701713787360420979326441393295118710589117806539859304231766011914939644403365182691738501297282501072592007378891287735033043310059647519919494340063027313203258750665011098225487451995049423501770729210789144787076753638401804701097936081829047423634568332272500672370554645884339956854444687306770499756145369440344688617209420175749747539281660476376636289414434728558842788310266815929390734315315219003786737554391545902751487205917293282854619463770661863683568796150828165473344308437056189783242521691212399149921440353161172450363708621194906208229004944159602082541550394111405351096969376906512680272292309333573465455085820396406416572061112356660804211792967070297706298830986814984098283762449913410729590012748501436031888915955992387674737324599780158728131022323004637187676391210217029901255635497584742739121755736086396227545588096043937203633779929018405126720147400456417846115486025183986038603017220180229503382882229626854777408676521988493129682875546144291788614281273667208216117275291670365500774032107507130341119469306155194866953357201551195809362201918793400097907634703986841479282445793881040246564693204125791435299437451730306236428681764141933877149952734264675921345584719715776774153256417421119709758399711183254746358701219562059874468313011603270911971420359177594051004566486130596526443763902945166618080804448452006838577606985613349339383452646967489837882694393904216982555094788452063854268107255576130820344333429268018993241272637348442777173926901247762408235660022392649401195457179856816561807059464502846782477407441243399403072520195663228700594457847269480865067990364487769735211381171892813608364639579365525301776255103654517196668426957918862779656416440842167578051227411825137028479696056849203059221431075969279560378079163292746100963905757521601588617024484752038829225030643798600288947884236311395051662200140220122036348997949603951725104321430557014084299008655879128502496310465283705569917399163351931362307569106910126900854977701454846922890092513311904651155165993370311236718117416909918923931388595030382181398369338852693504249342024661051072893433420853735256531419961886106854697667494496113944061596927150849583411993463457821239792644672638179004325267045844826947555659669466525175201267155633051591819636497556551476155738647408559430322968873088931853961115817295717307835440816061108927900675762724334666024542531815594114196456079535965687144516986835124084323810870487081468488411411950073993287945575081044274138841821010413761716911514390177090095416548067980244102817843795288339665204701520927880470599193438383691696710338257398730259160722557913532689137924621018695364675300939221073517728424264397945276776627918956110240367260597685681925411254770831327815093173772202176412644556485852389620627140855938214191326750656991703468944846799171860111488668173197932147148876374444586574174113262645059108604948734988162075238336665959895795878946809062708122096035187765857173382571552994312883876589417985107820898705009234351180293706959738686088917879793912251119756512702653619001735608258822840239639960520637762803314793875858965356736174777043578603878707447421138335296223088632000460553460626410840717865493056234778276562722546076556972260380271143763170297518635863392000793024043908097422430050318769083443544106583992230315942985749532999387566324245049908384628817109760127029074140486495880194659076036778211024542762915971948853961866862102443955432728702072915467103198833802495135243711113752901523343374333302326981446493831097154055153919049938387657918749821840583554478702421627784908378036804304269368827806901805833923601846898067169067807248406542579600378967315088009802001910818117307373694020218614615017271758364239535883606603377653444584262433495114285380058760889032816286090317838081027138863790783614809023175231868169331268166734727122787573148029756083139813859118431497195284012679321721813314159909552503143397856975728865145469998777488080206077622113748011735478417230470544646862360712667344697811762099881495471134507264418738777879107462552601869754778755122762488092776674945644283561387638031112121293397012469468844678654513773682043872161781132272423050034084643951659223821402295565958930713053102145048904133750811886380633269684694928464817537413004004456010253439204889660085073736584771746504950598825325039637179140610234311760835514374977377413405932278849002067645562535126710736090664064391662321210035761519564166559947209170929767229086824241756413744451443539184644074758290597147847651749974532938903173956742490041122374431707063982041144987673147425095122524565121295601487530885153608236075206825863245374315182013530250869790906999939416120803700948859078725888224722357971618382289770107378822194157280238980333507484107035894120852793583777967268727782722975183771943153525656841147444504308717350253857274228457203293166925574383475655209338726107547883841827318139429602276500053988221264680775698629361812236488885897384924081411146669070135538777836527575555218337531758679100151944818715597547697636729079622121507039176677408235092000539951020844598898008791684321651014067263395147590596939633278828261033204963181975088076470850451607637752890942834186952461532939249492715119686666257359769859480552531679080657596625715683437439045524524015804661056144727753539367839509342446478261007132711606254519633411047867303923066568089612428947323256733390215104219179186812428857751543083607688065224791583189263863010942663999116241072615567162148690415502598101848614974675966184816924977670121021561665799599825145102310529156438318893316734248494399784340294473688547380726824741090446955706930557336668192399134722070347482534699263767410050710033966814836948578053774314182128612373638445959191478398595278464937622984986328893002006675480120367089492607372889911938823463505080217584786475471584797876603938970867962357237171106428772806127041732593063363707471079924491311722663505993874891676422685437473070726855753615135386319879253714211137993475630036537906910125359727376560988729682507963792274193471612522241527828819874944441422699014029628002352636849354938795063113871284181731697937368556150624830828669774936710835516176050897411264129915280245081941630148299166122320575074129973349432712491787663237379407799062975454543207211946549369197992547114296057250436962626438866779314219015276132024273642913491210185437623250098198321608905031422786419697871313546036196707138598971211688064364601503520979519241514170685708247294921200838270897413889191838702987138349168181878597442638038949681523037483033641849605667702101739587861350138279344409109022262945448889658302868538164823008076958847645651715855021738760355367478377367641647686960071333994384112484133240500740299189336553124059921057835287072166010088761916699293475447465666333459446416092454173495269394929045498292078380659454542429403196588789243938670055045171812498342759883625685847846873981709402889884232992480067988409318350787380354635688387538707824768697558397764972312618582459908520713810983088904200415190029970993322697170860280369155396498824615454847236469999703520531865316042095143412996121940789103163574494460243395900480492563512814454758746319947459937278782132992351739423903853612381400013520856734591020405718057914131583122011917217783627447232892179729815198690704769529371152975781957364925340641868438703877446349108823114772855549819427537637507324743353709451299240109826139931977484452284406745931127392373937968912693043531943828331849414510940773508494543455782695887280563385002987637713531166978366546291428802653621362664127648360539118415703748427610539134941178539946748174774713589783011194961345044308976794957485864677219522057384745842850622290127789908837124492291261879650164043613946103107001056355632678331868180996909415662910736279803859384096843297760166913837523259371625748821634675156208749438829760175840546116392862854135718867143296689039188121291668290759300143494256151645718923667812425380775429761265180855146616545892447137708358848569078480227781809712176488938902818178482910046349450446401373315165837098632301946033880599834186314918323498116050707998343782272643068066643920846489395950268422207097138971325132902141184765245331455778519903252754553493587816747980410557867809803045624717253648720241513449744912183544515988428178423626419275191431733349465372778951947400243313983192652179025366630943643498216763613457470206861435710924857218857989507297788295224789558114195070069710940462884043221193932574573600718497235483667520853405826398922105556178373060350694435837863185503341425468440765931609966584215877117343543613887372897546046489362340296414639946808750283224551658915390861716347538525839024641852668074274362504951575926524370905083829996213026289757748472360280869679296189713834742147993684897654303200537560254636361913486823527604544539567232301922010183226421153760491997979847215115685185951271307888482132103512395149611612910908565966803795388519956074896577221565817568508816782364583421843905463380804907950912011319707222394020729197010610721736179280432365930515557167789286772488084528651490470707877258652735940795939910917914323775048007842351726348970607162899636838865218487315272091092780908097869351407094831834502046672522103930257206309457468807078785733069317227159599191915004001477307753591195432596731341786097729287354829158064782516950292093848257326546693330570685166166082374189464543927421514688337045240358817405708646752450974446831867435175434129374313094820812946838837132111870710200499350280286949058944341986398693728943923909251888884519941586114094439048341862055218838591505646678368395992792814366670344077535597563881716037227525357107177337478407570174789128165894993867615752850827576894885226389354868190909561439388248494900612145584512549126539698172177566264830664036503296993882258364314923122516828075567887379398739342945478506039051793030215361853382275848191419615820332999529450886800349915300630592259813265128050361912222229339743942456788040745955395473936097851871796033276959566357907247331763713568060715703028613205015345065548163366783784708690417857082506042273104080929655498626116528657678796216471004950181682903176905353763973275743755061803616547296896296226890922684486674706460934459067666124079081898730906877114578277504440946051831940930644367165167772308769901834762823116286943694379334813405116574389177048656327187146717745647149132586212683299385243247246599339947103794274771645412684656604819743147907472128599751439602740252439811281916319243792677371264414595565483922274048060678228796402168752088374991214847396189211017272997694114306259763323405423533233861919062862346913629060255069569888736515264954226918476082918520589156481335907671456928771778356644975821199228556426512617098655711092957619537013041089605232708950501983162567862827403615630301482585175925465845182212332321505547877338654997850163595365728664787870783957486538932797796727172333028419905848291249575515097696935189795795511061470001353429154087598207550177044682356876118167459895384468245726691853900038043414708678714951956720096331968789361302117015783174384369573024669522338451038777795736649231585274032871106293736565399803776893441666286232433279934967434427154806733603138459159020160304390366002120706491154182617509886781002749268282246942029202789076950188461122082145957794478347041701676288183780592943178800554275629892022257536577149603799062094912279040823793298557611435345422036900352546245886328315070069857919417474250090545900978903765989253375359278116423814607343801235262068295067321340888838307552824768303292814799751137548837232963587034214400928028602813610638441945154672969943966261418610597963247231997937441920481216365749173079429077871550923725355351813358811830297836605196226784046125657754869388183716706787378168480444740621180723540263643661259045668849182163114163942594848844129044993270728483561910968580108604820906347214236099809751428728299760522177926447749257958348303791597957319601075213145897188362237675484168341420522843807454116022982176152252005925483785875118112027086648588292029836927180238302714471175572388505530236659263979052663929538220008207852054819081114618321336856956792197154874178990227780660901803718477521045635447429692033052809250915305454579014875717623212157911913525878581636812175664948237172015272948859884017458315035380142185458895173871161785420672542057623245030609209977718446123827493515341935377716537990272268919575022925796956627024047925997417217488000950593280486982072271235575132497445059866975207968669777322948951428792307871128075873694015923555299705778080677307383351243061662830756310327823657760243599254107182900208735808755327535624755889733265222101720835255052301026359883694762538774867293663198161908935959194005380810468897801415420129597213281787810786362852596105497744623292139755184681858348922028163508950977671511527875260870862804142486412284010636663695638222701008371846896207856382044516471733193726724764867732099957329106181206269787876695500229673101479507998084073787236399675107369657273192013871798821977023419218150370752599609739625147288183241258518923719746062945106300502153390047047264749277168482514358518603109658946299272896567638375567964214753824248177232136396970339979786892504715047679072944714289459246234617383090889812372892060717886371012972523455794768850796900621223249048228191892902167510237642886927271876912090484057941371467680674002997643577505926002400576320220283442645293099340480082487919651963094870391214584953049579422605722821533362368568907494482310072524323802372872793817800363579024401873537889655369079095918323543899749997469395613214587120268199406209693785805224642181715922589476119531899113090032766635387416841594561019511938772695346925893171330873042258735443891793619210205176796956294609618872302432449187110881936828328789930012163653621707874439998220380782399731561944808072241161326335745097100686216322954373841131242276322231047507276283219428684835789614121445656796657608218548013911308236341278164062361455987057659988307587962464765585515117242860934494474005542647806883543394505646423672959767913901686046381735978726377489425537048312309788457292654430511801597895494986813799501406733426357064121030817956966630957339456731887944058009659008346522482565990653017973301344100862849221262104706667985075805934098536503657409247219977026444692976583657227647587123248559624193588942824014610074993642865800039926798579660509188744074399468313515668845408756697650093894617546996249087621822532584555148134730840732798251475547337469327495662946646881275789225217181867914003324683401245342502530298061150445492756467808382782534993491720609262727074271395403638689019116713114392007374075523668318383056970568132647358220864819931362006661457239561966359905834734054742256312878219720899037038830770251548925276665966445276832619850215852503344467009426567900819061880861377260447686813671349836061489161407332037186265026225720790217823546533177987991977357990797628121357470129522816195984833460052286935715807427553327160675112142197704159854457736297686342614012524707802385132027779527737935669715972423240964384802620145870281355520391559846215936289914083951244883332332449924112260249628002230528414159733238509804469321859877776253541575511389684214165489956093863842831838601897565170000339759504939929394614707654113790728970955894447666662372773069449108252643498403197887285229448415441228157924930341675234108959247287636491120770868756580401561579884636051527197475504031250195658728543561652897984518854256364714280496729992416770468248457525376786117240206419532194614399105801574711454484344865690110435106398626887255629583331023040628482468465589361876074033380572000687023215080960875024494142322225644835384720115868005935954992255936598306180039751302732351059467523273939194817316308272961015519296400180268439196325613207725777229771934881856947963102907717732173530001200468571815206187129508004052291413943014517220082418330353142664690310923787219010722312514784569258788666569835643804525801773931063082522796679597489954659892179887628204671476755966135661945753098815043206446709021296294766615546113412669885808357328895531741937512025770460995861207213413294597133254990756396901566362006499507996768228407844373510640453096011793144635985681698931218350813177519209235089116349157950830769002997547593355354103413250132423264946242837751107757890265321076206205063438560496228625034629019626483596850662218148630787982483024467252575945215815672147545905185120435763079350539453906867929631708473253428569494609676063726911437506240945513102395735716648222183423729063913893577517139492498975976892937100374208707309768536545627862024121741856794076753715982212440547914017434358803131236803134125009001315891272699928120640857372879673614274670529402276830374084552757779844168369414729495144039490363110245354097163047953121001723785183846170864547030348218448899418948613157667744834345267984159947900954607816567310943561126839686278433043868046075785634971890353038532708825418893045376342689187234238512849021889762521842938182546229772142770533956440549039268937451164368460530199692976312443331041025360374887426957917645238754512510244938652270035651594490632718938940532167621301782724951837023196124665220513787924253275096371734209491078554739691445998239366741548894406546671219096491683419306739721564344130918058754384732223707735271044747643396859537832543342849847665073468842001637399359412282917983057138996866884730122568735574972444006799927958140285213568452360471858321652992783250851673992011352846525531165074684548801313634181048357973615697289974670973167746519056309853597895300489619894547027453672514488275518960890669089825103753706328563324442885614490798912102738241195858048888057564805295215069347846712287383682837416084030490943890148959054853408627285549660133216079963167928155990435786109006836258885593010945408552128964110380997757257698873497874633642427860443034139298239821195322971894464794701615659013930374511581510600172727482761966970227202334430071033214170440786225016370405155039658157961017644484156358519563501739828217941825580223334465340546395492813563660018919614758083075000043719815681029561913553046315995839604976262389902983813906375977776886152645215910730148041543759049590059057203686022787379194570605853214059653515723564877996399230455929008272649052885718338053282832745417916310269135943977525923373921668789020487503411215034855897259763347187378981511743941498904491323504361867587500586203448473323860521449587485800190553651672080641508311414845164550347964426181306469492973350490276773157116575555825775301652227444772666845697611714759921375060802785241826295530511454198395183334796299808153175098721255150948329550357609983361028966970207121393373941792954556643558773462477923292711839426997147024267228103586121592432220843146607059699364405703820298003880910920588823318702520169413035265980388548909334943155664239426921392460925626849331194121343826400821189139148249193905021851128314367349642468504579157447525172270612844385635395981302838493155382376054094703809907299569820093587225196089980633268635037940952138515090757870542958330065042599457945234352991858678272920346620304284695614974776031265942350785390916290658842107239464029350243284447755912853638540044127371051630041570483763148092670473181362229388727099840956603938655300428508865419981623641128781716708159229808786809370006342254090309767057859619014665849670925339365695751282509861156251001136158362317324937655196168197739555238674318411716284869359928721889970537616357834752559193051295034712172787947995425244660342622491440432756495739396242709271099840083345371286482488753593702578950370346525920657533196433992352592598938446485547982980922234946049519613511169131212554384620631338323848024686120481294724036389805740527868378199341538690487879855336322853410351578744449096924770799045654913336297471063201795643278753254798941118111197932859073510654676910523220209155440987420642018065204886722050075501875544842394150179611045757461819792159232794534171963000883240334270868752835651112216578264368138610498306335947927722139908535806931994865052445349500909688103605566195466394159126921545235308146706819264891720217524576125224763960778284764481874581530618301693742437267600553103266161650322325559202339824096774654062149412052746725373723673087611274889679402547792033020674574577553982675752269675810679404037386632594176308033832775821107212352392126458462297712919080135514071569601637191589008911125503096824114176809817284121691059491674289619756155007782037253708320274544633066146528225679634730869800637957421310571797933452467679359212515168739322985998493396159645502465410933966999411705895576021645306825386220888679424828537826096936005353510744377974101033622853591189549662498588914057851869296264593498266462642192767550828062149871807198244657417061419507096951460245706404554383827324208819669498898616923513916165138556035894116295390600173195211905327816837494005817965816723484088612107396790912227334662548644030748247977234924517040775770879771266703786119616723093844414878761490641712621917795247745977258850523024888779486746546558976627703800658120987268026604477283565521450593125790191227876378869654098037491231032386626461810407217563268132646667020392284694183670942193582927140082930860313775135308448999662991863185768708913677849124632056437055440258626876576741230530300255451568886907776092330590272826198515114487664550884766416894012880094263984126648680887159679770438896799574874382038150064777393727262695338822662824181912915631368082556676896122475509174354263799529718630629096589241827717959910382403431476817262417222046436312661048948368909545309608711304368792493870248645379193339975247734506268988618656143845872955684423790994381582271726434299032690311731194837604320586724194605549019795657711899127825969250097302583053497725232913462167728023951693668488068756764808108303601473787311204278604391658180066541913415973120120807286720264270785933647121719233400946247177274016353264939548788321062147813596310967292434794029439954754319670065849133094841146087832329919034672293382917562222030245891233799605365269367984357947277589696045122695070151604385535424133782705516997621346296955450001935024485385732434837803529519321449589668389347257303904542816821638700275549084848029305710348985812929896693654004637645902701479560523068273175876369788772525161431891689150101451999516450072320058623406282813424785990969802390737673668184261968946576714200392253317640055872370553952947175032691817143400939296161247353891515147934640761017167502431296508524386665174296060964213667528249296530230891645799440614258115240595070582948280536768576863882868732966799782131634942626839202913959363332854497861974550589792079385131658829866716930871445520666600486176143298835100592523179520250897613997255449568624804699459209588255486961058064152573537862243526401559973340309653423594526503318486102218740954340313523375959040446100849947734880227263739197966280412924074907720640098993121660667894374592067954590939450317455154790233498218198597190338419426337335664280326778917588886501253862115233972842884852466746931461000264643338085286258108570428713785111389067895663664454515789224755898832099942159647697177688111297766293640288567182936532632857674467763696501199637785581603433572631122253886911922300267191400694895073326237534492279614114554773446270266850137739546112091412246085651251699610181373165843102951837669355012315465465092001682124245699594829183463692652510667088327213043893297589427691006276341646447161789955202314851210397977076702493925236154095418806299333421513144958598034525946516880496763416572244920843372532787107690386442978619028500427382328691163374550082123777196845067129294404251743287246486884412617563346491000548537921800197531172012900653032571421050401791546239110286887906111362213307656645224469798572202636633695455262384755086970886702848012691803451217491471788421677867511412810870349914116454690210937686758678557780579270804939158668825610537311742282771145847032829861347472201955985403186492025360439188782553475312823268386557003087481605166079827957258382247916784834267953638333291482743642116805673257789921137289163668038748640182209900073793758212260574927621819311021909353489776560538124919840764757404736153760055964298484961836218637283247793234302654890285655787578212920598132090815901178810279302630606244469449681808854396958816179823910675104483900477387863847973219745749781020191919002914867382849659626686036485427325922435204667180267169046963438739794926297782945342926144659679618890922422462950141231041450490474337145492422527517914435178590980466860618122872221472002342324386682618051144014745938472965416827654911996370443660077016074985583498037040404142683144151615769613289760268653087760261222379534195052417832240009516096114031008160783283468162332160308026034897692039132864804906889456896561121762361421765699185596503453894867738380444353882773981774844157122848097951260509208386836303055137646602378753062359634247355336710083707714089217095561806232515743299473184949634745117045978851727232027160439320657064332926331717099547686451212662184047240607240738459131010105786455372601658213407130469337174593439430205264853018995778109087491682976786344657345956001653953533756231172806643949810628711137972987544013534802642090459117738688833083032667647236030714308323740312038065054941449774851252358048897185189260995459424078964741543331951232242935904565011988173915379985590285843255819754093867325503422143673452040479824569263925607356340913676544096553013554741418994045015675241840106793690616820091705266662034380823927293155648962578722361636429274078500146307741849779208063461000696190248455092742733489276652005968563614209445788217669122101434940043467060050273300332354784275513039933322898089008740136300226965809784441178841505050431871751937249264700990534002198229336520938879796834443900237971661229839745763293407153388283539365976772416269588383517903316606985967728403218699651614500803345886147934313283478711940814693017647360354948422362363781001294801454805729963733947021510612803400830314749694664695442361878875975582801864904315611671968509076526487856910917230828585792784409561459578079791453569128632349892751008322270847053356444733265093643904217018914081507582536708184752310079746716897572727125492088802786639618848479203886097917994807477899503361663370448858705290399929182588446587299004168674111827600850741982671988507214262113390654116984675019030774351362782680430257148121092936158276010996433652197628978109887200623900621606991311745197526521601477474976486941233792966449432271463134327340651345046917880941650416902262639719373751109369180490835548741013512178000895711045315241029216745505407039984516538037339433108859548468643041765970875931151915035360917273174352979754779488477538789362278060313609579076774277932694259400215278190395767271779318259221446684235724270625756902432028146426161515924802137917732112872845107197818592887117172794088124318442677004282652660147909420345720586005223490374866341684913637492300041896349364439592991215217336453333419477543840552451662068909557056287586389826418580726112455979716535795469801910482956711030856400079108989573945174738022415317483532516472713879297504549517292617270690958724567147698912765369203684589693016434547741122224522091325671025449210723740782743651856260120582838991188717335532318344092669901557423899241945929468999064043123126065900400747872459638437516302178906647481479462614623440849274644177158443933733525101519945984882541367827092203245230735496087552618775318640917374188402192322245416258038839720133126491547628096001278546752694043051100748577283331579803317117228547116154525798781039636001895395811325542983619322055751001456311111727275663262332526250904113199486393235116921349797550864998511613897130069447035240845404238970121049810123374594036926955373911786577958409520728239145469258448700778802825020676011680653989983083207681547664729029387219493472012074944435042492549911196512449238530011638461948749645435329951508150227310006014168951091351441553832049238863670323276966995497496265814387388454121459905551005126635154934182073177157156816081433736056311994839203176392991389975133799135193904245618356387700888163187901584131260625862370525089252925202249634202116373519142967860268532670246437293419475729645021230775032557244671462252631184745656576817741821493769346376581667424411425188095266458730140928125281616455490119440580196753775329731650746913806995453877155206255615886957707446471877626033093422836983197227554227080585847976037336028074945617491517864343374218672733639399566289219721105718369438377485666842869629354692936048293180160250343660699399767019472547671662166700911287647941901071787633894041968244343863645847789207759975562385380106871527001009250685161011158978939456298758031608571911300463922762515436884197176181570735013357197466290389568648547372906446014397559096112662611429331948567015960170669964908702732358132429532120217435540689297685138388154253266193306835059281790021638444685034288745016124248460273847435683620466133325379325141230939029097423434063603436624131121238294506453069509911771945362284514744452889475914920955343380336899164983722584133749678740309965087440787867688587198015606216477915913336271906095282919041041174997738964089008130387511944454703060365184559139308521923849839814477161815391224930062267623002491954329046127865784084133285757184877031217630877010406456366979382960007661442210216441637058667768004215119435348697208208939825172781448460375822787199393474127921537085272186949201193979019311612765084461847985477711923251626471981790836396380656753266168929344903074601033710326586194095510536555865322821297792806032065670333345145928794494121462706557765193823887931182069927403640400959281414727297113641896094972664379892368875039893049936302051375169893060532696388226916919902750877771693499406412258706733717139287153676851298802427887957869119423841574882363638130709676129905179762637017787985950306765348120175895008787281956289414072900689797929999817247252880507250484480657208395679364392738218622364411859494904060258485913531839235081262223383380859873905356400848544289911516684030422264564586609483892720189221055943067639884373579964395174034722773213159408206100302966447675885669020944520880775372932656980721139910840597694432469649327259185808257790306257592885470667706726394335350324421075516479784391244484012813851836713695508251634807276601770395935092618172574390338790761447798366187159552585444579134033610996816575246171936674211831582640550251510730296478247154130325833007223335758497947194347417971822767929964840709992356323973044555568809176125949203308441571143228448665728578177269832996867670269176399848858551693287748152339456821947791822504241153946282333531217308571932431069968189920874884803806807614838460773386614689252909632424134535492865503810399252423147031390776661852617191857248642335234190138954849125052400087651378758520986245070811566754735129763138037277119052489390485129964941714865891267171408756190153734122624222904740976644244622238121962640221173478726178417915096763298429296003568090278189242899247426679702391951718224181335214318686785764620994713070798453940318518455563342726031468829123898570464185682152516408764922614052845262780260572743384700257964853677515584393574687887272487607861025266978842452983186645386457234107771596271748370361589838694581252688195530920028041906690943872539255580541400835298360228534151965883956332286897454008998493016161104278458049101429845146806144731884347602788087904988577376219591964106194453461636816136450586566169189307487137181273619883109292449823314263666710242579702716747498200068699368330294600896290648080291780637197749313905244288012868521518678905422533448388544650056198083235310620472036780201997982605523854602387850992431689113713546846672685932597752921745583892245613354169501138167418456320163413920617255723687468950201149641095809667361413535746300143060019862313911293084991400980275131217374068991160717880745117882081671871515711964074254694248492843443989418634062943548182612116266275041669831219189508434214607308898000107028136477054447252444097120326415453632434023592122288395059308269299953513965117357330572538361090968571873290145260019329838527223555426218624625885460956353755518812881295594555550176176469091325460572631460363915926594630283544835801107534245598176892110158610090078029719903300943963476892252463794350560278455299974044378301689443176766212092680575039674206438217370390663698358729579587830233677538753156033699393415437561236395133245555569844959291123707901016192931727328370645767258610231216370546108740566992810482047102497877719397616139024620190162702810926890828602729064028899566514398366044395385213235489521551344611537678050953046950692157416145129731339135507355937559996624198322570350372687749101707028098477376947812147476632609920832143686091854052522043399669571601615438670615209996395215082315031529826354040971688962057562860559978058401511899067946924027990270074180795535577283006840868346919846249559295590011149795566794785502540484426255225972091482804726632469164684287541497165590133935918548622799544106130955719489057121486667460312731107317783352254247765741416674347163891845336050518193590774485311185851012775051429780715761596294843868127767723191819421396301159984748488392328657654867354809234350719960374574758462149127427795007905456575623244658133896787238636356462614521479654825761570906766978428768137301629878848648153324968829868425892389014783399098935501349373748371556400001272409134927974224131598361171731722495925705206823450307360114744798344682221430838400989055824182724811542001527377154896941966282424457596407232904746739083628327821190571962149287856291914908705126371521109092631767119632236725882977661304093227066685340108058622370667470371031046042461433093518040708099184185783857549763106366497983045832630007314230730706507094474000508144245866077932610380834778537801700366683742744592242404867656966085322581259799840387263012823814796377339667160891679975500577887840267840093773002609885423201261851398965801668413384421572700879782410207982967263303074010555704550538793559597135625130072911892260517276709712877330016303991747926163378610227080686417604724308025521511026201922550520982871823769869873671234748171925059111260911235927565693251234332600453893616729213804218945544092641639770681618843811573816421589125129140730073503020606529737634264765135464900981947016627375609674457048739219654338867945881623428279212453999482336659083893306796324327116840583320677013518426876155030946777173272211790693546246412429421669793038828865403098393342891137657948258917616432364030309854866892824497271964854185949302499048979424013798930821846891445523252135652384595464857225859445530164983086732115600283970532986812916204645193311782845815672605909694384286436227404669586540797506370684018751048557462136004609274161214835357089644718676618910339784671931440425021715989321175965132943574546337938393222304723312930736058495423949136590463018447881761614926653750513959833193613154963916618759608562929990282612579960410248411611109520676188800366330771373631478030646005812971529600627807097225615426863471787894108455996434630936334268791673216651189957045875566800172504069706983175021565617697476745242286976625154170896704753596419955558798715741693723260449795063104388307119294343377909734989787964102043714808006319605929833238424925010837865260342519179705508214389262455361251613825666079974465533517915980245726346538497460983590071944448489984725276317774527643415701184044972371346564402644765575142843234274216437589056113981005155930716137537751778747254306397932408018682171099368302778007608127140568998258690743443584261306498271581823143431046258637864890017067509330888912717531848595015284073137868690748165087818235728411899532127389610994111504029164190983303917461936657997117638227719966489286228839272075382864447307215182134947403976507215551818143014524564072695927127360394894388891395725781473416429742711772616837400894921625173939044285053090291427797444343127486037560215496023274259570025127506414999890477711581954726150539325599276460212434445526567988292633279747315297766749646301543964373909604206336003814255574845924252332474106892815944203303822699854952099260018892548736398361762629898130732220655542275390650551752624635886353825527057593544262062486454790776681192995976698326094555257766796986798350190332853464374679584738491700276765952818416208040064581032167811836106656117734655989758815034695921984745669502514955951814264596181892969296374181719778698365354275142396123438563504958296086665616430234003850805933692244654174533371063566191894318976194865380188424463368392437173225917879036314053255009901817644060578963191327835311719143098629170817096704690392574483713800209044250816461500571885754242562896936189717273086529506816130555707613150818760148643818535242827843211746036423600182311443668834356067651626290151975600612242808203286594676130711940754670953260011207881142565487424431404624617661656034718844363505088282401408980879032121907026639817982728897140267806740049092691255024510243268459818740753874000170785637914281778688629302955644102972124326477548983581144462205850933212213989528968646032176698363026529781268057601467829399522160624024937913299428731931564937746684324628151663444561545429123587775426232648663433952418993825922669751476549949669142814847132514380367063900762621743710505054711583367847961155500295071281671425347837952841195217130554077055159004202734406721199292017137974133571783092438065638504317082439845308861061222643863753237045730776553080098068699749686541233014066783299931233854161290974727632275908161119134770672019035705541546025909383779037077989064266521889833398352558256789338476574221411771342437858554746637392190979225467201009699336838637341813074094054327449538147517454515351831164848350994090814329515751798959362128026358871829776627953695771531248066631629095133163767875856403254678839218196846166804956357225436136387799174116591482390898783850636789891558025054996660388938811073804262579368311786364907148172478835340535164576249890662012304872942817869427789495020740017354435878847024996475444679995935352622473510217525500753271474298645524277043500280437528643613805298511547660203984792958363596782408659554825938519636207492121384712416588154878273847239530302842884015891742416157101439718277046336330574239811664603110462666472527520453079906640864033679256414487244281704734018609273454486123877240800641739168492327682970797210840296825999405486710019952951007969087163980740964648702361989603703696687246899211648533246811175109339023316960496369208318750955187641348405981071540282801191744796316713798513987047544186984040855620932117886252663618300005874309767969914608495273508025105938812451861294091656460239942625553984330858951674151598566744425087023072176120524317561093499162810331683286932836471116708564840987875698588941990550153383449857404311788087041896584451537955392896298039716155404103209830883821168544842932199156420713705998879591124153541978880845289453647457016073591161899885050981486484552504927495886587691997613501805690971046455851013298368128841865214139571096340429963152483269535740964422738702375857303179446674395841490489108907197359989620366233572579568031204039380029804582306831924179275526723470665627902425507677018137800083766850314558001425522989670686940281976502145339399875226907712213290350554394822515853308780585668295068488690735430316334316881990099106211566342945868985055770028633576230374222769750375931815999980672777331945059111475432995925315716416233880090134371778684919576609181088038922118317839311497276664533612882463604617766649218489254888028855359582728870661165030624504141773118849409651945380016020915020662578634994312089702657703628049222744322741977605598545055236493109516446072349674608355064287673963190834322455638180556148271429143673003984785383851533438604210187839828707779148164490151796743526615226659770896089084708882740001624253965309673009565436718147730708326967818606173566501786791712280857252319328335144508583185461559849853294172619600352605171956388609654108918478536418107047662659261837734356607355945707006376898845605053006628287876049006777989940777276189407486247064537028022400750906954464117517343984621451203682881260501683889030061350059390229448681518352115240992279905741677843962660853741018423584888872647864674166699748719647693584594481370658113470836785489597630452997104922314560984055274972560787119889794949191735787900185779325424176942682713752439841087771921441532573048333958878995689175835005628223128419780525877013809595429654198687686924625044805095614059754069884973321822966744688785331305023095826840052757726980247798354522038899221457454072862975726954831341445816048732917157238422149123833022046876278517139574998041207998539194621485943120636681277019298789697748257465589301594758773730779199780435101868665049033314619351119518519616424247321113185692647340096056406073815462361790711342879958761188730525130090805171564881479423340434048041051782799753811288374223685949080797092608417204042516190599884371952360926921870591059750472678274232840961249424941885093338184649951611854358541034276482046829666797149524624197457982228447609400829590457894692695016225201343398047905539781564838424905560143053480517571167409937540155422054968413028054931972915308005773832477903050533950184814001135394027005741277986907551329008290874818673368148937499853865690810788057225138239457061734320448800229947827281890432478941441927794228864838257801919389907726282686086910113925341901806631198655019015951468707704393105170559957162929457135376573095629458259583185384212537565682332933923219982326592403423608674741822895610569339520933331634657006006831801663028241092984131454829130513797963165273840900174283770117888620709822419631377700658350143899252729777377836681379013352223184143929010809423616706496952560570169660481656416037272198432672869032206650285381268215590131820878205779306328463851075396156910254634989804104651963285338438100955718438662064148422217780421164431948138608076318892761074472629623278023643877558692446323958180966825452299354223022258735930296222196819224622763965120776632426447271811195995749590897423426269632421736485325010344860343106427907204316430681856037935412645353351651471684729308928954629083893894191487899518802692695314916542642895501565652257252017913178425618249763875310129664548915536702150488999467991891763386925351395937505575673423883417945243999418048091238384791302202248125550120292474930777451218699332868830203283788838472011374377345315596873537749137620093302792106181535991469444802323770557635150620073813647378554570155052319709302431801270034930805069828259720485945047928147615255369752030576267861621419620822159461155997831016602855131316330067331840040886728282349484195226111310228992189741406721506931252948466998730353211525209512379569807580053112886040206978189909492411519750601799352356265792526112451603308670358639652816239208528061309256653207501347749243406088547207422657117715041214999756173905769484033570024089773073567105808738995822444731772417303857582753906016413336037444724372934901925499533594083182129030037734692350956438879625061203165361585335539707532192821544715832841153378291287047176667767349542310475893520593652683923897816225842612377694362949701678072490436414492000420793449971833005352704722211602172198380149252719264961406954820372454657265873453044939123050395069157798680846940390734255227351611381587001232136945175597748714571645026753373563549258744884813538220879251482271685052916141290311568364259442710709222405389207548724977529481823689898083612221050104119138397757941508687752563233925797856400016409033568866779946410912683249623607087172173847412542127813349278399661158911828978429819232700494475781620475140419042091859576578718289840965419774511904451886305647324274984731315199256124535409053029271122689247599945743308463220196498697462710962031556530313379734819154744194425369494673405764737690881794266664205972284593359171056848784776476987354865900518078339517376377212078082349034023876417337289400731198769260600525510939251926340143212283059759811569853488520011990187196039044956029822023954109008474394132832550204161970002317794689690719028563281427062438564849673639524122515295937728133265832922407215102944334526891507842818997013047382631166577532236046049211544327522322872950168482086575029071022260593265765049230935482374660662177526873546277719241241835630774311984482085702471370271083038198868213719676207426778190116634330052732028583095467026086243608481262827408153610871387958838681025634094890134827998374249258987227391469321158490910886404814705982887921792059668901961797919822397463257603828322303349396832643804052916862589923758196059367094522135098184655358833549686957790268338012406136977203466071353784429852647409784873936406023352258119879948351861445950474569833056018549804284445716881001648490243166206290489102946384818054779995893571569538146510911893957257757599485154590842167302625488220754386890928544047224211586492926955728549595187508781168723097971330647543501643193467889983805694801812875507353788605793594367756455001121065459690520703188856119474000858285612281448900383060975507494591259538823124284306322851958179891144791729105201237669512903437732831604523218166708651068814278807438406793447837206017862418094519954094760008984373355758278203175436495785243459438770905634566025518480749109255830130335428455501464551760414307095569494931576984514329385638944802398462866955277831519881754208304691558417889928165350423923292058140799846507740669630790831009570519503242735472570578063448279688462435497169858859587991893872418007101229308642333912074940562375785740881361959887974881496399189793312831046559792896671899539081179797334832402708161929736387704803403255928551606287558004654430695021978417971985159159910469135020513974228418606590950861157411041590746491793804384216809332526328263968138840291991769380235127017516403048400140912283784578281720025150165550298451194468922367535831347799691891400624304985538465490803770177459657778511809273090432558700484769470376698446594203485693242199327561313321120271987344882861302953069269200927280127728528649316502809106447541214464558377704815401991307733558859170797102447552071548185952822031773242865816838669851011255964505931782086709290967111667798085647922041312440160201379819838896732476027811540429132352481762006671187436591137173489239932630160819439881781986287799837040904260622718845523950613810242740938012266828500692865045622694665126176454536854127158656947164305646374326926851327377893381739329434314319728399620871353366883965658522231956030078423097122433257704499712684773548754867566654994792279920997884452004284897616268699600758181778882211332194260958898808535597077534562888518823368425383228534831791410882584541498374016203561744390325914462861224850270750762275204308114635902229596047763054629908191963909666735764817076633394093805045503060777356677698914940971527977722729166649465394203217513732765318514242054546131772459621212460838697779520922832918021037506284890259197916155197758276262628810525741915843882497212265892395055372477967038291266499518225678788552608157542333438968223012009767526877608537271827223953489534092075912013807552485077237529592539820745999981349494959145033365963247361299439208977861790042177709140246235262062276638400929799206146726048129316591419699769796299678952932224316022188136591393915511599760253405866865826969473204575303991837870611303835315609715251591823232439106585834042420266839370793300021456695709159936702682465293860616659275515304811837756294915495593730428606862856364188983205690492304314446960249343738350660278578411231608261596429164083541583728433026299043691595535388761748028365040767842839119621486878339222796788518279391844367641164575448672086856010311638921874343143737253063522512466265276895644438763823660979918260263810361513262994656265607230676888855910948703894059134929365695400284868033986599441069369849608547039848816020062744913665265912668318561510120155704169407765719010230542307612022369738559498075271401600387780453381030889348662050865900255123350525242179870002693502345716574457654663430180799093800976445780555056718351448820149514186860008038413343736063157294010280300514202469864514535222073418755701629657543317959939109214098958898430018196417889627080640281571511675070233857380825425210125066596121390941476961257160340337652758472360765087085521217861303287630833000748860465941037890185210003131272406308872573201107306752349222586949410240082716098612405758503442227413050204234752476446894236047931227204018236636796822556093103969351104185327520841887247734927098545375142576271015184239785816637785561650320696768919420472799621037149250788004705710232916924645007641130647175924371228213741889598386827344126968402795588281888739194299821456808013955720046414229999151445389129827480919733259848037078366337899077568904963974813592280384718109387889833685061774071870057555981741121800883899281045879079563742920672075559240968977953489181508280356426427194927267594908506421853858140623649846013332158885786210494973485935249954958827852486425801420081017173160127629026468371775151188146614480323736154395452074448764827317866304523643558708036439452832146190967877984836936992124901021967615766182264586321792212976416708484554037210996050820720506476881816169437029262659961061567645985947543613256274786099814082999333700473236634290444131480108259695839579840989834134838602310762633305297790795204254828112337891794311964297399694075289473079977667259527380762620231665710971956265413417020276754559454219675017303447471760811927715680966196164609860644939915693791718978805255952008329007854294243894024947394001800919681617691583049819446863184393919597708344927753199197594531887753601905408224298982436672434438109709221453498118692255062945895059477280843448594830732462455236404172119425770702834635128228868953859328670411072259085826974566741013010147321174384234539986293015618551329055375793038112222765504704689680430848593756974558302743815396855239861002107966430575033594354199992193657806298821370880720644268071631128278274522622006959151131125146573602423733771439961277726343862619564948454917431603446214235337445551687380886313391398384959816358929469469829188748311207967858042051275361358747973603968832953642321685100250086392872861203504309357860553430787789008282816085578360455369745272967646533722154180511962766622407473783947336736866652828474290698592758930901203526155316809159485483718694598271357098611353652467618917135216517512620467110737627314451578698235056286968180756456461979449223156497749162927014528343093680361106099903824841667831884205864357099133564019499242945206041302908952965915286663869410393537594570994459807312224785077581354236306892607208152054250782513818360628450110885316550147714508523651280253759417359180307150305950254017792667878317789453187585678113356608651592394785838808057529389652151740973792681392010168093310415129702195305558782019625797150112804979648039290180388297418941396403230359738950938317973490445433044908580364921969709124240848341458849011439141046542629210345732963124674315538037744972280012458555960387868592027096630512202879819837685188971727754909671258387426579776692198444478962212588823317721423867847250257487287967732867147799594730396007272062448201764987679980194187552809805212087336482742426371350562487188606423714813212556901324965427709430742779837467698905987205367449452705667444142027888674120205391238363153139653491542922664306319663418469114825756243787954523631598066821758824696487032207042670956848138779443258382430466118672343188010408923091478470669784633663818849655571060370478644481070628198652054378919890748924141536563528142836132780282228685520420639768093933009681860031091841591699753156312936620206661127309228836080884001108988827622226090031374022021726453094885107995187026297163855627865589502911214264207638679460173010436914430662763795279283350406414055665184919744248954093577839910668837352911334599526271216281476374803280334441732849013287020349141941286844294027643061742653462335623367439997861495880791213872937875372066208644084505070327888376324064254211370475812831170027755256709985841438492371949122114324506610408279779055421247417416173285350104038148275473167082166700157365156157036144803517608574348312868971037622489832037083545768202155101010123742352709089944563374282506503427449449154215311162986975221101654263633440397986855146365134754531941196113484696195970754680511910992306331769923470820330436096840335148130771211282391370033926494996413497621555475770298038216736819471169147108695437598583936613740020252250217283744816269903877842372540548139072689525157673267163429515221221245290929706205681978769405141243718603806903135489714023248665593584177065981047205800172234269887122655563703945923915523648388452456155513599412729955227805248390489445784786326612967489383033206112476665366820665637287257821675416905000737646541518810227314411875136897601303255409824501881299159593490476218128385547826687111860370087892645819949742074506794773311783555145470047323320336911379437884238246957888473951854540544055541493977459213366749058945008317484396559838673670717194107775070145804115347094676784089834416047914639486171281329493579114242644649709292335002611315083283888360330247569940799481580073252439695261106472725349592621331483444188103067720998575667017388018144424374533583596941349551379949127725247629580195636503806296742444522916009006112342643359673100902337270339583560329101890263999973968630178000698960448743254392453975065100901269614234274917141348397356205135584598721305137226301539519548680571714861951080486394927478420021121421265051595388439952105590482679796552492235488997562313861260877798092884542375957411756241085110186795364638619353315166716199239712759253172741022495227692502041637492388200572194323460483464401469927975665839239741745697729318295890371445385812680600826498195032730223365488195638227055735375414365052973025941058436310429939348512494002586741054946831539058420650048730968082786401333197466497260068821612334643957236180369485778334167053149490041913478539033846560935146626353520770546040509627158669689181376156807064233330329003592905145396618655762767264179596172581587515417652271394685384996521636954977932899083772472705930338173990499876767441167570344404815997303327265478592316970947087609629708921099283163258017767653042173730898537432903459968760328603379456484359857392316627099762719519734846630102978007797818087749317022794346138518493800847879687564809627103838761465618960701860307854302912283099534713136410691723603529502234113575113618346146761582014575277377806987400962571745605440865082158154839928298703794689559406809130746930440984761117760519244898908439714122655828699504290959428273875898920554986141771513863569266590872219124662282267151375147108670308622597675053059505572450246959273756959238698358488953044432345881669511233114048808719076469249779971769276050826978520877950291201618036765101732330154117206638966021903309384039464269469697983966452184119673318419172434664157239303611478212344182390464520581861854876956515335921483061478106482664683039957056312567457640661312354478510050840893331435858379028060270991776524160881502146624173770175208226890688047371628611976430044594875059476011826244186335089691335395849269274318958639229305072406506205331229751743806743113145053845411480932313736791601635469819621905557623873681523638028422886445555712228947051338563432057056302335980326890989841325226895701214150826442537134768293483656922005655936100325570527152488345813538269091700797973917199749943834473385402603234281355596397260175778045023171398712545153660776372444591277771921282705876735993500403221008738348766743770466686382682548212384833749948672417256755165599260998701920704915195880153309085339926122661916644131630832249079753033908320412800182501682492639557159513098677497888170054216182661721290181652952314259523451402288512555315293363138116216481702658723587863712247312416407914312371635147542584782677989370956092372057533990181374703906058601785154686080466899295004011842870117232935753622696867777715163376390693309841248464396906135127725565794003987862223681912689325376560177376109287196855178482058700932724874696731082725372306971829057701081178002528417415455996790529945399708410917072817871090729025596766809528592253980382626047098136068401528658101148823170539904738176222414094155305310922574848854962747640872027843644989398754513482485212269289057237231670144406093017269283060652231524691775741311558804781938747889503690976974021232976271182425989282650233191053147063407037013508398849471286273802459802818342337610748098602808552733286559713533219518424183581463397230773385728884640664876573187368537031025651631199427949585812259491338707402403056993536189569476707537890042577206463746431243011583732546754821923982131526522325961643963048864717047215392524828118876053957339321661535389270908994187249914917432846762545367214085137859078666583089358029924040774361904306871055447923090496724962772561408982394900380814995637557467452564964050716804941590658826156163035910493170313848159191689332021501859752815012873905840851216593338617841179952356097720098888026988613495016365015083399234087301198632837355105705587525573584072071513812479733359775968934831997899689617877582069058754816980525234165081329376369262104972587301156314766802663214825072369961851096782650345773137341439576541712183720534074448585447358085183177376318887052299877942547378011636657535853569342555236151076281858043008380000904923874031075628667531920836790183579018398153380569905519157643644833746866063892188374426854953742679814122843155144137449500624828291792556133235579660847010128076170005152725606990491250585878267783067464914951648368087058850004788886704429830007788357309458758146382478156437753803885117652464370983371044292630212303638909740068608056651638759177102026216771707719263795238033762306956733043303631345938476942782009335552451878651815547114312480131930596839531068248986493094533666987627530027937347632912356688891356506776383686903030461296187044938604887937013859340085332884341691374208520724545604765324268686910544093968693566172645973981755456208433736954956198115516913678434708130551229861238956288492967323219638934194097920264715429388682135656485479639694735443265388030746767776758880289080322936589597462749378176541543103450741581613404070894170801789387091100606380821839470755324849273561340550196198101584132347066311212380253324876613889500271891452192925667848758269417557748926579593777832433492153774788872441637595895284080911409706459256389620208964487750031604992042503912187277111607648098922385425506675917735760306622024227751907183178243295627888557354111267169416591201304787111428958881895928252891580939516240948644910392049458462333287291490795685687298004471377600234381089370620575479864867851493800802629637976230571445944485665431384312151155337310230396074590273443347833017371180354289334704546132849348451821163818075593875671923265722006287335116166041352952698581658972474948502358885907968739553299057212941181965839153428409360313242592408428878766654133052239605738672072986566846166664699196563483574503571107975077569619183901386348168865014389900636012259050012169264838945214648978028730052992695356904147511187082776507693067656638348856640350011863465428950388732659635215922949216973359908448107451930000362530790672471223872139884921541275890453266063520849729090351193655844489454524290144000298818108909626402998829799189954379054397756902665217928846812746172959132031934999710844396550828301863866621911431765127850268993143292935233491683180167595229773101482323847193003623592632975174148672904889806963409181769050202344237006596224101616992403613913447250090847221341073822207205448765832180945002221789122913703256828869242101349319531740360212760391739477538165908465457282249736458573991723864134850955644454154869549841471334257758982136644811818938588876598076520356695770148111978388366951705863920721390705252682504285275051503524390973058010528542379845827410611603960386585752010267278160737373501941467471559309630851293849244036450971988576711051108929002672608843626253630550217762507798705035046836858627039713110864951339693285157250899670788071874895501642568960234795209488154859080139435293004033937185112050757514201161095659267171478193726244914816655137843334000353755951599062299068434196949211534208012434219922001462923545024990746293598555863642462368772347035466885932993960621323419721596589099028914990024322224639772937415646540437405674353829971256374694611299805692478795242495774106600169409552877260148592678680339150887143679139339643633340432938061118006753124735010320135799624509153914598102041953838983055704410789353410203041129425555123289537012304239893338124155817704067878553658720195104265408770714385052117350458836157983249771963369028722133815901959808147648183508761156705543436424426393783607200969017057210874255720505714750364914086635774544853442152836785763892485880229091055723749874191037649994367570041584006250597197760479482122179268218144800131570456288077822674916312907782624804622143598691906606334068579010551036262748519147007253964429518736844050536667785135092980999840827024966203327708663242603145367008988373492345290028306415581752141532559902121712907176991634064928647220010269169788649938114747884227447996616262279663012841853752611968037391277651899687788389956154246465078765736522522005574042640238300766310033224733333618671751509315202859956786078952935334246884611917708964842935634573655288486530061375476110222260617329339753417980031095101346159961373471484605335331637653193370882521437028354668164479818234997343209753281680707547549655241570292426723087962287825836331315568437474869900423643551959382179098670343471606222887374276439348367283868783070511858945586380741029213656768793466405154980359401796033845082047140622535359750467950741483896949206039778798792803637583985149958627222212544585189069797909509499639919743684567297991427954798320934585711544810003204024366522458687477941998284644024900662992930844293688219333255684068307533142799239651796423414244018405283119713125774359602301715695603286619079905329383509664031125274177251756851360711092117240830431509668897114705093978490738929689213126816578223410587023719785960502953286939044525819995839648345370269333651066722056461326109814919737922111027908945429633794672056225016566239116342079222629447416793917809544037639669247521730959022383554818049290171972630594591403714243180132838076454061793441140350998335080952761700837686644948954381398437647399130206337822590909525482420803864007973927111237886179409502283260246737139874992309498677459941911838017408935138279289414922046021623723559347820781776938112598186659051685888087244266151673028810983322707351020606786151025528416874540974479540416709542676794961675959320954156440638072852176420754232590981977212931513676746012586194734906759476897558664665973592688415462511628481665459697951817484658280154619619317151246007166244432582165843008176392654308402943462552423325341137433925528033511823179900301981969162887853236433740222648194690004686564162505191978577276285896638435113496144762822179675447977441901140328856505608441024153062223046438059412052541365439981199883306592402207610079277402287776686218215190735666565813198785380810525745128049663472886407446615054863909353922807686270386288571471702876840204306438761431266383229601263836127867865150043304222019791210047678358613975201111672485951688549644044409951108321886614086871383953989651369371362726548873534988201140490020968251305484391416852303070633424270406370454212729269515768636578652962905053589225059102844824518966918490321502193856577700437574297039329035810496838612517307778172143002138389033175912725855107652058543661755048468733718238961142379720465160353434890791030621064901407375670592085868422399700180477896949487009893415973548928226810311312179457206559471922359644532202563145401468738756942861234121508773985588373227383739889113420062488547305856051092059200659380247941402894727390524944888620576848125258124947470969503194981123815028741125766698489087282214505676654701767536340158012800519731836587182882320371584114536450201809024038963210403662206599984058586484697419959348837716948263090717878995168661624655219182379293396137125590252992539582211488068153502851643493586332412546039159816376349542579489352437925416362106582517200518101716039812440622081845393657520345796932284567682369451937291419581151831604372220488976500138876550661996184170741313733853905834001309767599179980614069363192432913793340182558798980961036601392411984568467807443019285370189267688475488535587753419113590223885803577841814070182837392334018521498047638502446839158231163344747823893210946995340600435194825826168104346659543468509851121567585020302254627803918201367859460429944303202222583597655674306528321674715742871688162735087178358730246922778482911860109785980556807133114140588671566584468432184727224807337216524172108807043955811628184376056049462956021878576144727083936440631463735652764637816959316870063483378260613701712075538224118451337604985460710206332771826530088385516482147517566194862043560464453079939544359603597464316519301456160119930100766350373803780298204438190460359751948832343103723785789763813990663644620812361978280086070650884739917677066783431569191099557268581562783239441138933723163765078442524576658169363342228678175889167366245238732536765736798729280713860972850116628644194250620830179968507271269298393534094114433804744241035563472406808705669945322995172759310789091687818716096553847728556072520814149470815687576391921455330749679486600238099869451231354606065393150811379391728016358377262532055055129472703427541566470376086382722376125044436983095529029403635556711276616928302269571446676208703726113154733526246992818643194000557310078367553122930262418445149794370306392897126937388802667710066127499471944365452992442630391472368131130395020656021385997496268452923550751163532588015421830099234982164002254645483342006794878324944060699904731099813975518837797203821322169071265943844307749820470118071798780319975302173638747546856465348937378550487226450500528370630379700657003450256159959816078098187055080601887049516790300954128960575805134380406314229287958661218087913508103430798457679631026044475918782500355074978188302752157573380158500898130800300474557971007683291278192565796753869482735525631857846045776450673357310608381231283099177089624133861103684442283562951065039032388856385227827860393567864046248089087015615573052981255139775013781322325994324489547761995826223020470166516654585990896380558639664873026740861778914171450416224762042963747715197812087596661212462764686306712220822845991366752677857709236929303392874024771114197978055983897051471687886893455528687113584395897909506779035716169788639912134239445555956901221694762965611354576788041982067955920798892819541827168969831247127950214871448169891063674621214309345397480782706379983378881307610369453066815499728002089660207409813920644607795666065117005805098990264360406040728194919851765891661740131471057420945215858990813328179411527003538854814373474910816122776341959315634530577903964683050365598849376841296209033114518833553547650072580018947467121968755092142245297132522443893927020520833046064543194268156616795098922148204915971279349177878556437722054004216193086792078880876528223697018491746023108196721581707399697370127353087415240054963982728423434798514467811536184534287412565779889854087660168234358652372969081483887944217768681427853645084407588898474472511748292570071367905094002956482684860688114752958546510351291178019532907469862080415716927811961031014208538572215875950091097189631245233269198508387758090206887467583475892985820206105946971442272517584660262160099345380673145044673117846645470446064152364483174216972405573504033940871119502706375480153779517975639763393287851098085538285186880012488171720854868373104385190696975210276230238197213258106808159656305764223595597326083504606055260024549785197488111413703678478606943702558263230234788558351822711907684490233968550703531795740901782862795622483064580272257271612232466349536367493028456045567836850898484155359479504812305702381875511540404923530072971062394656940754222453871065003022302711741138640197109306763970570739452441764123969796196676255964840863378681169101534274741823402852671614765505483663520417401342451359713855564128804892847073911433988075468948120976788855013304246669709444744524586336631774942735485595041214395156474092778518178184836809001376155858634886529674333920462642756409511078042303971431829799136738066579521007260397073917693977965151315555248361579951318929086039158782655937882861723908373966948606300105563448283741300224745794984612267718146108460725031972238694135546861340944875894798724744987161050038271131964595954374542781919527279266745229658415045324617911358945693222962164552147957691923642998240441241520242624644459786029390927032369620460635081200210703293776340025515713160483731259780701703819321187937339803759235917295919391222105661423795196201138928258180816974028616578130895619963352202724505465453549380197607916055613133700595085889972145100356541134260831379715705365587588667270654816282639395860828080627473873813714969977036146431321404117674324145610573121565438510953085036887527325695294560493140490448472471036960374679752590445771017893117678408019466785089543982273609340975934040305402453084823192848168312756370107324788141664315981760183432187915798622401365535744654446796177890124169876149110918542954227720947890407743373255979286696067814778467397035588499695853631419800673684619927145664269576297690574555873240798790349186055800756883089229306757876271900444852972437104286704884903458817864795799522413647712506895432264772965327071232842609278972276788115493928117713617279923704042093015398667197488965630090109478839813863361927082875333625511660788688731429016804300593937601319042908308251378323355928252587607797889105600409981991681031855230925067091895677502173507983009032669266070870793905924802392804452414827167818922327885043821272097613193433621567758833240913301704522392997615444886747360582738289168169900736846648046862713643177315688790089000969879955499226134566183126715664277946784671906717890321045300488750178817071965725930745238480570899928221964963210802327032596815084024156211620296735155677454519101787528071633371430690004179100007999599912483547889481796455860079697605899555433219506505860754484560855766545254040165710078260002875581137649044344368607246136849845397271977326201035161349134628313826798695699591291913466119932853320463869295223522975666867425175113764493802052812589366351601313416040216700304504430055407053569400023354958095272141480694784331397117050572897739154009315888371504599643819613533249256801705162782473808990993602432755400460054237685280527007995274090618700900890943464320332354945985411061874148697292522359169241085897787149168377234197253640685355910587282812765936122670360039112727877137432948066125855612315106332876422159401547083895505798910205332271196853193911696246576076385836339677469969766941999198168081191654121882364392660920004371811945313828697631426501791349031459908324692772433772060492234566973928869247704439113153533330674228948253901730282267515118971793323272237546342558187997796909935311941396554404037378264005785315496254068512423467147944425963481372394287691952662518163018277276512656709443598116756521491094522828108448092114684043699936448788706268596471580420408515084571849766005976065914758026915401877156958258969352938510024763519894237902341223070655679160268383398270211241367396353039438390501704080354284547403678560556353439673674333581993725687584319260206678644999007242422190852073074025648083367217010298066445400732410812456629769087817539494972448163560668440609841745553952985774912615573330789234437250995843976900315432392357487099633901633234133294658711017271939688830546665039622826117732493911434672544206899638121955142053475984468449049574169283850741379701783668856459401922270999202242130281418239926893105354470048482011549516164798678206387922496637437616730780185698156886521700506433213392183479472197741176402983521310611736921736459304405846300516923848723347290727636068447287631340331653538429163251988984639150685201331732026222652095879856923568845482447740489694760569305262183136812572251368212325775323308446630354191880786431596779875195673707470095676415206748665246881452610407059510269815893217478523103613550771242892118043234653991468703431067150018943504527971581197420950242248421516720121240862549543519243880291530453488064316630508365346678935083125436676536291132026547555671784552246942723733170428651885531216007306936078944369673901863064777142975881399133391884180369839865214416544020765855392503927338144751623412585611415364120983286744165222418384925706313990399826943180987264792852190494314963750320615157295023714578787979164580486146223061580738215676619327754870921157496138243973689515544785621637277946745431010563484243901462431684027508817499586159790405528596617066617804501050321855709872177429128832860792233184709142413813348491932661960986938994536214271281245428282895473465522937761294911345357424465313215097142403760696519840318924155234174810826127625877803440510204135637375262259114025729631402353006434109302380254722589299358142438957455480555804198901336165356830009025482126180103322537294296583396835406028745559717591203373835310915985412374718057973734163399846370660229734664544800370712401708716645058885977054406300863111326233207623668328797084623605053209117861471643685964820531237334721214405514736994472123903827133389581953217687190285872475780031652810379980613143790772687865362327302476990480986130968600166550551007377277640977027668082489646332191014325894544653763257663988137211668214198682672679356534346857600484237219482557740139086406651716567783604117814914286099241797975807124725235515718658142315643306378024200469097466366199766407070182149049784328520267564922132230805019132614169094209767197346095134232563352079003058715832435675136875372453717933716540009024901462653889078856811266682875711930636785064643934354683261097594405232222054780244794569035491105142780850870780014393128238291605685495846347566560178051159658634544579491966019605172128767783549767500926125433073674383065068013306088081943040573567239065466514211453948431841609315085020821517374247652175791188386614102898745860865884471966888958097180155221090717082953630938002490856034029609081835976799822309094037371884965730115189328283275483341938133968805659458253438991223167867759946297590274736193145816390288451785701394852585848848375690239120288038644969498820032774914317621259955189807933408321227211441898529190375620809233234305138344362872769653669610938461186511270346722915594036027015101089384616082661860741666095933820983523508566952022421573510407845313766228756957743153114438652134028131895425082927938479249102371355055937622152648971001786596511239670503301961170140244336969632867673752294370897754298627454207852289610335662581004142118506227098610334385586858837156956814110912224701425002958232514502400481373569996519796727833428158048329548510954828921815265873474375514781220768560528776171682528030185929151764962055272864298625178083594586970822533611198295067468469824484314865948231179037944952331323862901801229463489287347677137320092497835265955382460159359371229223013503683841807775294200109148056384565428167327878900148845868698407671292780103606066147914731922010751945786648912556918316656664102124580338881596245143618701808354833475832135981829596527611485111068023437031239565764834780618581535285135498939537781665743120033207467214503677873018521360094718237766242456674998283273448316145590444865915716198367911811333227041001595344336838073238311243688401734971466283378980034428957694246244205337748620808167782464315636195767661034667812771846291182906598357945987325346730997863913272523048463432287730166490635313295711959954094108726644218632552088289465033198348590860279107464601338384345308855853953668367801398158705007645803829721117785265455664559990102099211598316535998358488590989640950142177970945012508223673507434841841348358129854046520562845449756261094497697087525378902773234070378647100739523212869587651007681410200112499201787047877932680796371293884939670220020602744296019641863909744228176040763250462184644634723775950338356807647051317282923506468020581613474696391744362434203832749021596126356171767452876181951682727350289800039161257878091663208757492821879471497782900029738372985146391871675725955332327553639746861150292077804146459391354009383323208313116924771920277401081266438539049311795119362277959857529156491757980086802658857451417415434093401197872691956463101689203045070330171523700458439537677497985110890962143392285359230525872167960088070175358454812060362682839468283811433711661676305490759968141416042467765500029725818489966551853055583228362176043512898074652099265779223739173833016101624829124745078192899826663016582512751563469951220148589816526954875671701729730463726015579994992826809210053689632169475504264849620742773320373197310961671096391389130707379869651367251518619292376540589024971516392183441240073085141522772683755839205403211683551995152611030320012465874026008355274350567070437288763632636189686651227907274861669654892211089465944549506851793422745756626987089029360779394407197819591211368387786389503861911086007877400005452947034548164631293820404992051080694633931041977478513185172718745343450208091216316068483933021642252413623163157944320351698974674772594993717351670754830571546025338715032707552469782304604542441916182038917776799797009251397295609822412421357598953376542510882459386040887437716303799128262831031567212105443929654624889912573981663910494519812148332528316402862862638497807705428409516520130063234784773076076761357755838149023640098791685037051448193548099479339973365831296405850945319516108111421409268845066583688957513842253334906290632439375082541797197850412301768232482969888108444706109473668393969705316553245844101833816564469468370374375891997563208461539637955917148285371976788684139506918747109924672962254450297111015868750711095554457450776879721508252281060324619792503069681823014232403523237368573456753834026122957658105952354768121472744365857815661978709824492087080179177971702970965537291259167847795603978815540217191464470687567552961595188391031060848122264809265286106607975751822605713418391771129045696534732062241560330539404635737800463286020584888020941074604239510627448381549112095175481708995342252338633584474953547904004658744452578227243471276947228460158337960623904982209365682805358547491285371997307805624879730321892337571467743062576364184702533180186632766105613369613795952432356103811361970332514166351681619817018404456160003509565475117372744890281100613841680880426467854306773877546987671446969928719721935044381692263172117152553000353127165940694914798644560060703515652587060579790771943822561799845773143853824957271290447716993816584712379298740189066294237877069603069471851831224116535112777306491452059190894800652064974360668239380450966989225483922019008520342587205535655073983962014244282063478126567002248020474998269321940827116409576146628795611841679746389534461577059590161410323209728260081930356324466086471494111585820992447037718130800681369405696431813120103222106658050436948374174262700368529421286148252854728971765275856988549381299614183192867806046253788473682813805889191563571735876699127401921168842048176494630165675692463752643429224434627382398104810161851662848454176865935588494988944350168579753387312248038840011816355728922959334469026301521782525325859640402525652862866885618566470563858304063042029852108020393831657583828109949833373787048527296003340426702388978289168019796878561270364116396123320603932804675169520391642485980280460451411814427228790160359840890161378669841226732241294056654340871622527599425825259940000194600098717543778874440019725856999918187422328929550900655290534709014711540805692213964908868903704438299526916787274636013478186395696118541958150627000901015447483253547341035940917842463804927241702216429550138574666477108258532576724684916101255090713831887438232657807241181830640452694749633070373456274498921191932779373175888516392332181533409264658880577608296661416010489586967136912932046066161173812032747068517425259871838884912005677601694765126940889403002414638161895822027620560159442291498702770447326176048275476769221194199682334560019217640168952238656903821687175345906971996595635832370426329999518220196289406444021833857127428071642619340332797555376428445748903189391202458155103764628199693316240873414810807239035398883524134610810653215120683345581866165583273671285721885897311945867426313637035158174503570518169373323947564343275369539462813565400613211808060498120607374133557388421197064177309376611764136121819960159583828970809356588617734898592470738718204199420573224129771090743825803841106164142822559814516597478997906647625170421356172821948450961440460259554573750918579252171452628613813549751941557282647024536144334194248558650945425533176174910559795666112861742049272823766079162977753166169592330274214405727003770801788700451600331213192571939021534502062523450796957532556745633830245537544250862512979113847218700820680725889394323464217931408243523591147784604338952264351206215014274908890134768753816200803112238923404478279011262603370610990504495435748268553456917047479780450744667944220741867155382744080239557502811477241131946678111698069584442190207064499575312648071414802602688306919134023633396808013708749376618090155639827536936456192428233098819755052330301898826124073023266846065879159796992069639770700747353748991284407535348312951678177545562890443942376797700887295277534248293881747589994534444189760528047316636974250475670635430368749079017580722087476005309892560337139824011377635558567798512832957683683448397784508367653330186547168918194171605385773336850570961656317010620393394491234392274925600572171962490434414448563017747516325048184879999751479169924540770846613207707172677514818040391069807028708427314016614206207852166092437190589202077761065975399805492983310965226203744553807780323872723720432554192509546038382713671861297506407733011224498107137492493179658057855961878756921947083783110917514747731476329985721460790053880087918199542303814697679485473010877827844127363740044885092575677342503425658131712467708187720012110593472563268643700830468856099926243285024865765703833175266783522685991893589620908675369900837258211286659534766839786465901636182186804309960253626952591585637308615666525259186275458037669207855443943226896646472226630724884039366053371040587110845123494679963180220292726447687542756116263728007334123110414875748839814862163028243387279904350916277324606497000929794144482542122406645080932824967285510645445372623562913096733710338022762393620240291201783471056765779564178939107125684288642375398253143407728537815188501937378389792015072733969801699446056675072710118930791442388154598550465358837809345498109229709047581522451599510348307102438146071424121433043861664123941127998102227376656198940529464282044622089584143527492084834978365986348161053628710854102527743034973289732047652066564480284728306284373843624318874686071425558423363889033153436004537578801884721576715875386139550015265962841613091694388874754523972523856111508648817867127515995722598611787339664066143483609840028250578246207920437897272219526875167404856010875788927289901044568154616815067297682165606498481264108407436536496954777578071705835110953881279017985318625227049928910865320006849990716292419606984427347391657467516179689442641458072964645620618427559650686134751333739473606306710622196752477513947684486960015420921646844008952479252625220389668823245924104561904811148408047223222907608275664013695840551955676017331353112176475860927024775518910742997030897811884450685954061319941891603328169830044898833192016545073459074414121744364483908101631296966208628934246404045109350170670425604436965307070370636142810132517371475946266657657395205791196785846473108066049180117706495108594320370885316840404216511184890861581746473837756468846530083570133304916785056182405759208756443590185451558567687640712368449821733933717689536031430342206029979858782402322300867984784358343678108941841192022681110680833384942499267284268308941305362892627037591146310077933890369696695835060429689129923247151600893403298847300996313203289922498711108077210116663678439236666903522007611495025627311465270444848540757824853459280441355658980688769939804889970504113786935731493280288551740034903904691504065346506001417465672772887873684109806814495944080274816696677304220052878870839887265050124906348627409540711565810026841643035122846052764577666459099685920831657700279312613971654119075741319939409384805098201005847142593931270758151251182475640049938668402942554742266446157285098883681066690569348338467975912820503135506262424421000172190058800809042381154387296842432488393415171472964637723341550041385892716769103043110461005255455812470147934983933658302786602254152710519754567388263007043108949616221360620633881683867476117380116772214096286545744274017954351966803293316622426432727993452193789953350105499056827134099729817772405567554301785508706494932654972535333757884736437789735043378596831859737026851273491385138780097248654099208089936157612725251204408447159987053013894414896308820940154746330384058202275718579564955607249167440765872624497665975611198031578521250716574793678248418544693756164102434617682079213910375465058795946725777374088018435828434437926006600697016638272496790363841117219810156761049536464036798959863886435648103613743777793891994665877976906439300200408936048299154875773561442239240549938184054329859153597282754457164882899713690340197273969288621272013372641875591138769621076250102880347008238471802953481374172569890555190948883112336513252733980511289486830391370874994259075248815732911613737306042258317241978899544213256250002702067376602720331160592782674380662752438733465085943722457934765185101467008898559640726271077502815208361961837108379209239457795004753730666638501190100986214610223337934145972569584264096666932762694834714818455277592402873007615756063149753753906727115611919446089144269558384808364152759708710497383879962169942045208695315405556977228290899504278375768017921507053603324021307724243122667655311159841563926750098237354765126298468228644068159363450271292780319862557645088900216080102430960013339727366578390116400951071637622209413578403283961319726602736168417353813523639121764371168526743586745231850076364535775672605573964946409938058749984668194408539717452218823876789546221955774200834062432170387564387756332937796627988514593568399210285562463894238405592961229193838028511744908926457483162571810416349796913599731857235734552840991540615922460749569810362304409909733009592236106886655044122874018274549423381591270495550282550051020976093080409178026883179326744758725101221607164702872347588066427252638607666712753352158110062035809777991451835966896154838914487058863316278949371522797457608178869079592112567749208145297032542153656005786250924782377066081299316194085733324342268697406101646769125244830965896301303122361531275661969557978907232199852589351011705847356286655607595555457055758793013714715218947797942022051427167869176973377655328774990527394933019921948605946640806370563089504227191158587748773454913440960587688774899213302096503630822469459553199385757675174585585387035464546032895576108704442273477984232596259137386063552195366291691977007809831788178112371398014354287814222789205122773662456771707311569092959597853045578748610399516724186460065519322863847867869098567973264504776563686506818587296658912161827048963399591713701412150223414451562462539094657808343436143492931711978229450531431161600981847634724054895936065183352283000538312747131424903662870926052417261931480223674999316793894787998480398996640847141566780750368530100313076289064568769992689789241920428110124397561117347516627232357877511288537795622951319350102049803933466073848716774693889892164582615876168499504795259588869344809867375916289345928220269227412218447640648770572564799339379126914465707133772706520255415235510757310396345503368158735684261205590429301052813770243502749044792000203232141563414588431831917621682318739543061193283276774993949111153876976873709449564437361041682674745409134505123408480663503594897280710606758899219267737486519874189962772124138650066595066366878205226921190384063459829393530378492453017845328877907595144555525203278746536365531199333020536232359113231813416600775374712234111377786954592569269473402695721966560047197997883286520278640377819653327668959803189120456059188587775189327944218706029479990361160925160431018357264785712568688565446111804283268204622117780200438055146940620358481462501463398555453840524821596070915440972871969125464868481521365620453315915389665118776602912277039378826085052931215437166801539282236982941822009876723862957561623094328052630419867049726847926160011851481551590674295634166497654123517588192042951099114548722810916732696573326762676348022662883728334755301499537765992720140986003982254023314489759843655535619233888819164865987763719042190806315791767187568875168838148548599001228960192043083149504537309240031191388787071148444947135602668493895986805918492265122808274490406039934960441745836680322042375868308805811398495222683499642093647721565654734331398884739131273798977571989835388212901146279713352180167706791751491121373165373127481417178179491400836936915754450956413356101996144115819420711981365541279264704226358407888461942007958099000877121306671350548556619348721929542469987876273363344864809935618718578135966380115791773932646114468022898155014803490801621889453607839176410045197510508178269543976302471659879844233681365031211770679517594206988667392019733183273378375098397448721489104685101887449588935152846200024430414623611960099534516731033061915520290949200432472287099304942083532437563083097272653098481160654298557604999425096230482132414655124965713009318549581975755706493143951238761966739992016620042167003308860405446853210785441085093387816259953873951051849916410433621460479514717033131985039364461105058883840025395402239408921998295231060447526518420534119910738918495769789124463197570530016440429279686745593487582895426298433009376725615247718589313222623476777309399122725746518361517480146939790232377551835570513133394091055768878664791266597263863235066597601054744284296338355600988453159689066369631766099024930386309501837814438152161620607934267137610476901931780422332371643251586575778192060479662183731327191070919530788651695216778904263443780981917476360511831139883857975853386505588822965724416599183669422168467447571395538827357808013430595477250133456405247954065697450466475973586234313369150632668442833879717989588024378701200092846868009085601100727845612629337384892558124149206000202011239792218318731374153551556977167723878509280166531598950471687103924318874707206231849053139117621998849636953066141312875027747475659764197863945237616804242636247572585848376686151138942308760945493589693294408037289968572255403881398123599247286537367233867573405721516748529528678453792090056143529515885572426036858365924438511211605886924819326447192424066285453592065625567559948990008363348953228921330677264596252117372377395209430114252740003503391672181959625736042718799691527498135442309583534071947377856773107080529982664843475583315308942251675045417016136911328551226817659166689929437676524762899386421351238996333351038784859858606001589451270868151033354110777008427277121095947869008623950540567927131224948563236240650014161767087942131221499183530324696348359885367012103900950832741008933148279799774629732471369700605230551001927533135537513148143114251043940225192125381602964768095266822161424117119734865267934560787229807122252299643478237291343834464235808648168576571386825797863858181045753969937695909040356843122550784225626065989299228150058788681316038057451689584102842952558921273642436408759234906526302795446487844884800558969852232463981045697788416580470136047633119400165144413649400805006523245135438568090871476907448488391338617217102829730882126875389580818390304904231552498249119282862037878172577549860380220034897030852603453091615430117143105498484806595061716279251469724589818577069261059179043599507097547438671216737950648907766044419184725330787666172929291953262271467902539484898067861597302067604870342882794834190639597783991428183669834245753157163695696373555612837313243460908863289172857653650696210624914949047945382058054327970057038666249410544113572987396573122333446272177623403710864456400587686682975623205756551924568985924555450888277050513609370056905016216105317290924253065745705778324133548570430625152187563601011117556287701666598968485118109138150125827850841292662359769281212494776318919631848313114748504495545020612517114088545887565770558066863059388967585404192394675224361450805050419968480547201357526846866169828499995636313500771014604900181860805272078965407975997027037127958979965871668535904698995482146449096768277210357942210369605664645496013384958684875165055637134828592490724695477052696224192719509590319399847841824996634109015808814066225206411955526253618345518996820206454875407844054113605154243554400511174268855121594217906262716193542542420039143614674633996409415903244125134126191132102037297958524351466977091155959117294226245984102215299272902307108908709813707245369508163584520653638271368161382731425686349400443559663177177406122586162483135549562843419095036256222900988320899411645543413499274592512013258290642238649634780667851428323625268570990744995627151170207552507660902720262718597383647500951340848639361475414451587724530160754197271204154412006299524773826293239454310838482202429376956449753286156006739745586063492410945815581710309724045252464442725171677692343108079164923235546115628749347075138492843273594687477930711479137202125221789804203698337121639736026539462553142900090174159161893936823844423708582154731318944438269530946635550771886163731053351834152060640425361836956852828452440249267574901270203005895600729284097299344818251612399614939109371017359781872182465980246131394681000133115402253123153273764433710565212716919771962260655503079115666152378094452977525947184566368993872107712603955426151048882634129721694827123920173402858626868598370162579307434625361952063926629510602167955442935538192366144151706221615879223336394326986114954494304817369104171399295714776802610046541202088410486310501680323377960691244710221473733651755749869145816828649231266729842154583895341048675964697503743128884172803002812315439873242831965745917657110300095830356974022823018248148312404364190244073236862274122399097016659590758941031184898903234594771685668177602230777380099867853929768385282227308822999419352943802585472372149385678386899662015483788424029286893769835555161187439472956485402113251912299264665110455745286703188751507702836085063056200250112927927949793067301130110230667073334379171626240059274877368814157322836683354775214612696890627294849429135682355901298755211773977018232543647142339797739238682693574102512211079427919051186234440918789454540359767157751588617827685342763598438090547569329535133613545209563834773350049196463156733199001488397703965844535147344490861030704921897023781750309752386972176742212171858128946142808383679772257205442810557385137684754535245786680661589343354160616598781163181773940239991309926330283528147376817654024528629548663775743684092517466204519127733911225065812780620161421504171917027870866854647434845471735601579605051446098313293668182332896114138242667631351525007816033287674405859518438378642401897729073117750346930640834647513268851741364844618416755962327930039251598152533740257278027729154336750346312672119283347311260265646965162436363633274639702110563028745953574545877989315612230936920613895735014375496150629351782127200969263239383229419504323151093909401181598264529794454036032049993927716781689124993054328559384761828927972873714346438924092517518776420589440575956292520313191336677127830385370427755436795892383807501973526790213993234592953244205366692813343019403157775875090649828754962509884007840232924401534647711007957479819073354233264214176663723427914007754278312078631346439249807225808944148354934815924901508739630371711112996730897550098887906223100140329433304431481067872490588211247391001451688003352557675345837317033527102090600293377606204255666764335774784128431520956130102489867064079641139914521567435080159793086666811123874450665106209582058847844378354492309865092159540606332574207110731448701670798710591400487141622449693720275861757124171782084386382973894510942545250255844048010787585286141973069063487687847361213368400631660991334687761339939999815007201504226316625658511422747256194926320031362506861315321678381090203633656248822118074938419556521834650275951673746857276427297246301638189360343826573040369320163692777428396531335629776219268002854512035303610186401763458644945211177053687384513588451152472139299110322515083362408881737861837745027318523884307709562317812222596528598010579154768115635981925395292320036598471772751178417956177397311944550795835514228520495729692061770048953321519308305105032739826718021668911505628488841638307564737891463295448533228474855640246835907496357167924207786501869251254751710983171643657980214695271018225312568453007492199723683491963861675975343046898703996099668815533306330478537038810923923887757359160856685422730644428822147817534833728865243840518939913348131920899002274926489368893159524978085694064689348772459917353736113693995600999497307139720494076151175296452023982198466376034994062407547307827209774475781559238340202241890764886956852267528064872425064708033751280264148993577572429428233033106974639977385083325314815723299928098815185303298955198618840096544059638102317954622292267410740853906300771549161228503702777830439788564059358834919388064851346228963868045331520548645437740465725666936304768462250002583114307093463187109347707963094190567320083581636049836047670978091655335830983550426796417587742334302143650214496565445800962345841231670813178785657203653685437846841981286309600054829843457942480604743179348019084772239172019880243387580122713965613934540977485497190022224063890205218138665172375894707533607766836115027911153653829188776766220256575313770515095614653790138478438403993109349881080427400717414727205279542779799084890289213807635077584347529918233988976983522398986648326370243565383105476581311447855364729354315532830063939527618952661368062308381839885688932348485007105864192456866894747380664926832936889203703678664491322365348908076988863459212710363172193002802215601595794656263011631990557425660770734242332579016029762904246947810156531060766954212274473042990343671444489465727945073722452984936018620194997076592068414371293715068370981310482164805934042890102172885757999682356689954296814589884336630036200024343840937744544948890487509635439962150168650894756617886141432513099036450396034348475221067286498279633934030676508408153557388857213090599170202374299697957524250806470821267458427533354720385647480458661322907188496753061496050756211435416096582908119841454046305816745262455106672657404441118149296980795064935737696220355113095465283168520589439062008599000430879565245600986877219594191362081051971689044700353764594059667866153157381986159730545696186822365272346751342925485351177956107898817178053921603785594713828609204885859568932235493694593560142405127157837989804844743121791720847280159472707608696721084595746394270866174987647828562162081389595991170148687919498772373658429827195816811006312243525767415668046304600207436517447762655948073232983538857441330778908101988901988273794861821804947072112681773223083756033181051196201745782456922345058531048560663791960031666893702433213197425955705485765579065387299676703342514720045215634321113109431912373394356533737241860909018652546233377440065998054687333217259741992407095390717985655834964401527591636473538690272073324953138017242373529383339801931006896689077531612933078907361447350040462800943955457588142539382631760642631883518159971760987090677833827656451430293353761788887977905989448483899429974766054249543215790326796300743432168333831779418985540222759062732880706691728001219368168367489259061218792449996483992231549664743203645465595464929853154601678290304947778764328696998302848398089570440308741808135879235283255529117661478308335490983559437867271224117329784018496221685674073369714477019185464820069035004993454706901298915534872893285135637609314624773771061439829794069110818675486173745978015093769996522666750023611900324138057147021182010785851907294757387126542604077533362688732205146323579882427710761482299041123508908749872574159957166056061948629362286543270331938596873441183022344144616818673476626177789238253611301233218067281379707045555929450247896370299433835153274073412042791799139344624113508728302224640319142838131687738255405545693370859329964820407386683540709843598690815877287172234631813732841248111746573058625563805170663175256186564304925095940041890488224729214223737697624516490153637367680897808296334692705158937271758654202166214031009692006899759348876878023793196688179240677657065465859630086642704661973479192356808190959654115397319880963711778095232466748175799116315408775453272304018059996030898329967319813187057807327163000476869668847131396572813964144576593835919939516848564086248332184224262631034561297765522305784092577633080358931500416276506581600918098074991548272416451699891536761633049856046971950236677984292453719640042105503242771352966066324452616176366911835403667286358960027484241408255523659014817607292466586089093321675199061195109131715570211993268703723702402813820959808909084102664804448815789451394561233468145625943904810480825381726656646199133016572374932033847245038519092721801879833669813800609390095196950493929259354879654278903663027892129376126329611891851543216439322444003742831503281896717124218642435993860903236378253211637407304141406817293113992485556342782813657572135495534932807316674833578551361766730362639477506936847891618970054166455040682967824819470469119197304166291526091193873575804863405327656026423214018883658800063144444938066499025046871598760446264434496670704224195116994034697140065753608537618194336046368554379985997751859484452001549242960053109641679946974456559808794564034671774496388390815460576491803184885220293695271795683077301423388890553314725114049308834410919298543316340704181331256686517752719784246228395961401896614130677055464446478163460529964880597578971169692809239759914292649034567685314884230615479084709022987687691615473537208425870784827519850074303297293032526099715428176353422677706678380513242559214518899668931219991573662070018701220089024774843296769608947582687877291421096087275512245178321745793344675139239844981026592959918859738665377974572734791076843607370639033476017917720166884725240394909402499138556725331971204760579174822020891157578145145738733167500069740316744243209848016840209551762426454207605132260677500717481168745193980222648793694553508164935461000527089144261729685960317386596456754063090657512222441879385025169319542023036146919438825220495992405516729180711695308610083794955609209675578877625321293445673580801473916573044504727500522340488800700284157005164489648565744641107198918398574529948671528637624575454242439567536177005706482013662211553200399414988866768530739137371708630063509412522113886712055892867889131212754952023359928391703292740626650431162086385518161407127596008893173923237591257305618947367132773273961149402914530383908467168352966308773776473399556094139893997103576747938095832578822730909655475529230589794944074862407828563171672451770395643577767038512547070630222052420532347291402379935495857806840039054087830355393231432140156931674766551849970003595818310496730497193640200016302165452138082739381032308470712289780467197151678600589700669988761146495166373892004332254641000877954465041504629680418862669824192642338878782763766093387575893706428133972235598754146610504401855551875180236815722848309866006553034391580571211036595004581358715073867535254327342088314858152483194421735899850083085427116688455474568411757468034686041126182526986880107579612266538301085184021391408772559748857004483769582124490131973197737071383609377425359415260855218934019739164804972174772753216487928904895522561013170924399321021702695262513143752415474145382846938502416156934907713693022013834736334556825726874477498181267826485171075920001936432716049525191462468407535867053613722465297474433481510099573002130930448302851323972761208861676782018514492363104316297155066192011081908461728062803263424168237214930136410152793018906115369481689415826230157509358578587855107308188616042351312907487354318239084418810779136768352110131050883246637275534315060205439652895500566142769173884966279226492715368700463421399975683257473806232048497745912894940387132245877430932903261957947522510948614619481367313071089054270022724906013720225594623009107266123700445852103968855538792598161327080369150512405253713260152361912097264252967703620405193028087859128940944129883011701436490035523815784222149463683816287303717334921353182602295042082332351898310535423381594450808150475454669939565850905565192117698900461113618146006429162629940608591464280162483806365635940870686622219668580935826200551141225737051177781384277122211133972118222811056253671140388951514256762254028167009500871459345456636648152276001961534906169165586033582483684939311424856580937644698153044725720431903914325954203582873128142373407303903601880765273716546060959096736712958423293319412519647538009920627732114112373487434746200068529434455754216687957343612474133473833004219662088018562802128473497954904751464033344725939335960555881610115294926842987955451108427321765827994953980371087416003237047220275391710936847312430342085581385559655682297224041329166949671403450335619655062535520240847391143355766417349172516462043263597476709777168350509794755477200772423523390281363149959837081721058952341339122876651006332102299243382612592513890309505221033799972877467460285595330439029007003344791843022286381458980161916107011856783997647638439449247773639559365216246485239573361903270978337087515041903312597484687712023771240616378522052028858268465163169023064498619412734816606465842023882565120010913333986078190042905112731043991946805830936214765068351504808059245515713371020991130419650641480634618192574575597953271690267399145604904822445567165394252061362295356571641692836612807030568288379806368328998344463200944757038889119351763996088824803938730407052349974138874804932338519187166786745685888085231666404012975466437159963589614542246406292324640465801422404207054795277604583807335717014893181453991001524829529664739978419470449282311623947369891939517981244274827198520407173812723701872427382904856263298027834053223391968640842948656638850131510799953677483847921277526233155347854337504057420932016028670182873142123847186027812961819013775627145640625086635151033530159638262034762128599623365315364849612103261389283422860187341706360421290986545340321070979509315503163935767761716234421342180504448307598788232633752896467873453777975097678652735229532012437028351008026374136360527421537412733508764807822666047017759852313049935164357568997434279263168545540230864401304541720479810579038102612353027085748577047654931993680875754680206283562999165844416945208150918234239507153484563015320159036692356729939257812839061382061375718881613766552151750952017326068821212196211377933583033334749246288382531429822562417897510594051584031209617481515010965534983294994027152123519942042947366257509916102155469486948541951823015027103107384436442943483944624035261040874729291816148276477849270266221653543703249103711146530913712428743777406534599461770672872575482883480805613369500387954924922804891555276403327988288783216384410054345020411664770009042401738888685944697819155957585260999756836092855967770212859596644997978172160307360681256608953679864229402260324818436051350715776060695044714164176289009340926884540754839201943294400662329162359505661472841184364167836765899493019208076014555395542732454735980294338699011327624016844393659662220602581921832494544660796110094214186655018822402763260784183696216022840231262848877132669079262828928007493402843695502591371952606353574795549219912890684914831175390059779036660180434190975300461298764601330654043728556711302696684790034995850477272093441103811174971109378453457535581912504884571458098979504705613878830743611614706749822818819362663409979011606117488996885438936797585730000692566716685219973195874448827400086682592830968153138596992970649585274987614454846930597366687245763888111213695567074746102723374134222834095235300708200337228189327820811642513247694944176412756777152269241987198940897138617489559503996574449972737295117960307622564993022897276095923251448263540136284574172652225344110584413194415908228640735397987864235312216469024410052481503543659568536742298885170564627508901145340060188050182416732050853644305167998379738504239610381041709146022085405011056008247802112425344585474500744683288915109967096180760254579014304782727462283588844705484486274955263864795548927978116290233220436668180960764542867692652737719914887588797261594156489042101650334535344407224109537254851299415323918875420947098005421228589313389998051093750709838391797937153659889846921193071534841910109033924516801352096324569817160888168917123633506827277794695001655039624774193906535056889875522918618023802094128637090643659621579688618228476115384842668721241264336902767055682476238358014581670148777923957945453912200952389954913604154707236990376376145304269221669453892767812951239024125408512650058353750881771222425864713350968928649892152413325110598473593385120916477570278104604986640260855799534891452006959258547540543795788084997173831213189443793306249582217153292641664362661956647103422877294632804260988547435482825062844234269578550170800173805708754757574936195285642508951081964828488596860317267944634690926952668721204170801180035380338774196815847158509779744250277473126573565367045825735410030487658351967088181000362351166688339686488740905065175368468230705219525396568244062322812894003238949229703165289106970007631840093579990384639498957077179153844127386638485416781245190444980155362689585569554587411261087426854263967864887454584400423520817655528395600755973058179713382148371109525623107296227569841927378478862865429394422378821009801756208426462962255815189667444570175466379606441421766695051891878001783380150311076154658493155912855825494550815253413024779869189475417431188977759796863170817059469034242631411161583358553233238956367861958671330988394343460798753621435831907336405837945469795304974254051091681558830486502660349237268338724750425723889916377655968377033402687882049472585994288657728204877759811556922408294715394139233371010381244126650202130750708157478827043536882796970717690264443341742752793657239378539361599221471580535869235948686323266865888545263756894561393392232694361991365320877112542599084561138034119508098669434060630556693113027956414495362390993806763370003120954486147489561810251353519579274182778720791243509507930119745300748050120711064433684006653970492792165961485158281488840112432646902319670592041606613477978899506494089787641074818846015304522870079622776833294010054607841389931539151848182843481472462830663813006028868282031567997642084286616226366898325544063569289390384101428496454982489144641412699273569274351878348602516928312656702687733055547478239411505440056915756784239248153267287551416738821794473539572356743956677862110281686987537146650238273265551373183416690111485462643360085633728791293646752661970315557134059167321235002262216526974151997404078946861803847738874851327495192034097863009878566374952604716114659995898059424532269306061513081512204964159144166721577480921335576189850400460931150334191000288194112597174268183078162231370819649514889748701712127984526028592411599876607129153904682884330864188511789239498533585298524235369615573110907980721229530726928818581591216076986538062622428732876919911629908775985358098794977527255138791580447217597028394554910059709402560652041297056831653514358086907323110009649194966553442246965229869241225441217957159132283915544364816254139169823735414091634085028291855944762221233475169505715907716946306319820674373522311140508056654929183035528369239814822377996186009695298107713200020145844354969294058298738450634558202655569804410721706275624226800727118506350273514786072494558538037209582974815138936012249363959880602364680425226546742683994607810861311939263748789298811036669338602179581069856976485213753589584460821290799402667557038563945631851602565584073495581558529510390085127946895267542912491575453277547260783231796221635806149192248803892078857053562235305562884143315204024389933247864173053727030215625937164640964015934044838109979620328363704170889693958047900853064297321074900942139559054319344511168876964138366808275166306612540232238595021726977213062572275907379700517487719650389791091263989011087287587362725694264162875327323363511961691826659816103751648217941031177433878330162723890572675417006704797957144829511551301733429998344285343139975846254179776104802883128681695544659499029243148226353091321376295910687553759817101772624648843500142914471629231065664146656740740184655413107669920604113503942834587548194157142813601354675834266441740595626050891193837898843809801430580847294945504436701633062741442263543585554550955358658989749644411749844847111231552822901534798736477515768851007375425036977338865088721792187032269719008830461517951281531618851893012796760159391178340714144267393814011690591839791881138217881445106402090890836104559307594320727622321921679992093432906227348840815868234355046308345002563604082457901974465506351026317363235497105806808602210149919327139218136024879834824523400351026817049545579977593437798134720121466126904388098277811369871408833071098203185168660417731341592824323642729184016026183488001004420667788331983039135306685957821495302032107763829105712011119503872489610402688340981132130865532519302734802418641088911079494303959143556958613828761261484742399249913787616832028903396003553555046550980831378982995504918518123495483828914814175171994179220340977858396610752233805973195863013128064829793500797562084458838187975675842293636032911718280401983132869587833970435651145619074687311800016521558153067151143505750302126125581374524269352186542012231633813804284508431854410036553651039594501087255464398811567205520507716561495203019616349677670008864919782925124221303911466729850467990593527156228882200871656278193132748779530685228294939590924456035463990903913940309207000475771101961529683071054108972507504506140625711452236842079949392738677194733975193691042527157216768553984515386458727535091290147294992206504768345930410176581358010145088375534252333399578513167649151075878656857736267482909965981920075888967938990744852684913875108191101558409137303227967061832708928010238295529099852264271313026196423909539091600359123694655141530132509261280911583228350010065468092550138064545528162656349534012291190616535120122037137355361030284185720239340086687770103813671474658419464188018782028447964052488285006695033531657644038777124342455162205337794521286402989886629478775959023278891543774852954551759289047988731836554504531292243681452146107197269299218992069899957529121164418323972649863053319439538739443567770319250145698243887543627400724720168056513999357813981255577411161745690029781493962693712480581438577454908606391820206802237602857146054285486188284166304328648036882959490453508279282962751259766815400086180093579986210749491554676820575923812018640412847566979573675787468305179352614014895540349636513729047700318132577872524628682047136974681814990877063859413891845893359429053918890121127768686764589050696400420141332539972688568387692460860555577622472124884827524251702924316812462978989333180769870408368590235211443880944764903743009657774758815579814835796585839298665791519767022167188819974851832670814592658458885508124945883175229721382924158372060515445911682744917478622911461380593839714073302389686355681820401809198802752186492641460603294449076339668023444020323722661327654220560096083120856634949954388875369043206052614116881531817504843940887446991131873538503446410142286476714591580327448433316289403038417312666227667736392991298751524963139144884836743757497769484268982370477528211703806622797798083877511037349113610304137335693821761349358776284174999363080162346933295034498092180954920824063340205806186234973102904373762172947839415442583606420321556465212844214444775429312213317114014209601664515725887676355326453771119016504512748798074561224590493185461092629050252424237219314755892882335251356311895536425161214054176434558738494271661864964996916785604148402500452464646427820441896821350354660433714775524026931045874558327518014117617821778158371036717827145598224239767466114690325534886737274141440508311734981389763943277039085121963552548525639099737680098524779726439089538627808148374063951887572950663023519326396623684597023821082403543744559401762528844445254821025867211789160728189157441764736755029110578348323167950531974041183480863136720950862638820913492698585509170668798038929794776352760586614357542994817302896462027337893929453587731460257896078313141012086347959292439342604216748768010468186081114660072803008805419135659594181520337310371757181806653803968467024110124459802460359480259456439951988437933245815913444894251810218435561556715023367430621034009595438578447424661449480398145273817491536615203835054447966422495243838050385485137232508372587474538383345268989971961685897124422550157805784073274231593544809961944352042180198347522568177369950243716821319243788011782183234943021224197849582829791993553566491500092915654236157058007574371636646479485794154684088856469243697742867333868047037943932329379127120406061930365953602734780806709851290958283148396039263079813859911275811494172932083701635283631183092964921797439408718335012530373935600760201130452216390938119613490512784207054292567625448594595428100786230455661681693823616205318941338589528913461776885822746867047845152505903437254069796066573452506573384535761432673644230163928718054943159402599555668606458479422247229376522919400927718360872115049859971507674788325494445733686792088138774326798882557548080011381275935271435400094811365381810798893534207554210678931934754559839271199550705617125598338152540872735321469220136948965371072575211937157417885931796551066365963702183817780333898115262321880568602968372939697586790261201120763201397749536099747810909926422896199752927951888587088699025781714064728162304622303468631946044663889614270496141272968818215178722287565680913630284861353277872523181014033652125092378004394117739753722889658067780338595342296565919447001807859806497385818946116223948383022294559540608091875077018020700443271189367209267393271837216735386824894878108865426433502637394122624724135751880505872081219387817635151832437899186200641590320303823835756230577483198234963687920829215761035790298037430836036351883859808529911182718647352312651148142719235199268643314912262685839201981411234240261805557286169702271066299296691274501190894007913070785846259159384199031404375754855963865781769859819941238224172281352071357925316343580108415718372440107787439444784545824190156340815448556490634893956792288902858401065504762375115290065326326044489392624352384149191951617117300323406693003674127051295085208806521977602316158846594293963685422334489537380611862390413506668043264226401653008961676701629208599535508474086305218293488889560137360624730689538394851681413437626809853948158094780023653165966786309139922352353932691204246881109662348731012175065206955932052213317875100385467220824833836959243271793664649113175164101197897508767082041884937762366978224863965180191696112470279879279851827351428487520758119492021510948077242548044241656803972392548228545143926884702582342874452942207145224543108144840779821375677302939005727977669111165232038862988287926114212847022164262651705227441525365460906028420020099195161773312298013531511457214287353227489738776748543528099766534334958101579350884166576373043678818715131366815891210992397444099893840080531736767082365005381741193570612208979417051566366226827999063245187624866384277906847083351229873736962252741711716769312020508181797985791939985236744094242834159471145794051750729186234992661502185038882986695886872977379476106880452495381643354526524141551421813619017979626730095648373017620793034928797740050847998984904326802647068201996098038452250098799657424910564771772505538343670907439822207221248421401892540739337325807813033632751184443100492122827769858365693678702695871595770952644089773772884489902003623597013803815480259863174562641235785722885332950830326373247497515089549613251831057515859625114607101797048667681713720235953653167390416249808985207455704456268418549435808179794747591266488032448015163828898984732660053779633396610767026777230330836440688749939556072352647982056184898614355896204736637584743881859891687429516191844294681919363894698046058538083652079625957071525303874573783897752558171150764121711373028089021400221851519466733134416243355435252115725142381812038563963163937492856600423626691424911151405706177067759036341432893549667618409091282748819223121496260514089252515098666357243392264469576787893959952489403042745473221952272927417371921991030835076916216586941482127681286280400312279581495570414588433865433255920688290059194493920199402069062497385164076616036808062884076555185867117390421237407065884225282647986745681341899946259515340437995297104840361025040185469536415613953683126313416629496943613380579422886016334185420181274693613264376289773376329578543139108354303187402002560026384507744128639147239212680426321495107424954979995696754962860051534633123686973323797419684636966753855145277373425473532657665051477958136539368325370511714565777636038487454043464720866354603525970977999671958218662146053084232001472109460691460607290826454414941332887421116269100970065897788451537310191736300121774175635852799493603883799677217961919867029453764224873107229281134858050094087009662025093646025667263204110040735436059032544473552057892451827625118779669398820357655201192971265844411254861454095472766840661529770713185139630901440917912072047378750226660654471019331904459199115234046943074147797345728214020211373373484708325030088161561269453293574335151158620924281996585075547044292473742453014791872834265205024717921540105522489266906897604349204665884220192993068460035940951959987977145277207652031148725877232520370150404372466452577459836928581675419774746591537388135133648049578011344480606115384507860308867470751558327764064726339959826899078733330556851827710160051711148695025275516041501424667806467686519350963738554894768971162486103279098267630598522851691946355535889632893940076828740955250032931953692744491437043536536817796270242628275448134511865625037208891138496513603503223581705474357032612398938414058865587207370767558448701097193012141089672100859529353672730968700489027731845492203720774899834860215358988936692840456519046029457868476052303643306838722792160871362704024688805437388622732764848952255614739000855215082426435340758018752807869266785167614543559438662763127427051077110308453174783037269605030911100680111329500041131765834784258148089311407277000487771442361363074072991761966621085200338230883420247430139718850605610225605328518473314793601244123029873764811384907809832265282807073483052158094944638020857668286221626660698368618155385295676825926870394703255398822973610599383421003775247540659569819363357343845518202450423912177304785801331633305035563340353085124001411200209291551693886704814054281548654551116605351828602702478488372002083070425228069235993050773493332383392159406307115816640690806880978346139639813473203357013461044573714860286363811075480206092523391197708411414902616254937847925052759474878813580355556599826050485485724685881529335702360332059098035499304621772808129486415838913731317467568150756532933274199196532782934934060805450294334846428385445955979029228635271998728018987694521690607734633646885452416628231622903009880123413547862329574924606856256099205588391323796727950364500643218735255421182377954201144964613090497459351717196889997528418116138921792104202004173712170110859739914935809772644546600439553701473420096039908116508919631105241928841267437488119971393202738544662366692202567369548966786759599369397295376991419604908407771755169689773387325538692655960952919331192489184527988663611382961593735120370346200364541727290548230537482290760744290182543547445954174203541689135398403140493025990916129515590922328639331200662694303408504177160970512699766417402063597717093825646620387562436931846401332837712149536973316030553026609557284912827534833930347153571341628315627793819097303047602552405705798142318325298384758318456201486289515496339566048386075906061721134819440370689296645988759521737604223374694646612801195712334676618287667043657790878108620224326629862188104675896114280845510583845265111368353696239318777604769950345358030235771602279162855527972511603388028315199593304854531092357336474105531412404093995117137852041182369976055448798631980504249320928435462737604480549898940174301107393403803386178081911100595104000343808640962019416937943010935750266790653824533234858060631821751907738449090802992772189597295716595006992828101691603934290377304015342310648449662449109862401652334377548107539345850181033439450826821250076490185917489609666518446863427988070095578380733553749512750682809887215855449049887797625119834808181042495694308875495666226590891218988455533936639241454827369435338078021323096259074841592042500430459530740723097685028905816064956228019279931264268208896553891552541624087066535142067411079856016743487702915684718240102053323300473161846123225580322264726171765792221822094693811157874766017763506132601557510681453936971230439307171569286058004984516250877024476208687236723438013921160844648135179427219946028831558264048209808348589345970880321722328168399273673396765327138420877168146223112498864613177850539287860542226711830643225038969052839405134323000300072329580302137279419739905556884462405704970411470948486806758735619732387121255847306707890906930343614495969687667690740430712931940579458103929514739513580216863254251607125027288871009850684959112265870445944240045255576683716956148247094207634160850589688720185091886253889328219042018068417319603696875296839364898554620766056929839380526130022889023655249622901400636200126699887696507853770805595597900800306368331899233416364114696460377756261213608204011946867755699499107269301403414307857887913481341180571302739862963564529125578989102073148627971732441632752202248833018097868958768638015413416967648249343818708611926506822939712593477446892749252857301659358023459126430246600334025456259630238366242619780073009172320166891811260480840938178347180761016613861824088980076974554118214800196559571325312991804711340862786303804670839295353447754755170883628904484657627292716669685084353514338249696784605013934738417670721966636820867809693183762258076808501610314683442613431671983260652569933173297014540025257473853152509850742904341102983022154503478265058273943910904051611939027685540485772618026037805155347226399602700563352209899649528007282520037855599740913430993252047904603756398843080371024949514428598328722007961986488908615833061247300057325293022958245326780631971224668472036444556065098260647278098861503822113961564873045722988872289609422149614130374492376870369986641184114487250456268874971866142692801584521722964873585337429728070094245444194078576304822262760770619840299546528133816959003792946924085848459796206473697614516740266829854303551287045723421153868152569679546272962117702050380689777541818028546581223158994441270964277827540153640212559843495767908572692166545236992505865023009352381595114172111174831912979040477156681203999627412306701660043831316511721647657131367097891549552545236039428076315176237992358078024827204337622246502373349267498166171331651473284948983618197444646399873319765443320653792058241924776421375959098541288354971052612953713791974533307480004069294815834878109738700585214719973966403695598247198603785569424630521396543754530900171574557865746186053349278555240142731878927201652497710948350070099854389842122051554426364344322613763002822886202426384991435024014105473046509471061056498269066604752350455025384323321854573831290462213386770990296209742632502164489065491140507297486905401964601109108665751322320876345251840362727589969518005087113634688943111300520670495503740125995316419459183339187405178729643380020638658828620992509628138272078921577139202661459201062936309322693053275084818228681630646084588713391862000051937180666937025702299016012463735614818536015391860886639335232719717540247607535408410200406344189579170408322103451984349033555967257048036897361333091078890028826092444682362205540078807917589393201970157726929998339138449230254784799739314087767251427029115724703848809952090749846373798049842194108176766733290171261546926119077295515219975690025948100567126411327458738400923045892987860717991510208334327846922335620467053954041420818990878654124923087410411610124230565402831303085059622250969635606613061783407953750630490766965019931137797664956275227178049378303726197688565708261750566243569366836006138543513189495375818723432164335867379844004189895701423022953642213953686304995773719669921734606495416927469091068257141820716465482357090300568856675643916556666080603756538595206253358719504926873883055044472618756067603617293188303029123868073730600904761657806038954479813353762527746879165772795671002594427603251939642456196345845682812510614807211529808861872146589872744693068748287999508620508353581170390035904201444421611760383409822126094782578209953946370623085722515942011511538452866678391759626674444233865672714332318792067976869620868273046554019025055940644551181905351685031788147143616838827712817245848096033224252630013043317795785135858273247574371402203151542301944165592700275444593252964309057586009756200000833030304191363894449416532187459212614502018394409746561744772861521117134194829120083933437003935446962906711115724410823424295041483308325363048680500871901390468233790826927081827981556604375719953651038741665591781367573008562377852717194992062207696539003457640305931465884848737022437544410414595796532886746210625578207908640608820183452554526117487299548261446228725383957202008577222943805837145720248778716469191271110568650437022545862877778006791663998937847303006039849741980462997845708552415795901570068829796332152026148009014266341270833945232105628430923697573051959887164987418994459422824594485562608058975913273703591628340970705184803784582568631488148261979365991175590173756953817220919229650240883446240152014113755912788776841075835524106780093782376075537267682874903663521245687460899240976362748828099881622652559759420162062732567273859895772639182936294912455274863488370624913178166245890568231975340367792174184384429599783099713904810339052683135436855129629902231325410419809912930386778119297331803654431486719206059256020708391319040663090981192262636703221241843461728070088292411299686518297463833335959754116210664341412203595548773388275130935384535864668089549286371494795035299916610987027950728101312779416867073382352661756769206556832500011931404502494781800924099151527751554814722276667897172218186900405639102547697729865317845900967852058032616532740800467166692877487926326691192005941656934624312792649206581194434300649517152864200929484148622525630002432853542632023451091301951584220429811003223211453329813518117511507201679286488656066939690622839865534166947201688618550415684179059127421615180861323323535444594071416644882540805000559878983661073894151667591924397007667860584674814698466608640020453322829528941634362102769435304939905706310749079403495629026979137263311224400076227024178497445858596570536375596550226764282263886170049531259870746831571428583410391155231702968903486664325228470933991337276750060797709742858721267162717710666142323488773409676420784479456975458568164641250299747190706449379709437496736246077193171313816272989199002310213519996279055954082851015925811914601110185697354739738612747315312135903687753517512351868393362775080932421950067401701782789433254136696219273667615897056753610587093680048001718768433436615123414041959879161841827964532286720773945032826471407877800026818263152739570029960213013278734105961872718618179117622720560685901199190008942024220244637678842658962537083232965401978788460946946097987177227506511782257198968459347935947885381699019193184663069618869042949454989353099255551062138947740895098797329231046642035636732236687187496269817706527692621102031861087848941459768138284393560100838247607659683753671110895265275669855372301049719697053618843083306747847761084428082727195250445933670544357992811130695380527251613704908442995118856812908505096147821074298175204966887891145366270163320190574237986535752079457807539210906231734451076460924230267792818943220125045848559561354934510145380224324841521884685657550883842045858124993660190410822866960215699709472253836827753318419767744910323569820783500149856125785141261750004596232830728654528192661181322803438086601148163717217702550713270096560819242850280847177006176304996858127432175999348050704717878412318394245269901200502591053083557411967929466366537698406932705593888822329688973050169306957826619895613844067112042876520661472329852891424378087074054907134586195836470631321094722028727694992000133798976243082235171482132894292150504004289156825659207150630955118247625933539434124508737908820936821324064892382838197439076617925298956733962099161948018506057035960518524842527184018254632441698652315907653218982716441020787265135063948630755849178766549959866347398804117224956514585039417623050993678210070745629227646832551492641946945185261356470182234556822827171296097751201517634220732217631187532267298699885074799677978731303260087526719139323448124698994042340724405418178759637506638290941476694550162869882818205890991038730745662535820992011169103529152142057132938420345739264036254615413447925332052098269410248131341664888930830715591473247987286315592985119727290094771010263138323432329135209274475174882417938773846123496095514288835137642810386618227210062702424426319283946737358350982137601952805105076698581817952065451321210467142273243092614143752420099478711786281769534854625594378370663756267328356078329924339261031788353397778494624816300264977872539560829417757153572452222092587799484848754236440184994312740051139851412730965167434383175571568792004498366142054154197210426556406372708934805560342730270493568861641898852188194049265611357199458387940196793571793643624587239432327723486561221635157169030340888575430000076626816647077932397228349831243872052907154802931714288276565841751557997074348604269012368982967464754575170192595665083508110569215727197481951829944304680420875705402119015062366608011736164618725230418614173602667216758975571282144502179504948954214203893681673760347105652161005827404726514199324869295457887062074157109321899890879658137538053900085753267069189674132569500017375371938964481907993963280321360414096355354177094141283449229496917542583429100719240228254795962127448507307870625666663044339909851124720141189263398003755719448835818869556676788332924556520930486235362395674268145843422845390890764195908742365643151574041230123732680583840346178096390712830551036526410517936590957820321860971751097772147626563133305947746235243107063868252810545517606178271119115136960888740672046253349743963724775556722219525985784313672478487142735546182099384127988159980579607603111243479058272332948536589496912500958331929089321437251321464898990162779365962518347425334788228520356567209268251659131287988323803400436681905083360165503983116216948474946148526637914888543674294888411100452331603792384900874162835735746565618402011684366854390302948794282649841355306573592498468020235141369659438421314021722409286835999897420930715307138780221270394405310676177039221980592729690249818944812527398754779311615652258073495377029459959189255276912919295465545299175768138982008633275631200048644742476563700459822247393403424190479906527693396299971131137067267339031268691601865955672753016552770494726987792950864221378747308362857272124963009110496760478798021493929500027722559532577728483042663275339294524451912534962229059296961692086922479503087569014113949715310185854271138877804520001948334001578371312378561633694469269253152573039055255079575623635028262926202746086501273245335150786791563617031876953337912158776039217587652969824552336972407782191199430198559826814836047793031310684463678545672713822187851761604751653823222294326536169275213871749128899508269290093379285969533636909927758732945164561047797117273240334113359654571285234642226624086283177560781505064572465690670797733144914098898644989323961081345686551578980201932092191881016822679244771592312398012491555571597236886612725446044720228827520921776670565300254735721505761306205657590361865041642159585552575148310827336045840961108343701331105284677774529574801049085144896977729506584469574891261086723775979807410308147665217896728620232873847012207924247441266913911466867453476776731697559064297104864178421406011350281519944506208799526344305022520794685214307699700645948218410990384641260464246309208030162408283970564881166681941694026280784577541264306011828763290253857694356749648097218210771254819169942914622566458148300228251333168124076410714496980049569594270167986857163756941923128760015487496351571862840387199853545835271831615766998575261979481874901223176918092887507749101146625476007650135773870427943764724940009984618581575357578689566670639379484748973994935579542601600596994878145285942916066539445655957128298315982181671139330712046330387889680232317920785542869445868899516349499485791584456174963341062253180562119372519473216783250852154292562121167543822826643401028824756488974523520438947493927916225269615857157712663882400573013016430655275708410862433024369847989446087464367697902972980852742613997760469839031309779678621709679433783199982063995705148993973824037124133115020537782271775275377575161563004021991184842151320818668521181117593894867221800725520720474334901339649482657127823960858377022608996352293436289973368899006911297017047292837607172509211496201640379889493261641393287626771402820821126022128617232881801002511672081411377642453323334768738204735985653156904067626596306189151284340403482580061229694578449734507119312415016106450311499848454166267797874052136579872646117689109752887175396803937686239116568378183983747464225787467852861461764486825094371663506149615453980106006784166644819842140355559671946008767601801470013604849157188873531936249852694548629797373999943081368761144845252139585155504733843075103659665851251427804989023784381010380409607752472603254957897915344046280633180599470145571325509995350450516482291731069570960016419765712608297732203254247097588615876654565456786759382782921364218361262875213251709494972733171647201471269592353372249002191195095643481257956790970822495837560639081954489352963329540769830864253142829840284772103659597610320374704281242945060254483385439778335127283266785494888606449835189350885247732798528620098395016248358467968516457409588181527212061100699252024238691908613792354055797301070187129583790323457395258210127758715029958643274474464010010538292135189851356702346403830145119086546381900218079737280437700410283932149707117651825336725794962290019785236577817674216840843518787076686031716004253865067299077738000502332330483151287407502356831514098523712025611804283002068278961826325522202387244485008229269974631288261626964665261515486566601005572763330935264354599404843425783506221205457579240855669187184411394450158583755909026456412632272518848983661756291122202601786743920325321545226754992597628777004625087212700834921340531926266946013736518362886397186523594531609110938693801140666181758069405080493348137426800501663612671347627304823174166587351183955993803923418131120937751806983681678542591838125382313800178766596073928960813677063206162016639302942808640637647348535613722943113401126909448999416368803398363391079178181493029752666773105214268595066535120378774615863959847780366352152950316428272507169054379216007148051370656694874245966761785559916988344436767933378482676371507040685475524523562944936041809470949502830478062641937328532973734717181897551367823732858623054510277862954215233372780601037415299001640961172476601685051132415977799564496650387830391248487687798433029036483081200472656488004367777576443460068738140451427250631872267761278355407206791344278187661012658056748133790256555055165082258941901226181574677003997858837155639363416347712214187270721584433214371835257917992763581656351556500291062637111093398839323269292382856957780831847354378032987484656008888891825672086090769141156800368721969830986954427127258919286676580457734695394099982373221894966524608241912897278660844105536732798301413493152785524733988478078589951685696475304844172877479623215352563342247484331308675787232034870553860294842806739501850932855583812955732749523794158359335825971209780644975165072829875388516765563435011332446935311519753926690387355991273638388479780395345196249964012089248813305484215677884864958659463243532727107625614857901100122596790557573681850653220670800348352586438659096963370905727249144450766496481496291926537057503081276212455452303852921550914122846512863428505943187903462655560959444678435932220981859922127208590459987945572662983611727670695842041352835207318727233251856199239628985988993283444504500459426309455234046659067335696019681410228993967998263412374769056568122863964086798284326663526000696036248524728108819885539973400581711860836773417805196033640195558236451127353190548926541967939368394812986605079454820659706492604571829949815038719122348699884014783260551317404375479476184565918566683131853655029601274854111231942004788847897928217205237413469422968136181977924566596935895685135481764300519259441133753758897401850229504823617717835964877441731135851393384975425739079669376122546812180782576906151787271984471754398995035154278872494571823168466620466866310523226199302810770828285054086916766017820387616312653362952778430275740222159904727339195335526915551352701433910778101873539554282722601118685883912721441640625473708733434212511421624943120362816650943059244351179915669194946793233572928697539402176343339764692924625930283938681871753519020578706634305838046660706240556488331625602110727674129142509848601971604072753530677573325078457785651306596403505097352468167924200615492327798624525577994398479143022407309626116394286460542573352052661003057889739039549741349276122554021262195696113161870808712682797174934988253031978750775494659044455343879834433479525508057707470834295142581534291445582689024763214152348958604953924366334489585515141031215225789836740809150562597861176216581877489029325418349039868526179031227572575336923057202817869752826418234520402319279758372163706840756387977632480632248882957165449994951499924955410959420264449437491204941474482708827062576405872813991084496145195060721266463809461777774956850472239737898881710291131667015986051000878153422910642256228865862188787867469734265460862097034262124562690905559940548861220501465279536255400341968183781323344671907728986006420503631739218285418983551050473932627333214603123811133795018550577782467460754167686704757428401713592349615854442681207156107155935968555584822751099217589707662616829143404333278016017952745751316392100572540473218203119039490449591310323395926328071969663038282408264866199927945050000928414053994295330450576530366313148161087394525385385744961497308465037454159670682683437111498853065466121300169456521052385012976637740221341893267397515753174053859739599684977671102392911243857639969085813170982069628372347206807725011499388488250688011796892906798022466363574063065912321079767710836186282080902501781291417001454868577794724714860170732690923029626699324495358432379167750061369147856735680075990962122810766967373089074134693333402135328530310896640396166546573249215456652614232063824887449909115444857465536415644262067829325109988800270734812349244068509059581567281042896087117397402640146233008583432706198056102691522955119273765528193942247329203588331625815347625350570087547578394120874202792339670551745510138804251327872242796290319401468933395170245312842877351869907710567086487433785326824871046732749494146830297144042980172107632105400235833308245416508541630583843614651215695279410580168327340927116178158387184870992758455848102197570980624064586167186858105573558894996025215266120176575216554084830431093525977015456754920261040157138477569208627271723140454125790971043424409479440000764521955984573445356646251075110908582705327957997934138978081611666237300410754615781450381023872790611728017786817098220843239190064285226068668486661706581825322714314225803883922571203836096208101736841669530459517415408381632523714959509513151659273214413056325244165121564287830263692899556720359332719723595135222102176576981797443549591588695556084898545050904376695338093670188302913672511663311635435170286661193685608053427026180276921161696167280421453101241131149215390317874931640958799662062918186761678858878088666392710217200468161226993152260444396947361412455057498236061148086446454506299725293122503760442935386310886246533415833399890169927180251931902187584021883269850669326367845464266591083047962073763604506952542180146117819043350919514757412947296923161434125384459454592731781094557563838039689482591560348628363782992214414567834834260966539990555278352714439633403558951415064315045799464894935038288424483574019870763490115220610782850247579141936874364491309494121415875245958481515833532703853606258674789282321599530678344655514620434167875930059320480014584286742657676309582883952410803585506518230077859141099844271770789741095164294788350052434754437682748234222949065848854810583216484821457736439666362241898119014128738257605953098604008837298772430165596703028341421596149060454523499444491417561579011493548517631937103728161704444506569184538401738977621009646927594240372382832827850863504308139100054449904446122630542245969750437676163329579524388909287120097884810105808579281525207798543945892155416693884023216617393623362870400484596294569250504755775087341367446699748151890927510591712125620903749864604376660662273258158818648495921202812872828945630557444220180864297015027402556581624741686048537323858255372847129393718613523891457753147622196656217016136136101074121800629925266220074886222394481397153399061153178825828295760444654718552270331459198324735277411244348842806277887583356949430987722230080659122493438669896783749701993212879156963774678606884720476416770788800052678472843116581689936649659923669486366420254628489723484867422897401877196719101104817232598016111102673458405772781750489106684127561564931008610674900433249782151207087309336484589221331973602256474243719546498749819079800768358654145647550289278022566846467372535981804825519429546723713359600843423753831917702190143630631696884121272234297088837971963967886099597089267522511451681564684810354260690107738626149713441104478366765224961885001328141063684279086707629361903206555249332238258791065680166281418882538003896631711423225816070191879796930690334095969852181442418707767911068181668180641289807227299548680817899376234733221990974837137610381597645174589030084724913780257241250497398604816890364759523501913393829986818670679646659084982540384503984354611216877100313108548170287391649231287302283266341496628273357386231611596031535663225380482103702384716012080869627871166790078021321808729861406102302676240910906053038673381912422701078062693517968088381672618691981576344844534827160519527977889505241103151740046681530214997351635979286480215619619456441963772148663894297349540252250941089794419479742991512484124382705466064744948488151572319144615326477345857525465566958500048271676126277926066958168605865845319501089217845757472811792276000356974849234568354818181963023350429924819414170335932787488140836817557897396153628751506649739710952437472480759927974125328045235244830464593061834569355736525203470454546747423434472139912865307365929392639767041241112542040380931070337801207037007579981988310718376789516777426818182723392519714494353746916936334420069274672088327937948000234534918597228351067231334899973762243827625998915636221575720090305710991534291412800154119410685353730016151650306266010877048571318136838583275707659180979193462259264423656216120036853866235869929020664721747689785949378893608912693246188934492202331965559444712907574288025122185742078715077001966018729480311989195746012830587224529318595508197096193243681241184293424817041642752029748153902585648432022671454891851715164240017569670116531547644682428528032137260890868080165100641243909628943321594695313056239555267850287850876874297860993152215853327766543257963939997069904180935155880711850318634251976319257942993046019409947561765825877879300171033685672121869754810179256908434539547987628370545591731136785187493098025788053363029239922938267835171765665780995265474512696964304246514251507486254573090744206431023405504431838967027536193453315136336073075596645396675818753305781986856545808251310761418827242278359714727673130258686198709834255027402527086597008908279852835534995923480386502850859543350863071653075859340381151145950484987782800385939269567875162976151082275537510560378900066175835819310787472756836531908597690963890261850832980746887586942428004905677225258630162262645949918606264170258339308690210043105241819617109452511045103074710128884312893784528880726963410198454311748044365887169975373141662506675072964682417751456482147845233574003867561171317771191313902041784269834034553318397735602699360457980149105018350597966638643676038885820748812096108778336659452438693248205509262632161837247515084522194059981339620439118145576523118443060252673426753194821092717307632017514424612852881366418668558883741753324046936269447315406029465808548969762762761837137390337773134559827007718048264895945041866763429516612362736248833579570048020030332081443653675850191966693904255532411494211291549161951145522811521990847823371504084721643333910554031710311704235554989633980187640396838152399696873619846376381381330669239890398210964310591531626045392672431782510796822620201916712537291844722408880159524062415448078636539300355913068531721731367196806197877374976737857568192132759075752738179114563736332305336921017703370721811635941889706144406888389111652883381818723997141111947088058969046410437322151056862787928535658557921923249575916924663613606670884045161566233157100537926655858647833494285491513103251527395119136399130515361418444614183560637968313960028163228760389371050227616868385867988346362547836338771542834522535363924851710204622105662916385070859189212881797717854000699587263708329564974953962474859410750615871846456259237316078969120460496857856227362471800198376988375390229976391935142532538772107538626398484129476352923335795718594104194032803186402573970455343304132609273585597648906196158968237297269118861173788305559347362969519730313020383442119260294871832190061108383492848458350411876009772310606209301941803221340876669692878159389584895942871382061029121573822696351660648842329446887298680524442137232343821519463637566701536130282659358979222743870461707942267283703246735863824442956675014210970976343264058593259431401272545983287743708826019296412562364938739093161523537648140509208668263565811187358032371864550909138880186308218991497259608187199369503865437876996244389242833898331268904067215998891027919676663564983687250427387640692190041578307205591774815572911446789228261056747019354653873397876460117585359647028384320264076091418315348723205266503365963132437182816276241592452277726054563934331424487434296862149705176926020926275347912205188244754996481285200100698184907517635010331091107794001395884656548497101133414889181007355258773400310287845107400809479099305383611918522966006123816570386116057311633247787369112093462823403036940889182884229782647499780469996811781653738794931407073630280756138830277635517357920015113277164705984288047055437756156182567518066812233098903423720774058253628651646347294764149991091005495441382198460851932400834378443778460866784784158265543511547547930860272666575164992897132539259985942084609676735574712717851948135639349026910013259252267243654565770687998529674912359073880074725573018115242275252677191899335466150920679785832786901566230416178464930459801643866021602402605985955864570259941211653559704825833603049166617857312468624204704102172963399827865541386923571247356413401009645106410446132232884085327771285317135182109658700229393921389967689251184392997123859761114034291680576462934931925628414844713034656000468106819482287701494508254168980125984833966562822529828985258441014321339921977281345654508794028012737330969833471574493353083114673221697091582625203620294307139300938435733830940769624119083856066542747942300883860583914033113014008568248147993400212424221297265116820396333856856153157763417010243997324510853656379357441456480535910522889934987916492252873128493820558187769305800607511558983589253179718068137042314397606286475046068036678170487684711104847417326635277826942831619989739108277762893854621304486751991314903691046482301602450355780611596683974359080292943303131210134253080718442933377534418695504117524033596048271928316689087064283825231251005375642002545101562314080774985143907385545408372119378997768637474534004195192584293031523989093314624554486287774190765742859913446950087361925423504978919788346271197956807937165883557548974767565058220092656597749415235515796304401402819280222414117537675489793039724440148152680614038764814386998633554839037170146321699513521386583755486931180375218149665604790611859814014865849128792293986322259644250915339461370996354888289100299942901146773304916785509881240858579058497636594450583621937654767061205227740484232932280745463467848465965713211480733068756670493129947585971623852623429440792186948706161172129250572473519157159748968223920575774586621422215157473018727546042983825787567099309521643031557083212052447925911563562202509944871235337602937992764044868908894171966905338708535951895673207709451257606643438773572017485250175816645822963202094218310868986456765825165041214377987896832559390120810379882064176190142083511868482557521466379515514805387301418882536694171114019934224070102525664238820339071115829594535322885482309330338418753515224183405409886100964411834172370410584011143159529306130676971742792129824146145389836475525221174380797427459824126154081044406663055129927901362635582317314741602165220168930212056199458704943346991108784270343340738907235859271309835932548344002722966964630461236155869949440390671243126312556014446367938488502749825891252248053919425097947752017145946649144244222418877982695582288927069247209928836375551489782323527597608350095927617059780577342559561211749261087430591957486130014557651196857909046862097630250141494895733890469851811618036112500607599993582261960413177914936212897412324137406099594653435446636416612153022587669994931966570651907434390673459729185753154597902565888626742492215734399450375933794257686514046524513253470637597312295856479673179589898094026560122149966961173915097512662085306142412590079986873089021401805567770025956541595702260171489590592195649501166701880931335835579845988417396293187931086565501167804405386154705742107135136858700410535343784200082169986360999800384973565489705569497697131867695203790822022261432102691058688486244776774214408438849031573983465330279443931576023302208766859716145629362235413276973676709903010781115765179960347850651316431012645509209526969239308841178334251271758962070569690393212550863507346737690150348366151606395720954297264324678806793080878412947654168755098388953842303269495141498027510098410794297409060164416280455464544985594694147156525921118829822525331395426802391645067134237211709213630846643081862631373932939346561331432920208796999790999340283269563639721748019318863476742897348411266819007380057774558206697477596418600354215262680462041622041789276215753194835274617013561491171784106876966126481303870618374062943520367179478485464106891041740947458411021150059653009376436051592561153031689302054547444702268379101343710532653212169020802792393475809493252574092195629090206605599383825610990635873400043948490924280336381431366025725802989446856208722639197223765550537318888528691783972441933084847904092752254132730471046351012098298197564957112708232622815678918344541475850439359645601474959324915725507687398324209324661256691341664874834059421555458199763188806106058122210345723450031332892541915683947493329458730510801943514015517169273622277964611206106771951783219896981163563894746609199944123340149093708612477099517263553383803500469147011247296278126307189591279149308638796999860469767615835487969677812482343825632980025294756030017523687756797579735197412294820649711939258566759899384422519631156667742241399387848597100064402670749871268758603776676033699375392022021301623088186575359662455603792323075212478056237871670440777887472748076008494130449552228380074704037454880898897953973938875056900848620912300065181356650785092736462679513796975906365374261634959460334588710434910422775323121544805387281472089848445303567474135041398186245777238702544178719256991280342063977369015919763182194965584158101297673562210712771159115113898844987212112930103774390008358368769840067026796682164137664386853725224142092887803657293769654061077028813152673684187385976878113197962147475213744498300140511180070763876490436689979569572082756812951758256388730111004167310430766142798119267870021696821996634864849116913690361846894869120042482984898198101304639659833072848961218521686776418355030124119575097364987516545243703300462840977234725841479374453762456503552684045147430282924724037234799243863692266064703322328251554165532898573240753810892738202904740208599077347824874206316680569192457112967932328873962247513815911476482071982297412263515553194440302176236074600012841798795677088211328325711264936194025227502384004865188009928824537119951021879762641974793356954045206777552040305863555633075051999487316710675064386908297675989878746018425515295303481158066117020402903437095304556536601087932454951717145684602823717640281196879193147739951823930016096417870427257632869682058862276050354108254447020398310425499104584806003904284762012061977635683138112846058256541035647550495544025969034956695485835508366171876861971803861652448758778745836334651962526121492253633126227743143908347292381303764226412949757127544700261584302371977277399475341385627495315114223567877158185626371619100071378244240366299282439724930231113380540266798604951618628821830087970769695385853749293418403849984394294863400580350597236621698076366345709697553679928787709615289578115055767869989390354452383725992329433447314036286913247652572202753916906793252522123861509152369010928813529318481763368211937561790183931534675493402204636780293090659237130435883627035848801556106083191572096377326912700399810910931764931422732699098981650332551992443323373528649216541844282317024940028189498584544404322150379676797818599551520608792902404247317632666419389046426923490325589053758705609599788462406920580596405959489689750037586110296058588974609950505659756566070387910003479604257091996745451705736755686241068773478510254949466321284695279878349472189750101114412428822448964993732669571661686203162438402217450015362983153070840730351811515939495135757675495289176081757860631476350599731858640824485110422757219857682941478571230282880413140597050598679648357143599662539335896094479313592177938615274051680797664759832462441672450000068603920343433433204380749779606177576701729474372360247228411142419384135196317843376957667506459740501770430798047493797700776366002313743082869205818400626840384276982808422055179474015190472339579652345431177187821617432433592633640547099385450116075127855642820976552748401214746419391525698803474830617646472017248811688909618021907377010220810932776672422084192447342910580327920052995657090391603514909210070519484751960506396446863542438395183672557253207059846039612608523189939368983269304490509140614901201399298486118696672685579080197631895891263868335704290637616710386854373107237285578492600990713163849387569724124398643372484754846957180352191286986880955984716312966841911748264972812998984523646092197127438275650891976957040973316706984355163700704623784927567307091113940506557346912881528799485512998957387386049020991164143851050772136108390233055378003905041318948280421961025315696983748817174858456939734322740778924204318539696000641366567428000712498319672908191186918673871240039661280523902772748669217508802742677209884485589121948296138299034028301952009834182265998127040871728146105249799731269872082672224234793362987601868224463270701301794552914311070846808510811423323760795274972101914900071445661042039739321251257553945109235465213952773444463892684082367937266459561616731955985131896018496957405150787508934962854524037993417046415758436628881069960220938503858802962199643226168810027265881095804255532244991894280125048053921646437420324385904190774467467973381071475479979938241531812529363624157722214290964180123334938678735959319812779565808143075558169612175779697113751654021695582391796972371171678026769331201452475043109984644169427800480356931425862496127019661469545744833988896161974758927102568816260963812056562130309255324904651425458656810134415647047998879708367743416386968320367279468986914002313993682490503415612040068494692689400461456707924345900557728341125198483712580437144860450859047990670343812490430109622307080984516918147601702583420666150987157443204567178692583493078219583764195296751011453651033077068839790364354144131669747455597323136473048750744677964039580512802725793903823460356699423822893937100551681253426805214584094041753172848624694619682884959347251020552633633665242668723955126140168108431166813088093543114623910828255266948490906900169540893536284157789009972644996838034076552268345307904260429024167873674333000732246088155085447746781417513499616668440793524708280820540552970816534018936219293675027567678891784799728386321730886661632075785276671683731848446812149179795178918198894653407482791314741031758851835311586618364082808473130331344732268647883173113616965587926894268328209135067445595894473386749969966439765344654436420243644844709894633038516285953473852859218191175632963506426662906898672986561055074038996887427645834533097501397955706917794901891347441572821838234145420305997950373420825188912088221180817185642969573810782192172561813960857379774191440035449068974344702947673216781064065995985141067920618531421663608514841248643816180435901454115890700598073107365073370268437787546038384078694581336394611638570945755113071560330855537429305285872505190500782689800982966926714733639967342665674910756996445904993371582524664615935287554291532271826573885741607753072982090029695856681899219635750709392761002217621842266505255044331603727664941426681738876596762223961841818209228127555471937614403542765063381612242877739727558966434388544033746929912294979537228692579065793493580648505900163060623030875624776024581827983431911237751430176114763082261270131369932880825375154816654905417982911851934075228835408430622709642755342013684983006078198826167504062170429663785784042620131229106717870623566198678867661312535314374379320499119537049757963156896456370359242093801261837619862017801361405117695331235932053113566451593687689712361007563142096012348056751254408300731199979983256867685172840834172579061317478991606329478385172812139687140338430677691463661500953532022608532657621993902903524731659756299963140552708606087075430625983285635547132654651360055217713542768972850615206944961102930301294636983729113768671326927849169894279444570452729507575233514888801517252245052528127579807861108577166377920518658448572328357535675207254379923626516243594506672154680979622877167552018179026536967292275728282843885766463886464107972248339397683613068742551872826667457848230280066599680090697273846655735045348028163225322715446559271688346431489367310616286393783555038391722651400436665228490336629280260506729383712718773035420537158410377644566823395700801688121430313357294491671256606788795250378428754925447359604368861337117758704681072724752204037938226392331999845907191846543704665181523621419531103083112148740392214029498686542240476934874917765155873232848109941366901336342486395505131028171870937324073408862666183100948292925750269376757123021304717316277484106220776577735483049225421738333189961626905810224617064847571169678289967239846233004157540609019663280864190401469683965283799322178486512994765699808023917755172385187862816913321347698678810344982104710925612214203955984841946218511833182354981491108238176339170684642717512181615588076796217022448478900545209835123318793713363682742627704316988856727942090716985951249536462408626310358675003877416640729757760680143669332195982869919125444606695464327260219481424043249513877796837414894523189344050878794981570650989269153830930982385990819310732770513438748396861861742633986604615053859447959636958312431731250612899319868704858781290454850564737935745838010441678201981182210227008837085103357718401491588881691279948884358538325349024284319345811502051625284803686240791515503969680374965575120003220662247182427265859843449718649097103134405876486367577271835076559256624261691905291189695608759573981698325332254029378886733929363928250175112070383043923582172945355610585405020246563215952754566984712349353634781473773011908501311142459592750888389811329911968069553801837870431833185879678053294818101608203335141850956267067409696971527754053932933893169364382217385578881101203560303031949567658364213831638593811055280728345928039424432150887810403790502615911042049063906249949273366636116409785129431837791992989650560855569844490643176959678413879431259458677842431446763106846488007397803124273973144649674297757686681411863068659170307181612346657011874037844573277795646994121097445080809878154660054427050027268520686042156213694089343491551804084194656801966329611702213453627924371761692102588556521314912581018309714253805619165511371346680061541006938896366762392137180316841727411555616684392051029436317964223893342711849313794986022307704047864524005872654416276923998004840903118780988117974847175227548557697466923707816198659568459149085936214274107313479804945134077655251307072377122197611608556332785472056056838104551007336353967058920120650238179384009758062326005012759902145552628013151706914090786788262670378251162224921396820118847568436389612909460443232697118996457325828707504369940635683999410504255117955475037697308061609373338482249310649326756534873009318449442161672222760024796755412439099861904971038861140754176732309696164990528061795225446212033712355542229560452685619768788582414050253881417019542827037586534849232749221051829710632172196469932717868671787514798668306832332619869608721234587350227666788826570989864795561728302095503338494523999658737675809465502743909738149900780148985790422817710926287738651561783059471486720454985058598882736746268323237227452512859545220238981422439198869982274118423803048094409856437771397380905521888802647343183564292872300363857707053413539459199392288197988608021954980166868009874247524562584622211820150532877027743113761482282225566796040133560745679581802158963622545324855391635753234604319865861963271917863132245982385276734664996725142477043338299436349381433895652320226255719131036021336254463184214595840279769019570014978529903010050002829128127671532972014891557861950956065901395966399308232867748654069235074952724806125875754321640378958118066649519254371182628145573700364952432251047788606674295284519863842972613457441580413057612634318748663444777813047260284531796219557629156587604354110332728863746057062431225352213332174670970994581059916527150006111960121033911952316122572852057787903096415354321574151511238214977176854536166615779294666338982835379428956213867256915929675361164432176178873202356564574501751425557341799412506559632212289159620012235966408298917515481649129028267908812332683420708073512491738208987672996532583865196609884560170668787297479618053804793480152191397162110403695624075034538863329394299497334797575281308339000694103910699519116073132247857612702204103672379852409709808305166653097102569070289232891559103157564760390768916009171902095586913099547952201865791551338246847305724455111012947465744343584228653074832420037267606846012171839588810095378960853003675993026274414219318328879096558787606941717811238398586815319485996415642689487532606651371103825670150636569067923653867796397814958791283396210538533857017358774394585968000340790667451130628391146413710170997580368330801381249567131955630960126467653985898972430235574316582440215055256611579939817273207931917594964643155556374891656045482696050431502629723614148998936974886979656250304747060118952947083953119986522425561041094738179427022632455286350424076296399136158761152308286623300179026340323683694448236684684574508866033795607203136510555554237544390351740871259799342433837384953323276966295673416391716676932102832625417241456486745895229048771970030550403032997864290439263351251116661618803779771845741602678321193655972203814080286750855985389156544573270922720867702621354189744852078114214128031126516298602519145604043592803097578385401683053878174357868959900593008186057327992312852266012793034433096427647434495792997902935181233303770584071831988165477574666593592114714475351331875224400258300260792874319444425935343977884701894019539044919443818303735872246753964076265809557673234401619017983315568145286447132731421908126753887451655547611307984976616356653859483104388961284005308977211763568549748571501677676527611102856711169055231073295333186400035247143743465120515858434092199872545925144658646310148017143888120901680843021633105552322590849619449601798969845766936730313326555668666259136889422868447615998160723620666593773408440362960863931149931355751227660115858848940407238199878844990116821907299932943266581402635187616242429895657195256825850029183446734688338300376875384311809162370780241983360950510988949202755586775887515229066520230482436777488063030763230733408128740665654176147712489479746102636306935690132332791105123307982493068640290143281682507442634025248098678800492318546794954316580927637883757913214398359344379835037018082503150571440312513486215637768643281855718879534785282251882736655778127859288820799313802310260693058925210455599944767565121123737640036125132510097048346940721055270575987387987711659249037411870353372362631066336568356657497397854162255883070334135927443927670317866043790823935492404802768587028774460743095025347888690291134965752567842028615298197143561934010489631521968711681234920294956112744484996295444011611103974686676533139082169888319615977886641084082591590031213903966321503050611275055674510080754690741936715387188143789958742765196653471689647108564436234878855632712663402373731123160967982603809857194192725996578321959949278270726093602993849966533155908626251701351644784979618912353466763726270353400006287041629035521341680505932433092819928344866201023093660214360405927494324649200130616542618123527622228308623053092859239210012690144807114242225193660291330658876770671954823359739684998099937179678739142979522136186895499646882450985149352948644509443282572632313869959181428992984285649777500862865986641007659201311709634286209181122719859137283257912237305016952976633649338939215284702794248592262981697711345044250836468099160035711173092675639749718012624447536750720519977913196518189843297871527570027679093274798749049855853688807165495473306677091531570614919409468489153147696840675385454700268299567370747317576431379997676231530339586116090676000608867017780074639150144541620689378053249236777055646374538296669279578322002064681433196566824066910088825252849278995782623198582848769972316550245798180138502754123807514156968339873011760235639408696296305387869837489280961029499606317416075583410404870409927724826036883724361928951700899440326704722706261570120575279754141958720138376058292009687273055427119724481278315997105351836839896179030293822618472613000331828428025089248951865864331647510404583731519655789208487423909759064990997295099544138881439477369807496364567126056399160058389648744005386518976166538662635769005626663692223013241005073650584300136504713101367728567328214048963327958669096890018269292313448726996093230242956725588468481479765504296928062617091352448349742949594901008809461031624160549691853362433420300688308435999256650944283277711407307625293364707548628001668649703625245829227108790234987225729984749007204097597440253991290002729595306811235808291816159448963087693179084174678224418622142354069248607481531098618643492573103831329417584661771556207767547763579984678311253110975449820808972142966499636524472106870464990090870076784776775697597828372635640670631954057128923062031939622918998347796823857815944948493852638725971811076995527833612554044804896756212381089710177552158839694969763903443419907223142463648879361941241577552875715850908738821202046274713752933648883985783211761164664787685105126896740813900109870677895967556399593901001691886052548779386399500778391792819335766402068925508058164111851028616009364208091725915653661179180772911001914917093921148118193941032732998811239581233387644094170399610532511928375629552252063059887729532138075170109874676481828223333432140456365617596735987461966159877258157510802808816648382231074144994680815352616322195583954064937087820031595633869123758979903311909235697406048782383248389102942510822204897281775902723233638924705141728721558372754595054375273247680955361943307495890808453823818377300282751895728653646480356050049330914976139837035945079323209764103600976970612412879220142385759119002567598264123526812110779876021150857104587620361889792730148773314902986132243706321594007207083707155532113647326585405494769184279991798125577357590820063478917231116214655860212457106725010979046513827172523563800214528097504088369838471128986503336821454940037442527918352560677419251540313689746247775782562014506642267084542625993460856365040806787826639911597499203427627147046536600616816243398735247649765613073989838636659477703262145762383406969802563938325397966425851904811988996581635815544986611213489313377349199765680727870955025903101439330280758445621832424225939777951061299318784126057790562613790832514292187214084438435556071316328716462611556387189817781392510811860969287544301441231669168160209158291119345054953834629685323176241457670474686206251209143805519803617853902522716334294948228499963464202590121744384949676257735143641324768064139817741014246610265132411701774029947190035357471572334753945641979781773200678905509070380452691877584224879605386932539911970086091618342871543172037469511691823679929337047528705318286770021535634112118423150228606989396991300357217735707333778443937723333151682720752655464564295068686120451765752448459191161468852516245173148916675667915530968042742956679535920289607797341094986505478196390599692542716550756493296737209345704859604222801325362787957284612137431444508185727044542687378149702150343444647444917617842481225248618568370402744435871993935875899816816738665373554553348494570891388079150035965884372092236412326845319459384643755879068874089281188198657696603114859327339255550035698049668990875716974559970346968117647158047690019467832145752340040099489558033652503316137427044378753269242354351439622823878563491774223739395942421371225208090677960382445380708506656994266013216771541947972592436569714632210595122317799778192185641694048274633340814694241772136617272539808611589702334145322739307637789766954382991189894389687455767425102905347040256296837765758020078002609025198540620831496856713264374726764151250701535494458286241297700854519273567507534884946499087887106303448949117281565286556668772823855955817432388200582777903351992299910340305728704801753396511897750153344170853865440925832595289695720696180364702848027912436432002616270875358345664371600144536035464386596551663456414053400365053349162031562376616389426489431350886767813667049375900405541661533988230060734035693188701639794105488169529068589434208663044525903126694945917722409730891568766996921096035305089413860481763424396484966836358254591311149119077999421249708724858901384412388300426324762073708535377876177286735824441688833352987598025905712489497162199632126202978130125959987734232400340984132823323428470935665558242406537905646120737512990598010462321119258575673642655044621573261415944280349289480571290461289357133124478754027298329568884558549293504110829088181659347376928087896565312948432720569015722351169589360167198604523100985121803908290531334962448012656979624880158283839028738458986477828912803433917013210597374889921609242646429914271059478901194280641759887704665508018394311472570941424512904954819793106812808366002938931335541322329236185257433639015918695418226835107456777937088947321732898834589142864137990554204029242893187977229587197370382572151157493767846878023620788866429860484745532992815766910704857111376399865524858165419575139691874468545060591867756425144931802406724774723879647647932529190069669615177585274137303000061760545698719901223327272763416121828622569284300004419239846320315990766582989553500299376730783955249433118643255833627144217325786723376996785625720968186684867603318257564266568927351774507083379985968830042619182347414060806742176315418188674491706497780627508060523669908886821461440699357444585959275240380246958840506177013838291132595103545609812843504569491684274593270789176556982022447900534349840527254464072721965786047833832045802003213442392647509019929128371464268856137395423546191466956824142436552387824904804275361374118054223394943574836677676839473772479618083751230228435752949941925525633970909733195388549949031312492469176381843160852882750808599346257070652530316951995872441042791281632990046802316853120141375738347494266994875267745889572623532316957836418927893710496913863875815412538295273635687478298405237327553131103012839865954621874432893178010205656227628403528085591385256416281443913219848049418686418627002250525839009591291832803051251383323825685237767539801139606379826251710981387229425505567471425650882252825660287873694435570845067715152493800479389412360924999138030820211584044520725234800803231629581454133762225228125377739743256282937542221139865434813186220012878342907524995695207800181733174104840227966753904118292346897067313014466358620473129762693813241964695409877453906011491848403230081807741905391943848378148324420106424714751022073896230883910017724582293591712931740763350594330022890697419005120351607722895202489951541384477681923907310884547499968845755216190028491789617395328081095923287913948360068205417543357018334175661192123003902552659565204836686855927170076870848449927424495211313704111161344698798803149869016378987991444019388376162054511714302281665666276169375690799999692371059552578711960531013490301399405939174600457465619903234094489752679526259388971804150361958221986103225773574097907560131789088720212188063305971151074114378827234817545949365970451376200304557806133863284646762283766563344128592601833130739080520232225465330710983040093392837842321442501173326370088046953539939332347894647746761150792172023746871123080454623367334364378592314253761753147993794533616089167324092860775958254503819060379789110267001352862021560726700130024810874782785172627575278207216544756329771312773282831598125311374936389728165596627900601266466240338004162579065371571614705864274021009799427357848344821655181332559997414939607964143483090047087458885809175782598586239018081912540243036026547740285667769258919815036379592974073372444879022924326455458445075955468841911537908983217439843977973299798374951994903396621933250923795056513627653299699180367345946056134977715502070334432476968562609357048539168665851331938253513489014250097652782132775254139710207749843526162521177969168921801783029548554498972086875752715329513950986241630731084512634556501809218256214748139080538098654817455828670565561884885287451288872605300615859434001038225512190030443576469402962118194986197701470202752007216224384260331106115123437305106111343527004200723800680534419859772291121357306775471179574667877176113940263180898770530010922256498473486835887064162289875036064528134144782054197355094432956883201694580773368341120246659297355396600299140063964532761305024001997765411831945020092344253650336265111788489359582653399528114332566559883450736575272201329833429055242155090600545229886388278028248743839943913382777950403395877403822829020926701120362029564284691541566428743768941986737104121444258160381338241800488292049192183337550910144034314234698513079498441546812492060448048704838693296146240113707550334786737210430733798137740942179999293081648159565600693637821249995431602337156783143876687767082989338494136992048129205412515530454621115296903857875359277063388953218506896538910174954718933070087832477223838663521013120765993765652179706260952713650161991865233058388641666622698676088038607805102027958927766820789112879647993997853297017890021476548533334665891910847412498636377333744247174109257891413027558626374874042850798347640303060406977729837809786560387290961351185631946630271401150972683647624665896880778638486337330472775822165139850156138455581408032636012378364779782217378988106982116854111928483727183354795199090508125296121907701205735601206474413496500169658337512757178892429519223242387846576273432511043193032607296853135044853804610917434912439260084278469668955492009773281855467982500546862501888705967731499799495372949054789887362742921571372772434446002693747411065918129390163449931216099266324470960343732838535657137388982066580354142025651673140227797033647290330255804605965620210779772911893243533713086573996210441860082472515108767836428191921469308782714255558036511577869709527999322432813279016127100404938439546603192037703425688390219886093534735095439763872848423528962068275475024861148615457100270086213804144753491184386953660900534364740875292914283306043453471653427495086461004882575955848936764501773411317657935009347759143495001547970188831731991777245147279610849144265795997100729692250236350061198115869519029052996539041905048789959052550323275965852784495768621667355363247539970819928896411212163893114993854038870187472261865165772921399065998524508475994546500304450765590242934882179191481099640479923222994639682326343786602688647788087933972181051978406550971527315370294481706683471438572228147984320829992032072245892020103508875164176365212383865220474988385626265203218777152971791381523554120536521744599126206937340713517743848350037576489264887546915900364534560057983524713100489884218840627297322741503994891706253281054650520436454630114813534171846572542392043052261030813159703629996955314604711928442962932098371053137243655834250779687272094119474774657756262050476694877859985118235366317636021399182256864361749820310511460280996249257849654312281488784575786685390410394626701047080418582417834569115878493098071062239787821085899182312937563053538321692280462663295229755251776340115742347605637591097691531779260861063348239197729095271304632285624378867427833956589087749861266256594404534695348874717817448238744445314459033465612693154320402166126278662699030772973299489675886262005948869610132429876048151271027483492542613602087351560301042369243274535210056050638521516219458663237327740800391287536159576082925082361827704030765499950847673985284982780547917242425767112704998795883994976938427470977519842603835973322771435262127556474922820352409556943072579336892631489141756793810710220509645230235159295070668228184612637460954446452398317121259798383370745527387858031670301845198507526566948797489586673052549134317784953849149529536887934225461002881728890283587266309831558662463090492733633533656796012947432512149910413946998200276302217335935086353947553254922066944828417342648065218337157634937863594667663085977460725716869485404251582012745755274626257964353901265645769321588829848075482239077413776785795614096236671636336131633497687561000536974344586428216001569736584186906935033373309419406714430079852562330262065279077163850976068647731559144354643698565259200725451817237999352082511315004433901599050251073925105159875593448212298389075423208386755244640512213176370130877980551877645184739015560332226949856436714963678029850379772520420000096516277796346147133529497215197462276552585131438530759346536033661251003289441012248486484234741859584405343523593488440272873312441453342796950022388943609944381505818731446795686362127215702097788676989314679999060983990217579055352188376612507876780532642853015303016928542225626965157894155528694757731888409806407616531978078064079338303831116677543790562776698588910651897732136795335953147435753694959101476877366455804891257883015094252925720767851177815867110832207712013605518665716368275195455081468872610370994728859960640599837594752991825768242303160534575635863850141510436803274180243888058567198212552914056404391743203107601083398992346695198720288699451404135007624825079963315218304177857496390186930160620707131538076634788323962006726526675074603376679016298668237076971998617519399029344292890815891123619270315169291266654854573290127113007904374955081133786325248580356531826945068184003428736722282275779171484356393437303460735201936113000555150371820429743006368670131468955237109148980403806153719171560177383536572085888211520141510400524953586948095121763863656919775004807461721359115704991734989399839201297286972388516478849711827385797118864847577261424805423411934990564231735699954705926956600500942642568391549225747310812949174780308608923324960663036521015170139071065782030324211314013702273555084479871703302626287155192996534121234153170326481124859141347317218109729833274297866991043819073058446573785884570167254815703574782396732960597346217708159627570177503247412966526594102840751944875574691555193681180010810850516141784767156092915786274004596384930463589796172203316021051916716160400902943445487906092051002340877958719637550537460109232217034624133996699008155812255502260710735906249041624369040241058153194034631009416737595044867513720136668672293824233691704052396316842127811479089444791250729245746061072090082345881403391359064595623619617055468608946519428342082079356683345119479743768751709807361425483721464442998146905262378421445857654703074517258228298493798460489858840587675656678170883960854988907967050777811444585064957390520069738167404212485399739705131383797525677579642252930148841543568070626918743115783091000633710757801607792250741390645483232767521995655937970520480962424732667647666473140776263746830513072958387076170050170016856659828118807295169737564406407775531018037575235900052061833437579619334064392771773395864430045413019542550411633129458675001380123643092287038045470450056476142856670778291642173841176087808097333186604390659111232916998761483606827103007448527533257245058610560139125576951344362417990970596707714465323811137968796762315725264659221564345747636553559174228662138963133094917202642350332840678913544064446752330185783037676335391805940777594004877110263087339082451733173568152162119447818951384135966529500930952835763838077705438963074078688824777981791099166209755479612231669043552317795852248764035030473304141657322096437763095215764329313961832850962537487803302746134616970109655064617806083618948213047105820742828938188485165162244404102763374725788795160710319670238780264390996369930608136975547025729334619810689846066324210727994487943148394619389388192037752575643177948717485415974458169318806700028061739970922517547474833412965391528776702129462215862701301088949805430893765489336022325640870470563934924695548341582750335021671116193473931611938914693336734251525506813864409525786532294530475112189063039075521115209967449219130814326865616217878803074841222020652465797619435798556698704175500010246575220495644065194746477605851715962977253446287711966253348094899636813699160798423228206788113813405248091047770417320055627223007936336357022501270001625602232724218357458837091728958821005389366984513807994205364221375330208018795832585745947679093382681916435642479956973243567584475838821351150956232091205676733271465607217610345947810525865614118949076893580274768181058766727247038614689440593462157277823939990211741014617821474770794486899179839972324064195271638398521838431056481914252582701400010890893070397518585291714856351736076455819946174715997375530335903554180596458080588062434741135724848501201843754114453414440833950615562821265838036967022751802325866841542256205961175284681878080692749899295824950274051460627714129427189204499635925561089447419892188728037485080746764435344686496832643903901470465277534131920561866435409602233527667460154446014591549372890974845193741921445617249872910964406652685078744704177252306334744253716859284010705658136128247093364741143531826510411763089236110869374966439302779210237760298152454991537614334784714000686242932799019496540886820014660281802367194627984404981292564896448131374973724586249532229133128126508148575704501401090519417675916646741535866935721936442195527345361546843458664817266612885340983063173032895652335479657240447089681407699043161069847034296025578278821010813726994961820550543496488306387097274423783898491096984109340708931363036094139190468885291801207183713084703769003876000420205283780862254739216982858101233011648740492131576101379772087718611571189801368150970110058260075500116850295435198032171655563179879294463844169787185523225674984335460086951828462581811647522576970168375814954875590207261268323005065641769228621894041356038229377555090762271357416813564373688832659301568941237173501902770776997111556320176602899529920952540244850159400236863997795564251410950114960814970940799273198895516117328150565918411217115547794639085903286743066974615026244269646359686656777041259466682910294958195022763704817413609121029055886536587618608308116334953416003342058481193555259634974911034036896180081954833762785503326649963250752467127189142459398769534188149654723500434520956013328598968428239594816686543616028828973574121110965390603871696634521545416572158336249855053641225841482906101260873833630253642285852352685246494794771884988937638155486343788696021351614060475301078486331074145969264762613844438847419726260213057734329157718552802301226237491731326180399155810745205149782605692680807749698276081658258372063093902446056351591581985488265491075315983214968338528624848535902369949122991428309754796026169386458874940030067841772194407041662773359458472492072260895324595405895623548190596816116861789240035653009226437402770392082060481794391147423880812209584050434638063903134542918193480915911739799610853584964476883063522283959197326202575143563923987710096218295691382456390994596785707109829349653103308921785027446820441009604955822281633007441796644711932886604522298496099897049333932734871004319799097608210165607295257643157797484551951209008983787629345417006321727343442634560471084757891990007347491726837965631025834693521076482701769913079383495448133180807572684082107745632841985446972915644254205031517940873652147094142792220119875401978281904687084286109804872771279600240101200093224771857463264296535633753537202378172515851408154108453835711029652731090301543590719876068714184787703735366992905179287050466556828333563133001209757325633685842427206018657047345901796052719966600825416095057408192975179069102344201493856554687098269882981184490225447307393488241899805306728862600329182243515352634982033971924514689276585886428841971112331781351814718315477195547488279982831879373208690203928957975260242629173448314859107943115584880982727937554848908344336642149202693204332954373428136531151789243052092288968252973202496601118053125398842609116377933480990129053239552087860238824738042725299052744099856795615861416783593799892083768733307687381138216179993276263357466422493905061857307196766659434693490958664256239615336636956560582864475920856769220363573708310844493903896209772301602510815652722720487043365674115735562834006650479423107461162647630458344871602305108470005865065952727829780859623261382191134449795064826349106276225150170039773641615602017376263631323227568390440341132116220032800905335050920875087498436365530373605466263965972071337738459400976617393376431233648295936583014424823734539814711624529154418653346643919859477351716932842405213070574036395948144430243866322424027314587828603300045344382238804520591790389108037935478879240796696331126310032149187683378529098800501141643012226975971288415676597385579854524712336952399316073202900355131497251141367742211968418903561613070014893409437753369574790112903868331020191054907987418137562777878081454301769984854341486650217408462988896429940580141092927382554413053798826319948651203447213857227217196442294940618377794149985490900218994326006341114640298924168029798660599284155063745126483126522192207839893746759103076916237946921906253188012788754515575770049537289506277052298655421519346467124354910782647951627910497231849568791735791376918487697471773854192245559066565625486004098589020918728256496187539456206420188710600800945041156178530291853013810790173750213211001362053439236370771186368090442586614324184987612203691535760094558694865471508010575540703946087519469171353508755857005100323653776657231077429324138953074443496350370228069962436591822511836837170341331679821791100375793576828042257821056869872266506830765894299583111714668745561743453878245545470694702806138016729123680513014033040381707754215259886169496170537415141071979610458054150177652226802415899006771350221477987698438278887744672877517074530839731261171842776879316739423043297894087073304302472799839653614813995628256633537703092211513835514775635058104910023458539352830302714714028834473289200120305593099459895277076767242070474432918532563447670600759132771283013102481472987549822800652840550666874503323020113369453766969564210243092582497980045975356854431368311187963627275458356762087106294397729879641623712702001677401634139148585956122002901399501702548278740411012423147613020824218786930779478190351479664286587312872657210367214640611915893342253814238708097523102168057357489387966066230502151717056664608156781875429329022588095183554111922804234181007374753368794696550404805102349900412664644591291007803496534310973389007093618199165404108464983078689151652401948280915530237571165276218701661514354884281639475013458179029850457730544766029563387843435202551647920042020996777107967247229443056453517025934315049640946796551007788313037925910560417763435550180560932528870769219267223039862784631294048121510740925392889690887924099438649605838641835491151669254372159032770482455936894578476252617399167673305247249964717065644309311320049613430438192779318283818137306902877470794738805869478283500214080499727978864288208628080990893027952018747382534869588905164100111136595843859284784772939833585438228457067035084132483033655878661007331080466896680092388974526187801286150200612111030655725344861918242828517121475740402121529381824726835651380893232792085810005291299114512182998541033181708910512411097637219884032015718245822664154402995416074952553132585980802909154110242540266746109760547082457237747172187092355232432103704865379001048519601509328346553081438069404799404320740943584752925131895241419088833354916792197026573758222346192897364267457371335567896480762937730360140890832364707470784128837601249254130083177428506173313074748581488758298959223923661320692622088791778521047275360298150851211480237351492722395586302494202478110199303746682854004401613225914615916221702523728513216745701718086052760177086260334762525112228021011301704374534284295877280681215492539742839681283200470850491415049604357557116308391265921777300378978434160781478798508289532793128854571238663458999304091161092423323994332346097327564099718053296826395834947080664261512052796705195264013012908720123748699667433958602725436601484790882358318041043104348722023830418920496622878043575073743530237586513725811315493038883121230768886433407280154074197141395748406954939506283657248891801243789082107263982611303849471230578721610917180733319781763096117926176480335955993271008683364681442477835555927700090541718098416380921405762648229874270750151423492184857822665039350055781711479831431919616040217903679493664537090110965966996824311608917774861840764573120332145022815946186152663046004687049435040634569367840970840547223116346644441583968523088945506689850454198483347649636124024243618433667015503165900302243574625911724320256351981027745063031744730337035789124971298290663452885780159725200797611034499935138168891923393452268847222676879465380483709738205833436548160650483061894667349940917978554049546716965339270689947080295346606237008295960845414278480282601088086570078389061801272469822530503626532238489510726747940021018837882870344012272227099764787067801608590557964201947870332564682961469656602811115282823325623884016441135919692421241087975426465792384193957075011354728549326744867516217588406403617309132529057173528173746699555243415026728292377209419221476371719215889706494617117765739423812690321785078258366364216978148434318818079038974246007770986550952952724578709840459710548135802928801556200347579341121906508087810403175202071373923503560949701459747655980817104831685803653071004411539369734843731492278494164280138264024433668491102111268094491402933894936416188115337120399583850211753178789092031841166648881542568313639210297681471958652774364168389479326237270607207415121996085648381922856803530309788284973844730771930918758331956134908561163855604906840425908791374892320192463879707138672166401922439083904679090383007151229108531304454663734532749039671374198330199846934397653209570280643551966340856260603767227907457928556787738581928148662849190286384639159426813227114635672394058522024607750778542109993452230269096786047069002309652459390151221710430252545913242153869423302645456310835407093198166661637994499504532941433801631558544719646654632099739362226772142111709683993382869601036387352636252178755942863263254641355805394320225545290600890721662220576885764761023264156363851274072189056166678303111715328875126315084585788556433611795243172826705599786228274672111089277462678912864173366737952670238106427505677536924917077440465763787222357814840324625658873082404054462490997844894395505142612529981337031146442476378539071938990887966835746941233891936956646389614510977693822111892723600222452753274914280482022565555036930908880840942159849989790042603415866798123687280304245755277264096390862756615815954033204073844502052581773656401299338552064048013295711040547302999750868775046275563513281198740043440333698925721158327596252369069557343611483492929047077181286263590213433966714286943996046533357961211909478605211602090021276732788488514926323989480453438293886220452868678740896448492463690796345979180408876182638493392495471003701543682076601666872955766435062963014230697768171719946432089657932634027778038191248254270800397086910732971674057503497837053928955042952692478827635339047961498391058220035035711736305393210560721672750193321003049873951200570321847830446640335451139155044604202197720849336327504243774049780234821606408080600327613541647975847728376944567718690804496120553701140447647398709531881476667063404452102694738576876018527268463048839696416418122419321222527412740385555154870730032593918908745557005083390220427833853391539460232382770174508166163599258664049517103164500075045090024033415784956700009818145922150824174087132161556562598347464415993582241688900113089778072568020697579330648189419135789724861632444752644075577516586172416761810111376880785500983725731256054411002739271250662645826179056981819442216722213858552137203206746012415135347048106821881794945082278822404762798046787849708232709656217429626318789670079137144668280539856340366013787292404893421916835741577255423574194418188385715890969914324890301815950074556437868026418477334250433063067694329404399798630943572048620198985664237171760417953013412401503287204657883483019862233848905772452584669148130488130395490939432404647045382461764203410616532768699368005526999358363829315230978436692043826088230397190614288429489844961048973399299616278468624219427476416986305130601460135659113966307850005861397295136458650913956221191918027492226666141865407717799162705288208163577736512392641689178864332535419681151354638969271732037774985392453916964771013535544945466112387053138633961835710350770028063970655632627617090038372860600213090475454750024084989968856212619289886893882877112920752451393151719349782048648478170963161297858592494468692620950162813076217117611690986207075528205933293531899322358129793862358991866012118808454628890800118545772633572657386666439075804363331410330062585582227192430092961331630093197251837396990520818135099944417079474614849434013328936070089374680283734374657474772574426649083747081617078370782711626035967794283267522053797521687321280707124988212153112715540075456147505735853531688673171817877930432545393065349908688231990626803303906213913500178727317009878653188414342012852807119041083939695426621184057199140951830222528658443624917635574285603469007857081528138035922738824956570930478731515017814629580190729281475938927804946262913301227610956150624828844650689485155301933357346047920318932471171051702032602741175957265759022100250577332550474423616826927548039716360505489418509216350519718726087540037899260679440102949012175124302053325171995105894911990529536025810765816615853524309082646906237157109745760322070101370171027517892451015165977848184289468835094782366734083218245184054045997301606994897762259014167373028397775049589409015558969681167636897918966907920799748589763842521002571981777835590100679525349084928311988706901944469752869364198019552736501989285000920491526061144036198419059603937746115490811470700082935244428102045399149234568585678433220644865325625769262613580966849238157917020329523846389324372162855394277459230860318511291224054400763102714682895359558110982704126132059040436433726317769315567420677924237272692519698795613670415378185728466007195518301793128677030429106871063578654353763127953980169464605383327365799540778049435046111030927929757212387898157003929694540496648814660638021041132561040199369708277839945039438231030760537854474266173569635607805358834449696783145772074104997394274458209976997966378146996470856515625430510841280668363789779747959024506713038356965419657931346622304440289962214052099545209167692928673769408458366539662291429789177083958894621784682191510820207536718485492784785241261862594444757197994865216271869426954916004386900352240340568597145569252861589998712956162055988022728697722565607969283710323622526658741038648065726578371943000573591456423645640386327260245289978045851167861068605442948745032926358355270487712589298344467839092508452997601955961291604750858820204457712504802505837659298273397555979912242546429789594947596555147004434826273717257861621105838652524288536214830851502767675302345865892500574188147224728085277683234847429263275074091995870734676090558459086001058459428375097604909254422279133167653922226660835434084609339916325155755252400142880497369962206200838065825302940604463945794433296726129393233155547146182464662318648943263383446502005899599820138796324790673958115732231762009217379176370579653644890220393498546895434554609115058215496666437022258465923381308340854482578681471523309223165086692045238919717740631715062412308222978816575794353705468948446320724779589047666510324761822121356770814061044223964957808454651835806500469391059394517289016580617547996039150723426380440538251119341975445481214684740862530200331710582905307981947116081686021958859345347021744956039677617498079482382885440702747816598092793231230002885790380830211250965386605820853285056111664819069270469771673990315393765599844423156100827830199283169253447026835327914179570632670656065703232106984747253286449597139718255749828732396527842784266360627547771722364631909727837785492985498038442087921035697539898589298005087177416654510392675465439945342300442977574138634205651965096829172432871358999547937212411159344739879632130315461059917524002885578054062296400647725441571752022861915817123599653753722856591329742376643537085039918894967186088481259055421284443537527921069083332819462638386753683592947791222749032590658686083631487175664484485492395895681479590794267665561129158477433643170793812416801065829498369950096381076369074805411384082461065622444179317116537362732963885155184979318631284846470088812263905761639811562058465878605241474962665712484635154074692207599033397271085335189686542911144825430381167339897378950469494142727074754854801634129110557143512417398324664205922028165757982522996515906429173388912783540534306319353553865185259720014999277344508731048042451242564409453365189195859619630791566816032908550081484361371746294355804373467574647943154836551189968192346716663226368796403284203559406987053778492911420575560122679059762421998511520221453585634530552248957771413096865153989527698765090917033046040334455430949142291160926313670657088671712153343207588901156399047943760905763655718310033336925212633247762265301978062780460576413780541065127094457673720094993214040124378844220674131713819009279821457291791892064609881666408859859637962624184358005648153553891814565861619337743009359141133205298056663138722889408333118465452451750181672374132076416393315167463319627858718407194143194009999264739381741814857775945002335895296075824194083045385617795313917741187783012840852131368844669183967651435977160107325387263307862918612325374126516413464778777741797704085921091557091539656785859909281688763759447884823212163813067953546139979953618091223873435356715255373513072122538100831261097658516936454653193251920120647312733469274888938178252767672509447287672781243899310606607082053165428370713492258115603881728786687682123293933836810346415086084380941043847141917717568293571552269644936775556553569899663949487071434923202724241322998094601921621252453744897412483961768691969274676111170647876773716478097546322168153398693179352609563078128239416473583219768431970965434342983638182480369294800457034991780734974148501875296873754318956100129095469430654683252749564865478367667892432152431902773236432504556485920875722450429354603307091237831097554752533238416905376921704943364710859455803493096737630690466097917578225810961681019751687982446951608053220009142142591915856973242988632745192050133307710593609120603074620127585149679051782081869794435598196753090172991898564836743429431865006027147029975085552925618170115502785195914023716356958306031038543859684822202918595753564249144691156243328494489366051492112557431731452144512758424847060629410297405080187773610980907156271450143682817619071026824757118018028501129989691078924944147167457688506967126906980656089355582670514510468846820777267487319180341302050790614318301958324070086908037018453315909473174349755736172741831832222946559400853329057461079386880827017616076636663380309912808244061731076333788821078618697269243092758739657494382014963969318692212518045158490973444628298440150544272322497462383789109905141406022113716689454550656328117397561338414085311634507318824316076950184527557400102834082483807152859997129365419726104058946466284756936802503545704395625451337419020874025052811934204881125903090017594394543436942060250088956718626185455189285430441620534728162632721749390725577302018720264457354142024221873863127453095715279527821583429959627865632598263505608740278591723170226169996046510121327302142198809600079396744151061160642121016910594902605101009332738361514043227604414859673550333727173170501943393472451616453942412732999468208291821029681247092441151622579200544092034504507517172416582307111079189190509494366141990741266053871946310069356134378049328674438481103911409519347749019740849481643414723965502560501549701539720835361237221975762487487684542254049914212312791698078180529727581850224430695127800837674738579345326380340600867079354251532863167445901715034785694577372627130646617742728347980143708172783105900757770022283965838805974449912309854817225070861349633511511683330017969332771147052160036511643919903069879512744250411845892139005352589292022565555668985621856347189151391921258887333928913293819783180343755487261736977894441034507747351683931996042322175089535897945925011941280928408559829519173245384801621988020615860716299338335713357520773808456042202721164175131115293334359915633334898266713018296084549277101079911986686808183825022146221379780106290368159185857095540837912052365792841779115553142046755643080557767588485638312733703119504589384097599295842258107444550257744755267005042849948588412917553713737024484970271182595362254716093033795881382854884671179074767340208636129462829297227616123442683290784003538931072027991345410842521050718798148607487057216118703523996959284958940516220078127623443154698126434062025842886981253751074716495413002879446742987945522381072642143892165722187447525562561240756851476326201320172471723141740297384279910131371362611374676270451631357766798875983495364677602698267506188336491701430023439098860779765021201771168603210051245011259869208011780285160693416137201289695030401032401523430276115458380647572620023992769328205096947474973511441788416131727413431117297234125083882601949679188898894623636634585378247474906013196804391317062971924515489610880962219484724289011930742944832953640386470509651344009911734636386446877457496441695200740947407702963985895968913502943313693163954172921580326731131961362699464435775974315675613689612126168683474968653136375121268133096202426253941346284902454097938172556909511606369346119927626464595182480399210405811119697591783949371421049899106574719099605388610068608288768669844004123749990076328898562282072066545243083957595002381185573049846282230483567461540087592880360714717809312176934440129153284721443915069539118777842018363800470664971018117995958378561576749051859841192220356096397519814640458803069774192290759465928759947475622925394280879534422819917277983618667775511345532295497471929331593396670864717713000647523604175131650409279484114406538435653351069857802119815675532866520253559233477130954566557676001052493057701455262311564600303457146139348877136608653309753075329695080583698368716374300711779813424773717309552633618924962263446496867583179461624604680786102301609438846717786252872744223425319551769214877841177768166657598659342891644587111726398759157894832729620583294658602232517987024469061051810547320041857210753903843871390809283797955298031208681179939743121454082425345269457892139809507575836840146583075944940226507939722526885837531200504624527394644710930278459069400250678174593216731485346324737221641809408015859115017546164602447450173627195346934658005229480054917814624943398623984787583709338806190360099167232824405170989878352612773453247734206340132254870069436447216092888606496725733326666612324081557954846448735477401573311940205957423692946929131456320412368284493976961843959514908547909188077672878547317932679031473614460723377883370074663986145150762362407732222570936620094946513177903435263974386718567356436990422922848254826391532066359476101809640210460470736466812531033321356651693206387914051559169596384055363074749834692584795551344608036851045991601691499940317664936750631927615650483641290100030135026087660865820868739416440238741521291997390225327852394197843203194297486953739970347726929091850039292043072296094535938612849582958328033470705884766386784308157185110280698544731847179986360266565632056090346118486189470485596199909296956618557550742575472943627622169947205991556471502910040510505995047651814603505932430603453822379096905825310973574205887981688982915007532155675024854894778357667265145678212024703078679310047062346868883160970588116140519362480007828711497567489161910044574934420569093111279352821810526760246907022370061150684643965670205688775419047111471653217982654120089530890163586221894317609380233970781724493788110067659937246449808508563952174710201571986672919960715688992471196975991340989597706051226343182039079014135933540860511485024994637492324425224797588342172231848664956439844549766242413382255902736482996462369560582941513631416916431265485323453758192200662875528567390224026053471167921608131122702029930208844642022425245790589485498496765410364226517477647334235889601679788226124460527271869322255209640161611235812269080434075178173241759630731361415384458973047334718944229077029006024717260466042024796897602266803150916311045928332842882336078395865136406509144579532799899508268065592770515310517681104526209845176544992480609705414743835193265961835117596478556178914892515087547775311723683281626098943926294743505693456238321471641255631711235433555758065776861546449562488857394634734074985108009565960280145308154059438831774793055287619326618752889444964306107950399374385571659790296426597637898707298053387812922065717996256121817200962520488425525779285883551907587454599553765809462804400369234953422319027178662629110149166861582714598724416105176089844488381137088684490503536840180663255549825246797183153851803889883282626855966127400049144707730719567192212656345830192424160880615156506295871290673783793175216846733748691077921371909715276933968467839383024047708997238669288571670078273273369201163257792873140512252299341786759971630213699876904128161789872708788813874954620612071254864434536763543398958975174189246514501274092460074797336186179319643760980818072068036666217292099413427094536456791598780129009415861802486388461405733733704138474601582589632684473257947412065494242133806758111856411369766798697174846233782009893246633269758746271596563344982259317689154292999144846413067708069140845632852418202228957230916672591985950052034436448663235442732445872720135595891200006401213596921884199894553187329087798063584303243483559077861993076631067392440246389151147408820815858436542721640409775658650870265019275042403255808709724233963239185784578629044001931898276837568066394625105228563600229649987030708027605658157261838887584899241246381197626246542066928737769277155620244977674395770234923024755625030702801360957303419690911229155616946795065685181306460493614202057995663134342563233075782950770239485676147833153316093958410625059290135219562307516315421723919802964236651398652810639697534368012085974744901195759540321583447928038949741625848521278916826144725127307820005581009214745815815666019506718878585098892754482535627337203335632799211863386815309693986381066353121063547451962200598579967007801059814646620507583668170236314576568343646023112155620147731087770007955619908339682600429991119706227490036797653377429740330196015389153708227819161105150716850741405379103865960885359676717985791835913367371985114654709036357617764153747623254659254331093449614937823968954670279020888868059135052656245008557825433483334400611282897220178890204623740312984705634735240959839438212413646489584650441090389888403251261300480060848690878264173822770197154998030300093837660220721638711533077034997643020427402587954052431605382518603336445345878169580852046361823309952576499828489923814492530645021644668222336638398452190544898453872884517067491029960014468959036982768916686489018162657287902500102407759433175460778148727346266409848929188322257843511778217572798822820209849312493904674329867654840937403014809392594176852925276716964051451210455074912857849974571845200961426766291109473622521392716353413799444336393581450354745736370640360943851080377004620747708860522007368260064847958299415894482501214235176580541052376329880504301320340207418175815894546684682244867576215104910956809737967541031179058898349394806163232235618098826158641032586144283983400154661723601566019958983226496319438375293378651722716015499338338043742837226562473518701295252004076622596951142874363739473099888043397842087445737430952315168150350091012322574803265913677897423782510118167887665207992356562895335936038927931490134232558095666678630689726015314225961232845300484573773123958312010238479743114080602970075431264357519298679249484057428653113423300496880015610116945641565640774650522564734795855066679925948967607371046653754449646897616640807474810260960484088257815095011902002877592333879034270786456016477576618354375155625958104880870605851895276551222815562966661680630504342831924395369386139095031920785410161011903836604731792671408441543812525899096260762573839192559495431925260531023547735083373407235964700596104710566287776680027246879314601518495096323314413683902063305667783539524376865106018922312305288692299298571493345503926905902329969731102105628592493869394561010179187103625497022110159367601003253458024037113006533691925030173471670481561722479898360402084377950117748912001673450546725947001399430855020488812705972777477209077533962316792685365022186285347442138848501995939135098971236460399166142210322333123018366154722157591671749456280185323364612230010329548881488382969963605532368565327229048402193747299822136745806229850012290331603587661444157412566780030755808505866435521631653231512739697184953478515915346047000391180694375657479886594189842414588557977012446203585786305877560100930396573745595484567212413088758199364783104370045735781875580590770201327020465575157106098060113406913669984064341304230841413233014456858223955381697476226245314173592246887318429370492625678688235307087141797729120526609205397908966631209317902642274260373591608399919876764178400708737423985249800972251887987071917863287879669745825376745573405022063730072134442782488722459398855517225446204571630829544464897259342533788746439434609705257949828265336408326393781232188355745104882816384781592447570379092408938371441742204269730587674587733192793853473990253197030969068496033111577720905889182836124037880484087053200501795036168271454260637264198920573012886122969007047418357832538972900642608824506960618646235402752661574606283213276165715272987681211022659562009278733569947217409989314962106120198173061252447168000355498129233888003492093760197664349996748259802519718929516835892551852407462374456327961349608087594027962125108839346458131251630041836819463221522362275124018201367662664181147971413822400234169230309953029194858381294432138232770700687013168056677576414749906209539549352096850192934415070307202593305568868534961975018723007177955599905774110420651595757249535662675984924408586769701907431114508613409150966304287982838379857582659872071453238066248389279768538928941835441824434260934744391117971858575880502506203911653626210061482469767072565610930088019019752236864306976673903461529899027953859919266025398192644422987146596581125877551222051034479593724717007115271850231985882627787927605854337755402345738365255059952658804740499181066343593007477591356076097004902885463979738460619908126022437390292588834040776480656962472363039779887120113889030279657231744213798899931284895636097746328101768026654536979382918976779092825094513590613400427336975061721914869807583604017802269055480504984044298982000918465361436098651969313848192002570313542809169560930219317577991311120658055236564356233750601136675586336453579838483240375341534719203327954964979930071287353872180255236822769063853095007714183179023734508526017047624802231994663827222441365730330372908876082142537018883129209107363842175171221667242253105405506453849717322127692028270401845291475802846758832754228016727638928975312479990212111588558182627247953371489609649890115314995754874499649816512191960031309379635945053175141516029391494426040860257084733595269909356600931255924216200373832268065582240345819524330224524860544443107137904568275980724613494710495365730015263948575654052992494875811676004648828848613968962351893526449757061567689407648518295444185171367051690653725984925354210778948470439248575699948035382045976014843631862699998972660142777096902849603125449493202233760109768571024568756410601522857051321065630156026311350867989305659370970439562959356934161003177111161525491804383627493438254451012341751828491956778743972483635554589476207800836452586282888590824344056639916903915375672191049464962448358282605213101587573903341839119060220461482598338794565429770618290101061940637994199957161345698383695254847613624175468058269651743981290162966220140207791721371337670242070856623323550171961547056543014044770286063502785063953772491749800751978746279783054695853490041787097134734805027211563579889770708723289140551139550386231170286386939717935333566324796436165544076970579203424267128626201896297284062042148898906321533058868591501525890024657524239790220255369981231423744630339224243273793190105358561290589248316568431456307848768413146621328985207887495208761361845588372479356775376641939651344704747150535198305737462281083569558812884112699685793029134125017632791418075134679001240967241537797730477117056203301000472457094957396134527023179834432344406595627290234644273300854069426417443291781285932917269947385302571747292531297758470872184724793534199428865125964134330032154462885209690592951330536982271791461557888231067412016596497021458044818599705539724391251763452761651980300891874062493104236321213513212261154597093726481885030267633384697635983068782160027523008599652796150306758133258340443529022313006140088312839697900791638970671776467124104076802013448975411420282499548444272941066331550683232739326784505964859220414497290044418786553171161537102498009390885523652746267859264475919297499102367489230027486035105367658428382393808008170225452744170115886336207265860198878054396853615546993793811393941479645589528419436089611460525579175444996690147261624174174415555305453950892303605994704757612617304712628713860654402339966472538169074609486536856866873107790860358394938353307466489595805548218907058397242527483763006023058612498925676111693940320260305574073240955750634159652230307332583603277189071603588705910939063283395833398180090969000920561066124198340691092544817333562574887940072480350285152539510061864617176375175492009112895438594807235295740822494777805739242993633327994381921228969554541692919197977372584420148125535095035950352833185099165987933091142331431451503746192732487784227100723077825098824371846206409188061944531828640735757022911783511870262987383970966187468155965442259140274501245345741089893191431278623488818336672256383402517311798202401860875474249769718263691015720608752053999858127788894598457106515086825705578875721877567673768941845923674602272916694236730048624215911666395843764121534929704669139756196641210946802600212106871846061207181657317934513975860684884101328387051536689613605289382146220922768381149533193856178215696253791524783267355819903020928836117683863753084144430030576825661129710275532245205719628830578486676822040576789484213623539788696704696512443774492764965271686581902940848230204942989123619373994212608456355111146995923553176303500000053353815605707776970051800174961498788916533792210446211472201446000446770997216016065897197242728614574862571626993020092229922173489537062077020515807839414755242881202696037260729774475503769312565080726242526670199632216440881215059342282766291509041969209164333838125756913462274831131633472279205332905746059383710883693496073286379559130308010218276032170976376649623025136478736737583784257519930435271576045776183986665892270494619074614674510542053651373179258201475661711842942534021247333469047861909916745242968292811152414398626791985994956792489348084258429039694961378751638308631659424065501529283927739751492792072663292169344433695722565267750632271316670361088788798800532138964116829382670654467081054469986786196561919390159523939087859007300430421627713845861148856290988329188493671270533844500294861187676922395728098303474436053226058303775176066422627487875257971425751333543408594934484029151173358890785278129041850050544900955630311641079278313975117183773704542342490419120066408509065505453014805647799093894248712073387326796161008306327874005551302364536713427376922006393584222449263601927805148827120800690912715294862493876025989898972724689197515446509067214181891537758332448539391910889302743860632125273820191467787572531042829882809057341471397629459030080852893523307369272932672587743670374967413565184696836536681788301457990593138745206786302020776505298195947084799906951723059378399526101600907102464172205552385469190954922527415070067613774482899412417725124909926510726844167506260766383146291468962432805282108767174823068098887565334358904521602872017371203201460582935108504562780196647407255041575928019139008871633568771583395527112187387987078009380478592448236672636961902278703058361064915264638828376630685956372892600420297197976693097530683094904850586121134001728120535019310064647862024828774214502873220030971832657591659834735234491210147652878738994520766637001961867259248010479831754559724989068951079442161791922683738289642262989576205372044021885746949772500638128228429883094674303549376778683249649712105793989844411824145600631998538562392082842115880707411581850823716697518178737418318520613152519163623504674712082518878723906597618559492915165709100518935778255802242862912894676551150281888544025771811177149644443521202826500544748030640803722782151924169317249332110839227547473025506009503819926519837161599160820288441920862716281953090253014085833581036315950904473346045752806800130745501554708222989901901571078640340175511307081433201933602181850709591782316492026225251284008813092807372228549963959436628618767242709580449718094157247456725670065231641730823820965136660347983961794023393542945523004172848051813771464182673240750065149727087638268517015005859565699637318735797448613154544357296064402822140060773267822211459537286821979499900347938694943741581270007128503671452892030290258771662449466397832457736327913462014017777298013889740475927002151327770522697864058967820623156057992164893677779409545138493913472272589682083617787178942163818469498293184684357785485504898251851360739202734466043457870354986593311996350077026726926973759706530824955438036323742279822194030382753021166141402839522663979991982514085326738510440522930926690495248960278309145716394042990193748490736371475262706762065208819062761873849531441378701009212967470336960248084676590020238075897153966356993673537018677796129730384174335952560265055695143634092616564794540987156744216050204193513435094374712191008393590347347654989369795192035873193213898337346182387264973455820348819683353462425453717735220615940455014016250756224415010020650235415739032700864329601083190072179013274600311340484796418732757480521514574698407567997523914887172583882287213715641087807346987585843317546207583464238768013868568716367839762526422111689842472476054069894141391723095380546527284232820105969692542673626311147104867093053607184751626772981566195928374680630264693431874847709083079889573871328493880712524545970905441279703158390924282361030474330682738815810095167281222735885434540900876142011203201709961128388257725474490454104269147109127364458343842917808809821896697982626899008087496269941380074746856726132432504944056083587258530524712620650491781359925665947277320480983211056708938412539895261776477995666542386344819315307424701134864456150111740107401619958231593116570921878975532272463338631654232276609451544773374137356614186702971895281798286512108765020508607470363046590104589364650255763113941457291928434926520852294869701850063699109802910072249060486514729699588732398124420935970353409836964352411033141181315858064527431634060325996212433626470303272498882375601314460373717178709688032264803194638888988940559157925997807989416608085137587126989303738290398749091121258167394112286853676916820014042468633284042647365426470606383716370238941649305438173315933591631803482273817357990791818759616068578265206204055630746443249275474760427068393333737947575033473838479536173146688334070768917648439503122521979860452336540680385692988613591829839624481755700787397599237862271090260912473045265444089124603841419556331811584806658838912816524456814183790706098731716287647401111282452050826126298091051449691277605360684076010996185505816309490438851168274130239007866315455171755759790715559946166760630981975443079638510500727606002153782914262771996351476003260437526128569204925329654999986358703647446495939893245997846104207980047965560325599534440512746536122052907221855241579781416949777083817516664984635957408688664082016083013754640593375146434351564545800425640510041244210433617355055018293477728217998468853210727595690262105759693435241496015809378477238422876465365653538769078044294823129208088714734183289701903719605978056278065892512593935868349089363220141084566136071658744249893752640259998946203336243347080803829757928725752736759501012596458256693929584231040307250451705052443486237002852304246600705517530729346878211888080102757113523338807921281726227940490635791779657586959293125479759470915496782219897912549838630978867862381598622159829091012128463101498573181585536336298802043024497347807447517514037276812617906396347887828586315867344389698379666003709820242549743779350573989481602304097366894590266419652624007128324597506685483181051927569976840329136789339784066470387813276108368752244078092556432728845773491952384175130338366806466324170009890243058431553769621758649610958948032366433856298108553585719884242588515534177185372965934663185791046189101534719757842546702280686830755212094695224242979854023905839524527270913238538030736376233718191604107207873423160927228321814746512301824663717157235138099618319390961632278509503565170293516540121834641604322365974656095109621406284206811667749822927472193186072060120191002938695325860773774615999786109732438462904850537951975684372629226346527079522676850409211664540355195588584552521731903871222345335076250640875871321655293085137555760531099353649985671867406970351418597099531185739501120938793490414710307073037159234926561959847004362725866115486436338708506552103407187990685997611166264057641801750855906967032616937373939603374930096625289081791104166016979503139686311788930385426441516341473126536476492297725873402309640471186691511816034369736053150892511844674474067513894052247492359560832608765164570310200709640169897409948117601545610571217167481087225800541102425743134977971254374890707318766050041146830753560930092564580169133158345186930525929413115031344253784506469820393428963752210984238342019285192881138257942367864181218947810373868265698515443781533028944880174833467607423873630598384755778359026704804393861954913520349052678774135197903138967189075062208151924124090541546992076021913929133257699939276684679848694871104073254969784477998194933169821397195195465786298500614463272833073731255022157187487314124197531824444006558186392252090200218949507503439029870976935056356467227176166226739494724383934059490056568279647821450691548075198928156596114366661201970269987774292121282420549342712179843268581003789400353332551326408811819392673555755853322108489417665964930083106484249161544839698917277790411467237980263896644098999319718729505790084858783408634352645113010468846133983842247477398655726792666373325532899670317015847050684362226930446831914326561688422220110155667844512039763037475388173717214987091068428477392220829561144543312725922831235475750648049280782788800077321389077457608343927319733699004429197664294154780686885627452575645406262042142055872759733768405841027232011017296826053018617789923074891759480013936689501231171757599237907083144079046240262092996843515196604483387815100597119039101304820846652978891044800134712570818293151248939374042645636144352416995427624661637359148945102619460616005462185963634455580750557748089919054887222020764523570185648424210759331593069430026194894281765518159233176000793570659801403629882588181230623549553142289612427653271490533939887106626982916471941794241274310669793544476784408711335143595610222780081214645432364555284037372170027115085649686404442440023215427314060079337047092489208797002305471889591843079254798183275548851655667644033939942772647420494745850608052672584306011829851326313465143049136645350528704249135827611658073273880024526750852472238394886459350845357960639710195518476315758437354684101508504583533408164359698418646306118956639640106707974435754904953527765704239194804040243352709989386310489943952608162452840751805211839514044997401493584918577665583705334449038295457398172750432857704046449230861250485261479940996384417352092797010339902216209181800376379038227753101722356830018431260176359730891177878243981720496077013365034044767097612311660607290908867665954340159572265424185657004892825655655499424931249063200200988591780814141525131035910738185346246768094659979181445042930339461353958395288318941112679039465766128629172043731630872761620190752675921660176163215976769569764080358849150587457246097866664717493017587165919231331346268453107157564929878994551491533427023710527942138609556697249205731734541066410277691744142834090276586660522912534403236208922721141617777839077191249367300301542151802942683919643365428321399324638821280909099686942036579844973367744582284848416522477689166966172443125488424658573870381467988493804985928158982253163422954794897950042164932289107084592080105227555457017386299761162807163922726702103685859974650115875318759980373512739379920757131470675116161792674488691438222610117882202663267436040943330196268431348615855291129432473864771216367918462358633406468136814671375760525645830326232773687486299180529049532814044133568566520864615506632165928476941438187231379403172195240058201632691740111449805785240422919450090659180843225740378276484854873081460786086508457106847014524389468034134960522850977061203589131092025746006321416006148154892790523476029933048605510126801744495970339534440653898970536499020685847192843725054228641942876867677600897930606207232089917133139635218891340908372842013485060828550586571741566351451918913192008675066943494324474659769819394337549117591134488554695442398541308803045484761148775304126723788132993413767719199095260666876000143599457051883936387428970719245683013553165874066954085085476235682539413638673515938751787058460886593998604019656099385014520276552626239822565504362442710384213595930544175014942813824251537733101118940322462932310498860959689557084017156275078373184098016465979499284668230184193687752365912944279619920649554134243956766877370402332275006186472887289400131974347004278920110991844519227949105752154469035925999215477439901038632570939604420254487205998049310229843516461212112191020184958984799049930021381800453550920483275140602810707759545213400784062386773732092589840516834847629343153160640313713001838580940962053124549358007294059711689474350376956268352839878866393102575881914800779794814413713993215614020563361126692538920411414384839669268099346742802104398500093632738761484616731775447841409222317900544840091711540501363295207773783866985784220822650950483032516160551095429744453578784415192459950559035620182519605248595881626380044550021928428270334407323651255811788492267568047059337622215893582938819098210554264598086200238272062354835225841491110415470794684730795264844103265508392714967350832649062978901143246822858121154976491610735211267071405894622790516079226853870878171658782709689522417213757499837498321635498325927768257455892782863956502784851858477110797848843177338605711632875686145950607037281756120209330096517334179664416117736663889026276200883012676996452217064459302892078273692353468523228574057951064534398896084111142057941303764221093406436808420552609554046963478702134998988117130323373134593911631071764322595386742854719989357557626555941455817261746137377005386351305662753676158163054116541514273842648036003382750998188090897499878458514912292669764259567769070124529177287006309519008604418365474878808093999431689973559880950306865923275500070004312236858058453853288221478207535277966831290020596411700368917755169007824623709207640802945585142223223288502673690974869771678193103064262192691510083071486530934272682535832313837956386938667805805463938718163935772039301493816723431269898486111807766206970463788859860000725630958436995617891652894018669095888682916643864101890698026473164261494998626233526597991083856696029950104290811541466342262222018392993516368111570994545273817919219338504407788762308320465370163354654077588640444444377367134830281473428098286462226826515769422154896521788091848927158276321794917266342521569190970873071770623297551144761454197189353720805724927036913406805495158640054144189513815151367488056550002339558594090312873137585234598651265084159049803863181124236383482992438821880311749695030186224087935614174191009778683458251983136905332164566960468714802675893247358734932744387852195356927895322257723146301981952174916895782903655503739892512377691996568696816316988767048291956403151077576395907064327406795797300846327425418484517873337700250028053088750161328254482305515541325159714100623681444258150784064017074030918205259666478938033024712285008278118239118642111122318845430572896099088137319936374989682165697211159780443955256314174238955243467254675395300138528505607819111598961363346274633102070510945290605384087535235230982335773303495613612597910232670679521981192185044464332399921610357933157324893796513394420654001734231589042372894767933230853519498379268898921506298679721312754548495273588688799150328616566405728764066825624092112722726651076408086227533182185129847384683111929619603785024081439404286308206149069877569602476960555377945910612888433999334870215421427181646368330448703798241632365151835827353819730706036047337979808888347484739415006317075585984281086107939397927960232416618954502804206545396496574029367034978752651503516682296279336421951338464864303401788707323700334480235165154567972932093628123734878967601910317328760547572639151385999192726736956066038773970125607900479699717064837047705504517831367441406824611158399138046439416537230594562228163062027561603712387509859657945458908482931037331014227341731381009750483095215312935255806316459361550397896361058359657880148884068523368274404107287643248150993856200100608031730741882242604259487283242688953148096763955982702936007991888958046339000633263785248101114537759249192112842946286273498210318454267218918095134182905804698995458845407088360578331978276513310138692311866250465551004438906828649801366342064650948392296727489917477996771465109774468057883669910586379052038018997565431948479162794320788535482014361889453962720194357942671110204265310200060379136608228291044358128543288407760627211602512257990441226595258638809273345675612858936625026046731254441190849062861826739921853451435282240564785982232656375944477027373831456625726883334854467634453297754599996592999221025748233709036718011119415702479991816712969751877814008326400835173873207462265175811677609054887689020863874205487313950468718260866041346403766190951508518237578715043348053479126377623980414435216939843797097427073195453031753410765346765736447912623309746648967700020006851715541692925441149374256212821688845030138419114652330086469015987437085071317750327615466671137496179995371184239134860170119886233487311889777854087537371452976460947742047815636194433117983250817270645934712621062553354642224339873511018414668323382445828265184146157380255263259784499549541373542991956433624838131508322192832266212181275514087339909431050539028193942989333901518480356076508444932572341452197268258163142318418683147085463242705857483156755630404885019363580449175765997724139359353034220590254425066521526711397658404187033833207449127278647351372953798697432650426149302776704044791261436267037030006484432984586307080416042881142936868037035233891764285268178341394650264065194508075492446827122469532224471533868583490215270144443213564146409803256342834865288619170505873853744341244536266366387514882628003800772086492582686731515169195649450896405898978955018380207092903236265345812654295791641767959342948269392263707372631013491603711843822199715538653237291740424679301595017913725936559399440318147314554873960829574383021282192613933861905792043762849873858164384896593840581013362079834871698886869667929832109366450744042691694584764548399435667401207014834956797124807115054398705771858427488593805710921740820980573822424523144498001084474554109431591645422048699474437315967772269870556790611235508964463354535353859459857732667834342103209220952072959131935708303576095493097154303455821967451495073080068388936127539682008534528681985100104298470709978738913884543259203244448918955645222322894397831831512229481929434015392057442857492917461172046973935409626990666856752790313896265486775066841172235649086933457901541974938786312416872648904251249302577449109429848621251204331082557331896313298989218198464950792970113785660302804363658702149805649859635931270645088199929379114494633896155921619885406886719506881425312450846537987751355249821216136253639731474008795050507319786261319032547165262329480374613791658607235179713329921040867617044872813927553915000277990421088248535665076082137010536738126446039679259234603723877203755592328156137336990841187560968802379298298670719510885545549062947307717328401734672913893714529809268446969220145387269772612426905503774777222356534805385939838330779228973754674704408286209609928690897431081920235758056148505131682002236138189498335344402123629629556067562502391790781614669572229247918104263321878585933802246396494984167174329692261589602874002862905852091631826259629660724126794609747407200132080609332678159463660133347496989196220320642045032480046124824398667335488897883686332447295217002455701444454868469274100145783014482445969228671734376216404010910366240681136068871253200735863920938071801870397668179432596608046010963166555760549345521942099992083403977909933860746524238982039283139956930888655489222760935191653556072898788403339146973959449698735559789817368764234054474811638290785061233470003527934556124943475029654756194503128076913065948326549114582956736167408699078022026626177662137537384998857806563976106171677479416444662142785630005436530222091467095445485633407438581604646622716760859317405972018771676752316164486506381446772307282091554622234473732430165599975250902178605700781737216703045797651927355487797287569562455886044762422224471587398912253181843265521297906501618517804987226021063651367016621698671413355269842861163619726998161939166647543343731519935744845272748120402622453711604986722270911225327225312846944607539937698884632152031865028898584284369943798650645032794883264997279081243432115256183975669923225882772103471612235818349236316446616894635940660056210686192433121739038307491398190675695997239375793917848036810800976586253616114433251858629590763178634471832362573793375494675553448897669644042250738939974826833763927178870785930685041192852427314244195434695442152972420379980538963812939178557668756688797378848557971311497500451786689010934972611854136182126709997491242163292599176228632157853340508208716168107078807376561007644724037213938795924402973826635517859524219394334468327703164193245856196359837348879056198234273295132744878077162323451482256581312009129950781214833094588195415952229894218831982200420182705559697484566306858883055168328199873798295798672863838413296882951262007702509108409234637590166683647492605876635277076011081071146687020815754814335592739877455119167267319743620899312970540442143319747074592282656617287678463442215507544002875843621043614158908428323326083525573465375763896318455046844150092696829842218846848144318071317734369059857981210266235229932588214691294129945597213461010878731908799491322996350775944813284642519448849448862546110287684140605307517050439110581071012545055852117484753140338919052069626317263958990429215489165973300519760414364320133077466611770358518056413449884895790673883455234859332461807905581353316840772759417178999028054164764290937232203042592756338545388538881993868479347131567230769953078627565556284779772997688157563400831747358251291034413695390135527319583484785919052439979847332852873083503734719974447823681235480876673371733860704835901521101445614947048862179048633453867942725731344335188757898416069656697509644320921483305986572903090553014848774212340755641295694250155995482160934965917236316907231582020345085527498086738518602405954947638129721898778273095720586311561308436261759869254887955698669918364800190352148115862691936102797317721704997661737173819752353785694217815983905818687652964636930370776663647108105186483936106509153689549656469642086482117884208265442719025396468776282620433984536791498296433135782513354350749363187837709314651032468615839262784231562072769233755349869538324660849346408828449256423246967753515935250285187133039857535061595285472967211436386246098490141516176455759376516950976017469881248402936839023786728583772867392623224180846012429122557689170998427903821255549748205637217317987424011354051776764446245825720499702733359744571297906258375081592397441747947512287458887400317079671331226577310601269689732591744623839352181967381967297311934484160406351290805608078623482651114004630400466036937478023492530516561421038947316196169083148213014253018357763143906136170894759266127985818173160806896714632255114370438725657341421651446973631235510454963883369277973468397767208928615858895073876246941484174429618989743798701615000406733578605472117571225888757412041188569164694049842403196653660097521240616918569228163631204085275771406697095111040499180352365935320300490772867027718851469436728249301864092775983922873278628917781431071902483005984405825456594059599056143802030639187218321539090636953655957098374635622685332426334565782713848219309321105480577619399136120126030989245749337837179699837771494303279745603952136965200743395884836030903320397123792598219312263256063516484087480243095813888532308332129380269472682336171662712005723021135269601961494240030998360050522420086364352485708114095358603650326193982902402039524579430181363143351258888702868029939676981113241283692617330614669954595013255844628424176439169327432761474473340718743781797099072689270054106706380587745275159538895256215867314672116994178036295206925562572112002575496286667753822651389671254269864380061373261688385143742034834728361182124392387041194615163289888944079910909689394978649120034742568904927086940935405889433304732600713827680947005793548927310658118004031703346175286562027935048664358657044169213515807644007517437287407733435666226688152511176824769900585457199876317156995682312757660378935716223090944105920818167029252752938207051245487917133672622543060212385485075973729854190781486501795979347870715491369115663765666028158971760230320131112370287027809750885511028374523780518324244726068699152953740050699828570263063435146256808418664917857737296209139747405264340800016823515432287661528145085809904780371522244986347236471650990798744879516593804536757546937359340724600671179763057674692708841802358740889872320629517416774464213327660284287721900546026240619425133261925157672274418930849542656063747158015808741389529578611271482958228238514578708161942303009506947742008164554504680188019373222454505959743680362496909481942320722452632215130793869799885793725205433719163068924666563809938517251918225151087346944023559424170386580983725392304042601306015344251736487427260573764900591872176206491240941624018853847796194011746276599223830973941535019945458026524733137696666834676566832292707829110476276956746160916880428364067078264515352776829142854211135352956816547753348412630789428614487741406108165224909576784956887113393988510910161601068807177227182662181082353417030397383132011185278260239445590059095511272577616085939912202155368393607408064886711027186171544009290223098357515678054672111437150773171281857078299927370086103993789705401735624444260989818273482161970940156007982640073541787552578864513734052816278093219717823047562602963924261625628968521550509672833047533729005061177267504998636268268567267364280927466122854956626651107666000442881829388399509149282830591060407281750124608049770841725426258758828835902398052316293207233333093811522076746472988260771378905955318045913808055018796047570316062293754803026245735462991372964037781723701975633654288348870233093162561325344979684854853671572012648181618534980380199702231991103260227870282316373110995906338534560996144942015966136818754654668405166866550244531799381021962729778019062533460674880328366771164810908018236581628170165881482340259371695961678029689510879554647228289696196096107631325297262694770451324255165798722767468727516078527769930565827319919067589396893224031330963709921445735576732337665620152689228149902883657204959012643777444723305644169160404066812789346090856332929479740901725194959075307323968642695629225656686995049783185752963051804228075167299015566469303311063568250604866665484811484310146034406606163220484932234900662609211653897587305295540419293594002984303996947664460255752295767910357470301083365285906937683827127057476755645592726859301463781550343903449453555807886627160990135105750498454453801709665522037716164622210645261404495876279941363840395323152996464405012591992098055761982610243762753916437908696367497014811334619695823930186828268541944862776768710014361896582900526189931351033240843607339489349355336766846211771829812136580485232675094679541802729382755443612355893292335240502333646428931958210013283207272043842197299229284993682733521106782977701394472688453840246772799056839478467593915708771776100066666885057101532283719293681915143116768196440627421162956281949886890984798603516635395427423485613224650597123781484988204419118558600810349541728741147252011668372124575881669194344904438814604797011592871863842920458849213384400056032660916872893305689752263612764069214917957840906236936565714488165316592898974642989832465091170692318110949183069408577683575961693363643705479540372414993338140741410471177979510546919992517281951746299016094614544198572124101448717662603370965541061527678948414382665210695600336394015604560334454307438252902707011078365394248901094405892189446679985095806309613257521882044557363440443745802941408865079476668642944979753822355942811106720611546715277467690883317466595420765891096345799795534049889572218111131308769441864135084668167882136909335231369621848112372164344698795216521722992081720404461588635759181258663371175259650185954537748788365540970654508470862518364958945407750687878522147638830950512341248345907321825101598248151814202929081558447223388037413248784689778446327256042902875782393615729766891466481714822724053026536015248360633548782173269621195797344811950676231023612719294949017450111386303263597230448490686248594418016770696963303234778162865558239566844726235412430737783588013265573100867550663502599585301804637616474495234114878500474903915938184106233746405796968826679904901918726773302093646160716432580738765745951715441081714430332019905030388120154412519632485156342421119981729330992546285646770073968194145026141181979411185509622331660654729047809789624749853492314814974334757640699900404816998613598263842704881340859907814360040794600056891376545792357985581281299098221745639305441838737816550617397591314717091107215740187702814079069139892400954988472585919069234082305482099747913277437848210284653706485054134254214601495673232910081839600730818796295996856370756678220262555210315796946781679811237223075669877489821411755320689489806180136311259082918757778150788566291800931936602074214648990131745530466733508478937482835914361975082668343249326149204100171744240726046150187572253707711928832613690907536856321562055870493801151964756987039522418000772660348295023662298632760182638344395883438594361409344705432191672175778902779566670680776407208347735672426383093313732743655274719685225341857866837655281757891827240511690651159950497205633791899317639007600826469170290942413320893895550977035480874513475279691768671562113760851167893521727304728262704807845105056764781411815608470155977363897946472309756079678995454719908135894376798589677235871595616755010496846968747391056231459271088234991477004828138659376042253887930348161706743631616704578296715370129170508427972949938426433816905865671116847162096555102753980607271697488118388812338568087766072988785292981110101081898124330019510848883654802422375353019249328468900831719745832800953251326262750421383774631182285301533180987590875780208298041818208965794366039528022324553228132033761742324956302935062011625844468867614188028849072281655379156584135470539147993897081851521105014891032345417976167718162701379197200292277917575020323915882307250692948775418984799571128397139531281794428281411510089159479095759659337662632352842394892910129487206689185331765715984048914315565134392718788621098357738240995707559258268820961649025003357882448916450456886251016671616667256921419793158028791685378189395782638269352685801838120285448349193378205484977809955670623484610209801199233834789331559576414361559992676668838332229682929685784281963914412595311827508617689803791116256296536281370862918528548868884877713349596482230551101910496665946050786808216983418624517615328162226744357536605037884977691593756558713062870543171255585114453192810949304019675810983690122690626782288381086700314063638129528536602575428753205425439020782118870702940387669622525065541320612512716880564662700023485679463736818326715960240892027079101446198796050008232303677498965676334281023724006169083252249402383514509147123124117003666060805485006247851537814935387453055811034421120733735775900648932631707124866634017375371931455187878177489986748565709506951223709830662609572995253276965273054280519347998737061137738242971767638171530030288963921460944261039268929594670857790361531641392869779113094282816624795431407954694260583675086213098848703753176004920369109388585992919341464145358845223353430136776911137008853558834446962062270860885290285142266865410072572864975263496241494601957059277404402834640688600806139278512487727602193815747272710107988303874269990789305119450310730366053169077768963846746912077755602011598777836312795014966289525186600891410379240433170506614331837194945166075359178689473424443184799900776358448514232171474865570056667458198891990392629316691350948218802135151880119721685387572143592726089932513003966690041433285925208076818734073243263041931461093199309382271400132536789789854298194188814704847464149501486147469729864767212311148100226499376532674683799690310457602390896760018606608512868844339621316252976166641685166008865140228718526117406738576831039095159561078783969062525664397521844642967811909697557132994813180459905301007419930322262253444154112978922070930732563297204285669160938239015422689159999300454338045901959286543814028629368334529280776176714938693506679548860614975505444730916174412986348363341693209902203680653833299201336376066088960167972189735763636741173121453406193564336806776467710491148605397843313106939517462169835444345296061822734769451798664542942154408652060151712642962919521383444455193353643474202175357381131358733821366439707110830873718165370749024105138089565728563202975690106380226522245973090820240078316027259037770051544806146397455939558888395508625243113854886327826197413233915003760544814720516041643295608104970904126062832629722821998275208245329930075835041765622857492090999002193412928408925363010354173223576370794489677255114898613387640326581415337268730115204196360818890400111067267186024261977811826020556791372969534726826305730138458371598764803802237999836746728019282339107055930500574064915491166658494244968785436809930312929434364332083205899631312800781930554559436954444806624008238502369937681722161300130816467075533808216474978990106451785729759762274089236792964188288440382875591058588307519850895417851892130236235870175408309139926484252845085771645837900458221285530223852163765822464553945160797942593719510264487881721017559456645170535119082749674791572580460451610902366275040815772146775766011017701012282634908405645848043117217655897070403113609121831705721862487344779195227777889553815117288456361838711098320359359623202869595081658335648886354972255548242018974927364298216664536358878590474591200007405688339255701995417441763774544103053152868718392999931389490499053605155037696618556542083536619495330241974530162464443762836993411841777208929885005042424901424508520689548935202457567386208243003040175396918792011622892872034513081504736092476534404187643699886767125471141273071284923544638761944834537126391418248996222969184104925992090959616778994591312671855774575928749185745410979543360376234354212258358851462028698503842756341390631191852729868541761748163199168746791653954633936526455971949945610933971584160004779296448104611447701177254948922196759643506361411879083633033619091565740439711667662949048990355118285559480945330717718241086799414694121730394306109654867498495251366193588565177273971009004223300587693908411660622966736903395153048089872536874996643419367867951787606993847139542676747331588607571937550977453144951840098494021037127942117335041634790679539530998143153771451483249222841684419390458046180083403441901231620968462050798603891116365472572817588789649711553007997222130779594200202703096465251959319305949349716096614259583408203491935490056199633880750705203515079311096170333601354545662401776289949978289309648858492126506784778815582730217877753262311504444229393100666688445450059390522509728879941698503547289294159436839077671714651391248363615261565950467255795807054316997849929016563185729031255769703381334382162307825589436669449139099142212193233756716325747930931075446465153861883408127953184424943158565148761054217414326245736911659465331075134645255119384173148199216319972468546234289874517466220547129926109619990354674326154898555446651686169651770899528749744395373713456156521330030802188287220470486793718777002713639780489817006394128333620028633112263316064752299523559321798615089726770655269736201267669558294496566922964144344603488588934373902483885199065004447442272112233069994447255324336910241414896084383808070432290740193550853755189954407525621637851518683702056522949273033543166001544790404030422473479050424733396450489069981732880119146832269371067532638464952165298936487366898924973086947749258132695991642278380268119167082676243721148505965339696858342699343563939248459853753112251487972450186684601218231536889131319724122787340619242980787250861288582322236433580559656477241255674309620987224542144083700567161456911336905055201719243316824680203841109544364967289479001020675083351157255201509040994592569255101947028036991866768129003860278392177264511434744568941635656662298046918674792419382634666908528825099662813153378625983677667970009267276770189760402100163402269986120811602858362167490428780893835644056727051643137275058389602184128598814848655555572074956031148089091961738776483606074857847112578113117885740885687875180280863565765366009335137263299354616698260226779346278087342475093577520292391452898103822571426242810142433913852451630204281153112464451433545488156071090145434136376370393141436499417643038517016083706738600632408328660930273568417681294040734045062796051832179528900111337795308094450393693693619735122871493640446025913086548210685860849572573594924081541276482640881525354552766169194823798064589787667114767991809170921795803736022459592209008839639282342009812611517647171195137130295784046490161226020760800141897325978154131868102368930155460262940568847968141726391592097462859509944689493458292514077231580547535606061730628348169723514592698941397076697605345583526508741709443986876314421146060628141257391758731725513893073242581789695736845140240446350699734007754605921388541111360522303191859731720279803081217087623410597491902677422648138775685626547569922601869555951111019825475944529868841976977434694676714102473900691317301987217139381141641231140654173824089603337051939762179972802565871355393464302735586227970300221928627247999822862760580668892078278684173619208935322822869832258492480275643465789771227691224933889021434633502225183953654955875065308345587503133523915173880026997116920885999692626887201108110907332799751869804899634264916410643906151469372360487729869056567808720851811367171713665606604946581448991821846167223326138409022468468093243103947054088987267780402820369786300125657101443824065786816922365064570317920738437669797527808082128272774480226498172936960264163195627319578279818207768586157387298987222452050370990523039276300991769454109066826648062329496439348512869250263952858601678510279866716244206861893563062242865641985565780194782516476333665201849285429619540323803769588469237866372396137520869840847927298354002399084752452846331321901203714983695470983501436837770678223729721759543374318771998469083725903270771977344336407512152511799388324814938615331507791563857451400261137385137473562417459274493346457721641912172081935882512623528194477864274184938985880243934488199067005444482808444043299170960478546149748265986495480364984504272066373391983635525078269450724625225690863917083858457652806815616793904789271179332308501151286062357817023495889090604861987644335154714072293127227747748641459498839153593000195195705371435899051105891783495841741055760553986027952442682973421911364350679701575977089828660011284070765216166146948891823618024972795304443855836429037190103740956968603483572194891201381588957137996477796542054652178796235983005386828712955863650447795337526105793502809639186504707194111554471602818105455464004307268200794467884980845045001646299456945968602493785814904971897256607185841147375203989804379078195633232442980563084773077933695637191685387356533727177484610356500084404806365419461882503902813701666285945161126239144660682421390426920632771080698134337191068684606737496798014705645783127296302547088669647061886397293390100081538729272071844987938602357281918628127426194475373385781083752944455545805498100018239265364677444840964308951103893351263068381896665613176266523011788763415202087890331894749402174529206015577695636206805820106256620791793215558411133232274237970649985237014970026922640798642512158098047680621571095219081880303797700059082904793185805292880312011698366252669356020184718950693778794275225418961425055082933424461641562311034059401692397446921945342481574181222716854182055661204209513439384654474834433692391440946602965686281354547205820252711721214588493371835345166352226295008728094168879421163935357980941724954218682118706978584582141089847010550041171471771599409689921640451075526607237657084073822220309031688890463119029726365509377132446940627165232408134079659602372648886218046730609898029371314260893387029900737463238995893933504489256537663526730956373216304841085520441808997717855019703119816649459231360381463436121948317530649958319454863119345675253019728028812011342260596685843383932491852648861158280930850941409649307662865353729060234371269579875695485889585470318718296297857390690005105420157781429992928833408593092977626539862406281657829822462399730927503032512676039997584194787649528825718361345991828833364873660724241891755021515191273984679507281920374057278656982339293269003592532864039084149350926565112354586668095384430835915704228318321677153527860772021338357317395895231542212422292802183699294667146186569093943770308811227976940279842157545594598472132330835890917359717635555079052595545388925079388648496111277973780638085539251056533309859140860812873999496366984604956264058035485564898694678598781883749085660600550006358994818582038594032252039937790897028827821327098971303977824184996892260797184338266135640884318039147241604544150923832507062958958930027145683450219445624302594847057725115439847489463216540972230781526059745688392446970763452371813745443934103832341992007222645745032316614026915707662034832229076046892095254478145401203435466715820690209445006451653572586037124702638943384466439944855321519962792368360716007490631930201508353579528618335712539736084724345294457438940726067893029712814097646950366586012883562696763560334791356409456123512524166338993406219055972998149618958860659343006782697444011237761492502390097165081049205865019313469793909585357993411274090452269299438231487617422890853035627807100434075858042037128641988128397916105161692426724132058438851557898954663849883394940950482691599843654362746607105093307001864715806605132805007190160467996326199204701074293203203774602408664178065310260184198775092589379695324767690008432560547044043276511544213832099749269058143355882247377040512267299532155658504091406459404212165879016495333069304962780082473830486410466892114361324702601652020741551971181167579064312687638397268701107614752988225998663454456773382597944051289689988828491283130142282088634082672565063897090147373613994829744340844720575839926220337024478577095340696346937766448399085798283564537863949765664652980880460375624935858301720671614437230775072982335483428614014922637423495405658455942835947428287909118744867468153391871853468491658421602959974798486717550509878878993682602877499345151776147734296612567629884273605850958801473647823430017149230964695731692793443776159979040654190999829537899487249629772513401252520548942984248534871310468598693709301705708098909585718956425387994242744157184673739638002842640516063211120606402540579701375621117398001203041204863195719483075263396342980251529025411942658652245009779228522806718491480349370140165279342578631719662060067897668859985124939960115941516689494556346234830237175103649413242771658766842557487027191472670111718877458033915303799180688368436389944386008100372631173266604774644294097627324410846897007695718352747660350390925098567597513805124979699487718722530676399163793346362265090572094578145904415057980886904000375684009347340690028540883283190090975591796696878093500190480663586756689188786772515905094614744696216545232888734119108164822189023329851280196176159821931367118422664851596057276586831252914464326892623178323635990271814172311748693358028200695398393981317716012634400539227792541967537802420540457760756555126246270079935205609010044677528545693026216942325772005108586958218940520349975869658495252924903304087525008914564736639721127761878090602892559586438498096665545147896142831223607691175276256101166696538124535811961670345998121824827531462511329713602950289017299637655204761542492403123435120022739135350694152741794689737547197958681235184195428612032319903656085088051187695998332648295347596113178749277507906981749204818855387833477971134439002529930971111766420685072010559771335233314902134867794103497477368862738260082606585141672555628806546612963510034335803910698504902393597597726576097909552589172462131737382862289086266010772695773806831046794414319257090227343268748286342597024949839238019926032666009868144863292500698711949535125460945279638637237999967014695544944006985583904205817873143678929799555842709568323266060611132238673389823108147163670543762555161029941670709805103068467851547293678129042076121088862054178217616086653817684189520060068833861732681697336056695582488241648168705562440849575257923009744336080242430470815001084554706272735755498884002781323058645756910817980839720942040748735110310054614107892164068051580950144832606604978259475296984891150965628794106347719225550958218733389288005595429925169448536760097968858737430272152463720147725684980912493259115350072090779733269731670622547815441731146273680118631405945120800909356528901398455187433998038064016481826865565517627432342110198458055193255783571771457863946704154858737127824478969236674008701512155933058017850402266525407616192554481412545792078218972742913815397524891404948992437482752132587234817049755514413921749884938362423741299035469316595828926284545125578658238208300650132672034586097203565273067581245785564981463735140860746831102395685827513902811470044615449413324929228050840139826154566346013187286802220087734820232792861674884742568504426196928444705718757787542916105329460108949294130385623770091567973518972801697382134023132811530383339577741314813858821338105132469811246910046837591798706424622239585967237267381640043726264278358356448130987434903684532094221091715653936784910285794054088746738735479262647586385015220142417307548070678605081351028007347036364012759688605779328705797119091744536662049973843340008309930664620984317120128170318336834780206906423092513084068046698642283686625748648890142287521323658990381092137638905506978499914273333301270359938768700663878926091500206971228541336747423434330610075763235991753254476054333660564854126059099507818944050732349255258812351097464535229930428003432821972715549987068400788621348052584049812901693117115002265580722275461085615761482460357367530024793899165047431956846075011993772379421831568037865196256210318168380118904839448798553644710310640151683483434110470976798763864413386186133497749212071560958101305731543548407721530856463323904759864950100729925297447897775051449437968520091164259823773148888890631677517254134751495509722609595091713321373275022344536597399888382582071851446202471927558758989227009547615182753723903507666030331370615668579972425801446284566771930494186546097005555699963879487658489005894161179385350973346594939557784488677381775762561717933173061733596317786814794261629058809791714002055285328027973327221614359277946776787436110525720545167835498057533793157558450931868673347836973813644415164125597770481641149875628038697582900742857193150479641221073260099971501918976275720602171527156220185591806171446478914326693563271069078809327233151221772806975881990192874267075112953475611181852137688668831852455492125613074851410330375492689670098960983582470169833987573119948402852910739328790261326323292700047264336925948066918363536481609465448543501309252899704795066201519304916525972407917997597009869671829569556198531553847341213211955613679106573241278262295911854203541660035424766219908713971283317864296560615799176573740760045211732530346547477025929262147907568447736276483048656746988139717518735703097109035827796702563383238085214966634177530260339083050674278972180969654733101723446793938834271669723756670253125031784969614682427195416599467443050017702604746402626987197805550352196087792055493364844949174946690521611821192965191235817245991314449880723090382108407103919793876622387037877176898673726913407942881716239862896926743803981912854681355486668321416090960400752578866473187095871556969667592791812189021334257059589270225584683013062764446319133409000949322334787138108935674558368779193054701971382566198723436227279889972371118090205285175794745366670514817811359237933556218858980423506493582091049777295729964683179403144689731781276825161324670480795990367750373652890096071317966309994736830442559730769772763150274528964904638729260127119227713110362096380667237734001339577089739807948262731119365390451625635084803764024047313975461660415284703973719966149306636237529864076549249912907666437088761499046481272285512578427005338116461139226344290948503262309882396921365145081075402775309548650490425453843619092118973629671124785146287327939151158183516502854232291964361151904713639783012765648598065451182384546275504712129585408101175443703747959128985190669976149286582290671232618259141775072981179009696057427076324593543247899258579639742653237860313306370423219486510464235267018187073060965323123464396493540271514116269645302836624839101210436664820416504433958281845559840292644630840378235661078125208559061265499947664957795603523920278275277358743236123471894318494123945217930555357190117968195026312578470006198654842822739107888319164721286959058819384914299058272140070607925459535977309886827931055689700459213490616579985419701937135396233860826063760083887560155393375012958051431230653596720322344188981218188868456744068714179755281563984517195311589544080854564505453956003767525971136382202527774058654625411122161239479266870719497789132519328929713117333019677536151707864330633545389708359845268745645751377873056186608230437282436095011809295452355742846985346672503535090609430846854368748827085117536809114210260194476974466078436734435240938713123334548977433341273773165971355598496814178440559441923289791369551534609429791337679018919147647920697175465169869967420197069813137160987900068670766848081149401988810261656684657754078905772932435835401259505634998124718397087308201609071658551870964321464571180813898196598852643130992962894614500182739398268940472388068066860124792419572695908102932737484615617365087266482055779590119365089640649417124918333975714283987203819644141587219980049276188126342494773397116589725212494888242389365202933905104215969044725577740230550759051682533311982205442397208562131911461528150328492075007057850148022526541059702178469034109862404459000799742149599972144917343879550933402245235132656830298192293775122948571927393742131206309942498770653079623322586415706632989523358534428727507713020173890805378887671058925562750456578003900319998398709831688011735460377155639219187405425740240531016308796611162586590220147414956876571671574245767783151705809414590964904293152387697921578990364582613250878744739492638156126023935853925290245133869662771135290879221315985743051517980442584449054889712121323878964809056169371948879728488672036575748004283371552788884001466448910861004160801613628723429443606524163207696029795064076528741489443389773455098627935235912747269256284053430442757157875365280099017434939876135942963053944364877162590850157325091434131975107236387939505500523386289662847330863437151256820799440556893862047815391001220417987766246693874058293292359815493101687735988755009000002419394367116984531193482589215919377231370320649189501376078216570956022930728761589529649426907964713913866013733298199736095935591591861373745980298418746536632711268320182264080699176604266029195855667679025559696307654826385869263990903567882929641739300876330174485510397682686859858508585801587693147070455533733292240452694577013795179456910324399458638864034096911116328301303584130303745972832693160571852645029414344763773033116699698794002533594028172623101058735686394180164656904828750333882771577106800620833208775782278331154929761962618066456368322247606039268826447057828602131567836146935255293092761433301794779240292781584387817732724084858499108689487532574715583586435507042943479249393267012416312504849531751682195029929705248446662466713698771923311957751384071073173971060917532922580291355276596296642739430558579146557575056239881226980752330497705774168017498604649785407831216039504522261944770975433290834505648283564279720125811704988189797732018020537024241317126279494523517860384121848927636327378655727290957675799031332406354235516417345892370613962543197082924701338892052284025073481744675913183426055315104367683586674408235274225407473852641824596052144813625461632263404363050997468494507782336958645831154726469154307690793954803333470809097377014693404158877065452469352052911474812901917183730372166557403578282533293084609248812633926415746432514330755146922707568130468925568839917641592888291235160725362357823787634565777153325666200239516017940638555292724959505203306037162434724777172217630021792409602789048021807641956851436909614478847960213554009469480463382638288489314722074442690524678554527266947407121648191661961174317171501668746104204555559567239536941677364045030550643082099331000247686093142390574898348807025457684935782252474516087618263548985463312666866244722814839130637393006723230254567620874086960549063314167113788432288384917540019943395047998458076152136378472522875806815163897518853353740178443862271669298766319983850445480249191218397618381722287609747183387252773402714223758536832233859033300116789076996724749747535999775925383583360805149118501472845526789821963307786084713040015478386639954128105113799478389008062040903953896275112991566425780362820474114387006722845752509742043207367943353440717294339003149669435773788529809395210433694397883510456070728739750234543228191177751051849479240109269009457784388684898490655925296197921817941383931928398283885009900748580971211423534686429156446162634498720821816792180503808501471594590133728030434700112201708286935343430449548065179681255741106423763112452230536820060033941322821499805607856842644260461792511080787421642103914866150363100933661739551905070239600858185357746594652696763096614079690136594190777092058866221913615324061172903142747935807081460007968066852736737981128728546691848074537147471220578585973186824222617654420823040911315739581085228659587129446587875346807194680810755323687968526343701836850570756887700445312146972017557151731171021839548622995234181162898971124182451888215685628625138184627078470988559583328550468185541288114499203274088248477771336524862856804490133112512275770904648321350191868321551713408298504943267664079774478007012604670910693595552431921339049000892775232955263681557606464350021776657093207686712537253091653454964717953570358708332233017065024496556455923664347881759013845753075162224864857309244435460675742922628742434640790610721469035247288844749946303082874478677348745362739585789421650183011140681546243671789833289726710453027420978836801002411746368978646446523051113374637106709440980851155129902439158592341156589244179732566635247670181076048131553519719356230375213522610386374454424460358139321506244330452711262371783928007960920356705201058813142009992683174608889945598674674414443338080512784100704141146673961718167320814791314394797863867438541535128765878401479414901362653793505696952829552003490997036879039934047731760407224720294366708909561073498604349633551824159528508076019472845833912640425680827664592036383744012224559933134581420223902168333828836591905614125508388396640299614341867198020419095864174605861687426804921805514298151963382744540982389004050082538576709847716820624475520126615579312492005235235347539756032857876347277727784120131135384152590618384755776172940281711604887846232443607194708626848786837440457209269295078029348086020050815165734034756860326099661770224823628041470683762273958099306011710739228020100220294145236689873500920283949512498979032235746938068028516926711591734427428116940063641656086127560262822977102367474693979969754499017855312650027369976892242727412940799248602104284013233674380346108348391506464028583114124749935370828138658809771172378542105423385714857067511086054599027040842823823381655841296910102127445987947324428344093149813839053522317063133195098060645770799280090456367788058798393131081155241493386601163566815715285907787854622805100872027008806390509510278182284662047013889810838313996686333938910465077241548572777730450208811509481561725888002679599238523236840142716749123670594986819293967458147716332644446469216763158349943376005059682054429474881647154387927572180032138069213499336937851913627688483289228817958981636508710945175930611745564023821293837980507338065224443492060443270530059357276144554408231344480527176311092055786828297805499012618030186055890135499228894668786588822397940254044403799847207750336737050783564888019068461624322124652183883392303202078405919340939119571532199712204062496541383360725329756578666557057978316988262466829174228097846318541418686149575261121310878857238992299407729620985553257900133058269326675789825497950349473427722956279325551073840135901875814700301591186718454580827342188949489361490049624533369989367816587709663968925566438684913606378493051690095108057295239450341855743611985107415786049999518896861333884922877484265464259540857142638277270291968019421486655930911324439737898480958711920363418957622769773528665794625541810130657712686171335042983247867998204257177521319159205664795125990466879546201807893994536456084361729233030367233761290422698240275941746072094091578853427636231587498100879027424618565577378284835183906102399379790614862501004344963460769201707065245439110965059960311959454199017763146250022361233983554439431809783417976407498944931694563609817503378223393343604060939442716405693391173703244629975351272237363957906961483183007692448510744492237423340744441742190600346293286843862456471612830925157265030824567921000662937814751176245041825247416495017141741988146830454212649711825221290436329941510449222919737088762026629345499993962974638387569262972436623206813261613499576328519148071058553251169860337399691901224011574132830953621060463587628630060970509937001075309508954630322439430024494081623079139202514682708664589366345155012656004743703779725744686642764374274048455559834218776313465427295766701317674872000685845312149125117873881300202425739596499703950281756463090090149841608708601473465667544655360834055157664637076214671162078420233427809205492812473999184469657464663658956927116734732380572712244917273463432991634390530980270701458765312666415508645860064523411410914812957409160478167469441468344963164270093518959820797953686194626784725812456141058756450047970288817116065980859291302674064874390234166232699134661094604615277994159662517720610359451020578941029722363256136137773323292152392319623604728564497440143512488243892942813674265970109502346390295611497585731723534241501794294228477162823335151137038185157342631634987205471776183750143816446631153796059072909789842654350854598414334572246116947079164007565436349137116584787642346353364632689488252340557432639822893038719134790587746165543156422358417065235202579417574135566669850655474803598084982723367302473860272001438099196455386063310540164849865341134835858154541399126849412479539911454734806511711822977365694333894808531785703534782242046435153459325832071854139599518911454134638350374723998678357948107948987313226324535621498302673255644940259566537597414513720846628945336542597447147849084559778753369729107425517872627702454557286946684051076839084817268667651457957599084000100344423878163938941190366040272210147770545680488987511433028788485624047469800967490170888720700707989441318536042010037542632433950615198847230038668568050187556056707888934676656739174081113797224833261989254595724634154776598369336397428302254146170259426525997609083249494833637204413086010283018397058753237568052869828326520669197123625646622713226079319735610226897128260045448435421122050681785248765730079390379692338599831448531016603232099174654486144810658569052043136030183719021673806667399214635253859948945849409319270240962349461186778321788443550203648326733883910979407285289422035675309170419649850154733750715956432052006488752780236498795786875363722406206667161637756401087464326332139134619741233365810978436606497184840254726784878751041194664214309149118070807309209423426118903599226835101105638041744211042841632903803202208088086630923993598704524810706568206423162601983796340399512968142394642397184251228017241667185684812369193995725752310828225721688523600325424973279216025411363798436825694970916648451097545582958725672476693151021905094434147639948991412916143748595841074701019747670127576730889698994999462376720705077714424829203897262346590542291432725491381827742679608990423004404488839819580519536520106020723119158607777831560638927274348655839774513659283191125964800407124764387447895874961126984009238572862185123269083212163474036619350762107670334635181048120938574018643262177881836028018311598756433646817655655568038469435947467519449782469967385696653853904313972216370940836077401745006066482214241805461504699159712747979402249174745228292363353140358150713904542033176495493734514473729899176676006605563518217297205437896854722696119739745510814328232598594599347723633247869520324414650170131811817879530329191908035510541574726606290505685459769500168413715923971174359401522000835646065443452442959182475028319642956265851049433804532892344224393566923620739881680273126563230200161297066633376336678238633035536448743529882912727843365914720304676554951718521928165411953772223098155413760547113861693082759081772073015363048924859924763274117662465112957637870690016766812827581881750106108557742298739855976032060840923619515062302373565462239809351283811663135318040368451340952152199194964317626529091694271655914715177797743945088047129637428920190955677301290219094720304791454762210129824604802290068047215066801640217182929454320280437465936866864096197431735721880866017007449163956767183714324724173791560902500803233880842181841372270982481980127913475033844082243351868954065736477557388899516844307429050882106338522228538168362481441589503168934592467509800709013729794177799132539446488598268013828084964424395766465542554410858126902386000037309970817225660572555649161341493078868679319798763214466163637280732530807605870696191925343420891545979425509220240381595948522202677228780796918650589723068134404429898173117113277151472090541240414650319757979675003802388487260400472596927786017363536871814376644262313157810587465580903269867586536618812441269742585044813187953675223525524387098854308544636075422896703897897398371856334586682684983664689434461438642194009561551843203180454562665047902130468992468534822565294761235298479366663280056816183251708015441888587593683421996173978061619898424603973853112086192829955801164144741731063143879228704210397411719941375780047135315381094102962442139935245482553836342325249564202840676206601733347143102088597052667604308095063744035937048758901456678254559792371380792094187727686184397228460643417729387116298136297130566676977239689480848708803510544871304318065893712446380187806168514923085679154379437746729546566678748973847625219879722164479362935553798208349246079699024912428903925985337355606256773446858471926345807919912204428487484090627716417749507162307317661873764626258166743547957328614639252421010382708848049297465250303759050016295452008564081526440181783496163031177818605310037627095766767659838673616613220226295590977402906694169888365298041153552261195973069247410045193927702808889426236099224812768133518562047948472557431486412281100013193077746397286654100020179854157050243027585487847659128865238026043771022687565761012882180260409609614552290676626012675617329573603085323559797467154516122599555055102152187758581902366989830402437661402885046737435002144248836032678418594838363362261147496650581446662502059235996280414760800442557450462318070728194788621316371866710506572478706826506873665970589051029789735740019892746850080890134889468751296058162592961230533907629792752588214696236213664794543721891220500164605496294260814188468721692317625700731754562118063592440344116117738765102245832841801169042821217394010141169263610127891472580643466834396267490004418001675765134391859646917719113716859580619412559296132144513968625117244020752804471056970728332846360681029413225287037987804043750766736389588424915059740881386711634461757553955724315315314510369767247673327963197098003882685993910612349090244223313904079475601849401731133987232629716222443909113679134438001782835234201817960852472743540499708064711142587579436558430996699650859937898662490979312162229113937915839060096060614797056842025273998606370404643174255731631423416019286777481029675843404364459336186490117950547083504605746212013689854531198156774135507518575815908840769480075200635552837503409051871774113005431971147880393654193398861247105801196636214239748210608758033554251155380072837585723198570627621002075593083543804860294213542177606703641417071190283930016932777497584800634384178304041669666161072863656841465305560585019869469090870166039801530325709877408809019908537482169472614561962360976633769409750410648163076900833589908823330425264860818308669855334717615175109872641295592266618111671727293531011685802315192583310491721627791737079617559490279366723789427049786412906339511885171830224788728076804868512520705390904442094058893978983931961401616978932520112891676735177754798435231975881703450407793217248785017956066137354963121804124472925623316134182823113249484609411375433139034538253257768463185839287250041556329401245057194889665143936927835523547736027277535629334848602600698197012598166849059363343128528052125785068930512253277810722126819163435970883642208765609414583490087830086876198272448483296507019717112457451112743575755758613226464217835589530010808026818930147238930525622057513566511421142775378597247689893624101639740655901598295747324330883215088444764348603592819269956784266122138073630306546442150932059653950915656370599751324822809633843949775800571676051597169824273894103865546771688634222407925164374242343766686959757308679737486912409202965591808304349229032304985273913424000873155657988516157092576717900572912481347519297507917119434066727785007056759148187374116284311903557487898178920164030190122455587822474165746571799502296977903725471608795398550059126899861736302692983209153409996115899839792786631632854902825707909971574820743606305977663383077594193111886700644784503432488250447268649950918515369050415082268465370316794547422272737402682297793415051269265941142914064669463753823944126158934789947868250496651347502464722339052614121799904234092374398714452987096628618514044898381451633542041678885749472698964080422466431041024773997006516213317467247453673968783367324279241627623418698401283067141409733372960778780020805470949084674489281739137213638129731559577787733291910945758089480544019682916107292912010175045878675610698370563982908676645986825053464691637195666283475118955200076860553284536260233006594141270875468209498536584477891148728823911127526212939346019196315150447599135331892636210821386490919661079535799403296356522765670505140703870624200364659583043777301453894009868878278147083757560960920766727102867169472512376804782564035465145594078841147723250954682282117213306631311986070100915521882728493125114936241533847956338395705225517232076024010827411020195912995613567498002352608309200260194573123363268790832104026620296428602340693602912469807084268914217758858561486671820550341485590589315624456944394538615875321522292663038468820026642158897491872892776508446399852984654570916278814428391974965124872536945653493030269042932117098610168162573936411146964688885197558114404315135028615692461521513922131364307445060232988560473672490786430125961287383898257943777353647433843542575025368826517848611638638316516715579131444221422369428341763021470417955153754587532575370897757658876931496741956949137876004146451847782109568943084680618740633501213290911177448098388134480038442919587224467398539753108350366782066687997284303174079502924494974193909758388390227494757144278575690154144862366071303185262579887138450961085669241845035703766942216735412222194568680587316961518864194004960614650446193844546664656261731011486697587271063640846769421172784479076814854166478082933889611819795179385857638048084615429058762110465499698002712685324296422662452241308217105916507467448507019462522699557687305665936241526567451061219448096992542780985533617724607971459483437433941577780790880166268702891143501646598375304385304965230629169868553413435004562531601778877550075797021600902006579508787057288450782805787175476167155708529390334445833175715569491728885363647551424446265338404584016251321398827551987261852183415265297363706200986675609040225304491426031637905117286227222032486228235280973508704929200069164888969008825135191004585992359189893666231233849847991562974753868368829249478690392403116272234350086090338122627097264579574292889751475186529040249906737748882641718887302850188376762349228352604184109309593617697391369799263188419648481783214944003912832387730611054307879896254426441648881804114836156450961577005456400225577600364082439862655402085612154993347755357677036105744943904012452782394940809424454380901502138344620719241917232693354354205167653831418167166159457389547366418707118820352967863453354238108328445962782063330829418745697965094747646914535094592453401520968287675409869691534482524710198477907999114644821496378954188665157825436843429486804127053052912471821007060267352810582081155903961390092254307159551724286111885336572076295702025176946068738034246813909531411354199439169899536255875017904765103451163740814447712666427779210192207992134545182036534623485127540693115284046690511647072776044412623194608162446533014094886073826349886121366066891552807141442705928159169089478355007440170604111970245133231358312104369458356815326065168327910976882768130744157582826326561826620062055398732075961849390168035484940015879676547956920526016460279407621018903447465737216899708056245833161691106046828338381942966999137310216286600369235765369017006755162760457190361082177118257516414477393225478693867822339963138274192205289379256610967609806708722107425918277744225903932583148896364455164678195495218034421133916611942259052156849217549043925147058703493279201003628089888041237318480745578108175713291853833769264285648404937171178080345251253138336851391438109335237639194120903960403512871168335950052845723607836929361355689925828070286971600493565016132398704948484076596085006202048803091802974503112113393669599222793348094799652197289389306821700864796361248413239935108521390965747728494640359662115890071334063107828432676677701999800831795578129297284431601905727388726381618762376455827749286805345628105984992177031769396196908646033222586518190475078638338198088433953437974890074457935167735272135016498977027521110980218747056999605790394373797261077086952636684789255529427030344083929008884779274484046526485854426718725558135364803964806770085514746745284955749913394432252556007394203496023924767245671095614185317167810484902279166274352217828617137188115667074810630671015035490937207648298846313482591218310988664674767934528484231159228241760017501388624612652892590787116372380965970008326526731041933470279935196900958514165948334555609810310586756541232223858243884895629232646842146044658852492753223544008075768973708685208610703778882137644896769708670852367997050712511881615877359160562786093140986204348338154064925798717388401148661364520778021704496316032474919411162902736462920741634097221257922668051362176951539968603772111539131205161869631148605518878890411749607670432278109786269419469505485138288129033100461428817575180453338689096999512117182013979925993716794919485897548982686620254678766477384796783928869654145890688611373154582961215513810394123287431726510283173477922603949808172682138838867841158107900976699015496590342190682226062694855225424723071645639747905449621537634830359507931096974811336354231837321297958582510394940605737179571111356280518018705876670061516636925333211496327654952583968878345059709964152701304472614004078891202801133322505375326766472978301440400695335567812841610119213877880597371899204527642332395428429103271379226724246379735338212189201533540518637344075443491900311679114180147791110404815565248055362948483188541283967308728439607709750405751529382038694396923170670033510137351810614989065452859168844014789704487124861244358999950547705146983886826695800205609427971322613524625110815764673789298450263900906286289055464681496045499727245891505409553271927483163997078155126074269928218796364800275451897229240423597016777752811893748931420158998450577373509629425062323726626464941850739194248328907950795735204396409530891591691707552321158217603253756090117229163202640271969487095875621908106426973210956240267888023248639155925939464499351671711876316460247198765903230163236189726496331515744214673009313309356751761435605336720765584393269844253891517115523044999297560629408381083835452944791885366320864377683176513591004781823124027737829879867554695514434122738050345339369803658230481854894957717049682339118705512898122164776367193472637925833257776217598690811785475265922330588122813966783009169903315103460317454548433686465468537279989892635543286021937458541316463984474226379093402347220182939329896350045261428957468021925443977429164452423150030493544830290728293277290437831014124020183119096880467528866647391636634005718579818074589844215860255780386084972086399954544443339553451868116688138967280879099334872589593568679186566601841196660332075960193417808221414490406706445415524965909654091298379069702693229495247217684212089235349343376016020566805540241451820349738243574363646935467630163039909612404373328714908956179468357149433109014629247259934698703918908373545385630271140335256730231648307054823405708700466608117272101624900284421663070376416177818966893128166868167612453622023122485649961941903095267013743994550296882881572917140282693467287243071329203717916053681718989124743916668512224171395877924379247487185439753980511882609278322702449384158529086918505182766133723742886739057428908573694618077166473204776811844904778609984328989286769363813575783190291541168902552977230251210093708542102957984767560684009003826182540925333007477621487750608048241914398441223203788695647172490673391294309671541531467796808338319213665533988912488433441386293494681233444089784295629921400991030219957792803385233055806582918204508537561588046917163816500640271866217301353068115918107858583339754192392559708144270501637455110590255970268266952256490438621997537619699673756732519477260331115255720870238003467058796405269218121819894214987644290417386932874628585354897998495659463105522221771603934937206277959650374702202981389162887976428111674278156411774869431104977914454674541313199752670321111035019637024532757571929395437479859408248015857774433579169811401009816507419627643624874246215825248900838838490256653704986660161258536851793191625722660700815780415256248799599656470882092076675948098377065384791347160207680903304090247977864101704376542403464964555129532059692545196241915425796703243989974703016565581596513949946152606926007732876940295063990277442403050458453842670524196795656179632455539863845117916158013724888285777434697187991652355738226936109951010351173930313296557497392060947105527130166024420352606657465599772265448992783406185682624836035660930276386615339980099970577834107018975121102652366256724460072005424473106894241928035567809907431550436142913848233351233012634068343163420791374876343550990475522367653010453015102657712152608328221339560236741593130756943259615660900262050569696730091120576458293589717245978421355917367693519066600667170548063245081535961267362535577242694726798248567413232210792993681968566360349265831175304939134052551680810769711946225140964480560596883461830687223623679620749002510460233378757006297000246592224051884770038788487715954312865909408001102026653042670768670699518917037815593494381129898935192043811950810023522330058208924761132473649684828239111818391909326906851962680043544285665946895300788263155038119528005522235966902108078122308787192687506138022182058298426530878320285252287557928039739075317003285116644758436204976376583284591037958120966647706615023948309390788679775130698234083776789871748102141426427843271976037076504844571382458120256184689912553559855591376970384176624451312162749333655885530186128965390125210990406393598278128208116355063160548822328642287847317243871108923501251980646116020399572839919927396056936283619032335094358070219949254622948148690201431457980396394240662869135902447780772587128276313229026328480982591378482470336680883966432379322992147638170603108107112629479186318207685374202583130830728517951488969529088289434862299359022977851335357568279755054808460533021513304480898846465106545129452307890940751863091914372042928293659625734074470938088379128669796255318219927342116328229417996234311542717467533800888899780836368623493189776335993644048770688961580355801470787824938695830737906511458128943254883842835338620968387836779765249411791645455021421908701173778213113030817746077919335107218614342886796998873855770585378772160341911572964132250692690510165350017596621501147289654295636587095835149116741131278982847737418999536874427179950189117627295462824678706775770631298791801613208469447090178393943139308816597846699435007931435407521944816064500433024429884914479078828460947744981153131448174251992005673098502903687702768958487344330843700675092961040114637538772765483015147839388239631839412201376574903704899936975905086319757128603932942517116134900674770617111329503412706787751267924001705641778390292228217196423176868141396333706869802711805149881855704041132260221220235099083331924846900016096216906332398193115261663180702909210604445514252140267089458244490491541885966361335159507501708020655681285751552690110586733627379525937365239342768682446973503914446633091995304317775465603039066724512097796030909024366694738805593027111785683885075082850919012611219513056768604361441157204883121637411617529815478139505665381150157854534750761080474097202806363290706814044148401112047463673241248930224896372550503106395483816369021951597416985082305342912950628363756926975876052861454511374583118995799694457221516030591561583187417312777345473714657725400113610723547112292888693542247233171497736450532662991081866804499265683659922358943253622589913587105428638506154999283035638032639002512716624685202118263655126429046719765802079667859113884861722795215634231475688465392241270803283072856669037989384774702001826187908272617752951374987071572757956299870533099785613274507635114738760405746981840851728743510863327205082430449300437117579650916412102219614220350805619284053257280618768654969903265540957022659198478094933646414917881677443058549492869755045890909281579360777508761159636382998374374254526208205405205176552908509018125747310100464945153345125846378332180786642321726036980518921168875978670059515795931274209969819501748221825868907698852156367614870650634264697856265267099191290403919531141982568415879562333915464304433004992020901837759462295017338326643469039261815636915198826926498361717225184397837767848680917846604005484366189700921025289977277835503007811380520702737978158476179673098417503585928726586410523825685184947721736327877663780775006908430713968439081402094514849538458477099991535860645253944918515851832091200515191904090572375527962832932820924940960628921837938958328960686834434798899037762514486738831174717669728581217102914513622292351486249713554740573421518052139429440090018869027096446680795371952492526059076750251632642420086186401971915649581101423274742040149562992541000205883362526923302559447190684933631669993215773914264513735753166856867553447439019468928688928465508604123388601887357024758806255689390217694580165934984573529040148428392863224788955514824498704994753182191699184475140365279695173925844301579137591796224293120969678935099340836171829558206088900292298909444333749734296021484438730509473665787782254025593726844530923130514090446539098919743539579786613322191179682615557682829356749694103688235996893103056457725641144181028089207238343406153973287439839999875889613895019797480497970342406624420726981320082115308507487789213536360226863871149161231928812712473375856241891177652012248540005790913253977245615529039496738819195381586256982694198158448743344745737801253042380749249010557378944680200401505471330691445157228554301912734908908895360712641352946250537107857063666594221814607390255796458643601661562511470709133317049508086091666091779186163721858003913953219556427519878298425296757686290707624012317781980172062176215525346829357733117122684938802350223276436364139181798676965788037286377991885433056908382666027510552755900404900261327963374581903875349792980930734056818636830018817220298066606011651471245903983886435189731493828237763456376914550868921804099118856600892524670301347008158200803858544689961877202352488079609540343323102533908497315221819599846898560082836905584609595375402565915295469124371292275521516254119612392956959716542131622027306324927230602812772465356080027687674280903540295536224329307752847888435241872778627974774319128065560909907796428553021385337452532336307865965675655940434572950130631043161871300516773398152039146253030020569162509530376599129395469124994739777330064153442440902068708911369937174348059689822178582290629403414391172496059996118371413293647653496143048222353071519963295241476739479069526407450982346800117244664416214968098575815227599606120449637436594975436925799590588136125391257755577049920493138805346511119574008269588264640101976870568865673208746634725173636082863865004125852776838392770437657649058923659881346366354648262004859708021345829290936925608848928221944019539285963366932671920701387028919264769352088609426103826244920656813660770002746832388446995604689331911789503381963689371712631499271318823227307194040530680140888419395187574275701227189196897104254599617919833223762289555136470802956068451085202212080367290889716898608448273403371310543294889471238146097414465401700116381937925818701811381219538260751126396375906359649446686568764058631958121047411220450596461088968058860007619510724133472912236774910184355800788782227167978319689443987287770248893146093893313942354685434730908912930739809768890668757757307939335249173062339611400459279558822006155673520575247655752690058495119478007950631222751046519821394781788934052908779776484378728841503054382046984918543358792654447894108572029059173530534573884434366827905528354685552763981194570580821138824747368815040564658712585515012896694405594012018998675402805829649749412601898712633921237972280621733000942401075328863417013429724965603050253860373866784755147456164778664489639603273346984848336845653616836174983798036756870698092469544017626006171875533500807964636859981727447084098278802135479402418516354894725844934191233195865487691622188817647478690514047939424774938266211090006185307086147475760307407219201720946091438116037560173779562024263071627580204657940554815472625880640577877450080970422343686663591243203442645139925271896199394341071189417978754672178257229542944296722161850444355592995185434645141505103777393516181350040152817496200824026150799887138538188507631625598288550999442134011319142421839187635151414540351739309232100797612528905252469597596870228371597149360703592601125232836570788793090329907451584120409108705064925719251603033618327917042260832575683706356350825961687536061239360461459322066946621919672233607171404311987642840661914847079141673428497173576369078344605924504034364684732514068957375351473080502964150446040273725654991188717118820256842953998671573484692909676657034126380149841622499583899787121141797631069195333828293043810587133108472836887550204111617630279550796274641559723268528579289645184056301094222364643885013780169470662680601398051083078545824495686319368825403621958603589554619110743419576580709223947134177466665363232893370276568075176814389830604816646940050215420924119804332860927591708524014749002209471848460257583660141396069996145464748000026781529994842814279966070106761283366538270258635557888609312513440479024168437763408614102854538089737498253536009893084825688725321022522789645761037188938866938207720917860569277462566753112915332873566885060417197373198126984406866465968781022707130532015997813223935902490908221538063758823712190532605310110137190687172030420774508109906363084311588520555972661562469828789151551995587106961637997600563601662031067887597156808733411858899684966727628960681239076222550854131535494861718353174488341894814759564787808934551510836782317350407883089710561383271550399999366228167599107346040471801175707603652383269857147454853677391916780600687157014140506908336239774813831714337522631916563036067192339555302072683701134838054026197852646551754259388417864926424820178286617805134668375764586058206046103798032585398669019934984910686164940155069289643968478892552682478074034080657285346754763341774409711959093649097104737928755809923140586245204621458690367729996142057875913117412243529529227215600459046543951176462645189369698590803747957926360310467904861928675596790618314294811740172143101775057324800801897260492313787464659723436696879887411119557559088566442734391768491114204117730490711230509721438430528851548323788529924609383255607445450733825404510657051530083883972993062531001887138416751678157507331634065279569318304466667701296095186167060392273128885358348568548026635522056027182809069974455310536441871082462967131659478272014355139067539078872176002667292966514061614311114347906074066973572101884177695124899279402836365943577272980754402699958339333669275216737243067706130870246999811004884677819493090621282325620880753595513670690483785053671876520518375849928918190043804782737996502785069343187658977086215674598389695567567853733137542016104379038034109261806690318751380775687679475318119318461207588079540764149923748627985214466725954837634449557635365504801906780509789085021242610455845865004235052291940878191691017819832692401416344857331508574464655831351696910050350943494648634487522648937989058822963427016234989672893565446900475637409532245880352008479645260321753540110091486680353363385050534114239547950087207177676338009654321030435945824607857712127981165214171207994898477478493114363458603472205636236397190840652847766614580883361253903491671899363843777238877437911801720883519599407240043767187437433221796125404601217888000372746477410081167301915089045053083447983630519690762445774057792571718355833992892649728905389264993147329449846611299660844719791252761592533800494307839475899927923838861040216440345403880963435099023991249413921635322309889213162441546224757062923614097955535553777936326972848591742873114511189128595947974191979923089073285740739987114362239169517730991873368979198149502014864544837081046188734368197332987433667910554108523030652006763127030698277611803572294036338798692972152247866299991553515219869236397826047818731122739493948566455957702664049914518791555343838363300714173007807199354486374736381576559104889170281901872111159979971303704425837336098560287896718274392128297309291555280923819947648723524666000467683780490504788041722897880947147413726876548970784523345878993091997044518007935705991424283572992427260911321490469640010203679343194426476848336116190075400167964284403120968889666977239703977268696292366352994280948083411479499145502150142512044085124631755182979788105502882288416325509812305265261399948392308542882393136004233006267962865505941318844912790139571356257929515085224112817600581137681475168414661927525942709805694843723699824077740658500772616788644141305084971485703364434301664976216519429180148774927626964529595826191257480208225535530442395382485491150675381504759514398802580118344016450922871481880398812659185278119293155753928318881703949185703581607482631647056015522653850748505263231772964756413659083574330816904907419144744237604450880365804600582960501688396493747867619900853443371180683712788588134170369482271202975764481479253243908338339761177713461863208504957727640637701519373069540468787632648490729797350803140181100845238120666515069263380510820473693442654794762770785011451056229416422605071710458981450221272536551746157858827759171319092210788513869450959269076318931305423526246666775873634506054985872520159277230578579231964486917650598168174404644662626578985908718120535877879569853150742238595612165704587912969858814189809216393557588235045612927028260572461017684806945648706686766775729569924018772118943998444878712890148007489274255796696425803014055660903018733158009283499099355206332122150429312975539614914853305523234032371414383208016512494456455091983663105976777412108909163440690337453021827780484725908665755974610720625747125292739498091764919824825600699751909451277940101252474436169694270162242218742329921044078975691236603964424848130834833032794879732906766430206326410810562684739840694255872964167945774528408697345597831519095465101105648235525237849228934189966108836590464076710091841386848416941871553471335631933694990604978408110073461233988989629744984427775088997981010698274036906110939844430046886245736211634849386185090241270180973752393180118394322324631426668383526959342808733348520260221408507224585372477356919881118298022218856076251933944688287004711168158756424947202910442297792444214735828987482752178170140935769474958231326483372079408460010983615862311976341559604674120684728276986976084438131182595657267837254760690185259687975457752844460853771638973532131706904057754873601888990888483225826815443849990436361010606021275005600833993475232519656302471462107842402131153360474749445515987220616072409936212865247833975478256888113921973742372963559729747681787568696087349991718375466086952786455365693085373744997334674593879158016421164589943648665396368632496806309561168940779767435574768953886141815632691520215611721837110436207372587460387335310834626098470152080007313969241587943637301781483431974956739879988240129960268212075207852979546054659136865786159023465841827839978775547903970347886966587077276023825640324468600581652531562992572720198588014096842074179492980473590185040194550284181322293443097791952988765335287870814178463868632860214306504755410328140150346452081888865946759890297423490784793712378571644472180999508892830600414332960042137868112136145818938635991470591479016325357199903680583360566180200302435000395292716359355661621929752309532391389666909645026681593179390254297026406571888651319481879398974173214633297303836993383461772252337058514523188208605608724551818868137907924319926455205663195247748626005514443621480072555288272922511718648039520750171679920357035350775379404750203913392057160765635330069481389956397618670030487047252388371089797702927150275830182412806948470298309483262157362629422699312229583099408373699171112809496110818826057972147267004796693132190660434464196702480049368701078295635287547207422153211537120802715063701540984738584177261720497873218724072684517466005992635946106240101003648296483563542180445045057161660970442889209037670460286044341596132359828692183238848242626349318673239284601908567697104066251139753836404160226655955128893832695593292250839881796382369816635338842153565954899624189052204115937404216379545743149324222041822341350679929046714931517542944656640141878424744786794325054964585629024964910177080195449855986758518580020296926652871210650462857340666874725930274647828471952464060018675824809073802883807957920027940040471913997390917508398921888906085841278871196445096941069793160498541943428403939753048373055256644542426974174639929431692075176865694545774763971730178053621893891085171933453931746377037689187548840500561757579589251481511845609990335373682013882039166690144150512002802175307769773253105469035591264341012324614548868537306326347645005059157822832061314825677707315082274099878427295206115874411594579682967585586133969299608238016600736315757539101412766980996204935880361609874154997610846813820093185882392454489879924172294567444561786372056699225893719020456188643114406147318597938336590703240290461921613095160095458282552837693934842059053014332791449739766695507023261268302567237234766978367402847808253676827727550977893950097204792709736306869618192015605918807494686026632241090806441299522889903506462118055850803287996032855936549375601684909215775699429705779414079743557477016816002175041438489233193104597555061985404222859969479169875380147331906990770488866497270596861695470465140938307653977807166464889718871079327063540910466469087455694840712783133434038408133628228343420584316574104276174016718694658414712906873589797628966258026006691522011061109692147717223792079802510734000191759810268604420432379811617794966937627530863517850880983082754148714187164025800756630207564842379170259199790272820525009296336982755446055832618354800453670076788714768729308790891563614553150809113823848470379119450391842812014330797632328536467804704271653230322164264192969037948467988638595895243516660242313207807830457119286795162798596695068757564874775807056946619948517135196418685727346558391100012806009437257482957954048039613974231318636426227346257823529859929755110869790387277712105033767624484528524103771086553280494467436973157347129708201060110747943089918555646668448181471776148269818906370496808411023899996019196512389907727431475966277255374593555449711157623168791016615303502429661346462711247898061533783314098635562453927273600983602055323904544395650832267072551717222681833321153532813480275452727983812047776705557405663981052799643203461572505026122965806339794493723574933818113450602065810843528106221252082372439354183028488272392310036062424734701208855308014611895563122251340402170252159488591932342810988272097621984836092481735811324230176030034154288975275414803675521044242904327478371058144441712716913600848045314123965472680112481666223094676637039453648925813898477239140168326197806726798689372691764170927402569098927277531046213140196949276267426751338649652878905400297788165342205278068174748900337741570054875100679222625276009830627070261059521253466682195296644394848951854003204870608955294532351785188275294732146807625241372856087828419453866426032511073334333499325070636290565457275275050942162093534483039189090467820623597007358287875758616642014023945689332994516336153207506361950377687357109611837865751870926264272563478021228137119201907887963045563780371169384874274955129021419590846053746931005701637167383613853033634221054662524812764551649158627092104715821248307142925304780024944824350515197262816959188834724889179269529401609836494869761826410152966902058616988416653121628816054487555688108377025718824781461933838115755901087388496093370332027036500839635505847920163354474463806874878949123386727063395012284307261043374109020083445284567196842346923360319160619737046167192677236601523282234486172791126546795250204842008412376265507896491835959975782925173362632456715172821505015937541216615021356322511064485706956125838514568992216357302943683402069509376868830843811670360588350917815106923755928697718921215342206915397188536655464485197670193746510542434365015025751170269156232238342263887423070574926821480582727986968597439878874190718619330149800240014481513805332168689792869681871689958978345732840248318568073890304921674743390426221472698028573760501579787764224008781493198737777380020914993965465718091906542939945189038306679199935759860903240482793079571506495896085353923379546927530260229535545075881429174637004771085270509429888056060965618263476030352115842885804385063874237408910114255372484294130491017590350624308552733126464753794944217091197210034973800300401913443389337091183589818580670980388537430561292564814373610032169314400172249912989792832559110088012372408258164279104671599731890251985017501482359703005182726940725606058420224837428757455191105480726687233512788419177521505591636936498316881968151981959354656352120171400912105697495157039124708230987607984192811572452715101174113048814506503535997972147523337830302191132034903607997624030402368294604373441159495843256511499218110990446954921878858658495906035576874122592144353447809141200948601699536168559348997892600111421286533535603743273075192439415557676105499994811843939016952057852306204309716439075019198033848368535888189444470174933344326419673105005300315069526941127278000476428415762962612854861600296883947771438681775667129938382277760558524579347169313273422744759143324568265278615573706071571924816683928258806757384658288753676851820963341534202882054764072229908910495786271618210921925100088169024955432541990375765569803015090784135215113984725597848774866874555446050291109990421255635428319684710254883104057342382385943597045745050781261452110533557159888071456210733481516193743550805284511388008108463334822458504366938566069743819305647704548503527800325533616102331045201660026086759913598032824430835027585427358020772229095183944533547215999027898416733463757829209537665103056697342374710881955101370742676496852999561055608667324267392012918466912314747583475650993024113707169462032014048131464821846032356743314884149330982413856908457773794189842097004481299023035531657708237938763175663885767854945850073435863235109294948605220548032080845936812572616874128269512634190720302263100871849793007128397858971008321962077038588414611693144889023646707416211161413032371709449472959412886664230315132968227663332040294486740953783386844089277872392677176842407213597439189846831156983573686065455996483890292870359688008095510453376804867553440409339257398771852456898105200428249506340877452296584253086262045392571667970901566893300667614089406737645211764963462396937495980304060219186161462861498354497853895270634614660955233495310075472437435457730555824769509421954363316826419468336428294865698438723627322352380636667795494903504147181677786026763283528750939428324772170155030841309684678398210556131186382851498550725426076986625128752927943584083992439144438626935465886884216373682424057011251545261299469070179244876525942317235325471116271921375719822116875934473723611602777948234189288860183710604895162310851836688611218982025846821264246676151317013978679372899410884654300372306454517137862173349408755177594188728350415941230035335151364282703016047748160537948984959411380748279282607591138855099494061197186404405844163162027486938434106405697990086951652895543138730479416374679092555739353494060654711484088793264637700751397364796227051529523887778664576794911261077385891962393634303106978738093055258607284477942220592117944751093248567330548567873704037992454495076968909339748589834172215017294444242513831303466524138910355840931243117417112377368876577258107545097397569819909259089929973439551530997761302402317095654131504804883311220215074081689671713825123211959207196596403417153479666153999028952268642989498095033274273657033743956661937212967136074558740519062437136520595265513163611518897061046548698858654571200971273531005314787627960935468356724959513809277550971456022424362659096166799508337768128084201131422066189127384653585083384750468051015975833047727095345700609788776573885138203530716520692068837449526139553365761808089830024688621189357887213264360547953916571828867858186590247378291871963371796530042921189546115952945278020146784197882266599900069798042288614871398059812784379222398603454557448402491226257972898226278284755429733844720342197605226440295088351775974594117221795526091990841127643025827316974177427844774405663873445615302029973141366443272715589977954534469695671625611103739672218813288190523566844233775395081175896570116846126300912918506609442650346191518715396439848310141231369820183387214532973756319379211133323063482256012515764170249877148145681229731156629340346509653414302879183185652567529248258374402897076101093760303680617646751079414092407632730566525443895908325610608125814002082548812032369197806049386011682789476973209811948062953061458870793486661659210522320863635642193827376515009427921298345489477910717220445003752639779117499835575888393633265922862048489771498705704384041579249616109992731666733196888420903336789344557803481850775618328964642703122809075252787673125872539058320440303815057069465668312010721559026327523701272592557031314298233083690904900017188828755677637053429434697658067334871642407228525260065391374493555665982532979752533241579664671658396219586632038922493701855842654932694918584616111360948697724864185010140870866919954649727513651625772516978860707331742783748301770761229115422049862015617806201881377527433034947856083446634609619620408544312188812654590324840000532062703865305663637350562872122471500456686670586167069601646840056982760258690287365602369648234915369130747800607666889457114589247787749791873679782053002161128269577633068456613421050818120098712786126856064571957467685654670796479413482300410298933926317695128659243520479611713948789117837856624571765412728299021900066967077332654351893397163687737022411254459471483731616995449515779569034785519916505309980320552850999168574045942422053020327433409985260321184891597488833537208378978923440890616519543888520629907645757499003214942055676529350595718819425860267213863588605263549944663498567826022270874349128006757578368499178721240218704589792363967019914253223775811186319282152577974027064364463008451697214165412505917532947150075243056987019319250464956080917922332211749532864733800148416501158528878607716384554586153011130911675598476008964495567888317808702933802997651287047648366106437622943129162810050777866800500801934515688833108838357082729351980343026292987170273296385258539539680567582584324326140554443428881508363139377411708410725407451888215980005511751559881197861902391536410628138116657351740383321696421865428365658317291916974067527764195450488978347632534079692621476022785441729361341750019463725893664631303531719734868083182341258630689956959634489193396886509908804095320418493224020683929734513393125611582192782169430815472868113500988704172014527443931945288548026108043107086451006219799972543716245424428515725002700919320438099460839425770569393262968663802215633642641454572682046479316153845812428517683381676035718119609999081804398349990621125174699121968418754175195124474915006012223155345425345549809744981470794325467199687761107301366961809117155075681287450959773507221305550664106309893009552524271899250665077643610499836792375567888528760514159791374807863747505342691124147522201933830162238707917290518469661799315630720282448701360229230439431355690461347488015075638984461666858565111910498195435173439419287735578525941878166871524025323351140703647622345908194683057050774494040021231939974625010829406804264534045019433824891001544226548776506055781614868729993660875886444698198375742672885760487867207646595166772069115372360467052312770754979793425594379338630581099294555398168469958903288684395688780230021613930084197904686501041330125893770482122191897489605930715495314577180434828713738972718590311500977499892075573187584036358912495281818949783638919468572211025793337718104104118107951753541479503249600053908223201914190561441165963886077112799902199448669170404858898642667393671986923602594380276728963823231908409676189313880107734937323599881245736923421325922313199185641896668507038659459270911640668339502876357909173764919944615985790023611143165309232533781208690002577394017603177308392389590048276520034544837725408838202812282666525291173752885043808979800216580876483706284828877210055041417623728149368692266741201845940034943482367609353132643795230843570488544852611525935965138817217990323787873804815481745743138315127147950234349104007427894029417317200228875786202489574668613734936482523681345432015001050462334398746244132944864320591829662760033203745866917957061604639311310648583467218154724748081312122002200611930730216714395682681769955164459864900394865179899644415808223461953168825718540959850995706439230138049246877185832576608166052573904575992818271419045514872012474436301844901299705586216842299028729373416014301559305214439996716144516056836767435404362920281173959256245023731264708418967723298831756555651640894661177428157516453349848447995672454192301148614983895504725883624058741242748626189158158887694276899467131555599105908551372844454528599219318025266376379383921463529881564846824278164254845320414624970618929348207932977616308462632527883432026627636661933289987002616532330800524701224579687103364741326454524512529262291737477330668773068848453110262059364273971536936420721237636211051813126003173344539958425721660457666843487998371507720425344209429225626563203621828798592406170771538379783305972519563660657137410449086531219000605244691528008080560112120371507325917381479189762204523877620303405002794660960740253865387653613951497585307765717816128859882199211898724222517045384165626671820968421763590523741311819024049509770643911680777589175250904670461456596682528431209727960919637753801638780187470820678942522478705949383215852684487322103426086265415702837371016399166305161083412591021694174351717075962775716332106196039094008127666585288444474200645729937323913382515631203301513266928623693569670121425463292444193959093001530663921482591287270380744116727576558309207443085843158314090491670866022820055670205361412761772378285935177444787327168121623521795095670832487675013673703174995923509368453144659408518886270148389305552531111716822826389314290491041136122938625273915072829016438950564776381180819399723231277391095033994601019863845588781019978564870686690172913044030785778619524802829887781323875274302302859753050790439409211137633004993584682612592551951127773414685752410611949481424271670159163775774417035029662220796579927581727031627797582022458764577982819165746043565493945385536624368301445551146571093701436706738366431476114676276302229538316739950692461566542727867062984296376821743859951720823193266350155479752120184517578367339403795308253946267125668040671806112917289492783306425087360388293336749299245789332686494894453287141313725789753040357634089182380153871613219256011753885074633428451237678290254775953496760456932443315228472972895259089674077401876394425910397169606452224433681419192375704607894285538538803741919791490361199341198415101460729941241919563351183954404012890838043821181239844611088716838432537077535868813211443680720120500262642760812451611302450023762926921792369173806193704237903073623561838773324507426144096459425543190427686432778552810919579762763513366082485576849162736930961519138024521950364454511210095093836946992841474579298732291568410445021479311193345913547499490173138085357220189510560764276593653423506626713670361961164950507380204750682697118491885700234056450992319427022351076629459681073382143492158756723895873440839593430293672607768196864851716375045168107764934615709661185436416230653414467344209910439944766937719283898974275798852934821918186362300750399828559970909557174512719674438366299353606192593017806492187677899749352939783217473712126434704243551384565306219363561717553347684874698471489701984692426892106273819433952713493207653862762720319160979788620293928798844229869200012040519651218357227853011718270845067008453704883345870030242439843182865054807444620055277789338740031902500047857317676688142245144586942524705168273749814512034783074795314903536900202524223682917432866603007463567231156886190982414563405175312573789656125619865635839742809559574231395803827205668032118752607089847858717819146495272636637578959410653088564528453522235689319257325625014496378112279225817531262041105873985707762343854511777665487964741390254563070196231654369900216578623593444855217176341284503743187207040530329753938535688349735700724407576883835520923678443829346182557511554798598208912188366481796980488248232952355244487179703855736670372199884842300169187582660362887067579119213340681559223973938263222109401694677552994513267644750169967363613665553661297212011621844850657312071406917024418047287846958965180358048678422545610793016631885220222188521862038276253250021814511535430563519909832198633920869824360768645306707464221406325718179092214896944844698357269309114575729160400743971314459963392799390665976949039411191682696483769213014022122245244012075896257777329320306705940108549895947002875472933173412693732741867186522939794580431327042317447307215854414694607939717830282968159291573601846939496999881219905238279358678909274934496108982347319899985526767842747225934743465687200533213368365782100683648707778200087935677142713302860447944633706918990932009006386381082982630771670246429236824146823386080218506841678888375227499539315460466729017048618287576917842279730596237359610341549914219937182453476166167641948284268231526619966560851166766199663705749889108634588293816401585278125114523100110856735798008059043672851575756760066050602677776576630023381348594384847952576520623103164995912660750055258730182717225540502604272945338123972525686078808255110063052722642350419193075087989171128518788748888799431940672269855050726145678300253734363494769080135694175183176584089014791182478984030400174682251534737733067341968677787840023148139936559962375949169169257483746959152259379461731249228786497746555941329620765407733871664035104591799945142675310110664542243221504162736662075408439495845217985136009097246653425650262963013837668672100408204002438811619472056102634951695551650295514003274949317114495675460478119623944633234838579054756197544487980633604224676860863115487685991725869597293036819622874039727861943999932044255175034002517087564763498495875643116292633981265637700873230252520743195880282886485830197834945715872139967415823772782457067967664963390342195776805336949099602284542993379952416793991695109609332140376663919676688320814866473150210219787876635422520570275666796406892984336525258381208641156971775166000207198694848110716870590654606519956236790557743783823908415115776500483594622645408713705992431849517494956146308925085991073167279265282246311514174751637665663420684597437942700099828835431198620481278061455779715789882079411448495797491021651565659078807329555437347732663667569580309480673917734237195022336531478866080603468159337084107244129963061718768629431601966234036232285216418027465844761440718415977416494651111183175115105413917264138412016756757055792678165153206445676652244593760525679557384959435439562430348159195087174927753817822055913206437697145691598571712256377941838329715181447341734711763567239839295227751116864606700038078576253352294172297865156226766796941936734191499519203766836931282198954799182024149605723761860867425794152326923778130887507660272087515859862303183261283398464840942556538962690972850067969093427316474988912118604664769372354607793148639871920617048570935738463701943071678020153929777512815676787820835109639598272034344370615512556035220545754167082831319639030267972423324598737282848610569853601829607825817108525845064919265866247665471115912789266033643267243334065344882427333207407542170443702208228026067280412347679905453719122858192953469995148343464777889989033448865319358173185376324304910258021944925646639551978882372878092896981304346801707152305622516518898387715368044816795999703324287854268332130824905048615052734142656803661750240305067858009928029757598275613299604730851733234116737661002483544034402051443859298306859786877087816973990211841265001461771704106486951735860650138010295913258912770840778949544033718054892738382232124243205649001459658295617738963006676180534645379757512720224075610597796037009606278933098076702287187543443349407263880343967927467045076613064250686629258652138025481890373386936680328362476446434208690752659079121464219957217891252149812764599583601084918731254773386870371390853589468855576752230716749368319821835785554619273018296769498770804704074059646948714708409006476110970310231185929145582120203016799458326797058099867220243659968775892975597745970856933835945491247890428646635150838304145756240923919416606469413256980226016826001363794801141697783184737104183054480113266367003340385962177491325758764524256809163973846658709737526368854336473861620326056490708377790624259760577757382547448354604786064899457953609324273297905919281587583315235799208505977607381736039979360670812092971540012657660665946240987561647868641608860539427683171613129214478731618274548558492811688001271549453593596784899823582647524864164289797269058546270504362098371388679887751657508027887939641771869543797121466303348274786226352675222385782425651163756001298736461984932148893454682992740399147368684569087171854211426149798028965642235095693239972845103933268659897538994807428995694743572515004269432646495361949635562510233711668584610433363778737547558652015668908531690392194281095259953549333332790235612077919660665496081511985750901562441149116484859210654676264848100153065335086723542434272406214068194047800738294511991532354304217625701613095496477271169433317594790885466753818590373611952520961917624727504676929627632382697679993271285567499433863304323740116469771797677408480443143390207764024301789899794131881239433217400667643679753864094712301439164962848115179263842057720649980206304299492707495293741096207439256428654992667561843613243079397292179988613492722902171290562880193408622996155202818786210574503489895243445655530257410097842569153463661868422067866651724722099252734741719661932178557738368362163868590969350318576089011993331975724979740272127798602012767077398068834773503926865056759604904833202136437425294357186314875574312438115765077075253172202150908631249826621672495004880571657016731700770234341703212814869192522579140281334732643054055636138749427224674934801306566645025109443944199071531608765437261550501866995995057770814883948904340723466674538172204331429650993423662679299384062485883067902796024307018069782530171439072435283517662052952360906771389288936444585390234733393943326442114242976673111155753946461917026616599655177813801621236116725291409582252057122049386835207455328854225704239125001291888913086960599977034501007627218263902491771468790437164967839412365049678330425531471388534353685496777929703145556942309692977617651618420286825613610433537177223433220754119951921963253068907526527026809158969178756152064005628013831561238644410404838278642777006604596645923090810154432597406968639515963374274423774200079905932046776855639374352847938840311185708534032989101732799621731139180916271357518388896089448713438497039478859831505366477924399057325581444806555912372393246070256770784247924438556855607976149192475256849159079440089137004917530535297070562480169128246855500577604060294093398944955760453669443834874255051165252069205580957927910218872132891448889619916579706195823850041403951848559259162695813304840940094055782055534850036847057819356517024840499510392773519060165371270271962288583443712878309941391684686020734549124804251986623618757613264037761056536902834886492898868699267922438361478238290335503765664541865110328202238994342859161867816701396689651299474097318547572695750464590349562275615934533514267294618257735347566940225932704173964237775255111654259091109435063253791760904448901268439681409987750114689566057086320729619548052112876883416830260986864054107319597601062313142420885431084560487166750890869681410148827837577811776382839840868754422632217836362025541012209090328607604433787456303686238667650375897681956348464654365325167089942230149906857233786809661310860375494786870058262355851791903404616237654030666701819182745705609663542999921217077727645367729733119766999509430211603915007261272564497510728780010778137187270249800734693291956353912448582452105606478644822559132140706271565710471825996558799914081121500411484762432326325957394553533492954018239157949771355565842999278611355858385535133434096435679182143999071864651489052201756416797406335193457792760479954798367966696902902934189571894714610196119824785590987832650188998706703759411882530423725419987074877782789713567066744835818612452135591283752299977737066011781783421540708116803228866457449075980374199666323419117586497684823189278986064998887514080075672273089405907319593697750540932868759695901761193058783252194922137517247484761984032413527202550791489989745709074621567977315059460531305672897912053211986008113579536156528815147633503652869563888482955688259395747296207009985471196722425289051670776861783722299456624190855165193454581895765165577473844180213278748451408920796906610378536990590478158241917817131076751936862834638276492064796249905561050733628517939912228730458400367477746989534694296818026437655734648363349330797711055144592504987194018197965587588324798061997587131970608888753385390991008118900199252003550511043663681980383005601634307434102249054372063689583845774961597282596518665832719617242703801702536303438196867877980429825677770499938013398196408509795760853271666396715812137263556119140153853649683412630328865076959501052974785329533642529989168629207397292633096267794246263769040605472783098894525722499694185896454929348151129779027333499284791649105333603748827985615211276547339221647763829694071311924005288108746425146990171422759538744225546147479893385132630647054754444234402007995559109809630036900622097653155761814571979103454429283875208972873954715867057884656207096924323415700825453747565381361715732808150714156871723399535978753493177066960120894513577622231354819198956613889054324265894222458552225816027767322996491857455140855190585139961735645300682082588469904887100425355226025493679171128311275487212275835622778747148951524995739952658505678896376328944806591475883365489616976985875348954006343761143062444832512573084335631573566686661853208553602314292801968072998199365976978485814886022163686083135196305102263713294769598120670409382431311794227287796818045848143672918148045095349465371412128134713115941779287917674802304350679592391804274195522849919541176882918143883770992288853762690097378877637145089594162813644816083819517947198442475086210535449730877897794777093649608698994150008838631152155005428855734369456046145894256378729663454154390081279971460283606090452549789214941325545565149389026762113856674590570464850434595512149312689127133858093485981065248492959764755657940741715998078529153010866696049603295186724525096070781740141642511499441570758291664225877192102692272498006744739702639198956535275957624779996092323910583685758237609196463957264649594972062888127779875561810075943890327933851814538777270168116571543817482698679479768514164051728627467763202638794882387765576923830671889122783594943161453982640188357790811510516207974727778556982777851150210604506003594899652337495606315660977770226610542422242427128096348400387231043989897732927293969891406540855691077541285911467143829081326015504763469326622588119219447981163618012620528350984633769851488648349153619800966559217873535039141879457501662893092215412594951590638960383268594658334347202785256920339195565191891429396241542605745858029508012368407981156118746118363354060077614689987193000290057158955831940654988381675381023893968958838610191198578198018253948612787691797196232459745258105773314056678958718265335858784170611708819890216222526314395442452393571099291276093338847249853894354636810015105571507896555146010421452032175132900423177526976533504412985067936464008152029083176896611124860663222570158977947720456747360220588350582891640014626262480614672789825204234669858454733846174970396328956109370878529917215467072236162271402808855305118010774249604961790923977895428490993336727948893062711364886683857204337406007414674601098088063399775320629223631367226898883859015249084746885154615848858673900753499071492590662904879929085660193199711256624616790289209787585772134249360727366904113901156541600300844059700980108411716298914045404971074838616588510567999276354862170327103438847407797118335305818393643645970245568976221021147312613511065935928006846417253691230315584803955188865533842978865727365385546879981888227454053032829691365927168382237629218019325795557389198243178755321006370130457009329596670753867436329908003917249704529372237209543726114368048366080386413043836816341991384874173384790404197310237236649054340160833081862270961480536421079754245737346722984251960704562518394032595932272468552114936301273585793641884279131146647112616534830157813125924308884048631716715101872742038292198770043500091744573852138185999778604005283620532161944160001822353607976212276177440899831415849842447966743366607724674861045135267629331211031377708535157882800483752324807857855065828912703326111970859613523330814883289757567450756635423356932450446138072922829280335593747348374853320098616970779130806762108338881719245901189322970955583325518256699722827076919577327047018433395522316399412814880923952224793888672763894693914212860977438642228234036550099218769067947518491268619741813375362335806544500255142820185461847104591082204120444951333497306212196292568487446885100285201607526607511489875437655222393550211603431346190501830891240145429123374132854221252843958649762678334364183123714151533244607887489029362524166959112733472238316517376994722415549589758861485465366966991870360162356139973936995493616927614704666345011938031930438524014819802053623356213340673647453922355728080515154796724732526955700244725620433560815109556992877350180509130731079929092184055309181901376889573086267843456652762910631861923153578179487698662112405730205299205921587800357640637663200914325111357305952102256558565102534722083834518752773901965277212860228116173362331284380432034885127282497832155211616177886026476981748893249169590350915791657867204997547048230862600616165589324981912486389349396706315147264456539964441052869799351270670334111032409283330218569059680137776574914947196840819312380575858154768805815282600136751990464764648436436574948325028536024609521266937908598737110697555356386546997008622087863873525856724772456091565741990400034045840194924350599933159318721759757310031246442891991454110155733512386681614157054865367714869326885001734722043326133886416867129944864002745348330953410173728739568424973717924384854608251333753835494484304999394542815468745549330938163706207140424422899182447526037060008401730459236501359402845363985648849109456006895033199179262586074014160909506926807671384551444617859537764931115465179408093886939521727567181281685370863465738360830335099129216410115958878713884455718739148976847635141372306382949910151538095167696719601104554547795588587414121036122269588703108281037582272620719369004036566005137516190216260082182932513444775912560646809715746362781610209908424039293875545371938099688458683401492076373160709762770732119746646701974839376964500950290595837968660715609580475669834926634768955010330148465597085352998409642989266707565098003207429877103588650833003608971502643632255671847295719607671706404280148521868427857433883996179623414514519429114160157854730757916615204667310412805621311000104454178089056769304148210235132044318394373698838920211976828898097149996267789397939194584049101509190612553126654787490914512830963609419904103584309068600798862727733397519799094919715407982421881369930451051543452518534341615970211094490091460263453093026904775727671932792550836356475188163874479822926929104055859050295801096635050515151546388989989127361020111054277355523334691287782895649754075044716697690897687836941647622454767031462537215828962183263564807455562243294914481323835100915731497365187561876274202995245233434805482284363586361523033875457427069938567936065691603798478544080713848846345504199493725941743823551604261389996321359747761321625149001694192398628862395355791198651604244499727660750646300183803267223050667829171718953660565754483303127648588215621141717517371835995091142395942505962561764396808218775027717056228819109243741282178896898063198560686463334348883655816941808833119496802786508042140521130568514707779633559313170917523255770075862696051337765922219004508726787560911089085285945776549649824807742486581175023003784428920710108458118882258120222767019678609166334918746493648769288699249739829511597779477751361000064488915961285937075540573348028962892348352584664972762350460914630018236779822945118228817953250720950856362529059136045894441630995266532587937452276170809443376040167898327096652216730786653363719350766752813517570561979829630806027379494061550083968530501105778856342699268213637647662621919226514321825254704716944357429027126026713500962093684681346402189267937520351299969022517326199908274083928154446660031949781319334781705522495574802151704539880672759529390538605527266964134910648265674803308721203609473415864529562204319561727919679348698038003647926564305465523746894369039682090369643049631575917566044761216552405130835457406036336802469824230290487882472364723358974068541559353263176275479526278440642474593724997070766657249364765784882244019147888967930125005372417802933223309686002737534850029190589040516410048014333082507396283533315762418471212885622701679612956272794314378984384050277892076147624987741224069174513788043703424609456760966787942854360713022994919394735043294604630024421925205098250602352590562250953845416197388085964918426996350239634605420200972069685320699469695575646931171475274123367720014417481676036453378862194503252266025039503555849672215995353170381121101576856565156832653208849727025884759022579508310226770408156830328733319688436895347649308301826530961967289711610804318172867886747522420127471233253039284980815041621276957087835810075737713870952767989501700286027563022758677295657616342819638171392964816171878040271170102758121773524322049740281050460453922581438121065654147689485081419594958718060514724056677305044011952352224334320539461445775898533545956015593934509698607545387945231087441673786065142174512877345378751792013169461450943006599375122833817004495112620832646962104618776638296100933240480530531060402676438641412350728496481854429607567572069543558574060380263197322906003674703558373461407665346693477713019591931307240254519000467427540960353830015517414604374125969732128889086420441394358114645550438326313719429849257754314319890267569218897899147954153633822203884316912920167605827083130316504368998110642162034127596644622295641644087841239751092122660709054977078110845602479506034845880855392967388928508710955618874610115420536909375951236995528009444840663463713428319868758333233883318761895092809967201029934721759244180678578389740768784867505688487055687373557328047916669087874895658709236011052713535900594199923781992095051753684776025850743610280442853621743825673843178958122209799916948829026795863967234600768544426038780013262351843959454069275202614721786559965537631834392343433804634904693801997068213960670801025184410054022617780405703300094489564334975124468142574716795611961196591921992345282396447412766331965606949855445450870292714036214828567673570533628681639030517417104524113335261348496854364531711969868012911727002093206862514262203715531949096227372916781394304975843611645822893107727143563917221667057064925519313264843528218923065234997600947580038684300769113410326078817513328151377317767960284337137161264970630346700904622917688516656973055519985181726814777628948480037632824672414421210500209741853755653945721745647140595589829604166148968364743192972615494725246994279341900648676262311389427186034606939330217265842331587696531709435168988290434475173395253518949303855206324747294478037621355791869511164900014114490431590030111113643394745910575163340075754858737121560748660159965697404909834081480653874562837645233896682875650339298953889968468729868336234941771490332584766096704511287771742479511766755252159844510425118298952876037367978388781649860577940481844895279480027517262645024630827153055417244033511109494548170592715085268897718318478682876304583357773115999153675337483588393946930210727528258592357799181076069954641564598768851627786217400203666547835665903262164951467478534182826009334173933102249699728469627491395181952286084528700632765783517151847164548232195036252128592401195386545387494465449986749461234007664384127611465902664655978055552843079848820911612661539912096207146511185989998255743916249925668760405580106989233820198965459477217968711561911065507077107539146166632032908204297034888530209486896201913142243540464761721207912222396307682575021520233140753530638178067223109013096852413991667343648449961887576716027985274635658792848963704271898976409812961085604893210008131899389036867573295391544720990563051714099469644568187074246146890032729705528989948334411094914870119095124202846402155228389977251645833189625415957310541779804859544931959053352808832888701776952465232232965084602450971144584839969079154793151560302969075803459831660808340721747735842644129310093711307174783336181180942082592808053911446772820678303443462879892345573788774040010636832043084899647950747875749122025366642311940686843575750050107526923091555960165261018493928139440567472975119124753190568387024232745269717315856297937357921042460563950282511688929634379979140413838569380600851123910786274982257816252772861205005002192161017120091424482166171003955761834829963241584834288177332132533198849753648104313967570130679383161022820454036004581433837681256582180405588572805097239325662222115150596949849729810326158893822810983619527785179672063359376460309087921796760315764629092222672848034434294629849523007215688545019853427963700164778119704362365220716457336417267158695793880098198529592752693114911883805361519773773221187171192956258577828873847002221814623485923232701309714734702222577171089268395670303197812710150207805726862835845545144904057958672647595971593745703080836894883637978602635892038561325717577913081312476450961833157355255456768809372793770074521223500487966400600236067015783565643859321179216473828809907176784614297409556482793243629747778164249341249815324959759732905798073296412775514308687806693016036671287726730553629145440051400261329586479167259541607763116034428164830954806886692478645733492036243424127414473834162798846135279789513260523770542342844844125403329427819540543096456604378724098868982807139099796170793815602617945539456380810232742525652999658838006506936785022405838813243304623981885894694078169160265504429002957438248992701388286574855987084104342962570242822023109386186889336709386941991158347073862576494263306375768701690454594961808612988011823047396891746747158149318016166941678581061691084397151384071638429859558826961308168398222467185426269619803131983894237401391480927656353327948776612712218731179326395235024917113591423652777629892443940709241693947676963538927113673832552733885968751028784738261926946695042371291755798891946205980493852974613450101821907134279874797460113541033445274127285448963391396998493679211600389967847565352729358817881663748934505642419833553613732605197423669964082958026207253586892195573439588586382339154217314862614234321067477182175585342809782350894026769377872912791986724250893122006356103510678317305298039107072772042890928519776625297709236603841821277692100675841853934602621060146706759935113324953285114466813927160915822984324706768151179051910648291439013160453074872112670986791517848348215157476819199646316878692378164232397699813751033080449372441935024861178146960762089443013339877387850157804295100940905098940363171759146842602532259830700627739606975956119293020290136311909205923981792108756514284109370842986313830152312974611178129196864006366840015083824995407151201851962466236719745238261732650353147243473418767581601681219016466216414904397988731731802820097924505449111594987188878017904015564325468865565603866800788464462088286873040844367411861803987868653382838426803857205223432946132416749157507733961779430372204882947454538293084840752454436393664282751690465184201253890750628045638421632331348862244008424450781439812749675299490608255759025377587805514565160836455595926353551874315017549249804129372231687150947012525809057797353909338096032081699208430991842498564802007707489400947785160211781576390942821489751066440391756908919677447712645504506424542011243729284789348935096585347329574263119752341378954355946275175952411581877950588365755743448590833419892936218814769648542698112710279821614297102808951291380104760958493201876057560706698832745713941798340398183506644521574751803525413101879258091714344746475729112733819529822835763984533025491411880301108166752981715228983128505032481226672337946825661465273904322634579670679022025192113211006268043880838718718813345342896684095103626206224710249380422293949164748417711608848811542274411716337782453298288559071542989658064084332605913530442030686701935529033128111165621638668716193417127896711962976783854311636854691295803476925395509783806783460911067491564108558476875617172051061883476885156662051555067304803504311789469372034327310636186331782119261591646594093733026054934556773337655017788766875078009132647296738573867429801057181836210886675741016869306927882843127823641640917313001664776977436548767982459600377205095623554536070828966004756931345404843567845457133403464869385550511116059966171943216442772669948132725845230803790877157176891350321217528696878211830369393285320532019867103180151032131306158479967386014801634524359542583994748085141301480320988144881596503317125636002668559439485246802217148897759436028109887203972861934425638027862456985491533395355085826475123442617939413253356591894468035762765863550415741880422493961123744148719693441022299759194994519299595759875141764922039713539011618919545847065259064608726207679203779200388787238445456044296941330610528052833613177459219841384099096141152364149400020397802925903634696809523495867466178072496199572244830350209651572696241514262633113559482120251104607748661291159908778969791150508837174963684198690100866039262164018626079025027923577542240390857378473693185778514089026140624282754775365160496542524746477120684215772087420922109359484515117503303599596143875944467163093565244090561285751149250748562080457175872112122241839772553301254389484299374144070174376013864800089185272277730242597124176976225436161929351180749989148033469852066712827636933922902734409975146982551779560948541628642174465802496639981682248009580617558735626136236639717810958366700765094725389511285875221702899761495220484916135806383183930871798507204319626024889106161077720836926203293409212671850939056717934953357073367633994005608024874309609041806681977412897609497224670065035664162252466084356342472681562790933034478008836227315520118683575918444746239463734776903718249506261773800839385191247384774912086139563964838349190198931650042264105644910017243505992728582557131441848582431229274598760721831465185487921617436610395875837270400480309011265805588665809505355512310212743658201796351237245763744662714004124154614840209301390401200015707640489476300755611226894836338784072456627605663189512610691752754730612900780499342561471741970293404375529724761657168239223850370765198289736222687824131426468783828246983997066881272883755288800721671260070564103116999546939706593427023387244000761367527882331851627916350204376522784661869553201760120841780909654182941759416368973961817521222488956931383649867681889414788058839292826932314726845815843204033178508510203124511570063857027963405913954232365493365804811003109943628420010787961078705282447980073111893131910400061424984315388571047174908897837027796518952804709404615793310108157233718199121632931516665895844604488926757423014213600781681263761302976059714521351352534431090931202289060506360387482195417480197828897149907901009384786724106160532959919854946329286620488555593602413821890705344332421234343572804709446155332219355854272017642386438561412434438780997240330992554902020441454037916204036048143735651916905273854223881393543164225253344796267405125501765539108864274397014878803974097467111729299796929183409762723043172013618236363543025622050110848786761217954163518776240884250694977609005836093318847885932780108838858929050478887486511702470223780590272335707400701256241704855068580992602810202454857393665658194891748503392258594926327005062533767677073015908859729643746451589258197603507364984661795443875217962758126448710771438861532720890920212276491584137737873716322866224002412470188751163746960511369852449650904518669444529429020143205301579271173244264914760674311237924674760040392022303261281386522649892940941903932633572317055272670415443242180515583033473381147030502594820750554154644739210564707347405178046710283353556787585976972563433950320447515773830972836295108911374896954196991159140473086309987179021699657201077673851622265768448146104936328189932662031194983502833854943353389457827098900280385815506290129873529196715184628253694658153004333370703979584278164473285692068900124272146779451016685626952227177278206223413527414664800853744667239092722339093146753643644902502151460607751709767691147167712317688625244011969561365680606889550495786718470628721520747355910612873626822133245627788220232158285060862721797358434713751973845007859486688143475655842887017771724727883452468216760796624076837747024629637657429099318550519393637911569037617818236741058319051196023127249995291444009654042858061344149766605096171572730808937437597832326881644412048250692707005299603189130722881058684859345359446551449238649494575691215062287031829475729690225723575530090253986920157320492648989340589921893138956562682593474411382144911984334544721311909787110955519311489151026005894802775010107397155821767840402231127823926380192368769707627013993797908437461303432652799734818006647961867528739001509465214722419767405680205707649160133320196082343847360532253392636736915016016790528730315802339848369956513968364601752673920179103327896069539113481169121837516046605384091238725104098013357100048050298887056899281953616218634798110146105972859573979576513803864704000806706633623789891139841593037038392747833766543054998676877133053105994731879693251734728801610957413913777323208129835432512186285579758164325923836937649187260915132040614300059790194746919917292898453516885109948517565115834658568047369778184501357299860995133797008058978599701730626193915327962625914030699523380882299959497900313002222262883177138265397168028255204935193318223675475907881645011158978930624709276424241147209345407542667441577349292674202112804989175743988418514865465738961122513591000339978693713416907352784371194878842440533334244777793563647924742853279358920749010393405511496418114431397292249254448337625164047872082343516576339758950487182892882702701184496816078803874648352834109993062760689412478881291583041759219503396660026352897499461785884548874875621735680087481657297694127855126370661012280755239820448956891309012650205665929928185523507360174104517684108674822183897582071015046545637399140189417086392988757068918908005680032089615324482198023115055504619483581213690198908911614987552205306007501448348492671146909149096972005307621392310533824574942189742572091219180846824789580610279649074284817313752924105101444934625896874209028142716606842857047455893008840017643644342339926889730611387643575680047261657268566892526209227063626143671766267371010848255950789697587485946096904339494713222416223445333644599547192946489028684366645564239066398984261904960998159476993513587069843137476176102184072155532530284002817181105413165147424961226208867913481467694635821354565983221495144327659632088228643400789552108212470677101306344035437508919388636004979797743772737658436919846566245034573168947130607883949975054233771628227224373648174761941615969915733329654790897537772438689412645349837337702069190891433890482410183661846124035529591960646026296921259980177937789826649605546678531221188606215999501265265298562058891620969434241527910121562113480953308943762797834908091836366657017639081084370566260621128802758773145010995059399392239676066184862937704700780690751112838219725374730686915944936019306368150302152473768812826268918471369572103496218302065594507958066400875736007897905196757269210852086242564008042049106434539923510375438645623056133126234145770933367811069392092577863654291428133915098635748778828633448785910585254105189649354983864339236890768378784086891366152034072158177896643533316186518384287572843757379706013771357379801260582305530966121504807113030254111408821890113251369859281355903730405609546648401942861373979523194852612324560865088997994422478748841682664274005677222775652712606192973607345134019935213548780755224246747358723455057117686543671353557341185803021398610344548951353198428642818537024408362387888912731720973934194196552460133287745988068453672708345203364015379490354972809943230051499009802524395538323369400760131525816206194462257760558807078816289884936491574031011552657960186822025874764520822002374855204291489258447873296598325362165484600026741219079075106142313706781468046464758008396876047684527515004845792170340764693953560225835189489037154116341352792647078520276872145827222741260035236010817040427219293447609151133759745264911409599840026878076594190084361589472998586309669940334996128134683859046986334114854393367440465681658336454731328243801967096576399703639899496160184228396861438093663999726466759464334365401364139941376638659907883261270673737739859937683279293923237937959092315146286199620520315330014364737566502867813079775946892322600721028780505689290591976381796503007448010360157440325336315579606140995990589550991911999910605942158265322588056673167498639953198168648651596582267345142520233961666021899492381639732484684956387533673503410493824058001467980564409129590131752134797008550836705078373952518709438601650036216513467583943337973289867502936806839325976215772604679120774997676166756825810750943665436162725993275626034450215528071078484571792090019507110739719568061212874538328640529518707444696465088856208737207649690704508189526638548904351385710323338934912041400339647438705155083725325585468074800841821733833608249331176112918739892867080214965924330284357449277813511000569692505106472445317005125874398105029821794377863791552164063293406884061710275015858241674573406366107808899405778944864985564032673413571425312423214501035092886529939383729230100871079161546325035257313453788827498344007243152818633878030492279006919090051746401328965062813234867506429413618742642517721126753866237259080084233487383700169856741956384181774206042603356264921693756779544710389720690875696860116239229290410908072333706763603007111865421821257845035778815138044073179961709649191675965548152122541054824713580858532106902291877603127122810071729788962014471485536584228904558558408828729259075932254523337924039934739286728494628019993729565335126054844289615058922467236687744477949039253405622028748199987622461985826005660164269717705686402405735562463322784485916011876289892708709063250117732394039183220264225157343300771918419086957353698939907607826605228109368658149500009739476172173744064923248491220736551042196395797400489509581518911647929798062585596098194871295924024850394072306275783595068889926722713394600067601253644169671404063329107193502699746859402566116162043831883404607165523742467188705136861534767871608861268015152007936681096041760957323737702743623427187789675668238262770172496970448036546716565920020811134136612302855424630687864704697126074109462552839711204202709041200229744107599192095570736442186606531572678694655327001636694315481773517816331693246329892511169861935123753111544551073748471047609141207553747169208426480726528377341279203098421294809449150578793523861033979238532942981448949787089051532536921645031308007117275457149652334624062187030598231470144789161868984756287280279067299671289179492925118829804404724043628365581019764458440226204564675001731513283697027974816199255851970753575696540927735959989188057859798234041168132871334704236889091977088841071428919958733355321076945406117418363426362736667478304127125851175544461228142612863044790961050051647996413743297321094736355509125266548928360354877263575128067229221348793416978444993284779239603370913304433613781224890891631676284081551645352197394647732314958139428991498601487219184639093379473029267134249720172795125669477324619957199639052095538396265435728287042218089776995881619085578661293633475724416305032017969220740955380880324955292454046620462544829156696567065020448482079384091395745058127085345334100483452363307995322971425296422979260757877476216359144448701283436660784746712776218041526032215623331175377750775227253473550839023571957587888919221403434685785301140905629740924341501881827685716709581628474499554848380348887619365875421156465422861819464856045144105022076482167573259042787938210309902351907821347932215288066425489828579185388920480920347624667735610460605828150453436758865956363091841521724584377102005707541070509294311819608147095411118087564016465119418481527625629301428492995036001467060808279347694595168263402787573504586911753235365861304862952142230847509908187732485697818655856130955760482482843527651668363610062896048447466016810871992419439818106744260007578158326113211597142318658944712328944934619493140158056481150350215731559267112602034470246107773204193210317322622012113580782151932421448161505381279022148205455369255507389257961419832988168314987589701638266985283192111906594375893850497251575459668252694220166934941527422891811135830881521310367176377607197920597749500548521328011236901667000518297585120616516617819053909507500506952190759352969293449789830373512112374524375944726961067330890969388817662822282690060332069296544875676497550712768179118887247055530877121814331041224431605435712212903046831412074440399466664792148364520754829255460465728536737922465621521074092078539635588510936671195242798082683032675450055655533613822577188568101166571388208384392257242925127417488596813739931421710429869518815599763099515225175341551361990489027007391170293726937159970863599360249490430619105741538122788124420342362855296761635873900934490465695698128819217427098046753512081579915377799927943424107497773909783520688653995518470296109214522955655592451214590476852187419586651250762848732400295606758131048216625394303787784768182442870417522904063692183902673812397038901030948626473984106536146998696825229315889620411750838654113035653969112648081149802658602230315117441503264026959251312035207035412615662009558507730358771006165404945205239554957839812839112167035414452738515307568719449965125859311838471704494772612358687082169757492847876321164604273463410198347450026359312255464341800053360427489336767940646739697277251970017225118468849700799829741155174083794204697123126767231399039396056782238094830796095162552799174905728018551712370221133203721350106767278245884874920302028307580396629593610284339499646274014452086062597613612886554707413050610583604806009263011510571997509993689019328658155684023061116649650503357798291498999462994259368126645679444950625388877141755066818870965673242637541208264197985595979261272805492217356985965733895781510683770402123675962618446251118884604264080414920096662116711662550872959326588160286932092455654605020891214485169155056330772925675845634386814509646950643921221414537366142567818337068933029380614475858621235326034250532257599646840756284725175471701845183566684543849387585297664061482759772674676825746588776353612459041763176902399302747838441786005447922472190987792979606154145551034489449218439235795736061469880842107701635628702030915801339632395893189014514060043198579337301648550973282066810713375946344065111796557598898002248172355003920291248647652951154665954524887110990424556387563646645761797329533019622050136454922465414892578095844951534981835494810387529102446417397376682527121221281109976595137266741266521981859470836867331585074035968170983773734389139265278731546165350029693753945198799537684546840551754862392399634187779279244023388815488566419532309896344954006897412085017824874668855060631437259872284480146647746048973941022595147116792067464826439987616750553389823110639829725271608204107386875722135213129873180630228910520048145542310354793021531920996476828248034047228328228744798028594763640774236954838201438463950388446962892241252079544526434397105754963075163050623608539035428531237228242538865031115954314181552247747192930762933120453757217810137640870308848240334411809349066152982222001794332046448463851924608571616886530256040753489687864227803130623012734207902121805992821698351698413961853485088387483381187153080959489216348355120905176628445157678641013524947090180267469140639535174792062744107825806384266808931559444502789051435198970255987995696288519063599564415421923129242325501232803234721445741628814928834259965994561131033347245168158946751243775194412698088794939259471760996980657853002884716487174969594993686208885111910325798808837939725205034301700676509114980107253635465801338789125538440149403858385497048958537585749358031410139107805367753382449212541093776593777493092140689064304631507607040609917503374393915310469113992447329352821881670152946859960421642327337105021823245782555256302579217369036955697853420218314796729367955379432767141167866149834058409413575665072744550231804963029565500786304285566886892133791213361028186178032837925982318085071319220494637781266248342008465041725168044553322274796954503589254992535504735979221412376284295638533350692106946951605496928261196020885881582157773482284453513987679390020759785960125359427855476163234250370241438100420329456231893199522103619737520220170893454841382634725291272798676786123574222937862499349193250799566475473587027988233995975993625992200832618046659047963833667728200979875262214510270326225283865870500081335229659461411002175670906607821244671584147738950724798695317804078205535799811739808212177514249855723636629586260877298097816970267465745963266822964089563723838405972263682493875238116450032812517043556269468011044340749069195204325923531440799788040686211166373031896411403072865851499373094364249465770558598317165767994352276826892225288600273415841027806274851177231903214019751130048366978235446925111702554307630363171912805846721346505167357757858978639250630088224896962360681876117434710713872794180290182116919688160560034334117110301826314426718689175243533460449297544188696367579829438391992861514310109746984396057056869500594669575738846310092348247174565909084965291584467717482982371550350951214199501087406597852673428008867221497408834819238650364059741066553685027346633095889754124683149090542646010655513039879729783052283480882021726578751827758292508307984929650591628067387972777701926300446990284088495748722888710124077376774288914380856001663393677787812205674560941166588164236692065386747376775797980121158184644842044893631177489255187277230506531444735926784491915389520670151159432473718531032708781542228683783694111184050729730483024084230515371452086016832305667186006352359082904981037022079144739752046268654364180152951254755991257725888619615604666106754044347420364631411438994888917297314703696373175299642355102261847672194080767660738039704395951413835270638519088514162869246012438577993284429799427210725552977287321828060473557530242362593648121406876568372089333561019320986219745542945144075833545224001471723367319963455120374977442944275218417583192481941588911333127267637163395397938831084221918230821850946906877978217087955855139818758325346403133985640335282530607963179624564070933434294198172582504863591857017482318883315945974282257926162162992594271057694102164212457325752798686525286743523670174380557597359049808977642122927347571884433974219379936343812435967959084635250173789546752791174592081795439105078994780539911305243397632743622326879713252310535512496974647758824342615269773998694025046513132251090998864928848804054205583509058897784085807578671209568313576924239817733539821238758447079148379996344109688496547667707556516745350175515341043775317187753030342964995245604566134416424601417918578605633892790896038381143886399439267717777796025441698347257757725239896312391636360181433083449770965683842638851137728096269449402129085032401871050911364597279516859823601848625956437766800552031490688852503306014746836714562033392548416791544144046929492244340402382224703481980945460096237193665795389288722189869017596284974064084931343559672392502700217741810636412854721810570091546785796182732939353504826686006197544048177416289556535241819756635791882698878685649389818787945162948254749541682031001428851147606579360838240438167379458703261067197470850054742608099281371749157347144412584866905873854276342700986261204183533013566972084061729141121409736234298558276927952571569596236282173745273490534727340779021639538790281169884125163929058374325094995067474814787872113171432204184596824217670782991373670347443165307890036083616088645169613572118769053862179400811771470993941552437182816896688269631090263442172858080350271712935868743701115735211757131827957866225609787500125500801888840425869328645476084787419585927782593770701080800907574674219093120573560375557645662859808482951255710468010476072015614384366696349706123959798745695752205771092027846450598020747875849949165270331388773239985534367642347307697258413902533045313008412410973905153338413633668331072468064187124853157451155015703189471003183316659622495288497545877157605237808432588166116225772547615345825963405138728203804698748850845469642322537461081506399120826385233348810509419738167936847735827384055435398504943072470995828290919828609041208991259179428366136750833253883204671225527994798953213461339589619450180547268232377907733249399861743745135773727167080511601920007061147171544526784070249921252534478063410269844334778829160975221460253389298082601374895609684830380751868727038960257378263071185134927954612372755371045449069528173668343465024435687833111856055545173258165060011623532412902001858737223882415528757708302874560251074248247557304436686039938713918135023742920866090866818706141739605638175607944713058258489147656971927823054782461329974037726735062493465109075165104268743526226931259441937338271284851908792595552244221299830559176625327280281152077355136828726008232601918719348283518824240221297719889818770593600550900787022515839747154513469538400587558858738186695912490334470971560368613979045652775260990625503885911947328533927031402264042774859969447099005645203293160838170485737850106993114158635740227149990789934850745898303164988189417383364516301854899048082879542824383885033420813957730085636128425590395060844099999913914493094049136449288051539115722410805223086298710008603511646681989040172257419386399767130351757547849167477420016562661286167881598175794183952250135273079655417864050362136409444883286059412108435841193512231345056359470976951528567570820386794143526054377938873735447749804165080800534133188038894986135618055907649281939788745030366135587865989608091686313039875373241490490352601034344145016675257444703286213601868536765697189595082636338147458836574460046246811575968015021670468549939277365759894727284677131916129257068102967800484022319697122970217288593193167573695640838299379383708636159280843874540109528319031192214922620579987415233944112732912463976431636680817810112123393814629599647881125074706536581402748379022035634558832774532644042994707721308175298943168140465845155251432066229446184767579762675270336525825065479581302048800785349408308112297033453078273212311674193002772680989608567693715998979798883775658658537535727813963212466020390230733083087207112786916975141779917622897102144410650310909677725267022426868476800240558434709650504159553941624738286281995449646041753533756712942786925017525110173453335006919797729442687356978322501038422641878822601864413189310591163060572863255184024224266938653695262037735660101691008092690813631112399703118846389815956718731021876793578238218242358924477697531067457875636508143139697287528202789805397461157475842421779016547941160402364927381606590177503006897171161301265624894457204063210739195975369401634349781739007544125377426103929881899353832303952499812201153160212048848534810902692709895785839606736720790319292234340670626480853591800998396339308210462241557245010283810314999748935975558166249540405635098040777713492502090133634882303457742673372498132166029852008182028582709652694947519266234778869619352997947445722964158300279150873467148457037764601143639566041933781774041825313035093134318848237557988355564253481983639030016433564900770738853785607776350005688131870340873572376161817358270081292351497981394204352713107349487503465622061792682399704937741252209468997718231673956267949722405497296624351391523517355692023026120198515499334306184179369169443016044780079716711072415574703758783152391667925283234068358220555549149696781328163517777825624672093773627863490602522260443579667130928540166606969335732014614709781013768082823710714824533588507004446171670809519125651748355685086254727777128583645333334956651311973932386746412626327655399287503327208224537562645154488627433714029846897106707345919658239858999381040009956898980471485609221362397675525082581459858080687697527562401355225810906003341775074326098850356573406088826875725211407836482866951595067905260683488119171355526420223199163125507339524309421660607936502239456970046277834428068607280214868745160754499954524697284084063273800968483423032032600486609995465873354150627146362911636231846330124304855079202800676789484540597681447853385453366413193908745774331931993451797771540357747160338968863311058884298419931360427464031890488971263576987624834549841688917139372762525816416833662104059094683341113849206191504872894179252854392142998085707981814918161540804522938886123053825575469378561056128129784884203934682068633029381900710791962253929121525097099822530170844753091556491611884426589133704234527840051898044588881180555585654352351804061504077228478962993662903049330950175961327403342010605265655714547353731278715125803699943545817520882070555020294372079955978502165961411850228477601314516804866525658290306727735903857848993314112042451582197632972337855768225119315010451599236996844250243179381703096773870205109719443303013220474516242680909044506372281264126405161438257638599975139635970243500042024219904904120585749826483009370037414903908726410705178062342199635198518938143260699346218299335227121393281541847419501505547194752646319804467286140721112509132697896498798715559425135636658779460980917739689066104982090186660644197648998922484633741708843026677472827112580046287320131929388308635612193458523034975579763971480254137707629445643425412869002581803009221536710619675932488590893781604242186960304648376759476193301410612005676453240656609575773681150096405717927385600385948426633346562508368662583290909787028821464212659498701952262578322796552153681631396587002818847834382011535002369423992241032295533081852183829391264132882302141510648454294062722355654758854866079545986247683916153413566764590507053279854077056050693000052029281273013700905388883538082824818599008716148926783816342850278658040579421746508183320416274149000952824598725552345323268501087376888247632749168963888837749441050876172260871540600370413239332468959930151221642772604351407427040869976496219672418097374419483460499603613597625495211641686928396314703196002224287310838958395252966087674578322517686585529202251327031807142062388452672494010420188991476098639230652006731431731468155171302050836156168328803701047234514510401135521528237127547308354593422106353655623439953260753888126567256783253149557542482263401534896191541950427200968273572302374209773886244243080584194809357838809183142558108417496006237705851768943884305026543145263675530267653681995588353054145630335716623377511736995066127348410037457711509153302286957576651835818035230840314330045020159529537712694764479255574834211313486532352384389961568291263188395160830676535700358376861878363566015200430297328350097291435398153524785292051791247396879177064789725467978543525967611067975339562854841820030899363626975997022412935943155937992896067604191764519001101056101648034400242938293061059268488526232107500656751325205367258259309795863185586447326603973438621055582177577837047575569071458173005307681242225015561952832994376581002346190057440310114227858508102697479944547672833700177385174694887691129084038989632742656372088580802080438876512688506845277949018292995299990940374608520216205379871381641439572892034999299487121494844090825345140455583856452883628176364566584664008971364342175969118028047883930025619442429969172743934092837868711875729696959235236660287029119380418528938730778950051079137957684605389442584953976167982667182037709518354387525485958651345701985128659392008082577602290331967309531238887449716147030924833229899501185477260759254669831253616321415104529626022935632922405444612744472277969061179629616121099318267477802824016222873398745525923894737579938077509045653789746427706940747826916098812397052033331003178954623550882877973332358336776669466109600099242275377747295677163958110118632669822088156063700221985907041693672420564680826015420273821602099782204240044774634970031688547388365994249917615117400396802147358051214259182408787755071412158099792595391567359974325014869649979354443264734137139892724330840679064188724293813184386580553641733007588843201687963572190753291365203348167620837956045649935998449826916497967515833808376798052213125812356245758854470045466896814803174233234672276958616981935476822837122642393866371332972193685012661328055280362018483647164073994846166569132976961468643980589345754411928794126141158815868632581725806476443113258022016795216549933755034459493711224833614729998238493751507507904503988820636099740046918179982571126429447729673450180544856614485495379144823447160789279336761159384934495794560778677796455819611310899933563575991826452742734172855973408859341462222912071940365287237259600298033493969354474028170683366832048547790922608628347040546836746149790058813963738260813574000044388545357010637719035159797343100519588904430816848165634307126379975897203173590361267119002740149815890407152315083368364972277694407082196306526324718474292775878525353736344421313129260219818044133604381897803207718662158800006682241546837821089057045770345357655389697442974365093255082298860407112456246384055099286288495969659293347458977682263181885593000711848243335307306323164829677801944559013897788392365648979912875992769664654712176357256366555935559740801576456850518907362584984887315730588885898530534035918538496494973263320653620993159349253078044377136384445618568129383957465262070845750294327220992130769958066730180725894007158227232754639455400089200521594451689961022846711321553550633168076335619884092705135224315212079874347272786706230805167905193430566381727326949717286223386794707212332574276332400105192793651324043361013844430994646232324357421424582518093804747631138361284185371519575385501021720669824228352537305314770893339112717513567793692668095582889247189005270261994371068311316694652128353053728207612637680812046148947868196689643736114527907464254755712071674357566110287810347349722423481836186171388888554642142587272484751054277362218731238766346275555199264519989437651886612419656098649517484759237836331457773049479285245349200736641067207676060093907228417409633174058002673123845085174258695868415909960285923631749356663190415925961674109046882201860483313997344640201078866056340097455396167986468743662564690226509519919137127681925522023865732396229573210555765512748217429338669498824196702470829442368600243684306074906303960931348256936981296500602614559806280099822449580461156362837562948395060070798579908852695181011298480050725393356891119321308857373685765411742362903298697206865545749573011614855720453473907670981074596002945475527324928140400534040832377954702826600179168243036162001511924089582391227308737706923418678254979315404631600127044087041883735230639058129702989199325278533306954839046447022884564061715527772920177626063263475242417317815012332194503479065709155749436989593200198020360329505437797333958412470005754541110032051937723591758130425586822899017003967837111264172568536489576800527335590376710095313745261479625018124133076956209492390691582752614353188116684408615930933747373610117579611401229254598018313114743258214393103007405184834470665472458243014504289279480319234685219050347654306610085090358705796430664123413185872412140101129154277321141428116767357116986547131399599159302024775858653968030790502509217541520786717745289287552024217857085923267965137445491132736882668692902160872351469856536325211265725820616989062822585910678286763031588862441722845395710142120266210454995874890511536899982929827598562207861490718441295844100203954614777639751154789072241667804905085896881712719992736520329209770729480498328295793337875538052204752242587711217929429364408437044597142494156103332720966335012108797710384735837697334904342724641134819354391114116435323372508937245862327574159758879830838389023307689003109476907148987128307478181577705159471342153085425382732330750164506283137198104276220603743017588463612625417744714532966399923198618007543520233972223370175825789903568144542987222851073097009167505715487112771263667038125441850652501141046504187999635946158530992881317074637921018740021164998018740754556374776509550484777716082746493860362899556925627029555783953354897696087002112936425813307783335225066629479230308245088638826434148121902535620340486433570345355537756728942680597324851233511693894273685389500100825774100986474681420211303615209446117369006676746477587925653734033703791987914928840831609889649967447011993255240713290614287752970526114457535615642009173136729062141737847910714108658840714187146859171844701095649795041389679666113057635669364534633354024337902765251770482171686305262347272951611292765879937086566778994790524681418544063837475939931763201316368387019182226814646441094947755897643469275225484929143712106720626547932978808807021354701612800786429637424177195735112077428923233523826185867471348695798062731080473495202206290582796166497518498210062763488906543061582859366547727092250248275081607817285392352010891801413283210814261175899453160318088546334268955123090151422819876513439102337955625803442765792558145822999353434994628030563593774132590518430726502684558769354682911755264701991859545684518301265019403352055668730704287256127813183505652108057394391805114311322733039434180528326394080526128022095427941238751865844479509751475565606677219439628627779801802977719940569994962956172268454169747743789156766989586005405548690923214898607988862578077885699827183531135143555489482747023935654779065651476476729125843740026278411690814005537040042518737068229117781951853778931088887370584498779662021174327257330985526314407161882881953349476743152737065084755260277800431844479143096181369173544023350873707584097375698251972611333598737105862182883840653330548709729835730594959756641560914369303186939630488343124671576007564648416589481641330608223566244011494879120037351565543485495416570823922269498140901309920350075199251143307190550304150987095051269494524146257649108860556393429273716356024491327844795436338956809749788348697045582703227653482371853607915951904591574975981095584113850895286503376788963038889781398745935805506552852220356973842925780510213314510037922776269692738675869098871214988376434053897687981557778475186419812880554010335847888448238975567843346399799245552858836167981049647398327874556818666927117660828562639275883616591342767986221547966195546438149047352107466547432105012826387141350482032565660075761957026077844888481954126413252817743259706717083060047616342885735812734462631432466859453803986091973192737340701411830257338147329485468612694209836755529384267390112434006929921852051501809770581181862271234051551516386435620897973387183893010314970218806459067081490344629869239355624795955678876230712637292216715985856349789484857609693153787352893343643692124553141590123168430324414304385262881603712828822098032419072871663091735321041966417157341457830770436691312853256959821003843320735578162680108100946907267677233437037196427851184992264250339592369375480166752174007908597767316164254767017847618337001094479636697442458875270923593931135959482684357742290299184723522777200078569866370077584234937238422969229381318166174087828111733780991128568924662935415147572226913660311297037433956078940643990481320170276175659420541277969151233438040252355177490601608645737506440677618191508302442974986769270515710619167176448466968137822050312127347027464137921199177190975726915070297616598183780641037762510633882586564815042591096266965668040341888556708250912907836942269756997004375526568140119318272794696401591710016845864881974690260660460742543396411633393309909757931174144157213856167983137873237321657875844039844167625055564183219534725750317217181503840532210810451134088704690646936991658625998652550819301834439677993968358786445313306570336162584024803673015339517490156493696585029595305741154370155741923518607478911643209431485689609577792351656636459400261165199336767327233686859918972925121397549833398858714185094543028514232426511055231751145875619542934103894367485818976453711294648956582917104539576226631068792349064982717939203481786075765001236374512681626944058810480985728635603713311978949012900851345105873967310507200342236000549004969914420565571971610193239022570578019918271608226941204091206097521127783088184135929925937355841128811019982665470206384206894165222472023204497437558062133217121600669469700123348611479107787864627042038856060558921731002492046578389159861382398860247810885830928321176269382538417039257476449075594066352450753726239136402141496552269259208939669830808579738760999300302711235860362561356038850934784745522081037002435373031666587135948949470969846675874902663869023951486293203716578680105922465934605769417577947561872166098630196832859230364808536025342851582430984682510605473303918340956813354355140628452351487508380837697680858300845694728119423685757799443291463990514295990326715775014814466464465596880901667241125132095260008828604798445071309471858166948929708945305969275327197485228963274743813333907747436980589648998183527146413493509762331088028458180620911490906338169433177047961890577400909012626656409246126924631779743820179076803938947334169740743679976693471506759035514658456437981256066151564830968487525996946197223661369553746031635173819345655719133150158446524050763805927369118893940543353889387179504893017177568182993803867661764367780302930562072955807383621046849776147418246066665363362902931501785664987679991985514337795304080373479982969199243432894309922071988332533111132077902509349651049685433154984978859860928204223243138243864568470761513859019048586438979411965179598688833636402835213513002937613358763450358603217843561527406530488005825976444219759126872694066557373475482345198487012709432667604889788023120563303326172286888420213257695890113370774086556869413078317976422792843604527914807559411439022724487929352559888153897637677159294769231088873450118618982751563307259500030972678228988691273472754585055912808450557526385072561231835821227168041874096504224942199629350714349584070523336455556590184397338545294139184129435439682553079019910950758079359583867648782070840394103050773188714662680340315371637116847322288772289097475780146829747528759490246172021022287666206558535588579527783310813123074441280561846248731093524481442256054384389877575613995202609522348176592448096395202289358281391360186658577791192968200103658957343368412882317274754134123119930636122845141133183436095915439973518553889150974697706262685979781850310567593406147957168204303782014715064364964724876573279979901902041494544705586174472014206057778141391902059258603279453046437890445715011018102860262657465761373404508737441972658281317795526621766185015904453716239644139653464924343796436373634076145543304277422269741711680583335154333598789877282850044649093230459279814290335168357413759355144860496479092537344268140405001529152348005960159417382884680090143631636974406155151245822617971333188631034249446768319052247569671029358510556335478366543858879579060495587263820759616821505615219946750977713238450235618860683476420266523269922609422161032246587310378795983114637460472859827451985421971393054447806694807595203197809650615478102136149611675082373329582586935470558342412303497195205605172050064562905380725237193215621649687852535858287130838026109525341037216471765572865279245326156684359340065435417122689300639550157282953063587062909304819023810733491929423835042843614929630128887452016867490411811471528545500656344956125445895373760064123032411942402273380418746084178848880082623358655978491325355512632659888193242637569499805512012430608690493754131478822121224771891527914424223354355673040750759147775611521649264598838660500771641768224218798224887461784881535586270009795140200725613558074010357175039966036761751768315108368636882458037733180757979462941699922488650986765577322417226728927691676761130183944955524568775907567063996215810364907971006238154471871568257498748844141581973208785222510136311279638895498651832165778236103574660132020306351160687906038059383834306270328069858811308261043492077529247108726137598460940847394964807237160819226163931432880036483115297330174068129986119320641594745593813918388804271622754622858237244283148978068656471372695024778483914554985749104124395970278908290802655289459843314567929631862108069130446782647473681594556121747993996263494440047982672271664001642701666808002350842795934255487872259217630800605732236623846492435044908783407436575258161576171578746168319613607826374561604263807766403424031395343304926621918129815408930891635663373414409156707107545932595725149702548573185883217005987765113866928313376161856772143773702715029739712126349965652664932939083727800849776507023174637994749686472133056588295125124108400346567263021024148516929854166062591784921427905055326841156014458688682456611912188784905430771630976728945188212502942412864558833838202977233070825103575409550126516652327605950324324526935245036023488654177141968197182109348443369364330960482310896042420510667413484679808934442022311808810747733777903871977605234978437142939896195685672079844859143299440944164798758495773453330114489361650723652795704101825563838784286967126631777418585450981243678785032982153143903073251780750634045771127694429926940201218776091669648534664790316702231773246946039350803676456745364854536861731147478399874630822058464673266358076225077425050616228972725749105848264302850369713254786299148970970950991605513870472828034796671594844089872653559499485199609608696338124435341996343332704371274054930172185955729332418660964330691010868549963021188743390013462551343050184983241228914937956780777568888210252567157471859227672197313329567480260194762066635692850001901310939088540496597617914676498312559866133011758706401349180223340112512274696958073037266278784847270566063608236356813609353936694896988494103640046408229668083231035572971471682322074303347732086555243309416657685061886010203603613662486641991369276795992428211713448002840763546623713934717486164564867275584904602145161382962327763818936801524130877911361239047018149457421724493369190172895462063457678363312616521100814903256357085977514076395888747598695579891300577350751273885451881601410514168902106117864897800062656321572765525799162664718690093084317703466693584554230327135125203283629630745389196283277900557667821648698412391714348253335881028895884347291198493473673443492207212628468417335799006026721654470424901676591254529327603356538651178234356684769258896848889467497898759704404328632939899416997180992542398559852909563574364484810946078662814151201011450070930114397367497584269867314785577968921248281582583500162927735301788969726451357911471062992934311899524235471175081863579767613566121397008231747640441185659424229875778597958293759663206229169894199385462178308584765229476423817207730958365876552631730547950401117802087367119532303591315549646275659265019284352118870457636542512829198585290525815434053812923329333719636992874330395736868409018426296871845732865730326915239783259708839756192153941215643079018592422880171771538230708029168893384925223301424467453052832028373323818032888721878083818679082942688950824164153135783582814130419940494812393768782734180615762369764353812058698442375720577816682621502515551692339533885391018232929828487511819304211074603986365282506563712565011137036492445224218956615107689124138945915689242808605294689486590229155361289056777205897921564785720303996349802348897467762006521967119961288659071877069040242747194666540336370152839838422859907419010673178149033408890325604386605986582873186437501294241851916266509321381919581401186802979847361021596554330786666028007098571265659234822188173434272999992022473213974257645850268519095764359552967876125338442787585177711849443446738532178475805883991040113920632815779459081411801444672223287346948587281799929303352911129622220743224418014294801313126338011329147065367112741348157296296056788049393762543104127227901358463054164023685536942434408598342407229360688623070071131101941478678377076821738760655072588200651755112295885633915656959146787454593009997264221252150385106446920567335089770856827317839247620797401282242959166657618367277934552111722852354244625178826061383083837291084969278659576206239940183972936173973301849664307881101905804046256059538897064258752460865778960899411798229838321209082109143104750053455519194848312298599840301037957283000733961883103210341675480870959953420597224837700750261549503361317751511738465538587064961921871048622887588064663687526106476238431129534083161121485439001912351034936994917653022077359032533392615824274211915706776945165660912230799109674836878204916410955793691404073190190894199996270854541064962784740029867610935373849130631354276725120816533952440677037169364475053460549837475882723785050325442470468436904433377970010881624736707883981775631387464292994353462033598868621838916061523702241648470560617800723773783407861677096115129059545585603153804531029961313919805425862213304501164015539468102914004525569603531171265288123266794330348740275037406304770099032466610488924405840637236814477018988863426032852493038662615597623944661952416679841119450599912175502618518447715388385194834086157168141354848517587570346863126961460364255402925357763925428438186041031217296275991703287490589356777383357253766575297820727100009393138218833794610707401104780975794926086611339296795375304976222077818085177574185136199916681375168525957640767534717833359014367982624483356921230778271859655834032030564248347526101485275720677918846833671590515620972535052451614554131605976242784096656699563427406919774552170888951198946044516188666621751105683567199932817096008388377396654503789889788724649103457882334681272043171656809270156974602047582937815480230186804762803222296167454304410730483980547580561421297491795392401314277716954749691868401180801991344940461181427301346963691287699081266248670170936699012355107599858171808138309157475237982000577031894469923148434769287381377397766637435297841457215129199016054141320087252585001469942133192331728294380611404916162615175677038285728121729209946282950226651604312258040380392571044659569768327868925299003909699529931390803729131266908564551692764048839864931919925788040486027870322347367388399761275235249056666210148160400299900023473999311254993019790802184668556254435335191293616327212047509806269495983085455079604633544390094228521051889521581370660018776806649251345077698361008250302462245348620413939041366134046494102264604430974431407982975579250919911405921059171001068449062593631434783412042969132543113303015314721474343539326516774088501916776342018346969821806470604990820308814940149420666899756538911632411601909788169826965069395343174291312242708736010482437907628795927927458998933863119802018778041585515363344618609629239869900969819501508827616226351858485970428237955804588329815288211118594036016931951284940798712765031191893973238500635194094044107368300859001369654770296246345393275286111021082861285895797614769443496760668026199033860627780469091974600683305426476863139106671667131497073085141151551725986929305922182622622074395812484489796278795776972390893125145194859488061349922098090947854136368595165262912557339834847700670637836309993191966344727313161910391171829231586714931809642206488800116400398413980028948464256426473911868875817227880215201576073829085525392131828020849255526491772112139801900808757588497683555222622050335047068745508949169203977769972605065986787732146758336350448261657498928678584573069225617005277937639627362742792436177081893392004796886425914464629884287184557984701091226287010618240687790093703523358911955457686351135202476292054181486617289554823699242232329399412827792810334680285666007908472170333847072349819332140532566652734435395089546648073490130155766619743866609851558011015372338823388520519293926847269670104717852286971827005686459472583773488983802696075801688331999943283089003216173426604772166778248468731945608763808987417466639580520356136936490473609118279627272982839742761536847955327789972190946844383990394580640310710374735523594389284820522869640213722751601657371121633704108866784208441542181305341557444857280832132716030345229160621117423130285997974672013918896347568863125864976307838035816730783064772676120935112705225267792286001281437336874726078366149918250681746030185750613662408397768859941940448348653446660057449001770044314504919360012555783658371253539218187043439934158832328196610284750666932375743581908290850138151833119407199714558438894944291999043382854522132642187727458407377376461110426930543035718666385323700989494951243544515891773005072807370367799833910413135262881823313023092727079222599690230082669211801053944789972561300882737541293050200468971446528419099955811411235471871596077217500545137699942242927138413898969221078864671896713200331123831490297648550727358314409319638047871200914893037841357939134495674818818848261294289730326396955205997917971799375077878604234801409540039298573280913619731348814104512455573418080575217634761109107646274600290521649443278122352575851393271980276876140316971187610340328808283497595295654887705906090533814958464516067851106338008116094140333206813923747900240299394117801019532519174685358854323618576354324318486585769362876583067684554434838338727316690906774951756317785311562925890019992732815259002857822986902237237142566316171734038736230694928918420731382209069463633266863822275332354361673572565619794331016975879910505062050228542776039319331921396518773681017931901893240984600829864565810437683892835082995080073631144300696198471557297208464528694996470605358857107083120961027711774892125716571681252857440235623897517646838404693409204632805623292413272232381046656231408617240467169820704538826978011699857487172499396151528138234330111233337280787328462234974760612383546175843664882180496741725032183452210740160135849320360909089276548168770589011431242761159552668759596906448233678244858930417311646700329605506951335634325077612905944862823069280226324335085829362643677361496360848233400251237310807834422634147888219903727901991727172133876635359336179776873367548349788010528326185375772960971171796577500709677058334401994551021692411222765611051165299171606453908149841247562665864107331110366482048884224043245275273558523915759412440636085444165733520508836636202381515225058572403150779014320615433070456147911195976684600704038002290761820160134481961646510364148107308230160769709356509320317082839424333783876909006058699525005049537629542463405170236622632409519962938775782692911440458373208399489375725871743456469193964764589899061994698296299012119108159300302496360834387074825947597109150363515491392188511966793290410712087968161626614847633580308661827085012811558636030196365982129544204528631187701165836733478874262634261659438943894275771790138317204038889013847303243773028075318591021319398341053132132352363726762236317220968823031686662540049180954558944169107947707553368521194233941310779517700944763970581585807828023940940707216572914512415509306225966321162732022252129817115098296086465397651197149860142993142516138152867528461330995612097732362032306584866589505048798003675732718178335990766434424527169656952841488200812345739106670492944443234332879795821583309989719337093082262366167041796187550512164748338004402282117606620450104268629820908060630992897965676021775817490145165721635224028256502574779088285030217180333674013742338983726862840294049891959106663498177758968241251926425584328706080494474316938703890238789858185644290626907140544727138443961013349369282471695173175265599528507167180853649847514594550339776384478852514895786729083539541264778085118335066986805115120669229409875703467226335719035569042094612499342316769148320016868091170386462252479362586295945931249005436466129950320346546197849987374575394820179204203735295615985990857966858195707479844995103150648770388561768014514101417330524348957184958027736963778845032904860881305286599963145031495529312800111838632270378518217141209262485311365719622443841151526919503724994906591442685313125623133402865042296960929465641699793420490886472684676787335819435968187613622912037074033485793422716077992702334102107215146665765748676569040207826418746062751022921771840530532208088868022209222957479054446650179969129887975642806607828844674951150684668879767972174438313112935943721176759286329470064596455258500075553686937963859843694097446419362441438416371855315595793858116516247024287422556550902488984668311524190167108777415741170430371333393597369362421230636297696974445460018355452048947210547865217234493655057862646717213968742516971907918705313541112815151581665039299062439918465284351484982198119232588549162951910835923225099901770829874873692189791388264470707171294926015378059281982694440431206179339339459399989089418649647879824660640915219862200197907206489094600673078215494452240343035187960054360357776946244889546506913860053704535871470461654785361342657785389970179928188770966851257114452778181644137325301701094587779858365783475595041439442468294176821521666155982154024228524442138008469180355166552524948627459280498296529165741659924219742168309072880251178305517631749125343026832608084123455370237401031267612184918099988789934988766573577796797278919647678486354388100498339150644703911599913943730294113868086107232633002931746641906562578097915850988988330739838885473234446154191335271837878386455988911020318023026570571365994121459749763783575900013302234024475369814698224124796728961414086729236682605688212296242558190790504360116405609514183642915607392235424493257761406242832520022048248778051328184269583547686055028321876113142713285999028594921524745121098294670958244198282328932523435478409791923115897986229146349902006577465982572967119096073577990815644024583312292418981482191565711931666489403174320673371528095466709914321254014728174569948409061169814575712812769353503626673590676490687688447230028558366225759894858592107539085908416734165096567389258944188385984853451913498671590941744882978899059671484240857899754342100139967544184397003727980254111544877150824441315960409005400586595479333371730327068087803264572652161817653297707822337825984129398646962906232690857307754487979290729682747265492344231888995911261200985244943549147386334406888476416827452888768668526626460657619183697797859352727715587923476871371753969327451251943966305140261019026937624669882427042929684801057992061421421594859170301516839202308828565808618805825102601782920437765605475646241060750847166236923313425738680875661899711399367544209171644931299816764961880039213826033230244917189739788034261514402639707035638843743487330440870667784029055422030425979883941610474340270669163977597956832879686564740781667443516894566690057878945635696432373239959061788787314729498752167418900040099324407739768968618492998682691259709015394317585836981589082734760595738599014362891577573233039080986098557367684736600153904873988961319597698168041032898935050505923580552251752811777261381878426006228829506412797213549601443883846143084145566733344792906146789511102872801118525716967266688833023717709335103511093600433612080051180224574080239113309887852077615653055881396932415061289160440895734999262040511520817946736350018599804000626403157246557397656169310315209194804079249512889689540020811568739744906923493959266061942364629204221529690885098269244628752022433361257984292767007874024944668487180154335442568053126428853565082954730036973733403946485773301672079794165041775859357082436789283062011516426217628741727871751584893501512109814047744823962459688633865294140280160742717354961149123568486449525470805415380415538911665910389472345217644375327114360605411249868903624894457722899129235123186942895705345050043542175151082678575879990578275011492241686566693176522733210888054816812849698676295115193940016214007220798599442711401825493388868932708373350667900297698808575056888663514890701460834596124447069725864421413664410314564256492067198971027947577487622147590671431965063984033433624818209572524025186960497793238225149375555126350407195871922324077571660045593811302242097487044293827431338091765203835322499334574099072223525466393429623373286283585034837745620861971737948322124119944214948400985832576650221301995812723598470872744687521578615865420413883220252282691519101213499870717641294284979194946144185497514812898976281371745439541874508120111945255408267705585986045638121855448262157843267238952138549163057621867983490876058477888775352520929995107524228826076253769989089094267616644757197441668941630463181336094062475512686788338790806547900210800718000166555672747604102304886120515678309093539742862849718359587627479148160069472291123856674341889407033445425749420562751789626856364338048624621533190841239106600480325656657006710706858344739643877076069153725064565429895863230331768089808445854488122909179901203158906805611477266777099461556495369283925559867614847006279250412689205781809276732168578855907541736008125512449457347010626474247396128918301906530147923031086490869001870762895033787795207647265904855715439568383488060220859963890639681680980306139689292548892864353202264193169564692494698928348876148837587216079653685915153841484940682209037570140964114309814454192022951914311271634543924959133071783950936234089382892390173711590371969164457890395256306672303308364024806264060129510231777061988708490379374586449084905281497332168899861893161365459438679290118179717475183631753677255502230188610193279762146133826777040210702801155769532417639649688936366541913309730394038739679212695854924760504253074402509365667761227615835506653074793387320555669189987439364066691085416863069096600201346996735133155205192407494598211999050259852753579588279625487772933413209903335900857864879375971343541555238021557027889590034204690947113975333176037597280307729061807929347419334518220341355452114104197971681125875588487103236180982053871502681919307507064145041552787115340981370521967475409998479332309879092239479601208185442849511145548216361612563617209640599386667674725190971624896332401940092936928019362062116433282340980235475115054553602916236828817014324663802172117008108320214952260653115238340632575708996767965314332058408791210612782442426301130679594294325237275213263424510508517383352476885490702351843002926412817656718499822013027295133073872232047953404426527346078054626239693069828898882647432033176846647646586290049270324444133047983243632158026525008609920888509462130285718649511160431376073142925109110293854256367547355383793925554589354625118587685921095323659499297649591089607689421696644794944973323449168114001631427085847308601650253110929346172677932278321708691440224281528799519539700895968494934751110011299277239145937201854957978754665422952203977182592487550962726348270888941630425737132858875528555123366097065117492646944916597995945972904041579927850947556717048694815338997064116197763662790483220654024284857616822651229675356949246279390033594575454656651120835826903724677885947531114269680790664479929198311679072350705276297673889080263152900427893977027597432581958972904925593651234549695653316720859299222111809064148630139287308898735588832130742095644562726211997572165856964988685788184367146372695728306852359845832459745291427200335141977439847865578772659493670960977201377217197783966790939627427124115443134316378132713248886947445866654495830942248279197375248017467033279357022118290728500451971221758595516834699668542189522457877322256816783222589101552266040361231410956435948016822611215875939135256346486602677890815882206494866577960974910231248683473239622551813328682166498235434527515120183214561907287979982046400407079962534339399542581606035090448504446180212576634549315289470513235543080502862608225112662999406333243441841890377000620309224755306590621621955842274670177504788830139926120593003112452827928717696520318010238383114479883169373718641370672264326552398256538219568424496849417055275465999485051420669150216341407119755505497889143611973172634143523604931224384287468201764516069547598715155530779351066073101367491700102760458693754584142800776737236471379855793103902631876087547325635274386072807246594099275033812411781356312552029530959991293279276332124284290055536733421491565817805881658156897483456656029599230124379352503055456551878558426799657082915806775858783652485175532816299492558890406555964339310134515277324733186942450095192263153466269673099210536809596594369070099696858781729851247840077327921827936821115973559069629704763467076626686396045049393919706266119954897918925986804205261962635617559167597937208146669856407719962468656897266856727009504813310033304566142617991604389548000393854504613908749918318333620297593858973491920480105068898010782617837820288086408972259583523860416102281299326082380223458736780177964465821928467943922265828459086857038932011898438442731867319334795488982358867610177189868050458797935911911282607998858545827048580627844849654497346264198469506686260538367863382247845672845171158897145487037205722919320872367363292550700266097786624664103864793659598219574396050829147678090992573555485829486352174897076367393337532761378937055748799639057535007757094762798171626482804533126577710531112091378194511328913900692692741733000073517798357483363490088073824531869257974846160356897484123586196088874805946693427911019875646872662677801498259725175201681767742241800564046934882368283898342155250314658389355023317513127747746119178263729071113957835825700439181863900488364750357943843020336384169221039243775517447422554280622257792202412761852963388078163313043579778794795046905180004846989842671570400201294462801396334547656567053102444916102466409564752779061873903413248437709822385794772578617199486319731500101511957119773784779544975805899220819240347973159463016007864280778358027190191104639100760841097146265848599872084635976865424998778996522613820268843695848619620948749608504116812230266789150550898936806388066125424756996796784764984717303012026894238586824882362285909005465732265817176084430903235640765403412772034347284222938646954265486606036969357986530266353018556479853928627126824658377031044465607106927906366278030847730184237358861667645178629846764590226429335609349933255709205956778963490918630993808969254393631139564752766345670810464246821467680306430419402096779631584351220926501885524070482916558617903771709362460273110779912836979012488835031348314535182168719069978058813914218893309638695224866803452395854261791423922299717032647636546318151413096058454532731684324274737538146681378678115932706104654647426342832023064738538385047026723812858266278038254012737171776807675563390478710660455500519015549753137055647504883072251749285118003947636665127926261910920744716048430460135901679829693586319185956087901229488038356962802653925954386279964721097760618245810581643672705086716407271570217436073370647913101863176609718214577657983934195265314938980833159629538650000644307912173884502154872428378180246262236721184858261158935417123674246038178665282566363698614810970689832006710043498970512372282667154012129882054990078741124393765230711698236586303029157679747359204927041641384949610927072354844803611189501631619195653764742713138033571555909680800729546906364726369938742485847328211845969432009410235358215911023101420904080437151021876438979384451252218932207224261028620352399631928314190378188468824523779090924783556488075319082208909138085778489178621395087823297135358633183453066273212279192726182974987123497425695928899815947566934584893497893055130607323962216124362756209566122122786313083007704886705258876568574218940061539049232905994729116821296162581489715115830394773497013450640028125476812320073382462584448130415245652042630305887696830977537071037938435489714998852799686323950308575781595629467404098863607903644524123894936459686572832537976304636900273310927039105322799267300977237692659105871983770322504748723035706212517486196043409665592729745763959948675037422959706441484824304592760370241910367689818864503659227155327438252502944568931567217464761425374336151665147383218967125750109392246225524921606560183882334840500929394011999915014083141703423073392510335065034043597624789086835439512112143895003150752899893389823307431898066128952987090650643834739165660351727321123390971534606174546045371342016179496806564965764905379556801176500482631288664878589612245832117335062120122466639161722564745444877159686907599098108452137853616375412418766678105145265590423904226157107635690004805541397581542775537169957086888302663118636961254839492445244560714005066168133603227037242876136853100835170675618056769323896536495785383711777004274699524085713750767376925578672145798319196487624094961113287992083552056952650058299337346678269958207677696478478994964256885372381477482928859006768129215157426343488454168015050444488669438926651845103569973659435934711893281778830875256809154893707344426025979992569822125521161722391361684780454156049444536665860030453509780717812139396034628527061675355215055811259950168065551571570233964004142603550296865162067685500980446775344932474113354244907812379641612587115266539240086429323388898623451179784901200235455048987886175593166614063198757416543338276751807838329610143994167997500757932958367648387971999687982347293282803451057815285456033042634806757412652864500983730050935500226101929107265055972672969306240885661723007142897618719752980957529327160507999164069316327985705294767905507366480116074139787566417200629818257573443123753969312509660540734337506524061303333205719330069868301407796260346829596746383540110551032284144718187680053127584762835955884459239011674441369251128633096927674367314676502747430293008863383856443668340425776238757825551213929344378242112442153941765884918641949871086991525270016805892201832109031020448265836927441874524997415411533842569945879984517707867288259352832458710994650101842495768781095448505154894001406098918623785763930842470438165046826401142162908112150623694822390675141413619696960378509844260012100731373076327063295913624929401857547996495025228638950579364128186095998016116317426997300789023189535922189981665292072287698912740429966172753796232817347655076714058236572279242475490009349303903872771538272453703548412905904535079144192680075339652331498826360013695972422736127948795125902582282330707191462828867099028924156805736473670545953121038547250931706928686702768026936961801344563875295905812796624198414450784738079467793040641250485123398217497737591104497161011293524356052614996013813795633137952399929580469313366281922880416399050744630059397533479979143993488420281143319437884525668853001254766441199155182557312805588395789969600381908991396803040564627553064305265040602629488396887971255519898059387719893790088901650329690292250301514613013892627288957633992908109471614847262563836522119468219769287612505040346776491952848004022289016465466441352330010287783285891864104744199371519983273601587681084524546836558834363268802219317820371771989640728094369707895738687503643930029461233963298305870750954183603342299186925007586982440173582940712807713488742598853043060057066687210708856295563313602166798359957015071500886173735046035041564042397911503378452821641814945460035579589596745458502542637756182325919237968979706128945680487628902388004351976664160111565897095714928338733055856545703095250270397085833190574614990666593088524776683079006758401621951081657720891258734085900034376056769798618530388615936209384695191642116906222933755900372339803866478548176563021875527814251218344927742176372659292946776520037129657061845355043402065457382877536766865431081175725053323078691778614638038887066956539729411548635407041034455879417032259025802601168261973344303425209798203344160444953521469673898642680283365020583782116373474677504561975946089240096795469087768688304019086065258471106742735571509647268857283452288947262450913175232951048188840612723562890232593036528949162968697333196513056049767132494361046493866209488372618379407747456852514166602984037908514325448650974850178541729190672307933451999470312592082745246100645864394621456409036234153588590632758743896473037322055887334976492448124073268446242781598136744957007525807802606578202607609348037421890568577597934733554294819664132228793724789478020824574724756592595310713225641840467631888962347864576025280806403979923022920176477875991549397743076179617583714933734889235134633297714037098653050398458182716055785900179700651256924330726184673756447916194332159314439356536220371798076749289504206529013622148464879229782751129239624956676834552520317056893215523399639800950506494941521670898563123395521939618018157471198706780024885172095526916377763933928616952813733320425789551966831495212712243442629818700592852919277095296238042715523316215781771634673333410044191629991921575665105511608904327354188730134395457092219812600419998508824456732737018397012951596452050369757461588457337169032796899582849372861580873069064278054690097740163055346032152444274562958216348820664921900738937391500871184187684240093383904049175389763671168923350031000655975071218814598084396675879467834086571569912346684393119766151469415130154683289377886540985799981289934462760796581378632777057507162076743414766992182531312932430797400952232492728564542176723980284616473705534681970505556872803295108333289676087229660881839955135238812140283766919693636714358017586190068015981222855097800516709427318291807674549346643220420486125912068245638915652989001512165731303957904922494914403849090502413020905787952330955491359031068645199898904726922069598727411371021211643166626242652309894587641375877636398418192392962077395062534060351406498918301030214622968952555017100581800748957265309811390752006034011402652931708695081989311162631037522039187939756507266915557426212559561343814444543896044595134243744053634357756631180094967733618099626493704112666693929710254397126942909984282715320766712105720196972665286471202764788326309341693353394893187770123849426589650626869242674456582996280282259102172549614519967035584236247861962958124824017517647420872415750064149350793095281509121530790950923405340185767274689841257674350651234885258595996588667028493472047836537738077636190600112889451403743225827387583876479612706258587754206671216717275546696598434476445037828954081693557392728026476648563878671620630565473963414097740671856724135149842745174525515369236025436786810171366296390018156748135384179966886185648527654665531901665724563036974516425620653733486313426989329209082615905050417329064118756569012478499764822643861683294959709237681309121752907411841182584069974717924750665089596623626923824260427745917824789578260173498489484886789548073463138577114544863551806788551572086699178259875111931338958156924594718010304593978378618812342470242560173436891193001255972772258477289431144691076827649062689321144139547149778673593955434297472117247421622965028982031298089911593505761111218889024075465665879571585595504604552331104694952996438990655465844780171867277064485291771654895407104193901226813557860124332914003376021790118828997986677431230184522563970487815184369945559719397776422105305260330403968656753373418315724347296764214666491948142878498476686817969109764425641676374406411138294849880876316756922427932764536104453501618471933439508163595169133503083046999859467973301304314469483537107786009957338092486383523056067658049851042113957617021565782730293570684288555152955642911079928818827071677706263453086453412057095950047691764595441213210931946049171483961473071905460369650912088145618836974356434147017162312234051394622148730748255193699811720862907596934113058570287499346377143087269769551863756748790414218405696519507109459389249190747824374113223999873934667663532995398763870698066892852654289110056026668725050638575520356656526068298564039610763913555926559459939280623255090082535077960730247087760267848336936836836501613382651496879776258004162832589455208190663515991648916875622797616530329629262587031468457802856920441721099189188987019498660737154667294231805513897367096373309310021995571672691784777748332004332005982428634399260894037472289098652301557204794091833898559614409860666623766570478692941460475882866572154211342377202254487603305982715761004053828189687270199000921519859403209920181862138019317845207310538000574357715827872498133464807320414788791368576234138571230848548657344637609088570285674880699338998438094375662453386223302116174802341954776523817058568249686786596578214383644744077676320032913084649859850345753967684380051465859832993717280102936769237642874108173163781754848772306700895020496257771563303344884589611195975631312719618741677235981190588867341838738712949945393098267609061676976872724119938404119655502296688213934321557639488254938524197838740389914415336315298938677351601254276231285454933113064818207160389966418807194377523662733906386362093193078153078772409021385166072773614333325643926478621395553091739217419640658729758941730889925333074206136039494702500666122458143430283763291062459384782562517730511497135479472255120669549372755372357212119931728135157796561566575878539494523703018237458223341880492371751096274990251062556641699798700314627893236476648265915187632658038968839463547695468968800740789203178588528845777209700897147974896444505713978294449784379616273416168765709554052063274271893724585451800928586519915243184882884286543867571597133724116842799989292215654932858649438919085043952716739833402148371328731490761384280443181612252808452573075440392067066540402998212067367657006759877129048386965464165724436960805079259687227115535351265626304377778511017767900428917345922978136404836131972296124027003337851349038343457960770484630427839047994612258693709117967894329253227857510109016278921218888976964448941101227835350588555381550989618787441148308528448128515696646575984409540989083978536954562842752294321592972769705666714886669708418449654414991982904007803026280536105204030959365077165516140439793426742911697440441970335919809270473689699718272194417305037541108244028571890611047587897639376871210665876552374954368260328376029539296842704225153409347518141588038827927324496213597067837983762353763145824879064902899771693160914818201614225968921733805156299407030744897730971500557922080730926397325071501170818572612776324735457216903688902980640900989296041374809999003785726256058193116594979350864874926329693802498641322595181715304347490155807856868096048366872637761120333160040218564540760883346518073286909744238361685866516048533080065588997857868230161078363775033956272130871017423743304036141346929717813919520710930329046072081602360769744381403887238687651803042478438291303301736609043677780267675113431447676019912504337485867675856349699961686442342897978915170427692856240216913600396381523611075729117395125675502620442906106636611900249219830486044963253901827848002191664220584048426898258381670422679145272382973165201468817161917803605573076077417674228534006881298163088761389253865199715943953072656966683818525887599013148141279367700179358320098418349590537731888401440934774525489908384932173048938952687774203666156877471682832536916744195121892640319300533588251071080653837334318984075632628694808939281286146271833931227708747216408652820322895207528842669089721858731724279516089000101616489304409584273756099365283516378238336172014207182880054923192266776314669701698110515460540840511262009875620813653340622491445163392449313912373204989196111339336241798416235603258502990000488799868971897641767348792906377718532197198820495793073520851102671261061389545437899972314636403265097090782179281835429205505368776069019088706524228892265917924360129273137747308522083020839046802903858209756691593759449447621892829925035348423417076489544569679455910681548291822746430129320589838964603154578700606414814657038469382863401794187467642751482099707570466475561286187288884960531037077152226130569773738110759274301380476902261509211196598123270441194141921923212313988076261916353693880531772742612979928623543919901349454719247432176526932988459657760948043462251156339413241661950105769279052464595128386071462192622496196468964343483825650061764604173529253702432048747805690650523383293370860760244306975246534504932754544100959989770549618646302422663158310266198223368953874777224096832493265770584612134226569899823956370228403220229719524826391818373021958293407759038102975025377408755772419892061144502725257878041560858264757090104978061025887566736551224279895395941078525070330331256346700369507412730368799920789793096980700207714141061564506039728949908869823532902300211721407371258523356813601932358516964195743419650298664076776256480710791132505615939575978733928015400249896352394269430314156542832323197150898959206650680286185459871185054887154677849927725346153472810836834932648397488442495179438416001683696842025905421458459341421191090056872394906261362377589802262543076721918521111194756820881868655342906508503218114124216051419655949877898405991099254253843297683309759654132214270030199514884707577361557255390528630846348322196688337703268422806232969317092612116656342784391712906119219948414177734727443960435018870583970286742912973305349199154259842992541481475157782043357303479692359203734658340663958115885869747274358501624082237175881748195896794725377710233066793929600328295428540538937699952333474401604357945546121974066695956613531304764172666969414480095988064157043946599887088552378556966587224469690233281185656270030704005528021635185939281426150509052867759523666889916970396808158470308426752596754704578573127517487426843583031928278090771362309664535639976183793994028257247800562962104836241221603862313946016360126636294637869153119972060503297182232156242446897207369638712943746055958873574847128442930041980247843443838237893297477988773494627162595876008278978262557300406959749815843949248114627121896218276315735033571490006557558291651520851735669383898453815333273171844587122200345504146853208497027089944077272534745368233215411784719464894450407732057577702207316405119225364035030622982013711148754596480608195454984905204513596955031380214858670405198918856716707794637311157457116715199719176397236457608991253636829661647188081132371562656036990341325899476817086102652695925853181085741860843130134218796508958822211650720420172987592346164165184113136718501823263620210792291540290218188690689871398703879175742062436858315959925051938134605766505401139828125053953576948459029422307600876483595944604105308774486372838469954725473554209815888286909788396254466628834063512697767688365846655294492244479414220657806515488082977997181640294859316150898849763914324951616321723504491958153570314871172927953142718509053356264253141809971921097907835970342831949815001569500941773375810810034744250861152032300513140965883374625518325549276206591746834915701891361680380198717583996956317346454873653982573182090189951525201621721660937801217868069739973835118630954316966459419824321926787084675569837633355264713155276381515614129577024252410065078840303493125316551720734707764312234738234884579670968966271142170613295157667714006017316798341346148332326201277169070205872475515847194209811881671371659161063712277735583977930556419416161229778391648051921591187965147318059273760228480550301727725117825327899770948732774928168497592787076085488306500399475466622112609451532318200407010894713939706291601251688600560793591005114178644571169303935573295678402083918606739634010884816583081105152005313003974818971205179076556922735778779066952566690614062365003283007467999382853564232753369353252745011495350529318138206837021045309611654835770624523976590584396215179577763768859176458415707854458820748462327977581113126777320349249699165920734858927275740889482570666966923671880514181046695062133293629606127727621819762768221339215605835763743738940680959180229563482734847774594886471004523783305634508187222798145108879869283539872099471141621533720151078561907193749286636308750241214690803261094799747658072053218010454896689142333031078493300407644262732355298288529893783478344536305941541982785494440838683491073081152588865179109868690884569925918559999866635322118757292254756560127690679962219773680003588663564797345215632592560892126074552861478926326115080774324918949319199359980906005134023754538958124303588736317608674963259870994067584218783975286256225528065692894413664277920481866612380284489447826324277820584846672516458088089658066729083431273544564134311383685588125970727684537603274372581345696535920750698787249979563564491067208206598544895893760207465897863431580569224859115121133431920056540543198161014857009328000569573831414273287424390024710103349320441124561691591657921659495942281885873942436313827640049370049819139099719061746905054579274437760646692994591782860920736811066442470752841774233886215012724880485083063917123228011660589338313192119890034239670672421502594143771687154896234402439549107242356387009081032725506687359563482631610732741079292931748586867482890593081533901113762258928243262395408024827231263525496271686519449896584963150088516367648613791256008652518152252774574137914211768810221123978525776817436697606552400162437465516453694210975833824450031842046321183755735305396635161530150878966348231519500293614869747800534163916946999002813338384010016469610404972572764621083683917285793893682033603416974788594411089731794977237946511230892230709950118423479268351453654434106911478703574622451374777880888639343023637746457591956140847367836441479109458006072167810865082745005225367682967788426754198167806509087030569976657212178550137043756604753111663875138136311867181178162645712484167699124170431603189558195783079703847981633483228955260987285412136102981546930541064888770489832504896411810428710811849397561591498814955805898342274047181368976220470843965885215336883742711451241015022465862088206300929772217002241574704310393880448070333801010745726691930317473978145601252842157695979735126719990104318558422695763151272669126786016193110623958710392117027355887586430145082460215462408459570173106400624833201372125983274711501643987831434336716690542216454865685141085554749322327023156576905748518405077155823810637967162199711223644948328826919537413016746910258949916561900539671296185103312800934904391375487355642628056495559741338993506277711651955926140538948849960466337934942563189553564114471772589857889000594546437388853701878754346879884800256370639095945734375822735286182669220484698076136491522867832229723927681967103033394372444082762206828636090298990926965189479925518617137251887015654130251490089183710817463751989911738246416774073531204141654960562209002234794171576683435245645195794285747672733450005195985288820251624735210693160506874570093881608163053680344522613832991324973049809050384059793075402180754436927700074412994063309555868643418598143290589209144373411098350004122160988579361370863658390208413035914391518374876887902718748728977508090821868363715011787317888241727878938390468967418855311160339734010330707458681884537121729528666421096613596679986216445468807265045659654865084579667961193858049859155576072013825191168853231202772227695789152651255620047169657955816618897453812272390944812101310479403032512249089756993710971941433693200638774612311341414712256733718343517973601042186766362104111125237565501793965500279450997900859593370975834580877690528216040938210442250328520431403433700151808003355844979379537642013283484737332448690461600637064299301434876814530647749004283362562205770299662122167306542068275344427268103698067276387502291107988273050368265850502456199080206549189988693407380287739126303430756624425183410331577739991192375743411380746648798690989114688384396696449013815918136012113640347410110089447188234462480709848519296286667574485204831343985653561271315853413082356930125593466467755186671848039425520399068273050649706951920790477253429409628937160437263698619351747521424149655849500675203317215760555741604189263204738102570932670266036788996758128140230768997426937927262809139348002634001439623951559379074219672176481519284917524931782440923259063231402666444162842749522439718539126685826350293115892436010902675208662462354680116493602442648749755381129775132270639529812696647325311831189647772486379630592447534207329964485529949134375088860427339813840908175557291199132613380270292860359782892071334626841679087236096405087511284565930029486351560783617089895093701677396811974590826880542794050354366655662934573419395366572336300164760534881650194446275684411023656602104940963803652619472832567660108823946110491167790359077759871276047376792336358586594846544559620225367036976213512616378324454276647453898493993022992948979472442698738646207737290817705491472355868441381100662005858494445674491829962642542767987111808380904371378011466696156937167298613838297367747068818992781615129232867849886941604917024658466063311835954714563215092069431193270980352639781616269507385052440961912346655937307108156905079124691107527922756561175027338697311961692563308217892961072158590134500001136271361982605965906199704613620433625330253486009103517502436789084719863455618862526804593884767189768145335992403106797005565717780044010879001285549121403656184042211728948017093201771230089807630931948966340704819804580223370033044923116940647319951606765774174609979940173317754973374990034953668321499653508402114872942892137047021460349367199082287881773706572352908873047352153668500000964897683361018059028878682539967176406928020405242239816493045158989603743804521753969885781796842222890245904129058676500838530693510788873638272064718534240656142789056368863038582625261409643388465702544892009688117275292601372270429419540636125672615524619280384917452141871785923915931976254256710859358154317359613230228551539087990770382077436157455775834915369803196547076394496717238694976733911433917538868954614351286253798677018440603090793288477857330483849748294368509507384745227666710548254786456791774837794364610769053669853973597499313701355333187851856902034541113621240035543039580280556607958573562390472646711053819149231132461763503183234514566297738380006196650853761979666257200674534876268596158474783500906472620536114124820009871754198283876413562906437627841602924169297692215860562185992399139501085478275496986825167607575831680481011328815935241163222435332691522333830586490566922521318826582068918879837211147623942325724188841933410435556780196557445202431744681143651061849442123462755671421447530825271289672875940702445925133221677486474620816358970726743981430506103944170719450649748943811919325066284552042161133724547404479804274838748063242466828824902283780696343101716014160900859940552744976401142851459370389084272024286611976805127443321069803281889172581689909400039663402954967346139388648817370474087382524209421323644772866478901826528106450240497115402985180136798619833982728258748314129784287286900329708058805428271244576790787778988274113896654283703394803977640420982952572873269813476016416810609133556355002729510921630184225198041204980599754580730230351221440764299408564536972020598772983359903741172499405947674751866294964957259213489717377385312000476901985292130580539105038515790109246111371360588382760411466544364109494954184173628800494731828681702755531931841712013704303809466223771499743385690298603736258672131186403988254052627487387244361640600681495909681998843918611201546893499021051945457387834039179686105979900817279433089667909151034717152660524983786414232126220245458176109940028663207629289781237756106934449279750755691715478224005831630117118803601538992243663340118741313375622293950486172701860386941526588247494744091148788326828746346443806231486812568900862320605215209430989263542624805115858188101604495144996596467217434020956350046330580980280299744460023439036929696050423466338297681994788816493061935539699832784949078830402011460606226672362421217337923755811199580088407918124191390096844865600334955490252291842869839392242238785012044382920462582559518341892158742922164164612534629603343503609467482844356034781628627430234693233441086174224398460330670567374248508097455555262121215963930804584547957708959290833554432510577769726854463470398253160426889491255734157032967954740417893156433797215908647285807842515635867958433084240006198147474736873496225740151711818453395158612067574596817229098846230312565160902589240872457047633095240709048794446881492067978089453470830283857020469223205228023256194322375976404131412601336313299084404128597831476576399253507562078643944850409348364007110565481523165398146686036111404004698934799247316492179346003708391559744628143948400886057545722818733207294985439880540251650452465349071842561675769788338389141410573109873536239347818150116234393539526392930032964459686639883917365952087189070053184211557466396390236459202336277094892905412820311782601876586211109558777474248772276601038810390011423966538920107351706312839930023704073651698871904679578702188597569572747387333083350240292750691507312287451248025051256692620561950047874764333469865701917788729335560580060092811476874730297143051347089297953651616757698435035487639906214330864172856711421545913466881519300846335912648657527680459329946302401390157413760228433201376466711552437946157013460151876781736940274157519735417036764235985389460040815139027548585776368966768129640330402638484570509802488949964004375620985641612490769615464123273573105600109373685265128241339335451949599074126005922631719214040186675667331254025037430894247109542687315068302535839967210803758174391427296635898766269673850701370694462893182747007835523825305840918984468480071280937827485643217370227170912476908025972127908418781343039914388642581777303179289448350313390465295590314789917322786785247234409674755679396046971722545178321939089485973417718715843294669621216721609726620125289516768856547200677459966864864344451642518977717595990873981743518215820678122184988339941575463432061905313997282725913722411522517091997240143875507888030866441126708863628458343188273637935911446177602529089725275281391351590078054239576354397037790905541199519826370790210680374788314942971343034945304146369958576426910639357181118559423621848904557454145827461840334207301626796226183949753815278612139249064222311932176542283837339716295323989531269259919825326463115913587672134364832998814444211777366532897932582008848679913358799705911125384434771360612303424945632121691603271452328428710633690348022412101521351982176940833423156362258351925590012312353111035717734394368391850559593028509921416429620715072318098511044874893589450099361291524563323942258658495684759008647204376498014430395605100058154523855836472793707662098808392128472578064440236007496028876535678077954929384738283206767025799988540490466349317799772462828612189722195929979923542968516785820028256327557115577251298214298226646366171611370271253961237274530735962627914821344639264542369137164875270449727158040094276682995053846754762708461052367227848398919296396080613819773405309293474251743102939867510238892650895279872651721291494823777031432694636914964573149722133753370538288719331859513594826883602576132620797583723715220022809606983222579971121248170145246509093946669680794074558706646048774754755613642370398593390808647021870501115545352889958424609662943023409263747492138674227730052801539496485724100610431782217123835833462112290748856740050389326284275478974772464945928645406580935816534901107212899981713754681387805770687292970019636022697789978962556684993149676612493982769095188249586385463142567533900923877628888854138841710976889249555003319311699826278061482432890294305176815397928279975307528000416842032268500096461941685777371163557720629870671339871372142663303399870644870992147562218319849986936693886592667943092839965847834995046802608525697321600124304592594716235076529483173803612077722709943601766196874240137250726447257127260147051514412799414030695341769372877493093735118202634450099750483375696828525753147050568026709748899523665285816441182804281044610028363018515142194672721435561290538061896156176209718931461939934127913384557979742848382299677765885760700795679090539918178579192551661358198085587357910595031751787401968848024684567328010850155186009548886937045389842675268285622282911510609380473027183104209670025684085370040248301439661322841535843348634161214663593839873983485362611653956902309960410756145071068892991560421740124600206739887408956343069243763477687588434555619828524181559955390902256596018747602954201981894395540169653300226005123060639141702313991816033049268871593540024598464144549123114174816030230121550004432675346888070815063514506326833181258034385071946849517923984107474348956667243036944306777586918669638545422802021368442817929101460476762959302886048944910206964249563592106959070235664995292725733589324733804999059199518900016921882931611166384608617487324351950692425776983720566267596270408136359295104572204090912780457152605523601177756871717838152470991209946034834600936978968767543774663477389479841681485954665748583603506962327228875652320636799814588481331329521189647893202540850277312959435011940114462567423974988852353281198484174502859011722308643645976123425889453828185270462839980333992166121173364671304050021123402322076805278941736539552438039680014146257121815467443466138157640718724030655381097468162276232325274604066779117108499037516739429286755755149158376358716787424265453755436998863437229280864702256260201444357320900849986610628673441905013355459912167753084465591328333210393573917345922903017775198707796340437389002476429335337872799707423859573304891639872679331321243101534363042985973748784903933282608625138242097578767461600984675342845731755668871550728002139786849784742862493822129853858402037241213942051566290648371863863451839031662330248047819748131257750927736805620585946924240119746404208644301355979660978576626750201430792466113229715555168407904391563339550778311162337624305952086494271331731120124331534950377696829819911921442636522747607307080148296422845147593055596162218557594189324549339816124838179555262251622996902356396234539079798298917356098467147118300441108862125543275786851245568220048524855462531438309152262689571453912986024505513000398470457144177563164201007669277867695077742279985171230760192780625355802170390542598347493735617525159789888110472108767936014000766358914517975109980790393194081331846755257280017008516096427508047886944515529110359809171752906128644005730336007385886523928834797182860085232592478691585015693661712452722541592456313551730820869874463906182526531005135181770484152237938505215939063751569827017724789333394894563862786270660211674039249090913528522967521708269553014719722704098317668377633768337696091263838332078600441429349259925359170536118394964058110505092711628999678197718223642925129057040481531147079478065270217010071771187579770351027653956361374585147068510616951317167018402899503839445163263425907040745186948883765936764152197299336780453201774973139446130161799730926779365462392487458524442758764968080206980289163685268607144486708754063787533309095656814651909678205791538870632557030860649792204293021204741236397667426623926036316489361949899195646772892612120035270960072530270086070769905125846569836437710453677652079405726370924051277291006146148796515400426402571435303639472801225401662266847732763252673915539628885720481885993273494964915216873415343742770442953261574623815037213577927027263572985005238871264415432898286739258124305737994277015733650344495907627038414821253420149219855428852569267445937641650915677431022464444592808975760995857030804815532294413941709987423529522719057960324636676287001887717627011785699952518154392281402188719437782886893992580132110466824211123750930855325243858703210676914607073346012215462085150438443181027308440078822899860221274146244108373302533763675642649809177182957387572971075689951600356134706209356368869941161730834928184133777855806119387441872057833150829032333545829519576109569453657156975681531690813835880352295341072496359591522547339210962700680450870519743851377142376606930310467265328873344191228203004608773987774706032388950458513291232217858196069215270527868209575728143656769347366962831644801087953456269935270533097652106871033603110971047515570795548009325893720611918471522936228181377500737580717158065486115173661501292419564999053240330040698915446909120476481457709255666056040801713659735829080021406908063189774500029611516748936339396557992350425994836596674781599564282605922493184572394944766908018139509894572111083000630948436124855296504361033646229123394174503835795680559696620047882259883116746561693418293237681509566105479537787496975710213600553923261370910140118172821836742794126666943433325988925889356862596463795602312804933908074033350742097499063393192823349113608290332999568097694846256523079397237076221080063352841646510115692767808075382922508721373603159459467673428033635613130111416807851090529175689857507801588774282244001404207002790695138775837272378599471722098072131168902400668562658236490407067088571819805287126225224896213551052203886768464473218205247847224942916010158230104665661419064449395933345918086558270461480759666673632153142957207752602042336545535486647122952579118210786062115934698869610464539854762895463906672034630045881520790657836127368244166714284563047770377216200991732922502548501082930748979203487950712391521307348990586016401714005456178682929833898582372034267492956953559714252719803318136619459645166588875863587804165400648158444828749444507580050518961216032096197990429817876522825528145956972945186390893959476560788933762469949186202506038625194151984978014900218918971843058141939708306990433737186409214661123444756837770051178815132650070157804908898002470834377019930196129888701639073014144126895902920259204941343955949554405347789045922367165326852328037887640115851285517885991528047083914105254632822580584373461683788150763797723046721487173458216394373629118660187644904454270580289428914057680623576103695976622964862714934612772553289578512468399227543436299592059832643746528000357990954113010411181750054424116878928874572459663572582350196584969371339619531591741453345822868307118528440575759814263594000163395093792650440557076754211265455039911238233023041747504821947219518011275636248067215373884106527751454046061353521762384986165164672284208230442173788360577974425793260487531318041602951661732344376795777214082688101779089259891828029010517166415677831616655758635512164730286024609713348000567592441316299412276398469472859062999124739751182309511654127128826235091118562895138161283927149867068225815800588695715214008111209709778224026909771556639386344882335223718017200317157883900467728407072535421987015207278451268533620485556121932200558450676809424043531710419478749777431513648402116818575637920342876347717103035792963579845330750195071750752690124257658721414493244464098782658747509993740976432774264984507713112889910039941685272652163651046688796171264563359758984547984297928890787146528609918343663063679363085383077983422998185079215816827793274249495758599073640007229694199812169876338591351332733500001490542820820436969313593303189471419975807221624177119014855185677287573418120271288140775200775467484975817205227071271172692020126458474644425567746225885561346049453927277569240983547414928306336237594546772862279613310686927876278397857029597972537358237165957792996794407043340487582376429406071898779968964364135337484803114135328811836983674143894062305886366526072097072728949740439932950496612272475765037349155806417248407093107387179140242946427254174972422750667284161619152417553525967859242855054174080925537309459608589739902995144331165697903524162375187237369048996982112516245470980253277089469833071869355600585247670501672377500595598589089604908607964362358943020238553542412979926407017966041188001828875767473597066367615981660867108539220769610465980943265690007527280935557318405999100258637156290604025283895274759960204464836185045496313712227623973383275391366828254259688288949750804497656347164348338518780537943139655131579882053176519691760757002766355412381177569234711411257822207252980408789765894277917600915641117848704283642198357589385610552565399827124040437150939883545413502931198786950311606318908449633111380956164027496981475030907871116928500368133763347758739399046178408793573262700348011731691808983434001953612120615315007448054470096425864458945864683241248392909998905726055228848836730290897692529646635920748911175346717627906126103785934618486960313310507958247245794357088680485802010393925560019617992624654855508552247924374098554696387052916029882835618293996543887066852969081131354316335819089858253392029237257340114891797743022422024973389641616136030350669500391161863644336203161115447815872870863713303078260973891950920973939106974835449537644437808008995929201351211630259289742204352584950099467547088613996896765475483733383343524598240490104934588745231721518183247877453265298551305191349056328117997010439935308358173990680456149688228548345119935225708815417396874243350984492397328875485892769274584915703641081790104445307378947706358704151224038374963327065879148666659759937304559118180283527318522176372377017211941385481159718962243649624631665044604196521085882278364008704807678949954229401340493286243117897118404227013051863030537807325239123047191818616443743221754132574778872177218893418724821877577754131527305440144304614851659718586812632533482478810536551548391462819450276760294503251497916985233561826638834086749331337933395411199587726810452337381918812319497993873922236471066042605998240581336458578049247859148741039301576525355668444478461519542284516290994089447965932478400254320884237540304157693572260286170717896850707349277937468748249868382571646494486694676797486326419026350282237011931785562490472203333454964332567908000384578831725483921915959812247436393651007286363583492695123044951535338834860501370651214023339851390336019870800677003000086093727135857130733826850474384645685179056492955924511774741524819722081593876926129482660167158467588400986895529045586843573745333258575138759663923625435135019209189867591909889236631084313307422191928588402806732273812459794517947531154246516111602071776691302583088329907167004420999475962556839587076151179850580913598531620264788663665665092680613113877755992356488038063598267810715673613545790482878098918590243049891470522643348276962188133344354200347355777671052497156485490656804936455588007448373805297384489499235890858523971818163807072089707471817484765169719637825746509116065353288946473262296089010622986277698539658777586656164789707696167936153457711007492563017245795753834895393838667866037231940419766964749630035774989526519305597535120957519950293148514652251486725405904303845413548715137532241395964393468428949841770434054364459445664345154283379938526962690784040480982712337526436533312660676858357355466480047300257783385380367589693155628163663568499965068156196398017455409466267379695976222708198233180205550620920026690820939790064771875115624365283081494667692414330083793433500759679926034550759918156751926813448403232484192187520925156988949264394970379160292683407539589916396872643783876895112358953756449984725903696387850944735562571959926447553906838463048382810527086891401087622060432824059062402230643778140864803347754872930945743352239029549023370861201352806663668922660376925411327253145039713006773970016697137343422470760318224408645610008281982004552518413238235146601711732163346343272146167302307705853183475601485321061310010802878025688833199144844888874509676331030794085398171778575927312945850941081571121362597311425522507692249317643232405927904697337226712528179983768583582429155139500654064048763302734911649812951990652677415036359536995713674172388112908592022873217554601635310197665581055778765781120229312746092960027030701908772541796220194787824433688468994860848307031024262409512143280923616551984539329216621648768689289632175076464651147695343215772926169558700209028074536951358465658007197792121001198706210716688343300915854587411244381352333870229842912950666050531316404736185249912231209715765578776710225591363754181341948656841889988222950142639046460727761980996499179166246226052627849096064135031592568840517828588562983338838875749394493083381575242997479185158000607620333043834121398078275411628236305138012275017682352849005649962342904852206718570395363043499493786429384136802089244956787702518793530869245005731270441160264892920492450000706566635140769323139641376553133704679552086850993300960223642071846028077177086010353116857043029831714825000776444057945335405174288189464976430182019598468135507845541249008789587357284243019037152407081881657503581728956466159876163535540116608783017407980712720455445472898607758991543255028266066219730826777271346891168445377329442332001831907008819217839186853148054636086755009617932724450818059979559856600814502887343823070464206713628357959230014989378593501256808833528462169967559996963170188670402959504497072226750913833014860031946320351569434749272013474889400573090454205840730679955238465115242864991479422799988812421781705559521914856427629063186003319059249826804244271508142735373474696725841540289237036485258801795111698237256089485537213796188998128312814170775014289451372986689204725730375155333038795148206563124813127056453550451172966703752712704407730075365844699800295947660636971253268510217991946196725257975362624470967338011749155701611625286573278369611299333076002949610235614965542318100684659383457320780414736282488396926419584082232350215973940215528422705767424056774418777856187418940004778625088732788443245922708003729770949891447778901946806289923735278974252819530955484704018081455493208709561080371501814831940690705852356365618099340546144129312101151973439231031926788640047449260382588852630393474709303860020631222801832079676702351398442575194614840034478567438120536998937879569633952830369853141070240372132902359598225309172614253640866554626345929832972286878903784477742817762544817364287642099223581159035127981222329051046020520862682450937578750261016884164288543919148514746207398015197104131121248899077918881245565676246960039242466011641539043209078858958302102628052611695027509201403930164786232584588139678430286166127317993327687085635722864683817996991150115002943057881577133566216481753267351772617385384682289220432716042226905867663307802096850291884162990474753929368532676120828680495261626913056950155230792816876612770731805312470292430118625287956890754624030339202112874074514488766478600606622904127559634903601561220585718632903625668256477402507156409718759456431169706118548771416109695141480162918082186798672625684016149791020551690653909284800752004034047137621176567744322954911699918657127235414409321603424456864447362174608910517140574673908373252700437111406330502215493179666257743188580654416784300538710851166692085086572235349207762648696632135231607443022406850641509115106460223700490590572511410002500944165577774583164995831746612158986018071663244320641541799498314728503378774245642461780584483102873311766152192818416988347532487820259843399105006137825461034833735728935095622393230440746370437195660638108795516442379269383827576309774221968967216207798863420255109275035316748189039584351737424913700238102996841295249882178414195358096187763286161922138319410119570064678135136115904870999699040158980016604896278889538858072489430735910464428561177330237472840713249584505259034019210052113412405998846527185950194467346422249512531526728700208878769392530117831434499312277366605126871062367697717927028858338110098695277809179345055898819963011409180814222581667148383516127227085388519782812628706716612471006187682038607509634199532842364946792222580524064246998759257055889063340420957163207461042168444953430099867279582123055351097079565979314266948537466262967625698051765025627749553905585389178309343673250927580711382549118016945764013590965057993012364682947386477333256004835477977732634099784407946377661465955920396604483424536294308138533422301858893077015666049362461091455034669384609958091485119260820155045488078679884321425472953102455517069334420565336373986002464679289267936011406425153221415404831401540570111775669011797827769872400540155269158465822636102978052224137156390705699765060095139725164288968356715711904781029326817741455609667849617575912659606158565949322641203265350346979646693579674654993514946577897442786805101483440610057247661512388724595379464190416385036697505617597215305105802594127757079562945090769356537342650771059630573697057662429463981825828469771783963998685938615677217775036718904902920308897105984117318894876132914267179435270037490214181546676167963382257885930326128555074120433822916187823016376957130813763192631545785504819453446219698820370157919021301152499262358811802053854454436559514066742285718702542430827246847948234454408503406240962658068569166547938072400837523804795590868245023917751330917207245831686419438265312811646279594010292265842259656424159090835479842401907237303918082081828380461597344882334038778546781481515712845175605962215432932161827471519074922971852165034948810041122791215932281477135941171376216148858654126407022370162225208864205838727792923403071162487009171499822577493250986084087423567002900900517852747817744882698884874878356567519277375299986589834406611552860972886646450422543433337488095564160310914773488845864490699765885040500330937370957834333473107529991385771401218265429530421005492309029350220962258389046261184493586745170564153685215477668570521368771515337935028903489836324737999996550656844640661569362250741991805072763468748829673302441599869769455435439382250645075746098562363652980465519382141784987489538541387105184353318735330733031259413822665427307975594066835170131485662962330080892175929005723470915659667699412112057290790097803243552440354591177840955820165215332842408099117451321221159692582516705511549376796353468048057718410515498851408172054081174005616232891001822796175254626671621917430361895967622294583690010618933720307373221864388114112111892991301954696579027673245101878485790617833849340692009645583298905130746512397807846849181518826394734811483086246333334856932657008649653744859874565683208660596690471949854771722367581229883811861785769545603210446791110169620162119640773960580344400648074328748671640642811088434961569628497264680561454072743876498644048193503531247310702540305415584218375733887483063456567970927092720349403384518041613179087432539612828504447221873054233093954304528261637474826403457527422468163152198948314038378090601212578427050008452661203389460756269843182243471833943193148547149853082558445541864510857269906400023758316297259644103009190822201759319838397103078042260160902226216389379397835515379895192051713135882106221025963584056481039221294520709289543994552078207648500554375979517575198391143067723610452446639471382340765950341208582622644296741890197324579312821013621208671113068900621673702165048665331938947789760017736371514247122016328819552496233895035851178074104077843673321412670471301650691933836533206780995838129495067284886872329652938484502006780363183345966698770713596729843416379072901909676381035790952931392901985789832592561455983219577638277441334021693849151946670911387061159126382480024106075209717389730516956857659472163487913046623540438471185934806063267676612928648287429893085977401175931065289085103226947388142616157917222268765723939065660159468075397231920783561091088467554478770933425162671604437090350344695343756623159968849451494869055253233754437287335017105910708824124823606964754713259393137290311381571723773877188472063434122536212397657410850083585533039443979211623193355814645209326380143429806813157437347635835345490098176198912684738696221769884734995104300017581328740810637671732966163782054504383025584467245797969416374472241629942030914551260277852243035847361060635037959947552504588042016662319059358963973861060049046901961922421693887007678462546931322119176692705945724938592293894766687231044846210478470384095350294031188858240645148270790464701947421389702095165726306847914227713328893532928144864834731403850946057802545127544753939315926149062669098458431660938458994880169944940377382659205187731350121015790043380968897798573421910782327011355789648077593162470833839109066924016086057469058104846908539765782859715688488370415534311605379711183106009370378976984564858988266854164934374555035668898872335779196420089227640285053368230129679258885448849746440993203646522543233498200866256987619226821174407616612403158080201624144835874055174121005869223608647721002755204781252000822570188854668759711012930441688621675311759079722533635480669637458592883552963934271617559380331242848502751860014805042042879946357974945581606441257606073654207453122008745529169350656071536022625262865945584486161254545042616820930265471928667226152223043367741047740678813071228160881315853264012172355002101317642578468347022438580196971565539192926544331890300468264005631125324186549433121714298368083504065373460235762047791144732919876938538856678934760432896844905528910650241726192014946985635674722771741062935890059238417669363992588751043679527279579021620660346366922822029585051932204742826823445471469356529177161140234115062838753787729707312938795493199896208841866821300028993922721910954218592191429043681391606421383668691113899535037690565481910275255703142872101843819486453652717068567786113981587906203751775384193737399822977016879735728678587554413425314923763009553844358120731284701412582903899386168235054913904156104424533883213273257948355013477785989746432311225303311624888851560870550706504839346427937037220894624781823667884431626116463034718214275599483671058405988342215911287272524014368668570630073090065433048624430458118514085485432083449619523147323167865236529632484857672928832500077436037607332034078655295734328507670926203339518540265985801746083745588452924860588808577183680026315754755601446663584833307652335991235503095526675594942797291020141356800595273193154377343382733824118008490825563695800388762554701215882939066256345700911624565195313315772205073177741465787885571048384996672277012480858692525404142247245071944238931522680111003443498202850351605390182453471866940348171015275684153911987184267928047299340899675457105701615493942968719395387228807200627080588701073399659013918080556044814197188237389920113641095053254386457294366703353941388845946357875642776472002234641178893449174843355206566168848027552501224364157060909018076671170959851460397947079191257956167980003055305716560656057229368829610327673573064111376411688190341036153027849341166322051882662774846767517191338643137071942358206195509276046276568879765197170019446536740296853797733778040509251958220767277884974946064751862241864935090653231278854357421486837948456358843556572484912221527439544947587144625467589453555036706154830879949290636906712670825540280011541183744141526333552864341170776448389893647255850841276047079346708832312816800634257473897969811199767417294629773722188433446483357435490985440126405184614850428395779367265460933755890317501656723949890272024612708927202556036819127389605863026407390018730908895444618955955970608502023150728272184073017764639812937361637622337220150344067759859009653210786040573178186724806273385244804826179770720904603732728219552582300191399045869321164416011792550653910247078862667826640699105061268028970573464172068533254753153038354390493189558260417307211459840911203001123920548835476478646000089098168808151452575659206086846287418755879895601141216844269760922454967650470949266952206590822070279422203369481580525021726725596250189394323777101500156721268981581341049601692053587112940656393515006190313282495034312363977948017591067016631101868406086533926353450788039685025708178508597048625181740995598797141303171748898815568929603247295065320561203471849654608134926480725769362263339099040322665886538000638858741888266093774584447257862289696207388852581440735539483879040963954922404551634444039268526763858704495271838630538515839472917585573587290127403639464740422269771265536557589681380166381956618189498139087489055873741655537514983911760319398432231124955282437957565943145728218708794993543173913161732219949919839971426778687309133636662360960349865107258904445437953255327329750015894505283721669483673695256537449443529585451798141132607642458310290408160324331768969109210753111702712283867436691610057846443268009878272305590849007858388076359198806695263628418536409500803698121202637944505518322935263448169503781804871527186840850326982425553195236861850278747353183045066681005670756262672615961336211054046203562047197071090875902760595904912581035784864306014841347478101259500387842143684598085420803243137142753342988224171262001664903905878258301928569801923543090752992069842556793462423556432944235032231667115883677908016582492555152888722365310539732046113204576981730913611676557257782699050221750223050509248566882600702955530739500143647701958770596634915015016399001576928017555303384581635200797996683770338341191016925401743773581797898035035857260918233285375182417762020543823291372761737413504686986409770760082678032391254443696348873274751638464828570385547440611000119448664072050424058044480070856220698222481154273523119050033159029357053518475181539653622166303642903097145517922052012561935096780670660226285992721219805038851251828487722682471972481165564074696065434195750692619645389907635025393197309067569575707311003911214328864464569741749707479478352043468018100319730134584366719732969574334352939645946472609681000698958337735505373308983556963008613101214102788571778333996807751298543953054386061367878868866781519285429741308162766514171706307734858593559143311495349321114020994451605131050210562945135232398093460394419491774710556466130570707188712963539789335363289334467119257080527913784161965941325759757001733936827976030911645942329551842819757821890478732924669665842452843109166585641040984435906178519442674924629663468746143297970225450962256299838729245499525494983931678166941902253380585578269729159177074845551316301302119955495876813245824077477019794963570793798022428324182980233666418772186578684224617243697585178397747950823934033065193613575641054041307213219786746579462089621078423487908923364821852902898724619380284888851610020621219302354714828888316652802196891365810531804857142634352341297292896318373105651465378039286584414709562901519278035673484805731430883489876644430831002489296388824952033500700092677565821618256320763627115640881564237002527612827548778618907366693089848292062524320505161740335283948490733077460144132812837912738583438233209309535381421270087169884526598545162124030549273282532859389414486670791027969614448780178190848245338593160419388224992506900399900859307749811607719827870212043307136782831157153554359841456054555258034875166569446580510569314020931466334579108023206840913466813709197008593850720941124717004944408735932046959286055222717717308981422848138581952736295250983179113375923532453719420515641402028330370489658788839028222330756729392546906279620751285685594267968617523243184213467925151947290572756587224265316346532609405812767103118855954408282444231335780706784716679908087192350076461691802336282483054151734189766256403082730806410487717215816624933049439053934143203156314847728405270591139043040441813169271219392348188096897779696533407892959442879755663714854681334637260661556271625147405587411510572792332607223206490331761164130810542310055613573334604593884062934399593435486809511912724648955138400591878314369506518804090503149751268299007908838908127647930893016111872240491779518236663068911554679344672127867886246910488041984831348861705325336894384853553047439927856304499701647042104122893307653816890086973744987493670583769856793381943672746238515044642140544492186296532815063312818286238088550415763983865770180763705631248471312359809003234069657173481578408966144454943976704654783760005442271049260008602177187565954205540474199561688565200717763911144477531444806055802067569315966915515774312874813102566867507083759113488840267664618681176123389722121357749922464567420952600258605851227545612028089037805533097353067430291890462231967024211636657473284744676741836364445205439074386398659692430896125288400542199577129920020877865869246662463336142148827356401653994550782045687154231594915750281905835183907577848766603308550578459095327123653848873218653553013805950014179470976555428694622556587089592819188803945600918843408983090817654667777821337209169789057764275326958785800884961380056745134874346745310648680858093251987313725739892961366016770396406071506741899794401487615914206476285217792543052622085006403529920566750958604782324274689078532119252206989001892589343969048875374847487966476288335819386883708571474074697227253092621017770354140830718018030082405286327524115976399747222888944670122671004490231325122750076638306156013256764203318646102519643363807273105581919429094323258198244648911275068915316342877007455238009660508542667720119998092497628092679860481191262978374235465192624841643859534526124529823233953331993376556099192304070377336716100302732759450286114480461132155160756256392331777888811274741711102084731607516945581193893266956105884292020217258544768208840534184872943229092865120707669939961258396145595823896382392174761948992826445444346495322593011403034750407462375553073262804734302550816653241389756874197494188823604783614024929286483537635909780975384835807181987154512036896404386056335315196278412873239005959718178450377984073915072886786250034335211842765694078623483044933183819879627683761705131237120017307460917784727759465227576014759200666447386234328732018164281818203189612789564960103087270043703328184185885357193135798154746044291228839198829337038178741761138210662521501506912406624680925234573372686752337184730722875605334986297478247534362216233046935671344150397200429291091337833812291910138723948998374322411745974402245647677585523557761131903323477356392839238735776705013331805542267241018051688137864696623480101165263353835056762162428478856028377965328633182683038893121516913996804909928776303738451410410246153203229510234672071554318635841714254969690998176895277038532214253646655877110215857821815197393763291591479532002644186371512858667845769707303865464308359153428519196259670702938589243562808254586366017714434528209521632320792577026134566207386091878946612036847337203891673530035133286010413560610115233672097237092379165493005797915651404196095313585505641429922914674834493238031139308526892346280535721172724700360151207330403497488501232795288561424362527791225872362292614632059115044664658010868007599897884549545697695048690215377045289918204190245763342529859396926365243314053772403796840157967415416760867048536466305586772026378888484590829300365096804604392760478640202657126828471741333410841842452165889665061310466387591883720514727957209027252394372805042787194379096956026868463510387473582489733053441894214384119060851475882657372707995507012488637607467428421222090471076412557190335373641589247931682066925977763427335436893035460778146525315525647934326448408342114439516580451114267184459310440651689800962296570327951477090964420403505976864574633790758968971601411243628187634741706829681436288049696317094018350810325230197728472717304497204733609092305199066183587252660031656829474389505263567643856124601345645899567450494883285889545114797751528788438731574256912096933439440980808527511525524857441054003545324718414765998502341431724282028707626770444304991531641016071815840996809193269540307730242280657205801848078842894331494962493462769843562534604768251547706161814512450619175533481679626370172929687126460129044567832517723286938478517175122345204172844595368786436719723573172289843831282314288239755176399195687844786343543063641639525418762547240633253219551562129531764488292593345916510589589085422302162755495474504210464309695818879571221825319456313048854051700686683433909259436982224193339345133379888166666730948454701793659037126891479539534126562399747963762856401285935114612581269938456355559390572247191718890754619107008423684750020133384689431090553112935427421449277063781361166591030935042172976112749760522086631119919662908772395891027976000627092671813907342481562676130889430874609563998294163273218384073061618987901615197566101093452277031871395578057695547947202524659027364581691428011698899638520357738700670591532006083972142992179698283600306888170676925582997834637236043461694573818386056464144866295442503526275793854549134628881204066734489468016049757008860784081267538006877295142860228259239362689295514252634751090757468407643379896731896520637847237769726166654450795505119918386626430162727460444749442702769672175009698319240427813479035554010108417891118098146948673129002421530532875225328082626383359220701908714792962378311140334524526865453167069608334248778094130030471035644044670833613567641185499983048282417504824901571957210654286452523459738508853882871862513190062842589143077683154751925526486214234625302257346919864910281459470195897371236665797392244347935452546581546102948506727324105771875040894071778973438985432027399279631952845745095040470073181215929967532746484157683897634177461542064614732853692209641110785225125135765159394514814252247224153481877436380690106732410715507283703648652592103603936800502118155630985664495225882588404979090826580296038048940270212748984617825739753731334506962631416323517218953398981951815388622208962054434197614016358795921440134617976876659318280774815010784071866504966426224307447497925795334049967276102669917360196793421087990938130148718081202503711996484009441050613909838316676502733103973740418332205867689635208989963694259387718506601679077312601032785560726088917910979756537840033801685496051915826902169054444058758468553197095842807257746288031077069218895790707703564223145178585240553068130411230302929417339773441215451832783432514908256948913514104868255136602707400119833916530825436561142228183365896859668865590129440945854008340895199217164777988916371280601416897843983175386001557707005496244766119781280627019598780218642353549488394735941571858578183627687889563486752309941517180731361508702336869262391258713371292257261312739230551029523857725517489113658035513547145291198873047618302414846931005085562600123925909791569370709934705671572618559695912602259325090012937513117927672565506744906495969370842360208840909325996924109559432780849881816956350452961159090623626408024638676088425995340102947091661871007388409461431829276731993783021287028135671662359848651921183085375666977505073025372618084402770485846425451279679552153319057329038021119529639069366182363508596908420629524941207865572156298037855918704422722492266125024858879313289099763867940407815214491541769408136416895096484710952091219297254512428780401632465730728656060473525273771548007523975394475362127507088928970206875925876503703913879608987279319675423686606104770343103114323665930334723373752179944885111493770321588524511835657847780162937015661208541795404640766820534801168013181126135492125420068384312997603012212742912026956036383298255439098171928047626753830832661893068690339855524345775311301256964751319612967232608384369261420098382345250546952194648435565942179684781223920381098094523564442190816657510128855758027023276765078806027959924971071180416139762873540865057315225716063445466922439505238743897934414378631405854750448664483011891595104086928614503862423231203101474210610745966287418026871254292455100097800442116175987050219489538021698930324813092206162120075366740345329261754266303518923389917000438487473248551522989762012751909871326345037313225042734757953347116351089231502497254191637088496835983831446438369030100751898531305103900831739593082666149441750069648571089401710983877466414141435628069906297766005780845489896024454194617575853090858749922986193411619685977992229360229536605704122284566924387732186849914867842496159350175558771528010153188176150613293079398311884581090627755884172253894349696974957167653844069125573772326707339564786484168669927282320771251981530810468903919691186219855221375788554046294880185038375969152883469438506837577691331702309053717032608820520317230338018369669519072782327713845443810450817077632112620847369135234799009707813527784052433234121617923251568697494132732592358097776414901738860034716004939897828062568610936209941136836155960029122816650164091499288969569339583267339057078699685615157238213383600530209890070936293937990594645960709810110672247381724401105742543979741070321899890718089173238620863719690378454176742229036107622113652736666112623459791836402952637440255377394250008607959365126628718823305772953588137497081345866114699276735448662640370538782526059899005339527627803260196516314986460288019481974199160690413932588389955968298844784686106564001452001917847091788651266180515552845171822514813282890418414327104679796451902668860696267057418456208149957880218432241355644824060790759941854135520524406206891636700236347773173353816048778946654733746080105081433492337637077469416952551632291128853729442388282146731769113709709455585855492055502913133096301584005989922788689782172437176302757795219836254288040825803749057689417369469540680657617371727171318328087900211664353484873530870905951784988127393737415356623185352785212195820768430087112333063316354100490003291627115813735864950613858565463989112801689372214120738860600544260219702060087027809103875055961725191746067832910425651144771576802808090784286846543674327371320373943324221610380583659652473257500875753475612672201666031141300124814453312779477868845717257092595640030858552664573047791177818261738193221704853759411658817325061360103638721098438688667562027625626143594301514532362477143936656174784834600664915576491960875062878290782331518398114008145627520973986494628493673970029903427821246725223070073407286772191567012668545257883899615346386362978576118648895913656027969056694347952753800588117053896253967414865797966625402340323315035648801651693465065262128032407209264917913834376398787021654315310452208692767653619024069778798448801021792594931957569910251409424150288753670481982715931362598751474575161134484848341130000147295958355946404086612955488026633600626886806347186653677927850624551624248426082204816848907529974876642867054881116306824780893217445492031088417065599481065718559774449682426674393770030778980597825617761215842121818093416011680427842230933127641867717231620453530013319305821685728588048082584042158887881017176095242201454995965867724108080308406718814211717301200092878807967792253698990696054413464083273628203772528297014746679507255505435240904193068104827057650131975517008011453713554346693560937633377176252811528005713810943770509463462086638911041959694196328328556835270525624736397013654533944585110134405019889903833407179121718125771134738804924132901374636740878010338035357177248974960642290456448724177785448790588957781002899904196449901383274856328611465154256918459263975846217210029987330500453702515336780578062154443167222066102810963715905169731694350129661297868526378302202101861349579970209169212587255378505333634539377703563667899303556998739482733389411290022381039177325838116215789206994673799140088637396674432067360433400766219673039188908313399213017202506983684210177917670786571396799110568007538032833783459072248517882480598812183829125644358571115467165364591603164585953310202908123188540918603743949920987970456535539952001750958877032697438333897638931473521660585353233382277744973461551691739164801726975996688021611572936791957477056430439447087447407229906571252539070480657700184164090232862984313251078575067414368580256034730517875193751451807436903673877147803532222602177072594168538145819398019555667182688145269903530692056503108366117149128360237593644602708534911927724140787670797849050661255084093204965430794695875890379351282439104799815018141710612636737808582365132639292025306155914529040351636910685522120463781183108841793842838237415665389072282303679558659360485449832526660402421556162739096770870349209744311590401885990308388702379676854750541673170923842829216802908180627983408437307539632965536949929456916756439424384530959747883324245096508191134639530735855368572408626002002305538349284794166152658109604920343316662688474490709686042143783193644422036053849474449901828636718167932939511370759552255580059994906073969577698947806667422168315275068609190818951088075387416332021944103437169094731405395845651736880664985843860360054007489535009738882814730743674796657737956869228573844135335299230113693957165336619462096140452206498625316324915519211575565622776071861003716298257292144047148768711095245482559668695910192321266831096991812391207184982641037868328459587986574772519321327660228070984405864681198467146122018960170627420862973595403746500707876765631337969299877716355311796374251099004423921808854391317132528872527756069352494207982179907131401490547373948832158716265258535162506429085078272136691658700127563483862704023614622126737040172107234193204400329332296449902305191281776768789993100631366750175263763249653719937760348232058773222209459516426729632975743624986097478008758342960163987096866166387105985085119703776744714901721135968067147035810489531067729498771727308916948322692329067127280750176839976301191234804539930986686373595849924997817804911427618048867338201261039206041315455014482839176267210509063462128074242682773756019644897052178104472954824095285645372442809608937551150528752292313299842846365987127865397199062563017704764553784376609885863679076396987413486321134761443124093239967945087485904535040466870682737020049980827208720467061054509851485512118311148191399005782147860589520391143598377867789883816881536881387189734085626304367695876493554977792506462354210586907313807145542450967547847275144462069421944866652623209887029117373968441472766858312149859932750107986357122633709172225162538638850205955403033147008185607773915217613351981340962332545056827752243224182576661827609114912510051255599143488415236763631995555944048223420444281478364774061742801152694849763264277856519487915238856815329971198218663621589760650368587561442027245711310802847079449798551644745379178334745085132901594819179775768362035915437546210059130129304483828834768203599533390195505991216968802993141039409805983311561640279462939889138809778375041119537048701554858169685180407144272394434651509108343380430154165916524546645897016840135642229024945376392375109739635287560656194096520526271160301506865185209687771937937216300541319065470062671096535337071579524567343598238955167839370529504986311168129062872378999578827536117168914560697794951190406070041134820477064790625756268167191010005471212468910907146353024599095569736952769779814403467267400748625058649395299127367568330316992548573211488297016369215297453468781446012438621850688554619098375501959287840654365518785852493901504930873676065637972297095370186552093682346704196358928579312573253394981867804257459335582966310970706617479831761195838082697673068509709246987564444564004228978717102073581951234033744456541877300891760780531926570239002879757712678711588350058914220484910793793362300459241421082838192090955772880941724335896594981401382896288296320506229316085721907269859804165107353724217257750177296716387162612578602737724264333395124863749941022604862763023573281129261851745902364221044303372306298224077372366654382083852968034372154271804025263001917502005819525026545551861414038227764488112264488289105590420997514971161836806793822853863770547466862771757678661306492164169016185834922966062340196042403892646925640489950121585835614965153610220701483276293017054919054441947830044225805468613077880583390240455121029328556069522498547461259933677594367606416391442616524314232829919018571277313421957539437512261613760461161065137640292839914458044299421422171417054242389067035895655988892814109462345194147219342081612271222094582979393765808238713690036993950988432997090565965522740711866624408633065581606036768231871295750317131854715780632220181182199347140823617785290362303650479183940701635769208479305400881375043804525007349057635741673581217013511948260416089139133528744413687970858236247261773507180148508553915611867022157478706245449175330588118532169625670376759743038846375048649105267308221514178011009424115357223134817920393829375104639076315850801931588151550777439825078896345681877720019609100035736133583451987395983875318944336362123644095164673823643039954657673980182213801362029701818834901587681391600037018983400899233010051720106850440348016633514413309156149785052998582359360342822513629241089314413924533653384576565884197106056342036246230227629645979061576298756043009561217821099743812675766243278174398786783293681287047223778593635269935891881722631583171100257272508584992608471741237496627461504156962903419084470061498311415462777108743447295058971137526459891239433313543367440235752981755900601720419616865191241230034012595037640927028211363177472396424182351968815568129572730188723063631969548551672313634880229388767465058794129152074280668399662455629911208699076676571199664913594868835911914324916813265789265549087323401230610526490619752328416661197124222543535087052377207347156730052210837375275100307810009950458290687734150893216861529808939021106008519750324542629423488838987113229195575828107304065355578692836625497699167474107076408199150677455408827372135033083324160605298550528188545285517553948744724009308649258878868269162609479074007794786610597207029299588535185165385397422069396648311308873136622253503432158097656158184505870030453555936276861585357378041967034278435312809359000844124827496584371875883972579275972790505238918686581254660759118365831610184532378461197612684635999273881725582115072676433841781329907317103848473138353477341098474768850504662184059276775204785598605873256756378679294432484991073464733275242482482163504233583222958672917143347083120933646720355254050900418815896507195353406270610822219752111637467091157088667890074189454042887118893219248698237238095766941485652785617929584811336425196621125434815279738152294924260570254325106615254898899149868286920688847830241873545891387722053554275535623725266222039359293300492680967740223851307067477568178365818469490136444881790629177960308822536038638172652306523722862688138542422161581711974702928242734465728999424424228977318848380186344492740653683069779497378293155483434301447787812896640090281018306563245472344885925556611129547094400173164279364607209405544110381140041843631958070656049763374862713130711355244808510331626738743302911334064440967852043007723949186080075806968620560939933510577265915561726871357168441642281344105013786074073966416192093186529815056626435947816855636334794211742406840402120341526037490887534864759976959977819560444042026578216867585096508051855651225049016272545466146244797886115747896237604797703109795509708779233476475281924487636387855008795067977312980844828295048281244322030199088230595766889905194003492904991808898086757272732008392163171696073141460965905742767372266268235038140110724537244220769475717114014190799915538118256231599254775693676507777841838837120190696366565012629164937481386944995407321052234707543254326791514657110756591448234644011581864929675438237551915931060957064605273390056779455997767306986548023897538938205388046165112948833110867571727581171185334879847061446004443816002695376080502118192120330895334388586773847763854964211012322128982573702162523234082477103744891331814338250409344908355134873620907047326406932006779567692444206488859132506067142763102735606432958677085471921806198807537979352763540888141960797994253632620024442780168674570917353872952023104307614372695078808876075460379107839092444996046291753429372081904927746841565376142822468214888040151197368872202122105935672450582737670454567808412302129223658354679462356759259894229867847693667097398207214101307023559093139525716934095380083774195346525060321211872060043680891363436041879432779766435758870772507130454683386526162684811340653546917063880614754861214469420966470444415034271404138838009152832594873540581845134613063067745321625712138920509044261664641587391232124158067199396164961653757841233287502050774398319688883983351355681816077544604462986048680835975466640282219620821110922816704296106808436012335906053840413888292907619588448554798353199537367985242868522648272771037947158802962116290376965096913624531020260692968095380246725382997798561372428375513150819320413834518271882353327955617359138108135673646954456985338473655122102508328299966443862382747360437430241802660773152637443321487204320412847900020195468288638747684822151274116898171452423020628546240432369055144019721385936969347573415749181570532459771515467616062052210671012155939108485839549645951427766017362484965463007252781292701890024024788628002758231493343943580545464681824268048754618667418823458376134690948759398060821122807072437642270712339479214182470291869341670030355449470062884091041108214564504529664198942412401051954628826985760418037259658695149563601759985711000462829770848821107616362478913223504094203023394139501434067085521489906505157807250836814370965609803696607036065610979520268596178199935178388717597890447714927729783236610331160643761539046370246323268225716773585500546697036960569206375579439141665422637609842119135823659350856143443651471792251816014985515996583066268927815895421973858132106992750261438599224533999357434456657369805976794133717714052431084981336684057586168849421196201962171659360839654493598405086089975265034077683735447674992249070619353546418030521251457826126464677498646407374300066083819518219913088660596647602020639107744012998320616369649412910186342106516198047808426925035849815296346341517659932444383944071062858832719050990877572223293364775091975152298941133365937571209157326087151205750739379027485742930574342321892382857790384332003260725125026091625978885175585404864436398794126316890452355166919588191710808391748304331974242482283660031787055907008785977931511842390061007376107266801455010316615933515629584592406310173059454148871894198545700599835619496988865752091385607718743448552753231478937312974908525018857398059305671934775014185857297034582181359276242003689377831322113959022755906634976745661641912987214337499926978483024848224034860720157142429134431783118033796735543121150713994620538925964930679142424525440864545891479459212338869623385118825070150622631075593202774518694007830949127967371194136191352040304162398576866693710998634911974725467017248580570938687929777660660716682491369694510632117553267660523159431619727836115533753006211893598962278785576757106425299979063166319337305234118902035060557790823250034542179776642368108808025845081950462135335653930730007159770655919002745641969582718950908475621811995615507159662224040138596343198328892825127098069111729957712296426541661652483982887845876770968944493245759448990780628926483238653148051964831433655362301854251320150133910304936918079486475009205684464394211083634448490572301750040095568020055931148256570163447248458489454940745269869916927765370737907945983740962381248098500800338269973463150822625065408081697908773713194026710613333459479329304876601957578276605291234901949037770177641217505152146438505637263430685395619718771695713992019826253095547341309133342478768977753210790407264306031383926970975656312819612930421531403497359364639943709980940782100427410262311409201761049145793600230461028953540431761628064926419053670629131411314084786083026337591358510180110281419671002979102658194091891133855399058273858238674335908918251395730208079331103389631828986578678116616026885466760142323464897736588581880518911994095129598064759127099911569515090478042229785939317168840219936507869962321456785033892728227168261710025036101417820042547338190835458349230885538525704889380742343061479557058563513144261649829016191509665066391501695179413415830103926451278039259454148245763136962565333997125540796920268081989197502711684320341862489784211633455554629725471627179942424839279716854302246049128354165606691334763746727553224166836931859937652428072106850200105006431919171188536709777474030841449362078948623704941336940469927902217475922172740460895763849406149807672125390598630845881638173294200170923259194489470038853802324879847705827946807298268080593886487524606998092102269164720291973985944273799730272912320503953455078404435327066182539966580459794330621222487329268422732102936137832464067875683833608508010431299924503882749409669030212694991547760864969391407356656781498836179982021210165341677050072445293688113107539969332754354838944943611765658784825578306961536674071276823635433457395647064631441208968844376862133449289819008123251181790602192112878312224061101371994587465344251144405468686140357441153862780190752630742854488657301365073133658135347949518511756865648505924537136668024986701895926153153714435183482495370878679728982462243986018262985993956986620393489579788064072302649549304585265912570416461061700654655034663490135297221614985972895082362146061369899092848856828331110304762904722033224906291712066310794347776847647490212559354955528974784645163125986639497702876025341699142813564427790560461388903993768200141457990742130412863162088335267293035580429774676647666421620865883709816016700123415643842200331074152095597968402350533487786443548219849507731698105543451729110322663313349403705510660124114435197519763982392081742900192081266750558788766858178109871354480759627821760256885640993297570411552859890167896525936308162087397425499145538882604866244840301171706886118232017295955776793148176269142339356997371588480062777726179340153939221928480486551935849622558613607196744033009310884124752698507070010186986478882480179057532560378862531054700800591178617303722747483472966945561589659236344276705766331577492323368369577366876976671438864500545002228130825498242723117426871902885301920868421341028802052664832148843622857586471050277741166103067629793940180361792017553483167777980538018532526005104784167447916569905216015984257554690603766008568033455510605250068072294029776058861517619163820769203296043921000199975095506180283535125308511423704083660073223559442883911027178316400280527443227470266185082745951372119343664012443283977122942274241415752803644451324965298851513218071173339888511920575584273516549780357950161547464899979948452958254547476164761360746532099750035981236897341902925242014163895703127110242420394425102872901968839569224263042230452740402300145350276909904656936065324350910507105510528549173679715286115971672787195466753891629939431387644387151671207290431423312331365902787689555470888464738185556318722826707553084720328979381988964450329370946431474590003252799154099756273655423105229125117478362800899509174808651670072145522250314304076898280627169754219454493696376864836702140057464146784933439777282487933510851491471253857801282474351113421428636058355879740714195035300627738258996385503150649472034559912815700531325331220661048251430980944054020361769161534076996357143480200553565850197295921708843787094458629000125216791387738806491747351304106443937273740712066607339223340000411157451683597633005092475792505515961968223185509053609084218230434681630944041766646939845806124898490897873054583983113831508781534351699175068934611585206953901728864978378597924091144046504192603224708269424439986445237039605697528031269163328830205511975288388945082713968293120111029876767142684510659479511663811537768753171255053531548525960511779270989645482025891488558747961781839521448407737831641382469564779517925062668268017629149794955915158271586932469636682471376983460189329246094899973942537528413258762965991680410054233849798850948729972741658393880213807566937185926998974941755907534275401936597256732679095457998522572499630740042154856302356552273984699169266453524896092437353102812350360974820460685081641120545143925862642445252691360252305533242833875402234432251812144811352674821140108977835182968608411785669203068078104347943008692446219590006053661756061946580979176684372387922258975661270207411835528203789015141692339928298612660541774189320226846058225574774791461974211614215738860341649203993776988381717338011654353703618249641194317958042383155669637824724241968182880731039144723001748419874171305011554802077016250532517992326024086616794521474091649415872345238256798769567926022015540736405915382606187505783740207671229134145499384901024244794130751508015190944186452283756756786586803843428404697224071730749245964105876594011242844728419253869758867408386293799498002876801224224410949606551157773744502617392248651221354900961857338806611886938831320696435344936895972769687329819176735957058301797483018244986757042448352980707763375462765520568278659010737453376597924563083324160161017511798728658369493599217605846650952363770854604569408195992622815739662203411062209397450422228547840693019281593580575848200001999829646704789456043020547223633481928046823433930277417371397224192153468991700507893630748197964088232516384261738090941503668011831482802144798807878860776724677461946176309208533223918597892883250475005470925459198963250913495922195533382249915401827434686478537207864378191234971781178291161841829609818393516719394002124023873771300118242527357282256925950145340918483826385999366549903117694870376283064700078127464610231399549371417457905349074021776185981903763735536558862271270303339065783723969437366459866553966243089616498296486422388435243156980125435026766816216875589189253820726484500307423190420086797546507687588529562237592982630634680645366762080256935909310777503435522778973334742230148793682163140420089314287080692914912133973824582339148854967787216550285215780273932950950026909731260126336408632885314417787373799221485576686227260154139372875384647741526982948706973288401793207237208378834778000018149480070103727474158007955767323936185636625104177151594666496962993572490050627001200406695405424132803864088570098760757761523681408170330517311985885613739900553867219538150909065488598329527213656048771681066855830308380930327207218232256437768900717826909796648490590646059539628972639713448924785730403029143684059720700012851580793173252010681653969401796954543758022052897667826604760383729909565473857895867520244452523119170597974125486047634596749367469142111544211403755767771534550325418069385325302020690153452829939306105901160416417104177088437798429689064463721388652948380126018938401213385182558259037390847311717025292011446638083296468535341351461230880914559082075374678023204159050014778580774689241373315457719584139985939445596245135143048965064774117510674018028045927233138417135159441720261443501010132265957715960092722736356594448212894217486159712425103194950833169911027013342660708710285619084539941996098200304198064476072271283291015556700749592963310827984452864183313019610632377944464156752255223709322795391292334318674880143793069887710939794729313496396510488464497453879574882107767142605803274519427213417914778986159038297560657267649440574220591009285695497304508673874182010515920101252167210137997145193144174615568841587186098501770107067626929926645199150854438658792830103059477159877095185321687414595867376036034391308540124369091429415630740456634283254452609513210726252161464123861512395271886741752730181774138184313301647268717034634596582298901811302727945647709160042022548251297341276878104692642583373954680171813334609811441325467043898660934294251681503414793665072865634298306213042775018550181683510606821536929170256439177852007567502470152252315536345878173083474041213306265421445657529443784280952681342889417557687818069625771781802450255349965419357452724504230083108235211673841371545634535008366067195474053099578663077464570003705458344928840673676451897788405330470491294859131386852302591423494352207377280535148812171049014683119025935772159627099118970911736867579846860320543339587951501170170131596287316560842777913149385214304580563293943354536794749931593515051393252809236304498536758163229736419784302634828934317758518554044850164685478947180727161429762802852355058705249286027888677191794672016018541002118057275927354055653199532268635658393911856116257192927481459778945301816335254599955354816058075871429340727410102231274486408903414020986805251007796826225705628275382915588527319631195336640048372340227550265706535987558140826358040803040040753005652284098382296130890609038010252270961840653672681273892557121032596753618858938653551951193619033861526036337740475577348217244719122962863566533358298866743182171532115738901171282929957491970060204236185089614597821752444812579501735881156437578773505996527737011460148961550479719335856964774082613301892263527351834729614677516857193049113773163840004624846596459215296057077865733770373266220677671655779551535943976864477239134933054042474942160639304916883858589175354713751556976255008016923790556468259627192269888370843595079278328852441973177778058506784244553532889623077730459105596983147805424684897282231043746538266999098628206025533418709731959395871412542937659050289902500327099430697961588048062522616710808132282246486851160535804016743980246762259559792708400984627667371659030354043667522536948541854708113635655004478767603678128136026720734297723946954254311929955121733209179494833945204818560333348077182304101390813362916753807770245446105492383587712982599177531358920963252321716608870827553111160394654854451986487294609567249311262655927969136458461696060592216822915132905553722248727123019747916035518902839331959264391571855794064186505607477138848074316697907570270601311586674961542475536214632605019221613654371243221973119229514865260025327766330395250884843613658894031278534453986262541297828236288068261343151925557936981081772232748923497533361964050210654946833020719354646217875207406621269409329109099169874922960684860673239398435596614017638075573756618528360083061424202881342025600644900560360468970205729031854447532986532715493877260046644429090358421978589529798270484939405071809688698656798006191747980835621407591097359862545179128931922544270666117723407470182021041067333683321958112393380481292956084816870294807069887780314345622753124259226493906237189346058114497518588618747607644360868681947158556998724314615928972832702691835142104804154866425786356739817832982980229829246844601799096557733460522948275146255710572734656023972747858406515435200752109017232417096079414629410586753150684189071408420082412761565373655214121348608627817651241917644744247933301835945878739850779372830311970203805187434744670636336173732679959646726443654039857831337723333388659347976028191896895816846581575990547095272627041863878412183863667056815654134851134510819120645122550626118268817424976648538399667213376026483775943968175427386248066930828063524748282574681871678715159401760017475509382111063152228010232630210851515460253038743674425228610670337810145829815679040175913202450613577212825358393660215018358772748936722947943891493282555771554622452964114703559514186821220378748099646606703660649163022095240084366917720557202283511063767551104749074353886110178338624043109783483855762251461377356456988436531871261627611286525596696411127615428554989427320726464257009020915368223423978514514390349448000170396866257589527448107222218862913785787452927642194114184247741117668485616537444487862565958233614797355574782990506584143373198801401903240939137287241297825188536607317984330456861494199206589167584011923744481366245014276166053184166328241995109167007940629641867264952771445875368123735161084082104457605241067255897803426663504117353202905859880657597910860495701647321098421097592518479559983026203440567834660063428557854586694068225152533152060040340334935194663950864364558984255571909849579616395390675050042495469032773194746015475662935069292812442790034468064320918014772872579411590587439017753430257190344272048250957162549125427929775941484316914246752337654116501069797184194796577201310880251517329486094567315372084178949998747507986533574086368326018127070268592253514602099184350632979947581647859416448969192568331559200381384291875742601408166571608497130764030180199897868369324142436108711746975007173967378942608754190877725160838364052278392933503792386711490872857233079780024628475654421881362298540943698757149887150561633190343889381998732852508186230722212062961703061702895301599219034280444497680705785130691780356003961548372666194785510189759331817161370675499268736991725081239429332418091019173714996598623236131533181575679151078844113094012677376324670510627391258689380530563806281481322743845916976998696156053684436282255678563696874420197720940641497596232334879573892935998433462367882558536398348454389942906787419401739428503649498442881759043630177189834579015405922950468735089117849076260075087178127045304685155535349345455002080939044528127241902528451266855671297790624334445660593538979384203061027405742121014649545757431413563504164750024737640688910578703378030439236277072279160909004679518359269880238487462802455848284283071375340522578415074464443443416280467723299263713428873771558418086147821807418992192976429642504085488890411315522889204032398315340149542866252979233716185460523066553234810748233696457019601677297844486506485964913795196570369789799588249511015555710504770980465695847965595046719735202292978887079724765577620257800842816418637605547071620110525314247338422801921736357522172457636376850538926350998147589297097186600773819993678166331909788111274742484013039491458802245003025046627535050844114827973514947143607364835265120586643019013981652417550519953288071348401588198695002329975779199175599973625508372610804420536873452442415717006838160590594277362847214317468012495608509323830805906418926983696633415045070664250451754841307074107090110154495814948279738762089970279901074167099374177394632466950443043436267498008157434818653512945454288085997117787704423498911893380261394735850535267907373069970335718575078715814760767001172047168562026396993201666549203798442607607118040767561127514479497066494467884636264557461221505921798894404013537590379699946891224405690091245867786778007780603832432820859697040053734462222952417611550851774945324941530257978738969897871580391358196304580920136516600190047170319050927774652303273096398918573987716240293342479724270494228287166644602684245040824568071204572294509652450922323734079981246148781189057155724826382497160736306536076491269037776205838103211557199302054026076625876393118760264636680546118196397909699711911230377592248291133535936593883937884707477378679148668557092374756318708945268155866383848962024430188925065880431302405553580326525957982551858785417083234504401526772851272247221715686829063129972080107762303980402873083598712575612410820824970081213999660943264098015397408574391641734482121463065025297975857198058801462974305276282060616755719669923939328397731225924330800285983129112410860159373224233747834278269943866942788077214514952388886442635944957116736365639941365628863830847994541858596983002318058454204092264921822752232643004423184484429958968387952992611730543270159712263066417719793107542746765863591336667046430941886519190557450050707399105627219367616350155005121180123333098455302156995366282038142322673415417146682575190725491998301730840069847204080469314095928777486762713054684909097591703207148706218254735079347500196044055032825757316412601688878125609250510763419105415201832978436678863623094002571929435369922235754060887502068234291638421896581880034656007102273806594656208319052803561649927683932337686141167178907274947736868015438748971390915837829798507411267852493247553309329444525246099544608560635355448297670284541442715562347178495334168228433065266782518829948450350059207746087993052944736074535002021143676685262983183166919263093787935728974755691912297287730631112354294933569559805022288623533969006394110390427460461701532867141028880867321299830833406383284176046633939181628252431863955048449101351171739979512806107837698394824100469172961979335344617964154340581482978661007352151793949453538468036455620957707492919076303945515540541731445874186151910768165220413797422055987639432457318335314137129044170154563837392160177482236059742067403035601009195129353193162559099854178652553904169848622468355473742121095993517085191358033073947732409665769588873780948745979960816213461377913867168439504585536984459593130806380860533703199291810274111449111504509878676635001228395641023787566127825235233910662383257770121950162188830425139148754968981599483140841567609781208302656867135672955224047971286803588158976207236623620452667267223550242062086319842313027452092201460839794884586462451992410122679542253842433885749600945242738429523592860634629805572538136989938960057716235604007418424489106492985911138534418507604972479343500415578574702724173748991168306293105813020247789989577090333047846254715198609825350512883730667446284017418427050713855526046695464292261636133810300864420650603253357826802478512249869761442087383661647137639550684798029412417413162016632523095024130369140553075627512139215225138034438194167315430405565112855730205005312364684256231439724183211774531066421245064322774783812345603578946480900689815264763021041944514096630497877987690931538401980989227314525289945599177608939308232947013932269609709583061062058386162501520428471428490930607392211075553643150881215196734223758430184727918994241270605583172131387983748635931102855214841739698935389107268173706997681525887302874117114374156600922631947497235320412809532295147746493720743887799941174428258824652300916258109805041713803175999571573253106411655262653969162365866468994046462684957573855918582732726999549330203040227305404777130785483025316141580379479386365827848212477753755145653933788717304214907650546937683594757177571033561488892055378765965219767454894554326707655065393117914816663821971737030401073992288358599700910991271542667142008282510065280288564516436707571634319253927347155174055458602921155017253986793959537644192023293787128908902954051924344190730008202915306594565129745150094836975828542429387208818731062133234199497070620585357814680058540736832194067105882318230303117279315543768795588864668549646830362517487639396975880207553648431032361712035682848236157391664209601095637239345628076307321747275396195067292382206540230849460795677507023158278347160523470139699148690600024427303633568896356153071233561267247367114939220637309777832436799952504427771782397277767730941457087567376021772943409939089810279555149766569542534486181286116940789908516690399687961368098431076592198912458648653058144930788014268377831876518828206110234149633124036960935553416104927265925524586465582137362155619619955320381762526182277624754493609254065158840521809761428254269230616203698585325738543953751514510665919409121405348088172124798148343729794801415333684571146541814974064104656599910806634839916140568434757205026631006227579070489906712940002761278365486239227672580109569437701554796239484432237903425204958524476906467948735092902435576360627781957490369125787996253114657520795281082659044846564905378361598120598651995933826779255015859641623612780299845970923382703645029269990358119475974948367581687096531690702903307923794082077716657546367417063127975568825177450726127352652808742062607811525153738837176407414517422544573052203983428476998308805883644047611772078588625938387048490677560543754561896484147324141810937034894478685959465853897213674818019864293373847836044672486734198420126383267997725722663550519791240847873280681414723505209895191268316887451469261678911383443849487176930499246346103071069344432378472560212103218186873809490147521264841824168782055149157424967784604717801425688541429591724312753530542614410208503572014042833471305277078524765541966573322783653876132773488365423066407376950364537785069805486546045957858491356960439871915978205496824677759139321422526546563087057276673301734370455168912685253794176582014595507210390504100153796109822398044314554808357233152776074794720162084646865923659674005685979950984646639692572869893064034920182331498897354302193332661350105608976306939452799547183207665687161622836372764908570998627974738670788724751027351607933093262594382204901880789243769571132412178444324778537967899630867279518636880961125096604751694911936638475938709025776792325700379932886958380032575459798102472086691851047791802059327935039035948499050405620146112284343788555284680888987239713198013753593701333041927720716921878959726617481929536181036446802199868651793611090959881883832271466112450576382859797395570165003658405438183838920079717616547207165734428395892582953380706792874416822391588556335007711956666760639669402613560854814849931171035918552225679407680567120394931326054314791437399376744871840730874054971542473488254023021440011550987258305069868971269259761287678272507934311319023104393741502333857924153369151979174715218700118569117718803734728597629079365677288577945442206591675510762628970683312127581322486765518148037005926182512673463060437006466552980056363956813449183716809816111009168857107366906247221797637343018013902276432371845993542848532200425416475602387423406948314020022817407440755091601375271844561910727116919980146983983755041049539742940755237773699420629641146565108745008403890664468220535302424063284136378233968667249788268036145126820165420976803466297218218256541683807946287032433747194646979046193841956983355618075528526147459697989076844479179214526558108694396733630193006146509767161749785764340893321840755754528546826555727236822598191031092520187478949427167109748402688009145861248270099866712798778887209911812967296798955601865131840825154939624960096112820887393001779802168183671885811905241957433954040280156512949513248994307943418307917295923264395431015020787721633685895946961839599445309324287818964383034637230929572538278455394400936290352122846118943804254147789035755791006305150336954908863889996707539031690167221423691633990810462103857299862796713691773186824812321620391684284233792805882484458760794468311310618418686905509232936389339994286859310734666088579598337875156668987287395764586642190418175965843121282676700808983379134571543800912518208812098615996492640443927964973551577264932321544351931988531082317125326761880867438492776135933666183952073285743207661883441429604269827337888939455997031421980055106980572904703478275135807424962722265849005145067395524648352201139815638016341548036250019106617882721616847789176188770039128717013911648218981068762838489517928648926196017606417793383131659968652084982388998830555002667990018449601180713374508522011830723270515759479428363762979319695387318098503405906471823446902421073261835469384802102331433750236003981333528747652394016132287456804991828149222156152183611670576381549415644857244403675059466540800073690855862077620057639968884006029801827756502279240025130798437519617446251598043162564400629266090277963762648620926693781086857501959157135590288110888066593437973945540765594769004218244126755200836906645658529187032945552728814128059259391888505997616823797992399006345606431812206326802131745814621113627511469525583513489284391595268054243801055561416791998270759481432841468954933935114889672973687404539567835648082071081474261321927313000036122031821291718399912979878957528694324026188489468130863122104391653186572856029334131982500232082957651630426459519827680513507324057365560850097041558783328797926143071669247619086467528478619487053305398341948711842450290579106736462967406639974742630860810957068620519586255530163336754398226513947368335537978757160711943199736702061887260632059212358295188058560138316274033283469419508287215384537624153412532438302547107045597760237979210105063188170389961375131457188205677086499833309882821789360723945033038585057729564714641255345637627822730622713383160219026825168736828718738077055102676707913093884013880325780976473321613659440904566917981249264199943916075302068064197693220044731121997007278092775073265145913731166538276820778170608538615667177322029257517207820549749330833670079215825638247208267076491495443538372362440875415547992552926180676317940308415802664106703388589763630047861683067068488285175629955927718838206357616865780061262458138143158953889039520789399870643367013618507745320441938803593614889952770442451459140268861471625160886005766692186398389580867135076424321042139034595395337477918543771428622195899397054456816045711300241302673861407979533156238871454810679144145193822401479236822514103178603567759071240433045035288855010859281795014562870319351661050298809016202901152533548950212811380110653546920811553366365679090630733753383345150235378997069700195854770350477840360367885943790507747618996086015651165851705550849544536704303149335091317067525861186475025819205613399325625318296289566511352720223417051818834718311479264721691396684284439176032603499767247581858331906740515751575632494298420634865202460703438879842305773856971811718191914285838000820163926354144500168213044656152975488276512813147245172816720727984553452517452164501752272554254100731070754032966097742529674600913546627650047486673368681874956062398662493814086559821400550042119429567873709906299902139705801889193229186396531270030941429195030836379347595491928615275428331337913339732683312124612090440343251750702683112275001208485887921384833085308704897202809069074883997412543577934280749011716723785983007580391731115114649487289869088338653116962281387739061147672228520122387130181282267427272693730983141878946580465391294459157986425019640272275470777200384221281827717223078130139223343662244874497690905063221506593430733100567996981131965250092715307023529738304919519669833570673652441076683538363996820990778769424935628848937068557793241261377295207829624748777136975489102238361491673828381080397484430716528024509718452597732584012406964132077154983652775882294726432509176565607583701228751828743895528898572159532603353519667261294238912738549629077624009099905046394975470991525795057445609001273077219121974797715257205146517781726197592997981744716227329602699494677809964941280614455648245424849894877824064016615040306210343872490976384212744719901682285251080722359721160900969843096450257984905414007040733804134621947939290607105355514413035415552128529948138656303202303462034535740048498721592539973842142784095720042084145738346141304064089128373888978788457733957912596630661313873285977388490980008025434894426336273170643096893795123399677499758806108234228074897595000127291173486197788993412088246853875211543131366626908766377815154830060516231605446826983231798380892539956440143669206875324224536241951797400558964757522915046874782644220625739354436951014211626770545252427598437944299777686613275125786777534743169473501195992935877939943517624216050813582296460665736738888389310626537432883454912788458976630194273926295128223268324038704536063599925819985736268489347942926437326838575111191891311640135900490467683457391500471929313160009419714477037205484726161315956495080942224697352243870660570390611846851449598469641035434380864468563218602238628080739994512141402726404247620205610601154631674280712740472941510348613271773866832044548702811790743181741906575223751003384366632881953232418864562295677923033778661947184001650376849961396556943755643971003133431970379399002116771897380052812898021582556470774629009368094192096133184478983173032588904694828686569933000854592536518620012375222998141870097376627426470399404883876387128323690727993778856955777896300615004249100883014616738650273308632632549483257191752747310012031971638371586060388483984744623605797532626542365496268851159169768675308633334791109956629643122127210598120063025901371896489859474163912414927384888725985724793427829351855938032128145764113292645016536730263969292850489002273709690978984217701084681848706408259501687984499631910112709979229751353494932802253631721861514695512487567501059483996776848073128549446780305844258178341838140712016337559029400201616938699023193413490840362388542655823943115808390904659720700704520890795925488492842553775271916913995177926173963349259034672241295824422511004780020461496781139604088870970054804367114783317467265716887027146226588807694498175352242847529003419651618407687935757908704974675653588503377512690066523848316247045796089466599093630009639239980747409022456913711805564629861817517782912434626245208301087899195015571585033226478792324108749864838482150049153834744209651144002966448776314157754557848051149158475355365406137459287727689409737319316687317464150266375625807629868756293287567051455633387607363857920403501291676950861356141345568519706615673536174700368581997171687170643237161350974681579751543915906864645500047238082641723822917507078123936089347487381260433536749954553818441375809384793218745991185093561911191597499298226332943822819253237609215201666261698985649887414251935694273243382688144276278323995553454438640975487889343573695521077533755334124496736208555964686135601546829059338139436861175922111897176242283716773009097636582185808594190104754802083347857184030158873628120761276822748821558687737437281470578603351116016798045101993169200191981233381908929635111455095388088795954213897936707554661213234039047591974044884815122441642603177962364228983653142373992724999975390608639683385787624703656219259650667035592392407298827534808689571393472117100991557297888963045479644058389960172797391758346992005094893144222467077132759105955025619812406649401736072400328235095037262857083189979198445821724681376068409335847010983636003850655011385218972578581455107448498395554442078404658967542505158379852941016480845664444102232529709163682659941958369953563891950316873541205101687442936819825366704753252435123518623194982948089761459299581033060148914021356858363553243599324608244967372698517509842621076042957377561595434107020822566956306077518598017025927483269228239523921672002089617452189509989529042840096965921470167349180415111140120821235278981526185608016090659541487621644661398034140414566246949737718278682893664027013359077638452673875637952728460989677116559090940211737388798765621030466955454504500667796216484615038066285031157798230443483643264565094249616832356482390929736039566228590963130078417951971566203029465456718412998647295093471257718371185481596241308368682841276556803239012202401461813413330694691190754717819312395307625644538374714582076839548921014531830428692429069533167279864830411859898559523315720572777314866609632782138486880667401540678332890141534905269821584298297287532758672874008960806072316642489441553764037262009156361258105068590053060116552421636127387795861342747456353057434167442601382223386882766323991347571810160691486977594734523905073754270228037979335277651290047315498921772909018069495247882266458650522824082120404535737252206766030373685277162303724832964871679475760631622082031818549347564277987671226368590083702358657770484573723126769541033874796652137029096207367876969079110987026398120000585572549394171355996133829625440484668893888806111345974695588965673837095657574399311450580306786454445811196093579995915246230944984580779442239974970079665647210335066162411239337771566751616249910417790161292751720306910033360865437217914669508406969358397532157466709866601006996880651683807589715122750693682313785928231438960500057665502622216703699976295537488184624165678534634315815853660505875919753642159624551584929422339911034002117747758093706194998914813349087528281856490087398880358699961243762823529675522005915399151921614297363618032754580082006962197521818995922661282636442865100585951833827080223934969839437624309759159315452591865816341355582259353183125986808100741197422245303283534868903065444186847294270467429417544432589859960560385874073628641253319292722140969784126026246082998586403921474030355247011171288448419773872719132646076220346097990877600255763193426237043950342818412853438339256785538114084082203705325304210598050216320620401163241331618992320061519005769637696334251642459833105025800224571530675683343272567236714317765612146306709283851573876037740037469080681538253114839814891014374428380293155773741349388466126142292459555739561344031530088494072717269644408846252571222643693442599449372715633386168247323120855237871406760742027681234673775854747275949006997979901218636667360157120157422759803160326946258027698263526682947304829107489469076711110685625849587582579400230878699374601018532858731954397742668062970393137671611762710196775611764601053330395536971785803695044825714735424019493384940699714100740029132800747736347069007072578271671962630789080728044932155773678056064574470273826696717370677289280881100397653514268974809053129638146750021492351082754796910112258964853553544831818853831346100779899164854190491542703093974010214701322236363339597266103622847133157305970995601378044345460120987416596995376690640121160641189690050460992118413929829777213964566407766292736863377860826968971608966750962911329371963759598754549077785187406438394983030332801939636316396954564370830679532073280961858438971538443399663881469577178745183014795062024928833774480907411719610492745055988760687564552557847762488525055263061626189292409733891259812245761492029831023995941496299227902326317199943174569877811404260640558154606896545543016578785085545448665056112503850357408182609431461699914788745745897030392581370315888699209762028531859232555283234510553410439240511227318768843719910572189013003509859824409360225154689206858710701327149741278070581715397444148159240330147406740578836277466635217941487084866940633337340113448695477492172311680630855111724013833449699097233097270105498944343413430731436541691872513552585388696577505678266711132092944604398940933627515724326396862067465272699983134280688157394890045155169704850904903478876551002567188400425668599486239492347392975144119479018673972042879139958412185653761330267085839144996996169044725328184844603620494937791965799794932275330912422385042408200471709710616365046554725215341238430637072495454210987010279410701207531405096138965175369346972256518059037986177975055377427412680222158004341486811972565876829755118388226157770777483778856554117958068601707345382673783750306648967813620684842799451395373353901286949721339384718756681181694525988245481711954296143543544631779070636399545587853253741214892030190543992701624208934132601332377200914733208251932667348640599469804344787416212974811758027023964370899956967182708191579418649117787020271833250842064736437405736883184451739633511275599468764190067361865642056899968935829557173884032019822201256347976532199265625062040796749790938280994999850762406564550605971335068403006312702740702115601530837174648461913238351819697045362964710773991479878987521844104042503244960966099648927228063824770867278503598180922398097435002078503250514567994018785478552434314020044599849319975538354574076676286296982574180422716482815669723494540631163549950853086657880031175235950111110520224195642834269960529320573592238235921332392243648699109391223347391755341059877336888589294920968197233951308229396341273848755604914408099539988636501536328158666317562265532920543125378711615851314663386855983783691115897409013756854352305893017171561142081782111739818198942046885481031566314063722339799984414160656676465048962263382663686579552767665683110291643204165831455035629888184811696669882409587034653162926258800658132384514909130303221326292902965257266617644322502537915985305234434552284129819374644750610706798397435332983081808762820055124082357792388954567979347273728198351363131796986581792962925899711796687319454806749844437245637037608276896026984239129836281852089591802274960889875645298687253009237160783112663282936189571810800312514492184854504505913470616755124894258876601279873769774653673201440851614963380420859278809473895861108359162587073818095825681842298152986178097547465989298881750176092585978995606706094311858237011976467627418735755858816545193719127428556378893696519654631653569128552633748285170213610465213263433565840140255296153898171914161949036031297909881761573134153899905497572353695958350009532452753825088458538553105482919565506055070566462932971146362832894854814064796288025188102008987677778696542711409182898319131489544975726890310253979300550112928706331856934405094390880978724358843707921882779072876248477197090438535488280489223062274226530305601956722877419247715825806473250638759312225876441720539041859083555200637983029022267231517266761886306448630722776146892082286730635623545239154968295418465888766899742390254674864115461605537901769363912585067143590907109741634613763104050150362733081628782855946905943549106045641055323807636279791623567662161453782763201601895307510847620515813984381135564562762398522396889248095601635616422572879151047810431767286450005273038945673929986563763240423803981833672394704972631558422848856441074790793271833848389407019404826574775543298918772379614221141618717994395002517488052738631162839050970310539003184082912235493580799585290067079727238140425027983729144010353062753132728089244116770821665229579927603751212036258034994008495456831885449906200971124432113873257671954156042571966827625689123917834517455512454249679385980211326051997901033004521462428819402319361608953803214196530911707097918751478944958965230913591522825790437836506053567017154369982564750455767017853468848563056644498388836952366945337235954927067907251113445067631594853726084948000916446860921334154534773411938994158247438749506026194105316849239305478202246603560191996745634033154400129187570873421353313142101524622999107788340090272974555159909282533984997879029109116376463113394780745943693708585269684551079898966479523789646506349901415452165108027157386643646743767321256294353057371224805165600544446145996774519225045239713284632132156432120132501683135614081922389578016748788454191635751514039263951230127147214156968388516263171975537935506257729180707147962586330311428451642681574784408546421630404291107186060134433666026873823006288139254306370083310898913206867917356157835677599066140379038217535257566961140936320615548232166618787193931793990419105667891007428298053344883345133214559435409371642989673968975835892729279888928937675790310440847293169426013571135031879098005091376311460888630216129430302622425893578662705332693075395969237328026080993357264151308853816807939213738668548915765200759737625692690557407659015415005342989750501832754957160989925420977601946112383908050235572413423421337243952565845224194762667015178045763070532907105596340617023456859509529457490182422931269540126135449841849424003853783791836869743729486874177865423384152565059479172868103486336639177605536980874568039328386349840911179224348871420338010707894456294273173944743374735894121960962853251430363267862554968059581623895882173097503975061242180495604337830815947783275448856465591609858606194596442492256387798432815681917438087163905355459052955568899148430353747333726114854021531050272978741680421809633114060435454689167161159191967822801549969928070518504884596598116156470427484515246287514718684509734682622285603737644999210594739933075917896583679152060246944059180610185490665259418164697882781307139104799828322549341555432757909406605512369521202365080579117513902091895646340136605898940534062755695774247522995426945044398231350692401495717051284720739297121190374294611940909387981941466673475913983325620949366401021580647420627152005930784854350884933069421547713443870167615832775241405392269747362564934688785009392760580830693738482716163133353590297219915918128245426225663852181288419520742742402247044108176887033838837465409207222799393206363119216405489936516132326445984784340369160288294691617331138702907606521455316261997832288483076260417489569068894355115833587270232741407752822906518876578342836725835198470026975003348133699906974192886652558881711572529475775002289383885789689248807648323948710068461702684436141516614816540368628630073806693388498883768132410679452121370840591482841119070651069124742159808394689464286843975580256105214248717694215975994469492917447731750690288275796039729666042728538959456482085472233708750773432974100761951105985424105859853106229621280840847397183534812319452043678075452384004952727603513781493696456691315978418522001213964053722632915461614620073021217208114817278888076405453663541681787564864200968678831722017516084780559303039893059377967049180016962473055590085866370475531071829666096946487982742407794851502061596207022258715982552576795765979235641154177375587634504335428505263898291741189465565454971380997698598634620629308322335424320954971854423075006048233388043931486190100326979852155298409575782718800885629432530983982124259269098340856691305244244050945837112422036917598759375045751277951854145690070696277537001307680889363843667883070931385092148516803552208188034167495431195300407181687297073825961724548033016259746728258758610180181902043898425475354393551892414256357486215424917597397617639648927863285001516540831961811317253456249556727631499733014610949715819093031942819827051187389212357497352947324421134779474973440453250089547853650950715004604110999785412033249656559387716472248436562986578816396212303970934068616503677067390452065029767955429420586411753942574752232800368104168688123999974755810534803640389718759248360719700342481709659362671215710248019579136474064174746183601963238397200780762098963082299811937356321656075716466114854475393613173702829144760016857474656145137533264682439132375832025501328380957119641052183737651454440640083100911488979591896117799682868038667222224239108454139278680624280763944934341308636644728241998029917748724846296308110282833831570957619609739325802666046146577316891537366250972928630959146305024122283028119289853592342005480456865964852690694149936091674305767740913209576301348661507301894070763546860793280176613600781113874022284374573628045669717424402087248647193186389543284422915052657037306172059668683149551068941233227669023630533950398965210638593065916106724127905278077093046464677786456600310979391345983708084595876532798755603805416928523921292784775044150012786138825440221186300111512506065696938791130610396198601574849293115145348508349978148544560584967230400336207603312913904236846428737036305309373913601340121155479349361110994376130998181183745714219394076150029710373681373111373945862243871363594047549599950714704735802232982218210570775130787334562654263480292258913774820744274600947617086484804828836021745310894401630876585016557807292254609066273360562242424531662726425190964779690438721319796487745926691644598915982372792786371655621456327574355445796468872420671199107239246868669107284389311895238300274968419284972495835822612502947391596665934752889339300421425966923190301905816399798820633768063302992260571595407300390107662940327626303028433784599144024309901235720743674819471421587073115924833639507651841173082315194845292803188358598452741654083036707068553277528774295390079818974872502233637523053056387653870005306843173386609534575608581969391095525134562079173239734912240038310361210634371830046251321643982458405775630835117730777724010645702015222554039954020211715271766001142120914723031003837915471141914878957543734141037632325387614497168765619023811369291629413032039364282546909056584120139035583554627289038007154047268241082640913167475391827109816803465168037294217903015979444480554662899779115601356554086683590747214978850123384966286383192879809503983324489436291935017468373568245377089744064675686487790733733917518892026281776093557916561450607672254778314122161744638264601433911506367951248586525409444907161829852296511296392643526996177255656519725152646012500653749805478855645348151209207633752527909572542490349131118575331642928679696699846473073791403123500403865104379413421376018295760422949307355064304072940951062510429114335130197081101837236128022685182519198698896482351222269350510113365947928045063358047035491021024358166389741761084156441251770491864948236947094697604591587593087117271501526018413799221928295673239808934532970497452580122981493902411620063582326707189186112826751588268951873133604254223939844062045975753753520829867880103872742350951131783897937259905837550020789769165722172303479634868872319509345319727411028739231372245142669727886683890143505093687384646196706058988827296048701181517690783334897679614764561125763519117798649781090485077536254326076177692766512791239325012234468631657525851588592398812910270696560475603881407310133703750052566856537621828275536777950953304296260377256828147659167475573738195171907219977771269104979932214485675446649481682903605433734053178585141355493164049986905540154661552457495125762456214019263697273998035465490171804148282718082656156699383842475439898232530972182651178378932227518712806353276319063123629679004890322159857735259878820731277436599790358804437371201528519104142632177156435308691044283587347314994431344218209051580155181428707051380729479029256846638851351997583666475970839193129719622138874184319657988243849167259933374520904923628055794293202278097254175424258087626073411190056022702552867396423952738308332595101287457818054582500678026798619729053493103180267848052892895698439648783068000558422120384800006265315551067248192066577472692937589572431893046722769399066086602770701000436215028592199964810695598744716281923798244317202160323609027325556970672792630328464220100856132579645971396014234085910574923186715190216572746300608527781413611026365016632112634545831081716778144401039027601320724928813591791506865417636350135267849716383168887851441205926223950014217951166609579725833937797119072236871300338457826505760114914734104572081769569832467096651177348259068494984356051534332109476529664222155880017938315034510586511174271763194669440071459426342498665898531510174178988105228564750368972277518531168601864453545821459092198672166310750000207327080618898055926782072552224402635473451819958889134922448632232783854767804280849911333725207552064757934969729179092517157337784967045510952441068950241197453021002736146708513802187963829396835471299316343599972934907442533165686392688740111133839360283639790204355081660723878103363204606323301528583715714226181213977677883103148601453369022982859044624838893258716001062860840637651074356377510973117751445027198381071044091843359905098769555516775755883408784306942709536853630549131468070368171478864432742961133550594801012589673289354673540772318546975031884855219328506612109614156865592743133468543125790552085672622281446906019427061874667453807372011097283915482191575814217710077906790861700474974801036486915295096337398106163045120269809924506928581210395922826034435729822519147601170879119554148721117896831686203125055427918233011350268890240872795670843254653889986117168555364611002545698447205517432857954428884726654344207923051850720615753380206095015561318026993495454495205620829217285023790021745023660354465332770235771636133253357323465475577084158079494002923762358382146819024382231363740755942477665403280885549338451983667926820504906348598277382377864582882406243722798940672075589232183065323711972384924662325160401038519895563651783164482226259904569844656422738173944972121725569742007031516943308245279696913571117380839199762091801641801387899680279133659472540007294854992725958432682243926764415009199133367392364355920004764214954676498840207283358604288677756030066606174566419970864961345144242120757274705984837143699892456802865897026968884160870249788618763033115828956864961207242819939201867631668850703712760290561120419351763583537746802607341037567175230696845804371125375196086823571784050662411900375439988211397036218226456117730046181708751128893799264416341309557975828052874184279360217095920637665885151256093033300572078218263997494200561723155501235528439261362519283446334788644919923597328983786824427766858767891969343805987977828841985181120475928423098352182245064854791089198152949741356755417412130134617139853400456227235003091498508390243573088552039159532793918063973607042241193894451846031771041654488232284072703797812363451632265538410153084939396439171628218161503991637944093011251576691889342552818967845230789434584365020459313172904572930135243972153677533389763550245463894703784956986703907466262778498574920788982658328153904144129505225072971710767292931234108595438614532387312617647676797248167733893035284732130016568294275995773610857552985933109339052274428017284490498542387149908065088555462969047172181804018784054608102377801500043346371362774339209313531377419644736310401060975690453228586227426770250403690818994178305962223379478335983471411361468172079514819246266287449538395107362815438273667289811924797387986859695231325471230640556346373015753598467169036255045728355252625763079818225718538140965300967226231341346962089894912318948027850468994730785055035973816189727636966147841018574094513291083410094535808230767179986184654246205802658673021319381189001770171541977268149525778826003116778812119872802376668483014709910177783108749211212295878309477442440953457103409473539596043689493807172666081922936293110747012622227465187909951534370459403152110639490419939330033745841851090972183896460871273312393412972384558542211326144012948316596292754721735275918128945940143983259704609699076521113737214507452023356389161198583652629845336062134421599752382947583771122676353995672456885444757887879031211731737178672373459373524565351812529487002587881280111581422412409467374169265272661703530373248265259159993289304311054676146207245784418208969158377975309336416617477032273703023246146370457768233356666149319509285045579004281487037852766920534615990671442098754944369190510987202332933400225528126784481885271011333920244359573760352502759912510195641414508831235688910466373128634364120184814347880876616287357794673665164699313295351570294619142439724582347733720013234026547991950945373626413408917390465614559001858086238508390210787306921163412193032826292002213590199529865635883697616880782809241559259258413405324687918039328240783405106710561136967527498923733971612046742381342567292168258980729068203218309326743708343427579757535900179485595985121435639435615743006462980244598396565125916749550664807208866753006957640161927288224252199385209571142479792529946043076414629370212795276234713242936279188612869374828214591652951734901963605930272261809039005320728408313990876862894219935964042591437762089127021624656253723273004474174038850355492072185795395696628434242758026653398935626728097401237153835074764052945301621409817060352157096553864189312402186918692376834007719062495593838509698958149966607680760481709153826527725744310084620731318450375478665463656900904653884288782640456314414286110688176579169800156569766466839675095017644380734009196629048614553432153831701753462937384984332468709887520931923730794039955762263026366699503647227099349192467698255277179144910243966015403060092886308711336102442759729246885366471956792790703223817856243334208226853868993321425768994657782808310824486967192617897968602053709318798709485118812995368403067812866653249678483142113012871125705120796900810724161657083128668551999302137835264517301159895693690884573782313464059995338959837450259261602188529118594574351358499659049113619070344126304709595715373004408563086913432283183826148762624215747939560338274734227882550492873130189076589363701667913249493004497914909627634201485995711780624362482905946200832498939469638186114450144572522145141161706875095549791452273952545739492773310922371446737675608989697554345600674278707036924757033735069083935233173923487997771296185966368371784048059574347446032917095592167284092535139946769107394523434529977716509313168247533599694140517964399888397952199505202992124185268998453061878844934468691209205961738400298951125183084862672752946238709765503668304473460713496254695008336905847687949887755014421456007355527661691289713250679864550737003660176510369984344766254466584026371310375589201022712174338167318881087761803402878520189728752644316261230600303512628027237222591431637168507617684419481555752916991179382990488907356218301787108674272090035228207128349175737024167918184150865264320117272440094700802002602965319755781647796054803555104253017006629884067619050539010065644669476781952023646589868540689865824217367402613864922527946897122012131450363778949164583997403430872558708200299999621039586187359148050873118976610186602827658499127424237504215420545333918754250064741119476612082412192336307670778720304798686438280730816079175854869227121554604594596839666735368418500918716894144102947987310882332696448232844278475964161277284523853660278047964357219374239018983876610348666180196489349590757916084494984875518543052944762482011523063293439921294047479276049772414978000800902389265482853325899696660301431240862391221624129828268679493728140877713710865221081764003300186988161632368956098852422742833891189124978744364356734431551730216933450811703657724279435442511684064748481486729526558875525963759047201214136877267934556181541348186108399291907152327331410312465493960455289234129704379773501994489604882378956642071862163050269271206158884942536036452958623441888376578203454600563457938360679405198549535608793491044691694522592386566753450810929023010834186783185512990699732495083733570415736847853584736465299034490686706502352473483147717626161851193560123146800227896075619920590975104390494113477123677062033094782521669568914900116370102915385977031255002257702603707423896082028178260115777452925449495560629291902722976934912600672326436381146647160886873696135658923695723526758327084083191481469927164573931554473440939065993666804320466447739747883212277989370645853179459161760044436300769492170230349307715481276557271968333190004182909634196977825039649525379837072497264477102082388311914198037039388286708445195648873942937431136624168614369139071129212677292921789279540680441800314391487494688112554578431659520497849276985454092533672596519145572106725894980856455484343086608916995704703079266315972910113276577815603275145578258161530506332389391455662870377124831959160776921974457584752405427661902203800830474419848419317616417674238363757192737677979887423902707324406857480872392574382086623665169464751563435639265855317665831323845994357759487047752810223934261159133673256348304035258065563311716351262161444209843397657240934350505092467725329097079928998810573269305536109533038820112662363814190443280895657583453666153963763523139895939141694876990761495130431839908841816713544738447943179355087466145669026367013046081059187079750338251273617008504414524539232476320081213176143102351874801058355827496008091474771582295590093228445064202676068406068855281853155054719075404910790366783490788068780632565690355789601350122396636683031086813044689265836528744761618868668955614345403384055558686502275459796668952314579393250224980108810789307604538257646343865390858829149721426067304859480207632701628788171796621167394451631039155091527852155539492574748228833669252106806598042426713411706601391965005886068183995849823787172229353695755597368096262195736390600581634568954569213791038063885438526782323524152411440799307962464678546205535190407247456074007160006405491048669291640860846645915216145474308846234561349365848766662975260520617751645968926291544594691402694705307703605160048275462651914341604588146310945948774237326004943616734626072289765193540863314433684149730896783892064789916059670255624024522573574620255896081765709463250093701087675192908175098075121935741169396534863145461610818341435345299387954299810220650868772089298369615283549571395563253678062635127530051967524844435811130094346905328519892491415081553689488664608347528944010904595357456056053484644344504218193140037624809648427604628054232736771853119858467382462340620124224387822716236227174700265484331728237181389063981271513960205686257556946597673247057379847230950827588046508154851697201954678199160733086365340164093482412988960629609780943895103855123710980505089490657648720416742705976540392488108970618399697908995994740981375391245389596074586526561473915084272275498826637960849521537222725043996432429836722418191674805705067713466731491696091188302775311081132469015781258772012251407953460136807436976123657304645111149732724549283285094552830321300942745251769094059403455995824067014966259885475731757685538289844210105825202103792114026377049811710367534744173725264211127443185286951880486585364138667909581850663218409394647269258605449131157572387123885092546826539656668104506546835481618749968547028060089349559493944377787278959875929953891451835398395692772625014749167095631344167884656257347339185952560432232175370115408349486362909577266108751268256258439875052014723098824993036649400774391089843601728445773524229957568759772576166818495284340058146419976248328899445940503878602830770429829455899429135447877035635155751746807086443157672319600572838959385203708313946288611954327926899714787881571474665181672447077215055223309495943957661316442031763858916095859709030768830107551026859144512111284077705299638984725456566883618709273167194467751785009016510830335748721795102245848693209652487675201413104309521090222926288196554976668059249746909039973553686041347123295646704173581931298278534195075001330360143915077205556782060095130584866657690278427813843520497154501260755419700750824552356395057265523473297717218437444775952138864421511624374393276252320274263985894367946539949390115331275381529688904367623801296646578077805044681392794613600231182559539541843177558047118424984924102588629173885644185116221638143836920483184063791928092201234144578951792600496746712949919785255288914816683165934154695438648567482084923234839020441599362374197562279904385754872073717184473552942826762183465523362138030508782291627633905271870860628456790805652032629577503356705878567808540016400903584266382431976692697003096997943288069850440589871695088814225618931516959340032362613159518698089350932635352173019309175719323971760224009223567683324858439757968155684448218348948693936652073277098418747686838697783319379094564970207286621951836278014382212442938035040180380340637167255207620201251802074171954834591320756715518670717177336643739277562057281905612787892838671997353637711396996021639523522702569120156454203868059323168070033947897736832080241158742873252974537134368362682749569590384494226083616019836828279956272278401144909321550554962642955140773513167488347688044264744331943229077116126849564703748705740391340895449339256165122224533235694971388229024642456984432795565059528084257198019329217365249561013190608539037107710430942875808191550160956230767259777413512466144035868910901423356395598547369832473005483484672564439421334671376797326156340425210057685157143719414270581400388029318499178857381007544197195096802493516195652559951046989660088234378789625962150411695646789620355894356998416638354801218368558988942161646495326364277778456772908074660686194487321873742410987754334603061098492676935763113544410627968119937985237530762287108527674499231575457423170965126724182289048106156544362726891194053364697543866691377087219374933786385373093251771306284985730646558047129325278374791156810137502287461525284531181896416859278742497293793089689339741728043704643145393858618271598336807063641430103971481821017235317320477970698491891615158711411031542592275508824064631018520213731444205487410705122466378346979278322282452142915899879542582938538399846147187637683939944791486644511181973964538695287550742351651757805730285356045405935173994491270113262678903225318670366336469554691538683797766283151692614145517535606431113557599293308889486445852898875742156947567004889144032977364181385684554234337321515968799994342533226042436634016047969656880442189948426226167611694856619563677335590453544505976744224091686953875416097676472336508863458923070576044149165169810605788577549937752467650598736973440810108356964177906752099592927216873017456779394040346848125058340184487280149331633111525198426719119044956641691497819908519220229858835039492809701634941697266732708952828598604852228292536919433626113354744761202379368208256586533582763772638432488906416488513742802893234941475488543784668942435632894433014280955089131257901314450932737749814043880609272368788006328271511185588746281370364832939570913660582114825350006990303062012038165953964886742588627460951515914208753474207380176147565954025403244233432453875176842404066820115714681289960705251297479666123003368649321921233423016537909297381924322169348115436428631332019065944647985205085217335147133176961082417764766364992923671184420474217725916144756308488674664691060726829135555503329253233306488061453370131516298794902604911732534733464429897946782338116057475461524266504764323289435741165620816903078125710136729534714337104664096435810846127318389004888925257239475177136395032451244577879474750762396871244660714049939082689636107179301341036910709764745809102512619065431290577039421590990781806500692925871599080478802211338946264120547561455091608854763693178351178894552248896902760299717606376012323887856566994732200383658915958190109521986586992247354483043198994526238056371676819533847153626238136193943445398128774300888946608276540717984123243300441222982470237161726308659903515262123613966235779153906245710479380096768793300344073338948257640190129571344873790291641523702620788790699426025916124015273690255699075717223899028529985281340287413869308438505784369675608561953219957479577415984776144681484328292955931027047094726544277968356191664480304465682528935324544495606285312542194557124693329213645628868832887778081483616016815192958298869943293377656013403440097008816697703736219222007634911402319426558681354099412441455529273703169160633204163241301218822003355206827260492093637204132680636830648587988582258885401128987204714401950248046342646503002844952468877198256185777935048258560734864910560968065001104474808272322969900593399867138178624738778863900442085159645271294822258095505369677176134745395231110984190886180086069030542204495525384391923206779481247807085648897562805471704193850275295291333835354325113851631497052138018044668807665451236171104004198156625129420451521680529846542252912719922349776465391944758479408707834242470382265242563475187363107020477434938647687852253902504356464620973701045923909375130633929671776522889589521593766445414762447550085903461895425018150556204305166944002267805614530164607042251067420114809715791546635770269976644400189924401631835796347703073245503541170990847228419322252898516911138082053210819737481732084705288582813175718977910974456671947305265317218274583108846215062414791754626008138126756855211375652527151414336667903597889879280017961554127851844589151623129707875845520660115536324103426833645775982589594493622889784603540791381134662628170598113327858583781234355738109782809012596271825447449389325833768601889783480530450969391690952048944970677374302671015786352087749764959020528476128254837113137169476990546691980559984578532940460691658100383339205199319330369734807410121885291705677148449109169200911841513115648259372160542094869485205906578987233679869814356676072732738407333881960353152726284233805266024175997010290795011255338660793875690436750410689831863504773066782568290106334523554177469099739707372980203084525168615907934551410466745291718494284507613808070344505171231338954415477502253026404973500831003968581104438525865619088930122075646248760039963442197292730863048280709835853024848387111946283425608697602801602942862112704145058478195699280971422879649199196364891739112347650016095826764298388882426912646521761174711566303972111614258460145800178651449174927150413804665289870050665659581614395473571104246820928296627132567170601018709937406964700485835181644054204455905259679003119751257312382779981508682995236999353939643859613670518062435644359489632411532192265456782842709473030835157999421360995035786591237121432486701166482864229740306604621770842378024317434016350819307438582688157598427510999681063410546936326606475236951073426131977067008290892713246777803763562144470960920775155159817042250067666754997992571413488442690451059625804330503358433805980677583195568540173417496027489579434868629572846482588262733063543633837129016613745096222574227680847044840366956578459600371198861069094638719414657955806210576457280765626998767233021777705399492724555160076142424151530578217118211191858342867320259857502540591511702385627373942657770499230772291904228074326820750698810270862655173183024756627926573706198208288832293833898356958939208975448062447405162835365692219829810153708651919145927779161309748510902917133519595173493275499466858279198852507612372987320453527923603029116725180156985603720574152433795607383809962532735255160783668267828584308912331215160459721172286168808588818588541815845462000754826286412711590920033343224095124013950691924749472168096160797663962199549162954120285680417434263714355261020981764285635636324103805921077849237272649087825694131642065234691459541309556144047128620534609033738804533168913693878756951664173390862900661100547427891743212013314713731720115662570746880899255218125850214187006781633140193106903961793053151265643288308396886297485373009316495927007871940528884601573119362244036566343705395789067973954300103901199509312517952397400337538777734265064848509862214075462406185283066782277960194257648761120562700265597681161037229208710368312400818790527039165707168213128536975102413657998897459487123512611917002520447722205432070287829533975356337374364882774621145517512186275880737886713230594535387891877916881959223336623854027935706199074896813791887441421495253389269129892309518390410083484688012170046984429651095428372293305062204114025934835606826767053940091970782842986918695514711592190082523458305698549470762279882923206888875897666893919246294344546200741341377415333278803553477476347942249624333973422535039857863613593390228584401770279487455366321391995939900771263302557455975266747172855093142606661743324116307897280710300391416845346966070999182088137932416409734574910836303127650344042037717855143135859626422513935917175655325745960169316971688901744884422023642298323189587278015794645954239496184578357950547404590578315886361425028002747297576383333762924509394841619503459991321293119306950594504563424319623740107971869500082419182441241942740805941398525021393215968678284383589720049662567248046960824760738719291570482337630081805873106433458089044154952818313367213235812839772640796560446676717188737252625977422888220555402867801338523756688594480281189087801530499945765945458584178100127688669313118425646696148322160774028903722398975480547784213584527640556255097180011881291841722340358572230831805166451594761625859970495698048865613908529759503572185518094121089544393170064432567969884394931783935539537656595614757361578262035650158959262383635401003108238339989772648627223313817259748227844928259878306974552347025630044806861213259663875960459322012923896043138572522894535417974139199897892282598017467968301197802295507792301322898230578854888658892746241209574346602893209779649886044171669321865216576750922123558836007423225833229545206681652327285318959756573211123244621275150972496729341234969566271053045616060795800396346095109415534489839801804132812033476716285739298711407332475018947364884139754260262873203541701064459048054903260191182953219980841387784363930598279519157916893598182901235796728916210930081573581169120509175902829156550834772592206672268851077695357168966505937855048829197748519162082036545159343819256214117917510748767699127713395997180571899545186076655070211090410692276239328307797147358245718849345195379003644048877246372111502462097478267681174410642190263261754243844824790547191013355357786944258945851617639769011981950056599304249734831331654183534535960097743462309489950925922558107195314342690181109954383383052386902679646062449446463947117092791292767380792228757622277519000253200327856935390294585369726469937984103634892960966494091044823122071018761378957842988876505701456432526303901772945357565980736636899290914946631896512224918790218290562340652712119614030376298431431078276271103591228416817721064548075319906020521136647073356341993096284362892857914084888688597309598861213329149400187877112423836101638887152615296893419730823053852585436222193924036445952562344178009638835435631366980588900376568179343811852912836307692642774686844344291688466610180585143460603476957124398191456089658916020373956611445296715079657631600971964027977592286909829846919832988046634202404739806714252532294102376104956124518964717314463976505825932639920776212729542404181855077642288356642331119184557958072563100722452572575547385747385213714591692625750049608319260269489861058887529598541579716763776166188029584105937538637725816054744446626060809299353123723459824213110242940565712175142672146147216330096753224696035997548472130544861501258343610625906420930567518769133941094081564338721189444505562441416096986145429818368339473191967420119518860573591424670331486369920262433672523467126236190327355163727174886006318684242589695461475231917887926187224160460357884085172993059814138399837839268813081211329253775600339193262006399535362128141422486447981220974771849063156192285418103341579647823000289145931240126332549079848924672321139255255071665685457457053950027219703538431926516303711958782363612668175682016420001732700046672369352507441549674714345166838209845580442734013747370354578073755409674533736738962944456058707861962011362606272026171873654892076628295105994276290935387141975396374655632744445592099169436716236658595895817405058662210919467716982510721397544466091881863006530982663457727434703177675509555954891165319087377420531539751352411724300872955167549844033001508412935868071690468188882990147334627804122900269227568593098456171438316532642611971167326571124498238661140344913685421832993945748593602788672271465833562980131127985375978561974765864042919656231069140409065847701397821306257508939536596766378350925203996657058964586427230378542743653142908434733606737278219941873049395205449029622580986328456079244395830902060812721326714615026902607986492140568702988893654612286075677889912093611821387028100497389379091369982872888078700468946821174473732810677781875919163366047312338716866081689819177688818350550522255321883031514018924830548446103272862329883686723517417768781118294349434785747831805064621232537252247103386851616442855258384077951150488833550338613044756467648269469977587330247182294125160614032937050321767849138152978810357119473746448562750242278060736819217213592460562096254085391478554800200570299789698467059303373299224436216021565979766732557859596866341945503624752789706908978238815937860744760037046547184863852355349691864078205265275905646200649181251294171376903994971255156338648606752251236642535847352900580952796544678865660928464122077165079300968018303330912388384621169579246096061896610061830880415178127746082966818219065309054390947760049790479761064240441824960844230651329956187210734991384360277537836564392761321568955477314919049512638765072077690410575092042435724180632902287866636631414593817798015888701229564737541023271070519366641966153959932728646533066588410583547433618477745068145997495030733683023033781051916363936883562756022630985298016306958823788787871249704513648364917187613799192329429897815378481765771605463271485455572208200331954783063452997403394127871991920669884641998784979158112306545183146527525304262515531574759726832160405710012760793849737792714341502593654631192863650483418568690306226635982290033066549633966705276248363178919096979554528239622046836628469140361618250368903347831085372010803779032883080581665529527225522109184059141916659977370220809129521637225828058390986803741692547528266498384082012372243354140765141312336503451657009636894999533701035054997271486596775482797109758179119715393157137469005647126168373748150237848442360599506883087595968831743095128106092275005975942112068381525724233988434474421293033983537830314679864861906058025263971166402978622192365299817646747854371723207620987388873941571659079682401375321343323500698173756339743051453593218080222802521555427992175679399958813149640154479445736797055610762555713753363375940448447773141427681482110846486337760767794711589720619810355246252899119727618391692482269670834477199720268611797749671166452805306375661871999065058145139891690932358685297930849227907865736552808997723006868157692952871620941502391478506332073828112401919237143487096384555752845526872312672338129061881273053120939867275305539839512142688864031997342001252720468191086983205419501542639167460386114378805481227632621345929974299038969315871570999089538037367564741672931502455039343095502949953112030817571008700623986767317144855109377326777280995667117303785643844749034010092513827330977323123428067200029860738693670212328301485281826476196423656007804433855845515631692784652972731107988921831559529250470021116003587262829166254019599968458869594942145169073936506863078529347325138953313067476693843831873328522554517239146931426781767367804798423275467587480015243564833558826547682847681703316090354226606612071672441964865425694930125229510704191775647773584978118248337292781166588340970646781990143925399188280530634489205045739710176416734019358595915883109610514149449443576167354674733183630890502728647391864491269374295013522499358902917537907299005837997883205620290926931736634410862695974105773761214082054919469393768720036769643852002163862107361087980664873188248934238674162763750597901521919518106229635005986671419500917896335986082236382261977401523985579917427644011378745183231778277244305839314499638654206600877409334500098921390978960697641879685037238156496657636699227691910058764042688396668127079307154818010335444381657033847814943969505768651119815112728687358435936290401198240886639736028757909690948111230676196954815676374855610344250070411196106516759310982021871847629032200260111626466594863507689485690182662437732614579126323847333451423413946710994425321603226947525672878001588726846214585174379358370551222218297803011706865395005813016204569058303056058541904070482913083726158610487496455523198980603785214793175059076730585476795032840556189580803113336815975039728995924638177495864793454230463797240966868873588016533327920972492058598710097473460463204779854562176757692281922243893585398035098587683897332334704762829964776146699240804829153481093843780456554590247834969686887979756958406088936464875443575656616648895914416325535301543064035746223997596451889097496819953835662560362362922306380454794706515481194354440332954265899133490705084982032410235817099378558078514925599188244868877908529730979542389303928236381286729208473440912911886184531763578439065152530245912350442285051741802609441645569278724962842096816193621577030995034986578603179103440637812676920257213841902820771219727230967370910790643768389032857468777628127770554185339207479855786296042746221547182127416643062295397797443116562278499266640837267763612918336013334010595501314923408100107227707965815807500934601490357692446716391165467283881761052316144431235112829625269169211053031194640796782958011187633498925839415712255609710215413560074467352256347126922639761691006142365563743688461406451347784977138230566776371751782441166347542143131269010362183742344081237874118779562524217899530914095060545825706245439851665982568691503100369878498325554402812897170691741576385845137210760237322784337764780012255600149737893428264359351667256156751952554394838232902916494448154848925442606268954017141745175612229371314755649790469740017232882216096144961978261235801301927572874119036674862268325423628574332504841334796642302142487458335433725527396213972986248861583522289420995851436985946782252418805743755898065809551592648391894212872444090971193777136820401722398453016343322327193051024805304119693757044161231212390879417424623440263708841620541444217933479867283125208086271854164011365295573117711883599320677738559859794679712243967855171415387294562841858986889899716820905349374696171081016693172335772307240342534995378775387424123150838218477179894654859833657095371556315494740937758511169384137963112964275189412784102735679526218489721590310681911925999071750750684346865546476991241598118128408367213091783490384575461606548393154274005890646607012779655422651723933785670195223718591058942664988632749558384937417273409642747399244267055093704777769794472917580510953333019479999911731406386299412367031186743179489303240838655355546954143559419590815958817440366561953925100799007944680699402450899911276987774622594473328194402264572915693228544281637220707701604454291323009964891499549668786514045562273811630467736690895848345369371893238924371405472225808252610075810095255487540020491175007120061490316196706727819252080076671278746696563561020897301364597582630849627344241040038256047328114773873776977679419960718275056913226711194627347194474510754274356089518290013280524269236151638188682484457959287423385104441303580512663599403323013686996296690514675219723243116683890996946655232424407660205787969299478390532725570463552196790068146486721504467845927189016591288366410146816929487386180031483470290710748953988333382843961909541743015723489676096199228972076120908977454481334606970950618276219084583276899161867037948122932978049639142244444792256420441318769170686194864608236245640227705726367122559204200978265567652354256607057481167532170253508345560729673501035273350346457455852703347219487534022715641587884641511363370708922620712874792521533402827628144490995430646842802793309491552588665310895555544023935892195585135542591591385650565699886595837878827675507375520155446316677459431343548359565165175775945750906355030585561785954790432568058076287761272517662096327028894212397630614692605805627618397708963599814159507617207215972957775894555860450726703588229140882504735945234329905711035525307813572312293846153527630732305550907510225738291965246745145374781705806357591520889864205155609039486512436285058820443040204507228330596765501328212312313284278674607714069746827162373688280038423498653305126960037993315628065694887004650727652084382633170732574855535377119962600833232488587040807517622016681009623842185265286308087410806401390168510697403057714390447029533812206731725863846847150496810863775705844427389312933358124218550104544227760750372816327860595043400513738860439937224484887588005493648091052238327270564655013396261801572561424757716010375515537143344572490068736417870591993893916635893807840692527998928957906750567759336757074776060664060079754257448886757682653949599974998636955815510439703644839314982949435014824803292357191352925416191614362936373885080821699288970680035231991173904679835918858407309119283167258091966724156611345911069646184084718260184586347792295678531709947534991827599489788733561202571872417850332848274144694563083357767019992938750759015092127170543447621463657804308827208848986642518756931811414241749015510867940362385535452358698113223718558387994952021566891190422522445081036110049917686867677890997688382101130842520598815074321528023530659823708340944010709491802152988112072182242773551192216755134416403014268116808241550219694504551771637895673552955471407993640070688915451156890397055175779365691883250058933384435208402494967322150899740477365948353324212542773762032633055257577712860787297630241694084907861643081074421057614963711969210021203444048986958431483220329162531923959240083065288252549348434336952723441273020201846621596154406444734235280354211413108967533262768051111496878094218978584648745046699404221570864508056558383045278106195326935470055782162088093717981628046093149959955962088525506536745979740177733438609592210559866959410762029862310804095674940128637663809423226484461258147488585075065706848892442945596587015304700868662055459554662151361563239419034987543438898992703720917777202575264569575799088153391842094406596966950265066609245003972396231372028818090279285362450374916076943544932912178100715485612709768719713697729590855404208747216035463443701242367470199337717328313725181234618021042860648852296796498764625360878162395795016040409161101791540389587492284067274709619122790505014902816128806171457446201695174779807582946684859825136176939341787009889727626520985074142783867871053455673461157255655416197124825104977745930509562534539368837732712186360648637141987403360474009606482361502268038880253516750429752116026738355834884906810898087624248386158507660561819873248090286024291532647539900347381143493875702850845258805148072416316628832066733169737563194440955089807085675529842527368049918096753548178626010742544570409998885469267043903656438349523243453529804631603832766537120331605692159901547229888020772506770933395216779346502574624480349383470553643621021526678425410488137111291785722697359670180369742835860605389013731577492905761834609126555228546502752087315135022035010662493706288280231000207214586349230130445159341237899055109095531316427373561181770085816581422016847751174278368472348364448760736996391248650405996507160196644427946460566446721308232596675126432633483229351779649181379429164182892048763610457859140734986664401546017055122574571485843384734245698332120552299767627690508018003555778765334242350190134484217729405180538098518541021690383641345034696563492964091264960375997011905237531819720986768496502199877530092321930736476883926165714401758200990884562091081867542970531728615762662479062307894720781429099349665241927460230694377371511763523765549092549690315043172160333414998656583091597703028562383822625681547789430786852454039565322511731947451432598799997072742393045897729170500982900452920218100256348645618306482150982389346501819867104415914322195936764144714579277116050691751272212834033395524972478712405228433037454665181439801879788835752191951838401981331372711902426265468447710136703197706014478520948041420259741855982913029734407767880353601518002369074531255812185544196867082266858667872643414531599087285070299824170535200016266390901536633780369014038723131638985019732393686106589142246516941469843909484625228996129048189676700179417832905998980208089707383170704180902290684026189502771979966931503407652078654464278741311796103642642305133347594178331311057743133842334956027824794380041179449206199707005322027096954489940709572321664802007483548634544644653408328846629359196775424541612464541540409641788005724061648677975510482086886247976188916306022904763609359953758371792272808317857919867141213987188107326877256450435969886391947354355688299685458728076703345471568957697050093537954032595592669186961316211559435944263650943194487922054800779765219674409598888557167034798316787686386472687249295335219398485719109401705313093084672392621746154669469752108739768725779653988660387657758868411925768576022269144354434820356755596243380942031229498148722415662005003097196364261321815665749011448458219857401809770257985346651459403326896625784547235787513342368428975818087864900420722537175052784159932346470018930592061086269522071029782700941848266174909839510992582415125978337161225981400204940251345750829408045037055910183939402387558373640624797400836240751233890830946030358110571434967066230666767360461088424875961848056253514200101141206879626714104877881715871667687401060909158063078106520609115412650009615297423682127819228406341869363177994462575173094960339722624802246988427790640703760394664094771809335366495626657621194111642275597237847828616457495393973833485723137533708990399706697201650404616740544022436060581122814377628369225242428935190902890454439291820482836284342824970928978253937945389511687348794426905806020891207234546692914026299478622862616274456878282455816725644193199901790523465815575163607233236970253897760958701490293103105251418303272483440142133308786721648038260631962612276889290012794787819901780626380991000613931219405884415957382507482193829435129392924869399818224953100728174603614744935193600309274356662621590683296593717062839161485642274263781693805294154701931419712515123679753670429737561495410785937365009191110946982999499322758195475865250143817017397278258976437020295037950077553229118636577736641673513100279878744614655673553475856798440059414187830395112299760114915564895774723752573911279351144930609087044803854477750783440571016994325226325747140323124792426073431784830807066807211989648981648836495778617430777422781038843159045610198327196690229146814670362775141582627075489192065516448937576870310249251910416886926528820015730993453236305934596003748125447098025468440978049702709194304407373922770813426448818480257490895666963221098633440578866163942120801046320072836413980558790631247428923660269783897384727229921881087318280056873305127907906636756686602516322452401534735716665350352957217635383792629855721615802239170015569527146958505233013762275971197099124428016959284150868967240139780237480640887421327374363681995724100930755412833241457403437967797271905965686656775662024392195368037617951128181674684778169338606760323830849330962009109046099217655290346611800523632035066942513289408881413024671974871576082000239849420091790987669927183698729013133551729341113245502469938445195007220334768318036360147905059003923251921441500082094173943453226092714821506912486807537437213485952253074451235404608505627342295520671681431358718320081929202570173246670203564715133482388340949603704650490038033869661243590511640199142768839437872859638148252141413591181908835689110211362038900561515330990206168920713845421868579748942506049149628749602209822877953014301640721592933545345090371479319164105509139980799831068078281219232031208408918479431447223488823152356651372894485334369529693461906103405291170286151392224053321999028357957957119124208531346647488384352077794474615570743816912376369146473480019151849541445160766804939492790296499930386599180920940129377904784397426910000960571233381696181565096414974091297187458309566468170042706858013166333729204641444069427988983110820313596309969629245980247331155899317861427527428530113046132332170939260374367899809890233717656558624710283519410474580850292550188663575724170055609157496687032628095407799391557119223347547862357362593399499672387025068284167851949599726087831267022233555919425757148470361714715905823066641128490800696685419997319437417344526921512333082289829991582876149831277661420680608074236982374980618569799200512804388846297642943447821498380750974324417051195538927391307386244542452888909040919856049826294223689504962542640169564012924188134007189339710289913684966912153346556832901680374776321880283378887671312702381851588636667733517568841766615901750759796055652471740217812134352031667786941563552050666177684199188831910940516735099706221905772146670190422539841875535880031677545487152807245920426486912145895757783684079833021136844677519900949015323768276781750042311129319122415531123692532013272674918810472276935524570013363131635661371946025016172791241282387013883354207318554191090684611458967696139799535822979676070321024130684393633261818802155793944131327879111466711782026812923997764646501424695900828849386656778943796593964997642312453745566721771784911312596160967725859634965136117390302095011177993056242045031213934587044659037679864013581062906900338800126836441346291211629958293070845565380692539476662124068189297918550381624416067675335371422284659061927516867351467923835949730169840549150873896991829243811408888126525569674467187829383855319486529434728824635949603384827065723829989523613715872886994405006089986226685532374017465735949543087059100723234216005543330365471608760231346587726381326198758609857653760764757201805993030739703545959240263633498006129115985926368361630487970339050025577889526760024568004998733824611488130285657790586553247201752484717673929820460731186725297777864107438297633153588250275515311827591921230036774432888586987366092253773165480152857649130859842597063111761583148239735697482786599415950920389074065184918264484484125271844292492463127637690536786819543167068108800629756954409584448135663001776262127138047556270394105700783374771768913509700774098368050531064838253803748511838558351278701379441388495885224216787490114471387112869151622003189412164012265039615047636083028664411194769727967256102177361224891174761156965817858573307100909147262301173904430784721872851004192664139525309283546510367165067712899110905833985064570964429537615878524612552393251678277985495387973184525036279665076735855334877772751716891951286263231020847570337097720574834568445943766526814986603865738591275534166209919084174702535172301404943455312493694155847191587091035191406507572621132986887243828668464497551517484278719511090207878948711667938244839284501302799956514930121324813576615398537001346581600619581837810146928628363316810985998998451266955986079457154713579878634665261866700333081960973460919700413852404253566284277469819027071767841734539775398572239925946440485886776409012644513308408283205331434541129489491086887682254128470717500939780751077280223406894024448100249001578511616687670953401539953233568255794875882564609380036728135375250463258546548350648528813644461597099893768567913681181846997743486080945460712011881213167468783064917951703963918134003873528112583596822469488894041420393202510067304322309225430298618849103160226834732478215478491758125345138086429284224372002432489827219075053847284350600812454021141344236037399305346124165698356500262949504979409729604034987509719378829763144395208878597922059594694757942362255996109647066384572193272471996260892025535187612208534778601749813052114650628759972550833376306772844832373397405820462584134329197074992148904263858581032659747436085588253369708458663255227632039466178918646541721990820445760279599409019475219806619537168955898989644262274524568068271384526897229367750301071247771909954595424878933890637612726700577482774660623482692673110991582916655071342088888209788609195356904176704304360209460334677858913467163292659545371504559676446377971208416303705978956217304178134552902114825949809335990104677285641176992839950575470071591014793299279807190379979998159505123267187898836583481092839611290645920898981707301652721470407457840717954537490114873834735728906447625847300617045599479457576040806334385266008831199922564543725161578347451124516556851111975054219038363587391895385373611268648115630230128510499358382756183721937721646697479734523732973920052499793858581423885317059371100152606792136295759342563917509968710621943561573425960294677508305032291694481550915759178217869267469706142352892584809435454882387983849662236967039760998088492324917761948927690638497319514337781296945337033195779957996346667314178207720224504199925655977400966747141538663742749951457602168521849256634144803665607269839205456787343229114569456603382224130451326818045374127140046877510305771638134986130804740500791441437860087147609225470887812817872642819280706861116073484593482771692902667352511965522857059660586655879547568453640795802961432383245251275572249612228127893992755035798632784515888579529240237692673461798642930525547260533630623808717315881548076488048013680970593573985958825325461284020344288477582777132357546989747457482340579846610997853897979288734938118093061569984006060355810870160117052991550900322088560372268529564816030702064985188485423207886477235444079710975181579944442650990887424556678458788839385423781824618479194493958299521003793255271427633134765074167300460885257889663812234337752093567946155900089337149333883052235072862663992425295380359659264975529025797573484238311342318652461461862657472897777289814930214261989063604800639426885282408961511665105810429527284035686713934671058110179073733487785271154595593321500678832000354587938401258456665249471755075705531324331613536741105776361102271044736860961600379873153459311275418557106897979616619959835768805725393097479629270687484691237668653427186336162008424125853356284570453539091466694688747242566456882712523336187472579273524271868833446688814388366687708074574206628838007295420535659658191003778359163521699162403710518315538114700324276398827086065336382944665043037561455038436966730112197739644455169900835420371598419981453886881022689964119083817971856809491826515868735227202330047740402803359666086709620692015368946170759889999806255895657749658539124495354730043317596314329977344222772105643889135286187165190820459105654391336028316379339775651366646338741739894698742688119379363226881970784892655100487478979840737358031655613751270684066807180351234146424223356258392212435792849672070244430665701224424300219656896225404812068333047838355600418775348245199956361125686562043848344828819788883255633343664953099052666870765128983872590091983475305677249360587218103620214254864047131694565026561098865050559016150977612788032184330417698900151813581259066315565957474321980182842483044107370477505685236260104415881027905709808477712838988367993767747349547628969471789313023911762196342773770189426091742231042653217592616838836725276935627956833927797512656338531817524122462549301465388374546090232740016035545660770741909121417724966145465568413776333826151460929635467641235947990254148193011138681662182093442981699204901241253072492281567941509212462062600428175317535346043646484942186529800184474660087961005043872281926476495363337388453395400692528665547414172273859390054416076028638400663437016403918367016019935933969460702717638147594832697791431351253459227228720480037618343572010645339510056250668158595180641322323067596625676233386317338736856539750342143529968716071247404933544133126625344425932377302543293898994663138863805669130494618034240270099424656405878643615764510825161736204994868639780818604060192335572291090658822807094194447077289246246001248855310617799994860452804757753396839851804843416280966833976534631499698906065147899781460505755065727737924223306834599123455886717287258660777844472212062864718059396556757787747562991784262099581688519497913817273939576323166236261208037448717618348783308141789416603536842063001005425731323080174150968171877495762692457952415971519764821250021611081144221904408917535671002578239624125467770583308125208974275658811976433762247847930941034555051565773580722464097839576164956229682719124508828057914922870623846541363803777987851410537770581806374511261978285733376680092467877612621982525968897235196878546386761950687124384728889520638525269474426019612549320889521591663870969130197834557320793998386237721675356552615082257892914010361376849048056171366244304008653148009031841415862579702492482493674810462004010798269265290912405195757184340656768700567654318499373318515638744390331795653890538018180900769052194645981048822941391941614071614047753677650116911910070679283388982062302413660196696380871644680605055869187774678848178321973244072771068952856444390093003163633579489883520285655331680647342192705598191845693154839852694360115084228873472897786838506850795247945095669328849012580642725203059958817207174553770652637052191532482779687388871798879730940313680335585586809428050432420420252914689463663652044327705302009101631835431554793728928275960133306668971618358691288466679436249814918538351586900741617991956263047620131553973100820841091192914472192019902801176505967377531630638398088728753950654102265761627575334618717993201256232761727836079323727425535134536076137860075185129655159882596868629895685730496923787042888704825490726563412546292650508073961822612247962707409160921870499517967024714057514460740961543402721950546831103278003798521900851693428420426765593091234832468434687908592659780733513225058772118713381303803305137271119465036113345414354065994320707241961133815048843931331213613963242247819264305569641856955000626242505077051981735655000364016691017257153895955209606546884473828343133475886263540127200187775800205884920502976533578431897598095906732292872635936113850992339547112722599091736802727585263582565300197525957126048442474876283576177064683783859486142999822002069273690854734453662029537303641473806252911401053506972937024169064143104413887992412789126351148384492431722297968571994040449994118827723227611925889267413343844008974811604542798139979338477536692895919224391209495729117996700992860587656062763830017084075722067394760964975462379237406043821906661657422314153208031686011878919492280619331171838079953092413177922485438427928565592955923931668022231303638517428194445960449012459824974746121006323649160339550258647862447652656861148343601622332034992012659743158113912861966749678274052176555060253166863801381922569372126953573750927801156746401258070782608890160707959537816256487832636154033017816643190894921945819080330889646914670741575190184935966011241809088956878180375133463586073887451884772349765117011506648740689457782163286446595539433251223102637814761187365818189523589558932637385947078509393058325328003678678558921439233845553677139649195109370093579597150455740714151673494748623991216927151904030211875287492450438414806453072839545894154576273150962814954132951225498893074347270657735629401585528029897444812856965754120148329078496276803505364543821105166037377091535211486796994997210838444534720155388950333414342322096249623912390025937558803403914174313254736973107421049238658207300720319971631389008410016797821790065672341231758157745844723452126859428446565383884418412514945651703512404604518364458148326283194487121665781288495423342709626109926812455837343162014173730347047796468630389195014756282934630286941799778533082611863566948379386912832309516788631468388076182016348951657292250126433742871443889192338237019080638657757991990336198247689813760465353369900123136598827169570873883445597139680961532931649216447553255372760228565296702691226072045136900818052152446684488042468520288558613256487689053358750070500555180975600015732196846830081608301861907001648626538724398167759334627864085656482583951746747848470510111628210476284518414565141827528328622568778043353798626640390972188317519551578781578223330484778687297498190585460031424141193708309134815482975552939585154908327283475203135780608388743961149609892632240158915214235997514371477137327785849202088305687153557651194647158625308110511259411059785096148418366794552444902587526387058059586136210460859363108948384345034340175001930033616926006969476404460175357723447090298072516967308823643071460307110200432899272160210402388746483468785303336358253343936114154137405003949703777769390230721837269389363051290524392068145859083996884291805297243026330581007340809716072255157424635535627878545219351485812121063080012751150472852017360130461333770044395106299816963214535670857526785084752255269803810251670560808628352277850553248886163479054075307405530535286553979965787598744722459957648225553126433404624729565356451055193529746170259050626888938975827208672263393839999437251102563362629101436916668727204535702814646049557730944250743933233548059423231751593743396369119762991465676297661929057492090033273769547032138535554648825982266708161822318214350879009655970061578994671131341579732674356916087853404163562908243516127922645621463206146666126790118036589148270461957213112524656446735110808810177408479731966056111279925653050401460844283824592065745763914112956135637695884954620094497148898568320169149506304824153873505009772115744735532232646723988363200542289972727405585200450950833613372879806531271018978119581713640121076069219188921514290243915389521276730190361352571730619723662114776846130179094860835396714985084169077901217936629224201868651765838435645902959121782690264350688484730055052596860237142814140623347057681035711204144283139348155619563682729685351260907931967978966280701123652447345497424757504173335988391357610613084319256208868658360561397364914297039326395372217021647430743672837025963170964066107239822556031772455732204212270804808756922850609555316630181345095341072948910628822508217889785771393719325752641527418953861140008081361560665488959175414254550177181580941750171437489373959868489692448503464227282781170206401361437800321034769464357783271355105166232650376432911345907337077759309328772826500972914617778675348220405230919890913037294490218091099397576210105018390045958652471014331468396218699224720060453889939808002243608345634062049862306892009490824397751821388506741916324638594566263462646640093611844402869221386525668230438898757127946756807030042620896435915793799011233648934002503433797647414433441713428163822403810373765828264302268440038344416843899216916352758203724152864625189471334702848525707178864332339825081695453637863822619633431942230905571295561707116112051442128429199959378576083379115926957218935567812383582075881493574728431737753155789568048940833170620735399223854217824004374658319201470441110003332684923213201149145333619044687892974076052237911259963705275459246343765526662942689995648457560137647281015577145591864988959505942835023282171298722771187152517778892425242399531759338402957841993643651326144730190251861267067749778221807791759953652834667481102374214266435841284219183550264297719743144509742599733559692277065764091156931357366439912006807395231276460752873512581622496463791452136817019429548849384659391313426413694088898627041216593296904515217044787873916344110367001741863559597061687115253679214680554608239142913208527346071056765537125826393546873301127059796136281586833097051030663205361043803468335195796351410309070929090451564983228009617330620382429937292241493702393069678783016627222108582277540212289103429813970256345571189495539142894105435022964086437113362960196796347807036765185669372257290494865307003032948313369903034152285383584326300666166362968325717006071946359583973266544447394967849033186959325404070464125917338503263853977474265408256987409292135537748333734496371112127853130029206730861152968132379588894820923371887772124414961449260018443761891561771318704149043900841973870497365365489070809438393128877925841839015231856344985230128837342306902277190615327847290383554556019132349836115980675093793320154558540980126807473276629531924320383630868404346364726270040297751393749470842766556161014394383792311307685983680395815677910700525190941621796416046959801371502273310944013947896288510877923425072941111005950065091570008183083967057937242205932394219893258540867309264030368410265677633457258217705358909999337988980776693943528984718859941577016889688967175541751991425546900240450313767447117916871858282399143850011162292570426229822804880373724912145263934201017547840147648539265116010087941105541584155629211680954705601557514902185500217579165532914193857946832985338969605511709113195861459911863487660755747386901486931577654037375404272412673118557615783449496709257775323967786377899187009266052707356669131454976182457650388472526396480564412482964763646977155788652873863675200076238601643156675837457507879505439340108590000019748448493681418622277124705283179417945729938930778923404785113946697769128734148737990356364731852138937479114105526759999757830413050193688915705697329323292163262574038849703805628387264847314138504488245022036300548186390519608988537190231172412901185785750446378320106927766185885297011832317169135363668796514570485738914564170497030090791078485297646016255373516024756432606719599836089189524754734036396080984118636619670078302535645324695639683867366659664731618566885053541603861139312997554491789014702734868328531097365773380406610893583715866628437429406812414041618378463081607766332938524589537503091523908010604385779196880546051876156228351104163902172863806220811807626911231782704989736596514774777647840370834158072744589981151172878129353053447428680829350714079251647788831195980392907204819036181087655542883057854003547628630457066162244110357337566703165962994845606619327494495522366014630897350268647729748152288600763009885784081350703647560195210942906950586575520707313296241734244362449408824542103719247760828018811214919924590426616448362366783967037625000026461572134429870961117256996380349674216817669635640522963241060551053718935490676749818769668389765438780724928001360472202672277670044123410542384262116786360661246062029689533914746669258250003913601362696649918626799137328016941522536401477445322951962702741194769883359343872979942854528924864388664570291960953953610042717023749211280361365803837501401114423802461401362382556863265471340433012672271716780157441606460708202231559078177916469699824914669234815415850522719574643428872391176262280541353048686255877898525856251569084291134253435063529332276202354397640786482324728306125008897466022766115720112216441059973682640132592368607730442792719439742145735192050954592984134658315945598547951868501894587289773655635035385433308215587377566794277481045862858520811251760416184400168378101279737739141079038392246688343390923265301441438184674576603232916276397027786331267792305504374095027342229681308294891081908813868823378038802017588247953387466449501415407409214806847691414514090436805188448645674108205513126782355238528438731056002054358524632181635305896576881329387372305147799325629185914241909043223037869790347049225212497795267940599527994317919115044943508429005495011207660591563723524938352184789458324913309387033822867298211251118134315348386045304209762432794801361701987453816544143448559624151400238849744900871774835362635167144938138918859007180032471753831888031732847110153638132275022798828690193921000655965913418201635572929465793015681441203516156226798516405172770363164826459265176502320430985340062835953467339157176728524044872902326297862303124138463373341946022266622717795771071174002084730458906678372994325073901383204569828211892136106111873462461810852312661167254570440262098093278249355162103566903608499633233566015608408980006098722824620455396293965260331208363339421559865137809443045344436546077520140249484648845075093535235333830156584278975293525986833241680949381776711418926626246590038522167067522936758974206043583404061257552666334121500964589128219059387701462662646703998522099650763721378198551455700883899544907383940758396247576372457376989459885968535751301504429577826522789228422011383291010001735682567262236970133053552178808634335325248235210913955622088248719131651983050973198890044116386343087948607560023905417682247583457055520809405818500651746321674671390774802699523079430518531005399656100165107332764944885224785109639549551574913522409613076237158271827472122448055078919584171802769916098085792349178494921659275266732692970391598110139541773248243827759325827714668398249437762329787392523241422586531832058578531751738547833708782908991273406916424058615848384594334292315538671242069670843721862886152971277055967949001631353850797008478374165525240497420910658317273662341893494954068341108404803793895914996576636334852204419928114577858812027881732636084691801386877791751415356134979717148081045727540754107677209903541809172288216605466312023248159248659860157645907219528862951509884405372033257784465916471318880007931879590348127404522945805114678665876412838393939144536799506642470863767412296627942934880739035458556131789011541585256625278125076513251406947570690458897061512378631423130036851516803376624030779550775809487598076578245221680364724362732008300550634113052116577283572316190965520689135205314864191131486634453074749455329604710903557023834490477722422322105798787215458931558549903582606568960369210995406926478111267406096809825762984582503109875736450751778074886526211141382438195171995554911787739112275495147786410469402613097625731438923477432875691690135844411280292531874145967406703708229080473711953068653259255284376853892619430283713841320872609477275576738182393810927009457593484148031754104927520377317328411306104861148136716270459631902288010873788990161088899728040371357490563483696380228239882633977203133112762289740957867583938924189941151257239800332476272862081058499068184549796463576466173961265610526579460419443594673895303724193251321761952865546553991753924492629010821647040616226298748771115705870681066007448824726993506079191104919410329743274839963737200716651309928964478297313146409276134751644378323931366254310229861938981348823202730981090693916094621253836964835397609879743087340218802760728588300240702460092771835822782695896646265690250447542214816682155630576386233351115521995235116826616154305216164847423121593471836161163933853523710428770315345552432321625479131409716435484500097161831705560842054466183309032453509987577218420568072710835653515038583551831318289615162649240184473363919780938513185865981463027996715132444411532228306331429511231189787818084084483819975842570369231969880192935118233429514694419944269089338777953098401805578376550105688483588473723879156405116906139005363798804282168668431426982460777409503846406801318665165136620680208069912984862868576362087309546483866677133903447506386370126910032025137287952575458826670358251956595488684452805300632849784913713409289192921832661854535586459011799187843707734678809636738153094301423782960021362936602117237703417864312207959056025806530259128932668369918231711533991073392059602530734993547208593398408134549896085547788390951789907255142172491624066487792714221038980990112794237304458738592438963112832320660812370182185082298988124057171875760157607266619534198733506427621623837562171169425463295894190788373804566167966131552347614529893575730366563778136361631327770669024715051919120269945755168611180850976555325583436973383242174485705724065319058095745925548707327397942758963884104175500723190144283582550933709808052955005941061122905753314864522355004557000417611661950920362454224038055284253501139424498421588248228614412300547667272581381668684893700034258183766644461458278295685457460388341057980190885110323423129746703499879616399406441473607147054832281302275243464088847768156582396817653285360329796966505698724148950414401485701165489188545315147181845471569392968281145318326966154193738041670710713714874594167288269850541271713882222834416999910303659878194724767721735552620162784995764184024496783241797566881847535938673748165243050860232958490268740243071501285948330993154660219462878991769864345248227276643242724969777840410371791225907352520052224583098021044812405694793929892099839088352059676272095657362024727036348818985905123028763794352470851901901699028146540748405479246905955117120767063525202958474667362137390220380247526397430029844808449576602311060730794670228630107362199138316172759506393510842935190164643973772535884833538230913894354170317750948777561610798577095580501394037476994884667087293070288242718900342786887892946070716849270545675519279603737077184842162803456371842689644195317524338762048789902084817353428229983453973612264134535982896540492018666861590182782361501140107568386657708339225449417254854753343303921221043683148093930022096222272276493336593539188109648890241418907432080447947292816746813569144238195776751107923838051691231623812796583842673877702395367298869168142875303251598057947068898935746964628505644847099731587664412846027994242264500905083922410546211393844217017711540462575311599033250228755341946463057763269164936015530111794716998431605248847069288691353362745186381029840353749783137170025970051449089745749363898166821864313356119735140378882907658451681655079130753778383470867807720030721510065779097930551094966559186491235423870844221098415436799155889559053634359892274008140027789866802501293153249707880242612329897383986176245948444312882452610338163220673410544279957315024242599976088053329300704066968437291467829998353826025467280376944852420363015584797087977400020048253506757470393739295613399100054757604491048325072542059922736253477616491502780083107542960432005031604305665589389982523606474320844704778073629575106541023621671380181734186098090710808780099024852655153381022070859082894840324270711216408777336069705668681619775120960376482935860493251955875911245681926872939282389700767456138591113318414679186137949822727071004143357017245351017682959822715724300824501291232773647743079025132902025937165447178711930325501645082651494970437705046537370786087540959132184432419061815062080170646709916430801586619821692620590830637184052484149907318530193959514580719550408337943672083687742275204549248389830361723648069932158522212548649800943050080236626713218749088412522017658888207293639336093047491675353788988662720983947271768093653445993895470264335390195526049368271790332499416279976217090643713183489659487683309172394698622013228431749191563385352119888007476391646399537084335847626820276816838300185814298117252121665763156573217156097435633641917984314770912772118321923018033241064736712364947028399638370760101765945228453763527667975379521020126896426930965227091110993985188493894208406337339949473312412080362458703003272824331393694713581163982309738679880801452193601670137662454058357256736795237448497832564671372202952402484435038397524048649706141688297505427717590126224712090082005994762757654519405427522847311997787945836045061806565349302747293074607562442659803058789147933046088212527211126448997518693740216747351807687141596816346706294287998555625282565144559591057388059053895271293735768857602599979040566808505873240702892208733067987279841018309719086075749965163188430959018594683012818636031741509799011439764013004511671282532251720788073812748125967446651070045319114716121133271255330081375767366012294787867475117075126388022187999867995799034278017515362778829248136002686894134428862429957246595685152286101539856015813116060368429671806610092813664101878575526892574675454227857591973500105364234477619744367285657300515488228662648279407136398630488261846816851404305819230398774331957905427497256064603672393408014542321721764794529128781652185131190438799668477746290707112339074524339741231173360781899242335006895232004901738900545360821392463174861589057757504381065296224059209372142759628033876596292709308801593467359712071500502218306072670923214768549807861340557721000277922500462136511478294535609029409896238403361326691162654071183382629341300484317476442682242953947249479465178063302466043151473389154577801648389851302172160356856795762226664928977508696531609814085966646549042612101248370459358206944392070102541231689384234796617292628134167582919030740965602786142689271959323443725729129758338501918240043135246369407160017654583969748671625589719570721918896123780768852144440063597874445665625586246366866302274687873887602175685535094956650018300428740146305960971342071724936031381442363369314996492046685505953931764218388231392522730123694580653385707190474922774953691610280824419803894048511647805192473691770858295199898165757870822433392477259304191030264190359999132603432657117086908407631393667940504977982685983335082336682201606479315931573581339429793635200663740257616610039546587765854497009337090777064250272212206314655629941578629776213956199725851122495152887607693823689957474055618884487688992125539557027728182370985202818166095131796883965238785771409172418042990462842220326505162216094536249084824060545478167047433437400945291738763778960984593136691014875052112443742565363543201155709049103600671486442140776307136358803810361950462685232567673932598159509723391077805845565334134611014508112372638127787786673338952932937457223470226040140601309093747713895297107016502437012877441328499920832637152396223580546648329206162396315888660737091748605083545702699398141682456464363588012268044693476208906686250325714226847902417004846741071740599452426127481476882504835963337552909266949154885890350980987630874783247585115494841802936798966509623775444465485398542198664606224645708350712119909731020515493912835775066546395671849980278938454864129838066826364731948303931669760128354066473970714709420506136609990680613236748293242457909352672126870197780968810857522955107218637088477529750510457631152290064802353585061095224343413610175911022944657742932920897342834008046112491200281277324301756829117461293606253651885160588072354580202552894926506999295750227310790769949087038777091685178248182938374800047721976937811711941772843760674647090018737761282472616276842821857779369678935992595035393500617685896574084096332011133369891788848261303100726893745440845715437518150604868668942642298825977078870971667116369287370475245166196569246330330298000050812508797379379830607295463347906205803557495303601521814870919164284198701953965371866898601434621862981780184734196112396259833061980032732938169053354125097696462955797184770742559386137309961366937649410185950555192337241729234076949117847214226015885255033988127794921198006816982625442798067000526611721474250898634596644183937791613870161406011086758201610039107705291754985157092794179373208093414838362211173819417463867277070826235199971551533249455006691476658264468910994460041937088951082282949092534563501006179302750275009973629912772799321153976214438530222238110253043355230374468964036633337398975744803536272364391316894429294257579145183447747019856682041482935261231188756250575380320697213078926644673777391182740467540919971274222276484989453062642796151989953895656087320672123551387858380064291265747356221732623835835047540750844132268044993585608408004290699001508200774857430284176256130926610414846001447051589268173137445406517366470131328567422947731097029020476901648799435708529483217228601657794867254997744553034173189006582514336845946835102476819924294553942842916733495215424265575998642469446308748338580373958642693141680226170942529915431171846050865038524383113447700895449232632686128769706105064653127951473806665727012559882365110084472110344525518385474635805195327176973904891037534042562208551245410819147510360888429875555515086935707196831461061630799280666068208416639142703349897117682970957360171248613367499701433614365857393711337865334499972744665746078539748682134362094930260427101636784140300999172317002980232009311209609319936341966305454293671086759874042183097950821097232599343468916702951726092669133962276458901167151924340918843909918883434753203138216167403632027159175720960803661690243810871572942385688968901662193534038233767893618752397048649966157141159430772583935914878057270239583632289531992330502027349360754317266536243343763261520543618424665802391474401859202032232282897189060852852972695558562047186336455617554845277476560588431260413718748241431637303537702792837794391217258960423141748507211582175718594531026078269851169506913704589093568971780525630561570110119960736784087844326071674725044696093145759773681249837677685863443844608811955250143060862964431606893875229576980979253100251153185263038514894216667606146869243626115515501913595697920871479871391606215495020394247107470528211221237436904064597308907443614112920489316358188012869064217728399677000484299226053071445401419314675433949756595111307315641329457057678006847008877968255232391077736967913673115458748304206047632696280176935751538016234479850761760284062655869825539331095082285752783559892534171146680901770969358641124325902026898654035552893063172007536323617475892591498587106925249511701718430412676297332710298216354451464717462306586240819759262794592488923148769355285511250463863813365185666128312742883937078804860587351021268383637070934064535917161925675307385970308154369305266009508149529202208166282049226605212367270248965802618975784731160065571426690543821183844985268904143777403592551057004403525577585042175052575553992634234743401927776224948228421159147519967786181690849046540693884132232814124841712357976520586212445331380290641247058065796579789450359880044786236777914647840945502517086868405717642051865129165582268054193894702817201507238119860429556823661301431301504575929733001954787492924746746886432484060448967095730354339058634839838396408856171192422459258162070170555131048198751199975038000358248725311828013595162135419091736762670350846336977213712851071601806513556135489304345384545912755319925085535146270430133975612313711895793764573368912115422397557020057061385367220678298250726208278021289514423132370351822419752548048243379879414066445132729400765734930117052521033413383997712018032248621982212820335101508117562837808238029305903220687287805917206910410259749084095514993613444064203883840450876684505000527244126157365215158581123907517717838757549053564539026572464710183223623826725596786466438870037017316715562503447457727332386628563427694473741189572813763709234720853975239715836861172287689393759485361465223570724640336830596406973148020066863624354743341981643266435544003670786019310939759940360920790918247897697221486640691494748322910971305891049649945586743100676501377099905843947064730610929239364095805305994562049602715905953699562195498932109572769463467350116358482011388339127440391819975851613748931099990972779557667843107789705260496027055307131164335965862730589779438105379605635571324710576992719475980425418673716289384482159310340366595299512077484298629305419687251125756032391485740692815219241926817615236253221735709267417329183802719128161708288661997066001294433712488872641114905719186893125790083035038241721405886742023416298688196605778021320073630331640536898155886284395467067829391290611323368225112627301159726819182070255606455853267647122511751295237092675148665157228351439732771830772219247765774832759240025686704958103321301972747151534905231710433982476074425709336942054631879693326748017015653128551366084591772655415348509710902758284797355957191463155384528760410912180865176832946160291729735468899190069927041577242202066727289107970922596763167794051346503501477284483914775515973535131255270881949304372784701035154928757911023961653757080563989562725500880487860313611830643636738814798652437561680245770681511073497766533950545208037567353360251148649334839264564498764449304563666332614229139985936194796056523073549521626848094015689467483502681109110205064933293205409880181314721191849368757873117919872097145275128383288138167938077944661966436256727823790589707026726989641324628002636024872600293374502610275460702486029834801007255598677825482818557751794754175608260028911491219798376098197124477003685460476371930345789592685702264710055003620596682327528951415524671222689523132231214225065395951412252502187295648416546644633741186605908102658183391934972947446592966766146366921054305167124757521527802949458849244936809077665871080562113996382161569770785136403678990085855008374685954864682512085973952891267765948614932477360879671374977587743921270268343150803422438225289354578567148168403455878145127345255683433817856947526114541241198070283545545026143861026930722208439725251344221264481192192085897297543956578344440733086310379209479450976770135558496152424590059508788073906582865634576117423825608781360926061126918727318053412508550908893919354070220336774297655193627975779072074875537953405622985573125401655665186093953895959788614497501076362469564401014241080609331141711905057026483460796024963570521053680061537422598383858382476219932019666310487182507159689888154034203861282586338902228644712286611338042639935748226517290991783564719373513053260897467461212076136814738923767136938871454877885142878269669895433848173588715660371852661561959342520387307291843590978897588758800830434983791774400097987382329040853645460948727384384161434633330383479665496025250460572278885813486502537406689768392685751952647695646087143935101890677399832706082961115206915533134736800246490229644030930094502344014802348934308174234591954284755151242597727893499826582933200331542271260662612461913939147007428395489219046820178072438539378070908120453117971927283355649183062214076095691942620453943533181680161455815126845569703396053421951767107251116366639945712154563864404123740584829709537357070563239373303482518658433137613062218282173164322445557386173590502648682291888601149864920620598399383421168462511735115143251770861252787441410706533033604124431779992393361061291899533543303873284867826995887779674874628413904090368894273272781484701285260260739332197115709768784624815982614108761283980524917359502966597343125792776737147457041478493805049246786033376603073373353124568049448205508264584691637164879509917278008257203151780399843833036741141357331094939436949518521202068754803879496846102408927232918192324859039436289477738384212111063427849519848105944738162296917693309685379767240253594875499984164980964118486212982834321939817237889376389632133624950972270179543785053892186259269332454517662059697931081566509299971042711879521970766465143914866219742432651120785204407708082868732553322307190123619518966892438741218992877756293446026883876020743043813977212281690345732481230079281522151022284296391263486735697050285142182509031793208371176627252228044842792303355579568750418844566031024594522305271563472028132142892084114621962450979197877282127012621521022793393628929985014067080784991772072616432071788475805268800252458500955001161428435428625634408082382828050011182360464655972874514522386029949720536088231852316503058791355467707418470431957832137837260494817177062951035076500207362778613411949564978204142849091975259319066609432807215883506811307773410906264329319113614459561151119762287649382067674204827561632826707278017301239660000218705518831696784030250965856518696701894881488975726039540024085002251633291457469895487665376273490405177354662155810123410886916651154947669305542575015775644467834819474423878693419771049143845522355641190753006586108781387904809704835879049780244420611828198713724690978145406345914810010497303818033134613236426123774596134760257959634023078683731663414788649331501104189119194124957027910360163599785328880669780443909799453974667530231825045093166971338380502416525678169103844331893706910681564598753630898963230042730868390393268013643500879352164060131717114171389878338769768164855327915806129981252153006162419795898683802800205584615816866428776497115447712789419459178006749391940275400025384840255550900281516095851665003780230582886029108813992004823587936028899224049618556742412448206637220828770420520240491778478637214851645953422896984410803094883897596757737018613577661405862109374856388866233205843844422883373694405012104465511179913073931176566021452037089308958242271492120241553404032758692341218913339871316296559516388114374973865130375773721244342848318213492164975582423663380504225822553557381903647630409950265713466573108811151441380172297342926775143471604628375882661186236203836413595468531122117625427540036737781066728785305107147453844257398814452618976400654600400630343773325141366998944982421394270185013367518734128147408790226342483998681993726537378474323490992054363971213892537296321770746085479097179101249124683510444012082569633236434454966738447061755037949218259186398324001818504275337828876389937079901257024406080825094229745513874101600815472964431149717815750974063623775714114204292562786425905015720234922231030160588401782185038308794726919624173457115455243070393712712635147898210405849242946827052401343251148441956025252566442997549628865740542522784366535611813418604834466620995868449818906320463906696467607846079779615143768284462192953783141148604903728918059296520045954109653872192226079620156223237871410958015280516730443065140573449402925485663627546191609858332064812111410318355296664040890610996551328689073910069919153663221359905893005051734733680547076034518723886321027465765955520359344506140917964433434473809861233059967233507129726894314674221274216841870638497522092910577475615590316290397926986079254097548631806926910650246180257250107192681895028372654888901631977818344520638114017566813803197295505424236212032211459354482323471689930641332736767203383024872025992228066930702145484962004871353738041635724454828272689677580854172087918529683808572220065061144266323348394420313180846921190082371242393621120722025888396813339506248713243329301883926793598371968487917388951270559538398967867960873521406724146126505953297050463938042894733792831556715733283132259264429905840576738021952715048080913365054087977188392549979299367147906523148693434311377163562589491869667393080018340355491075650529440973910010148602566531682212486623987832545881257137565134732594602865573887961876448586345167794935050059865266216347144295264388276998069182003156284031500163593555601800520550187833676136548054853209702150525922315255001250872060191675964166472549595018473045401427984954616404542028057488483885818628281334772877368060265435170146189694795623751242907531050381219145160480047422774577021382680056299360315190521768055674360403566562199170210465356727054303879764336640290408818922122314725226313601968030482184255414222609794941736901168067157634868504939710810204892766928223024477870990886569522134012785377865368653492321956945275096769150732857801745559278012028438576589202149913699338939103642387693890579924579342668568016327767989365725267926277821228471867677683228577721824230787196109377793872662549945794914067181552355991933795971663760445779503148804947861551360584608785203524627992110729211306226419635330893580975514442424087033074389422727170382824810455725941146542223669224631147976664207501440337038774340993467511251827483038415962785378332704978533038909066535001020107702895735450439762342227254555196155809731031231270053380795808960921509088243576405042905176628929171326430898762376910347494360199228345434012362714617956599855260238831605857403884594505825485823893564544184335377349433075230448659094443012772001799949819943867780284873105238406115751184615307013377669436895220725737951741887103956013697855777182503146125563436796840152178378771191220161699341788995236057563922311393361238347928360374397584046079119386880543121509208152204659657971915613926104476458938051344117132478367849978357405689043850974939347295615211677022548483596104280230068225289706285338745291544332647751128141529488752559719087615785028580784717441686224531442637670411228144777997338764876246697325260614486957476633516945198214798915747432999781968418819143071346679306302859640923344397947059753215442282465631672622528488361894781299861423755021990679453756564045359479743845767785672417496035090119515554682651342247503309031801911280431038030066225810896858972044788014024030164049522281303231121928058871119848220146483461150882150574290130256939580108376248825872071113656555826197430505615679517842975598635664340064652571384718742440115626177152859303125877516644430390255694023897735699296635317972882068202888179838212382563026141582488661499557742627332158934681224516156468424325664642481073713534027721812385734827304581138189083901755108175543903171347567058150759119977060612479267286651821967621951599009066116987434823285536055910680311875068772133778565802843311755405481405775140602435475924399188799125372789115215087710608079872302620617645061861670051680908626497227932667884534493679212521200526577832757048859819973236395632523557017512249981301844958120822097425369443149025165355477830799236521578437003641373592807119244094801049741202617885766593804538609898242112555818753118556537984507211126373975058032675275944335192419651296621041328044182447916033863278163695078772143165875174279561270398135028285866042981872227641823462697327403259127553553112095914291437455622542469891405550360998533001952882183046913298493535094586514241318558202886308583179352135448194150206569651381351682538415789114318164418566249993461490250484216193467891000857752502363881282766282741535460480823075132191693985675206251957760381941779119234843021631038563211166530931501269005541860292644323714229932272278637576661952947958798578506619544290709512297958608340611787499985445813162561535411015571701408059494742997722028162083753633162375715557570988159672250099441379250387335927625758363193217169571383662293740390197504852919425710149316519270131013808973135074447715054174614128062778345285326405874022402305719028561201262401851187762482757511537019533650973228540372572571382083155221981186945362928452665468518088243236088011114214757507546848524755597716262524901049511969229367486149409097858590886130455083299676922409944234673990521348206741498558312039476164787569677945494661262613855536407473657027049652461499612763534924482506805573302533434092570999291498955970683157841233055890964913070858628263863768016219769910893044099937561451349539748981108696119325509163492129084218699828653416645321893879945497211292703652082958422648082987293118322598261092176858479130035685925560284555387916686212310414541019491090146172946488131997587644980291595642287582027957987826304744601160526329391146578328904507881955029784164467715978459906115277565726887654957636075255121601156553714216614966469105516701719315000712151962992901957973244219496116634111332713788324969683341478866282850228251243811754102893225236291401168510416352317321932168370842108315314594189504076202737383331048601171871210545236484958596455288446634340564943968114855093114260079532013945657473984656990302169536361493896289967364771702230252867839776060976846281795494750972519094245327835408428764526346395895689661689878134806337509187278153350395845401951974866163250977696149063278737394974542011772162454062506056525030074314166767154836242141494159340156771635121555151366433829742917898310110844721384760373818492261849871631539326367375783032836803543399530312498440546781371102926174379465156006997496518124841131053903233930584932532844900202837162197027465447235838570893249847412419226869196218593059296532093063669764272530637374182768104850839702509462215958224426888944718388696742320060433819270411417568154336937523573339623487322421493447533212685990256287333500596114811772010567452687299021367986945480268871307365107036779414224452475186708124705734051153159863927259227776313624182199483106679331255684651595375793562729190461044169629706409011048906229125038032839008097755115748217357445964214504846989601366624980198016266828590367053248471518567716993617051804753389153760874468294970805585815301138362362684377798829246029207211556472458154475884788044825200625130888514008409538993594516750133316401436689016316219657731123732913211107620355930187877382899970145523880858942370414246821749539737314185757052115531614595026320097147828114469086186643768029976674323201063251509075249894585123684957095780438482954932889257821199993459196491841569565898178489419697405185544788540299481032416834648082290057620809789957318095478911442102915666159295389363858013164573737700665519242735873109992522847801081003782600903989691327149159038757123373109133385794650893564580626468796577095793246912484827310307119129758450382214678001098933386866320640682971605818891994678626251333896228979327927277896367406814773350875483719414841504557281516551624699193534967589566928981082925375679704998839490475620001732965327575383325235824479152155701820555215000254887549757637582225171116037864667398508702806767719757991124458862732040546913556098347162181794339690724036329461453675904016450636179630210370470211782575002527847079548773029397235111943926358977297430175252642838698583920013932592751872402934390718755961472943851180551127133497019761437641310028803112619918852305571076477027369427209933098713765102440048172679035988398082568215356962982757461528806856338243334470855729494915814532420386025109004106422119953450875797766279829778213369698099166365792279756940639137679328168634572214265730767216550005468291581328375399886374037394301979413021592597670247071273948828789135500602178518637091956629439008941381611004354853347257954475623818503295926038975241975634994570211561320699958922669442070279606923206516342209808588112101727099827277912418242464365942224458402397196324394576197865450554995680449624784381529700476180596826040011208379697035489358644211332462815071322367039771774835136022081589575186567031794714518866437352566156092730736235191488056560952006276954562432766097242340002787565696880041915040515497660054890429836173510662644079481766676229592143044121229732988889180695820948030662028667574030176456335320921250662741434419121956998987360743870992196168568100147598889072742526520195727833833744632322047553124491436139439152015674921262886155997331997254228164594958073327450273144223750327198997216395477888880606275577235646183611153941216623588316626860955705522640153676509722778795971989146715970526837195620320052126514953817977590352290673402750235241737274811662976032732802395975432262763562247058140977808643633382247168984145019662610404779740714475972564412941373602529682710959187805830584654123984918615442278953754798026812408781073939606929865741956697389067352559083392140950180131779720459980843643315087657750995572598015461586701147695426445568538635253408128060673599012544731277812532916604675919532695360483605625272608195557336383789797520120712639237818421106717012270232479152349398311992787755480506289735412075289341519738179825380874100067845462321780035407173762070923109040915265170701890128782914088710043132100006996534925500867601557117324715391914668007656850423130676996711182196432993606213664960253720382495525116669135440539160471104701978476833111277569801034004949392063812659618894347987322956882528124470154665914746522623067088441243955424783192238419712822866587502918431312396616220050470893922478625255463273677503076791462881891797084474081499770350712425102943556223821922918735773995777178394320271614121660835179294431929814387563450933946824341688722902875203856032519701293159018726774305041808907750312487863604665811008762086643580736623752007807764579204712703705868723372690879637898718223225286120991885810222654745056126789484080579610427782962511248603268617212456038536325057475421694926732871034825922859536434548814325356541275882064987231818712101510879591686782133077972328972250201671224675468699633281797947314541891256338560096632407546415037367674503460704622116169496032351365632457286952975251358640754113655825984766123801718964458215646038810766004032271297888839135256808822062485277381119679884296473211520318969657307287706084241353088257559283563114149878912790266198828805038261704387557900143907176581877454710806887659384781502321350686422270967189255552504089112973265302285226418619971340709125679689472239034245414794077198192876027801525280797056886997158711025572502456561811420001731797712121571006362657827451147717636605781258591656944516620669814238464862995660502376470201910674119073766939693591831933002655952097235442992295823363366310185659144944016632507768614279879939553883867941185051833932485139936038517013623145702546851504600479622750775379461882719551947196399158246126945936774939234575117531897557334925884860338862450063327505012122202374112721849111321439931516717614351488269043236583147298635484226203126544001812801039421795514790724711065518062902419776899025809119760770878275704646478003392843352711629810927042794646787012362942010571773959442397966124785358145001839735139912106404930250291597584061705285568237577726506875160070751441572871015515677656593235627431187000990514230515006055509108339333496029478058392812203058777813204493065791796713696517405594068276274434775307450939204041116538930286736071890216420707179362387093667155702643022022954291142155691274807048025844546586415782995016542352306414373430682179036099342026318629838357224794357313945312034781654420181517011795731323484927105280767592549418117555680143788152500322752748646382603089652708040159062710818469123903253742368527667625101252056066004925423251158888766379783053947139000616189697712007336831332719831132696059672241811391980235933612792615288505910420143030786010038344641117034861066344373067738808792329496686950605171146260855269880367300575641903833152747632075232349759610264070599852262123159751005268823179515290682756673867608514293928081284725371528210148347142503874899729340553542403522484011992852401308326071673694550108971982068702925120460260407586395147583426125978994950877024720969581969191790387939929921003981493714888229306044206905130612388219508143639405538434034099972246247806240188525001845076717651035220388713742494786394837720600033730371094171691498544713348106022973346733084935807749767370100288180682587111411235951279371978635363701801974988970231563931930334977342710316480616941480984888311762199807772851256193153896460238454963792830053599612148791182267937067913353571480658905933530937091660023829615515961982306170703844259744901647517008254681228097852245670024917090584575516148927178220968492939935432535372959588223069439301774868952925043057296113020146087231124806164801724918171272655970920701431720675908160676952125951929575811961583365265842378302139666798798548999366629884045814954688908366525402294390384883432724468720381429348173614860888071850470143543622229686963915385674749620741124651530363281483417043075540987317339604370990516513051013562110160889463187196806317476752410919070582924923678409372139996912790785490797245094714353716849427335934459205542556432016738742027788319872390136903443026665106329105744759462141197436623806165286991733229056758124474557177998206952602996886166976541256261982273853392005901539798371014408072824834790195851634197549293376697825177474401686663193975116522312951804784217606472193216905910220887802066399749323831060080020163846465131425803039233001012275426363346601946353246238332526171144127476073360701094572615800074329252461408312605869091877578697624720891180432289242451422844736782308291586336550545999446119002992057031980456782075401146177318190797230977380328737909725057830325370533325613750827187446556521180523758733848538901657322758504205299836299711858406564593634788805327782921714449677613230840388087596374346081956058153218227255490140585050136855883560017217895362732458255637101499761648617779425628901236916723660387308510186538746029836158547314032894029932766413114240382399470568137407164309477672062886303798164648590701373745496149946580440824810822403869345230470509749170348200393378255701221858911792445594360677015615365446047246328501968663712547288161822883578821328452187053628058473551880909089352325969184202274200353596379389117283525595618653521860669225010938871767547833340851558761196606649116760322292205594748643423178166845902556029048342561925622282678239653960875123379438594817944637651896564600659893372410549408535800288039493644214825862770109901062963315914285939180585959712978581365713046231826158672691936779862883809878374157967353466698723770628528559644996986521830241135648129954689762694051145558414488727156568280603569365266394726003560018611557439720114160527513136068819252296843385132124322973286262591496147345093012827915336589335126547568312581282183085165509692641974309424438536808551206155596730437471779133560189808322393797553785442471517664131000831283247555588987886964174805514980762391508316248465725443780999498289868723104629442547366405186640261763570492667961283151005413747734766868674533406988806096173951033913630361156783672284734626387283433437481955023475032892504135727952528439677870032785566806108613966921545649538288073362690512668307530985216709045770162068640805980039880799956420276038996489205653707518555880301251524034471714910147442280220568615788728251767919302780737327237089153992291172050356160816472895112540468418264073121237162408827062213934916756212254246828763710632718869910319891355127283935898268320437745724608698483204300517473897261434364387672712705789968555610959250786930106657945097829053181353000677731898086566167136670851383852473006447502940352146184335700740657125804889743077624100045989432199033153418674774206893676898445373525597162585440177479319373985415078484518576415715370129082345576817314518558362994025813417715831840108602306874858464584230899923593360112873672256068517053697952158298373944125470490715000951545766555309113568775626214116834374578983798198191276826444214785063023968486328778518148286785779928471666092935693104628152277778489126503670898067854965966685040450208554376214296508882691273122341440852582457593026821730346473731220565641428676502897710121912345304212025479606057938199816588431888713849808338861485778301305666630215388764217919668252931228707837894747755282186380409190697676052337463406473556729123463651701459302687253246829427765374989831185506113832469421882330102743010334819054385177215602386571973423537757222748531705823673388184047414086963507478143789366449272218298905571828863926152809754367641428735058579488618728020295530143741232609415368073923922944036664242308815350208284998831563983547246821311689869440928127646334452089642343247751513207855184096316749577810367664786475814583299864867183470406510098453623703324162923653467625268904211558595330234385165402781423869752076547119472786900322244723679745653855314324739928084318757228076793009002969265969429749965235656214087988950136679111286718568482473074519933474253461645372800098259981496217555901549310565087649499757941614842138191616752253852253402478898345305885980809058757967768682977497822967671355354993202451517990060996491848518403039632693201991302102705307873221292304648106804652164760397398611075268057049541401583974630928818040784526155081335446867742044177717504295246872807094447451486863492487060691203942016433444278953936782708704453673178377995760431005013501324241242118683620659210560561902369857963404126071922302524149058226736131139051017659275439729014177038741698010402226287207637179235221649952801386427804436716905346100062794250193822041479405000609004024989456221825016307714498816244206167846477537588325854037947473467260136407014817733302143134015447149313133758693079632407576787498795525114391391793400065127759013369573229806325416986354711053648173168646540101418019181165365954585180357102582203115915894791649233237012750908437608100760981597753649149550422531325197131118495934065583014812093175822270887098907574942278204173418839784488334634472002662172947025499812488299964510581645040919924037702288629087898296873583521322678431554220377169638328666666572174314769351691764717225585233598567876535526038859849714819931622664300332046523421738119216686831723387019584467552892693131087120749871905081788768560498463639468503373434967235396412700069205785037310589760078080701685236667412425608288708917325964669935813864082263371436928047260317685711226270997008018679330251683624854536762494473558975735778739777081188196207975898627766358349275381373169045757246771977453280358624908152026687256620805796688179476126339901002609987013000481005267132550991637552788448469224255783647362145112169098708612643856128927688395875002381718313618291572559356400566632326962925922574228441809906407728279591012551702729297345934809769819061858444283894044459626527795778691219847648300176479504003898396626407917697335889705572063670789666681682302023287591314581972534424567100099323974270612628666455362595150381333003464759981425586082377403526969231325010130344277296399082471753970893172934707790893771745461677524591170875992910875328358837612031097403906883388966256781191924458541134899384820880332730768206419752482812520198046873109766900357038587086428505245526025819462913171140067949247712869437699564860966396525432980603156982655817352432399061460176137608751526881312679193300523077239326728270541544149470194129532434305512577610559364781191631990048052699584641436156907856792917054652110851061924780697943673660578728057713187241090387379513891478038042297064118743989815648139471358904215876086362797559430668552654226373961423396344345063397690889188082767856425892018261037659980809042447776409254120803283020489864137241349105571922764291500135315332347975486457453737765149428216278544544245607985351478182726038137056804440011429166736743461963329753894964973639603530401516829389742650562247257416371398398522999451481070546235055306635510439667973185439170838113920309247601906297260502690417329063855869336558041401676621437521937185297898845703821730799308858210972567644091088766081477923045378102773479817124954119247911118151582484348928076837453438053293705956521789493466264223037899631479582492869412286967357171663253272892949739296425540430976387493183919231600170231074257082252181286216880924553445856576815455430575966026476195205744487910507757802727100872910969863787420321400090032183404140876636570228390867717311086742591725586412973967674356868011594383312484720462831765474283629968576840279537773656293813642216538968807577235817594823566495377203565312354180053079281733176752228310737766751510522120855932413102704248548389087667280582548226990967492089184832355039318910057648596564241244293432877617662567939396265253508745075102784054282894330243265585099665174457341602806528809199457134214375244005319946689862068417056538697258519741164733046296042307844680024498283153872266882466358250421050324313717361313696857733883247216833937060962144935559407983132000369166828959069942695957393009384004463502397576070871024070608619682312094866624882766555587243379564074365753408971972994127801079996416880388331742805425965191887694281294518568394047638327913219162797859672044566274489913453409683798776629795637924825783504893297158060908023735826396291163503526613137708616973222397734954007479280902567623543649961721169778209803693144202128250521462120879176815642933474548832934110569500231075716189910349754237798822554261754791483253637332847782203328456555834482417554418758279972902267125616841240714677296651583185870713137259312276847981943132113502064995491820659372788607240999290539012938592797669783777195816860852010381626985469415981595337832517563157147429451111604880668737795421256318785978631360611662972907808822400574390264551507713989911364843812604715247615820366793923507698780965500362787626970393026915914219856729512487799419381299137504977234372654861852856802469869867962952159570289753391476128232263527981661322858271376408162040858618168978241937268035099450542749293916755471365916479810101863282906294989307519906841381410822395980501138347218471274854341500381631206644396792735285686561741087804356139164691863617464892806577044528040288404622046925915563244987899736456375248403656981374823082890538051481198695092395060280810480423830335960897934238000293444985465772793337871424482329320699388129837714672948505468027739662874995345577986108622403125689019739006733003497933220946115804362229171329376515051107982049956939354431361026336033359636139111649988173416916460052551124098730241528251286247447468884697745189500724176732462694952459063096999968442856551279763792053436926412037649215740277386041037305695536194147267352529299088365671196828068706701083183676843424800629864904010666089657495066784812246755833502534578817398641356178012028051093765779782922929212764497902888553817897773717614011520171304002528037328826386414642621490285333964183346766467848962837587731591777020541446103234689650427931418145231480145917214304472577056567232005948931265988168364656074686857020758963509993425970938603206812367666702657497238927028552032235008290633478256041480515757342284458027872244387005807947567546375521901378549458620203585407661095503747993024396903839772869029302261208283978770104360590169006494841386387043326936701280842442320483875483316269294841225231929350436481251095420215510427908823337711119397322648329812307827286007968144939522629689213525486531499828003862304263751538982405195924518402579888719354677128755035941490961772081135787846286610985457756459165525046846506185193194964252549127900530141880158536962745557928764388809869225678593840661839657537722069316202884855180232967299154513443288589741332125615936525332025871150074449614587760944381804583941119147310752676294753494527030118633751787218729076423918546371778373670720140623223091118431544590373313036219114953482774045173476857954957546833169765900207893561666717375338568981214968582462630186527611023319046978350648070642830568782122791233695156949022807523313224821675811453034686392432505639924086302475248264652865550842927981693471204787308896683457509672549505206457868899405049263535282037963658645740466291206668302548775072929949735721478777969327340978283666300766360593373384853861355570837937855522407087053638319025793545648873803748744681640351448386124623160410912727403454264738636448437735322160783966597233850458945496283906351583055161432553712428190008477826863723487439089464336213646413274884425794284194138992002313139036354132536592100263885621740719478205374960603481644132136350369817147224794584363135848436884895286961618892628829077754974672442284635679481555381263932625613058158115016261458338144988742103266766009376731027451837485675129103037159938359263432664265970694444277838704850675917622942983294735833312910597198197264781956862286191847655959622364857172634484112739932890451052554732100313961651792483882751485402189996057533335503584411742517767685985077639236442122786577692669562144450077886744907718577701181406718382428628270228089636387545765848001321303178580233628001599926810529247259070988055668472536534968554523237927187172180158635853945028192249650041712774913151947298291535045398998759291608367524414748061021888920598514923034868883735469019701161019681909652046985884616505342537235155100088576439786117375346211006852075838577274115984689490256189085612250008424714419358021279643837218611729833570057718523016480300083166877046166115976910008816324503737485294435157701020164559084702830686346254634504114241889940844977050212464822195941550781407826154243700184637175283440747123877877408896595507797871538211753760173311831922896203293461547109767222189454711162394813173274827000761435619291252864851415617932730830091624075420301482421187069449380074449202261126857694973882099180726261487429535672041925610548429618358538780028266423081693174371883988806651246037991625320539066969463478725399543635341658728909378727699495417372499019783647368632066191133033272081731106247761712933630030577304879931759949010045680547953958539365907118408297929969405239252239121228889902732656886903517573217905644508074794473264733640079176380525746468528412186513164180358957382261739727082294315973698417158161707870041535923499218185713425675956414840100738249220229556794419153397215609086551780127390702490990131257781081612471120585967701902207683311654442122401454595871535178420687160188806515153105479800955277236463577506457631914567098133325818598394790213209698246623792964406813031453610453119544239400815067851794726751944228414420836398491681507200777006015236146227663037185833413147957373681764860995177338031572854253175511825443221598167948445358260346298226407618066448307748131517270450435095977892124247913462652617097492932899791446497742438728231056665254252332002460393935422532967177933135289186316206150722640585711224148715730648003699605408112360138586312142866717745498703164813670956181569362195939526561377019522538233823153777576034565829650034830627462959883974810049632716286147181852160910824095983294434731835758408615130568742302266556098129483634586320208423804147462151563293028047115815638601846459031684144315846700364001374967977431864125584355824059698109675684362715214456337477033366951486957567327800021594598825490949770465736922496692072091859948371684779405965657693314590023168284502268014641354402198135733309468537285528897829904470647235604698816928137919964040021825631222219990428538672724746418195028090950726693371184240700784349534056847751779017516622966988485887399304584423368783032996473956867571979458419048771036333826656640926424727038712110579654059764675474669858728441754907466042624100888089409286505738551134727177049946701081317386404408998880788429764105369488962610865391321465359623691757739364664881739162350753940852719337973935594478306429421964110912282212589395419658612137622971050037663938558689216840996482153998594974782702667334479180756341406954762125790247689420529796067445031911988509057948157126908575846291444280630750275372136909194915113770800680411625972792472653754689164089486868227833491919308782342009510814530956742933791158639329813379354468155815134034795636317043495950521738364130076491260757248873144525141580413381686979525830426178469422733217099361426648549848852215239089412718982533571735346121524252142537532277421530856318703364159175246965209686107605927363850212294788655982026361648634463645773548699315727219896474306440695471288464916001801709482669785257695117881954252138865300663805861486645811013127495582527047010004269184854431287631921275531750547287295130199242049116845790508017667117291354513532667581831429226984537913330344498902293439926577089685781041351198209018416005122151762286831105613010556206392177598493380658169267757592953324290108706104422925068486060616333861774589689379698427047558111740089735713113917550777968672529320726243899338645536831688604065987320753131415438204220183920063119721257910013798987910268154597149758125762857771251501540256204943294127017652787259770144496979004496999280075215884281757636498324105056750733959917777782928238558191881805561463853398211462648508424412395569685565402959595514188056302911554136579712747693873926852753073521701451206415021959701734025232544384475954997253465209065176388832983331433261235053228953993386693133755516949632884407207229077494660139849420134990919646225345780045001923699949242454868610127858841279925830327076268154454819282510037264857151289470564029640899581296890903583872938478309532238045332939308170321959727565828494962387887081202047917100175562817028423215729462644906221834875639710717013515834704385492772137311042999030453297593764935657485360527703091791693801224886587422179888820360281336495439508880490815642694346142681384953375957349884866953699321843735242498927731784041435627521995196531450326669089841773557805322737599162585482280507253713950836892757851344639571657454023163149273002442204963202839639881076098609789915815169751659334643885958750875969581989484113620372336437161841838909697136507066044513021433692174911419985759841123281638520080872185346348488606590649020425481434709380865895618168174471798990216091032055301708451430592834053851173002070354337701431944404391809805025777094788859495558464363143760430672984173625357540795212685121651568306085151999205738781966156733013281740364772019415559986344001219058469748826292054068241177053544824399499358641217210201154033863648220759327317727735262087520863065526841083871175939809329722577653038726019211181017668065600352250606967596307406849999438118479364547428233910867034818180777000478780000529231273166041755519942604397975880150024990850990897588994404694715888037527850239375607666859513474547356306648678503927525075864484451398813627960068065465054401180859357721270341460748098398964913209404990646496700687065009388112178647268961292453945599661752468844165282574282735843552768339563693929197972560502486337682630046584755962580140703344476363738180070240116437159080409787333309675422639077744396260049986124212240249213151639798802797199645364272657100606741338754178689116259948955480221527532432298470437866089468960938367995999670221522454618617410207687231180711571057348221925003888260283542623413227382802681692794158318074703622748135560046767234352140481520151408033959847278266245627452876709975239289798262468799778021834887342067101310046702190535691287829577062872735079679620486669742470870440153717627479057667965493383060132928747708564899379738696929799546960862618894367037956691029293586095075467879260218489064663603788847428738404284464669507245297259409908759562383142318450770258533866586324035649138030870440165301715028054504496501999203901412194291801238293403111870847901350509875111718110644560215872224989439190345249429754672931546446320387392510263467083451086110683736021718638969752816667685009563697230805537785197007700909041114106908987423458466357018335563376549914731940515542895259619162605292194525984088628622655054683033260645945927918985044904243840645473248746741151697237659968562462626691102796183302057538733791475267845034488350054969055783202387783684437844016980478818498580149960211557336166543709448199557126386509690140472134311772955216154698998246807962430729449559806483626158667949737481684041728058363838831071974893063845095887142338083795135032532337168588917556193346787537435108385456254462110428876718454472452735392285838707248958747649958836975616491061162018679508717189209634073903209902482305087024980498825703276055716235898531120708944896888908259208043532015248604828644880226866141484578324736343004866210534651714504716278540457332718568215284976988336295994511792660040352035293878082521479852959554743189493277682478252044137116173591572955806180204009026491611594560837588643229743005702881321958470872835966330304134293859126963073766621049070720676509893677509928525050633607859312080387028629368120581270711065074475299141717241270827928110618258175382605483304564109031638655894467633502920309132504583707062258595276538196982476630795137677680971526106331146533210600256779673509332591769525515479008049219643331033217851457171638288265251848680559388744108063381137081969765017221274441186020347844534240085585517465709842734967397947677367419310223324888826820490614743742994508027115786290487436048277855516212578300716189605768560443092137276640919018791770610405133379508889288564443369802798016254227921688009945671767903810754009154764324531516138028377656585742958161976789674376961663549520081109573100469121045385359244721254069857938835061116065442581153831669471694974056891348340175379147214636420788969810704086085828521540257806870651644840208682319080474793586317705546155972425148892252984826139257451095419684731485314034309014369994739430140893275014212327099608865588815677803946515304826274356770260900306239356572621066897871628011229827048664414258042010173003687329453148034891932157492483417552729857827976311337332100961784602238544816519113712167558941901026692544605610929029293322016847908309804585152317106855207827562839313588249230999721004605242012175696528630223989098294767127036634532595472593097665860194501845218467723244917789513858957412956813149774029532270833844700962299815390901668615791664039544739430569753629802796423544252447163671812852271628305631065375695439377957176235441177348204121119441683428601534643969399501204376604878854993260004259045354676262521601699284500225721056151566636884697795183134805210938625141779828103026615592092277156508294839379113774928556313947278879882604719104887970000363770822148113923709830672247748685455306285384089482346110242750566926475463888460245473155307761439348170622889909176413591489934759821895104778337572133110793895027599146145282391191989637903691613894112364247104914526913429603220386009208682778010736779359202627893104042045781378171463345932465776387376194828703421879480114149032905685299310316338639462276438692683264915733279786080779706739555687573237647372434126419115962691591443587470752215766613395563878445852302794316048296503056216656069890491033825948222735392863556635215618947276623110427393343033762738474136540614369582504737647490719337794422545996460519953596063724540365013964028263976028779690809945035321440542486335458418822045776504491317010664299565296553852290357426987963810782001924669914649153502222665496087335638922102383178183268323349172184756675606756681400913810478883748277412921700308948649980252257844533464272896944232984310610341895934949403857702243595407967603653389773343993358684539415573222450271113991464902603501593561077773568502086244400727299326655580986635291882225194259279370513393504169253932997757400658407633444762658458337209455090347950715754893157398729785931931401894249899835303164184394560953745083456474014592195613624462490302277577277991553199212629009608232398877998377542315509474662769341945532334751033025094327367084589468682548200206144962763411036277370106635415705024175117480424988375327141934613787534335410789420869782013378863522319601801983452694964126721947010808159772856608165255749693019852684067403158985014111385269788709533734247030347677930222075173653919802653233010715927043169648212033171083696195952475896448328600159345959470550667767141543435989935313619507435864186931285619385523912762440453732880216443802800617890502628020871208325700481547401275459279709405885586763303750083506549523653516468593624868417860673671574186639723610046233619348426952742008494253080101628904527759606572907889768420321410925646140278721503086746406699330259735013494034777728984634866695196234921845853455755698892343545187759514595646175147817626590164515510334782652075177706794947541504800491205370402490011238982534667375667979586662671401745268250292987790285703826246530016916041120852365424423499543175749722001502206526943343379146175011386430658090403349916236095237399141930767104291817330891964727673466299377943886909012542733289001479441789603022480140709333063107588345720194139510307234519713683537525202666205676447354837303883324919022884347394925588490953845452656807516869039276690294818464718111526819632631743074890475678918856806076576152887081091808409597874233559227911569826195844574260274026196840434669025412867936751710706466203924355343688075213923002479701250004617420069808268348381653140705899768051698103686818350161390285421876843416895102623829505291304195807382027617607877159022663784376341409687759482834716520034579584277231613744755754227122923535189982698573266139523062423131323769457395145647015242550120079160515815297617225029541477018107641031808518058103190783595239386865225570609753853822518593177174349350079005034510354869712922704393027016851028761673786622064963581432613551778752769204939874073778340147606330525252876372646250892787879524688315061364005074960498251140964129410711635720326352904979877304780727841443951295091243887093492413897593699426982460284804221252895155287706899504899545540866180384775586020296725151462696689941646069982967717530235765754385436054878159635224581459156021141240854084988532767857091508033050640276734207069068569970857844081255005916078590033356386991958533219844126980018080311631014764419476873847441684564056710446677135346881173389269868573893009408305704498767794920942803289728813327142608408049802523161682962471797974448183001323594616139141801904001585399438771981013932527478197109277111014876711353084882378534515944492576842739913119631947740818477330353656163372483785340099807745929707889821055019472480162886070436560545966149021471610921424055791307513346922421801999012967333308195237343724118742113026632046482666696250467890896002748365088485957971921488873553465941668735208870449984043971069353918665468675662661829419388272004290782261035590261687326884009473168503684902225101232037274928449857246683861242236434332295083150255200313296445827359779334741272972379270089428147682749541269955299962455878648300800748202142342363029414695775326050760731476127339467083402486939950717413683098875556879300090525875092324051752343111699055866716593583841590813270791744791777844958786267433861035866566926189372896817116820472479421055284132948370312572371943547091071821512062335347956129595921692115169478886481806868679080630199277737683514800432813396389103935449691531372199758865609138306999643022848390301305274018581306151315531154890304881359482689036820194085524655526853815092461987089853101101227849923129434940699793323337417435343533907595657195466109929840436764616148429840094401790721926396393281391490513297669013035784369130667974042202395730884998366615210351145650798721937037303673920422376240040068697211057683188404365055625085908936118599179626394996437587602805802146460846998002906070786587514648912249063799031762445195444194016685853158603295325678301036418960341373132556896981184909675404518769282672309555092195742221382300776220540470852611038274769539148746150966442103789227713009575767660211817574427616398840217191142390761153840356932451233967387433270421851021918166320289683631300504180776341857521111946684334095934119540110581049445348943745984701528816612494859899896371033285317445907632675342365100272223166420149464684871796833471889271220553804326445118068198385580067849343950782719943912367255893429686382546203847810462746773863189738691472272324433939863994562652130430128710491944311596462781213994836200645415658022629123094565946443293372554243941986135630323385961786621644330794826856510422924168700121085280177762130954944899311910096166734824826818785423885550467560512731235923197867950606904597944053874286996595922003402819636482422889055490577925380114805958842347218916437558596544897207578802040140332619085762780858144637129604900972587754848182518075522776855974912460110306261542892240180551099173685795164794865093099698877555564632993842957084220344827382833772905149562974247783083746766940601609406838391436778319067494895159774797563850567481271546622628445464762349600098904865204088126724712383422400267636563826865384354851981729259973476968624914456017615284870305432524126264793325090749167782357818237137530404886537347538671409117719938321333494869746450556694327984904754318465283449843555323699227819171768190991993530556852391256573118424587391676361820128562830169550156459550231570864299277627843168368030525072563334682810582781130409592987751895403409427130137809789377858181574880422356587600946342315869520322387039170805262987291343724490813993266266293505139861721951507618267515194838218645659026636750984963575017344840137229754288512549015581434321663475551619752749133735718733301877077839307739201318227333607709256819828953739616305830531106413483055104876519010753709425183667356136959493363101828342915519169341012684901167871165278546684251319515241597929343455576797381467814753033831636777737608482463479709276211300344290309333609670334518235284839876780781738559710489383158953350754747176158582986063163526155723123686801571591777437900246224796743502200523457275438811912544691533291327523463916257891330226286569758436886452972355084977238305046958830846838279453148576890582972442405846931097731014557312740137812295414175063878410742099550187785953278232202698072897095336125511490515954523648385704511887786281591974779880441264112357807928354614287482969510634879047553625859536045948230234922196799102271190849457262197788188421239249618842924980426374893593627431150574643589122276690929012967040941720420834846084012785044987901368036562960206043280248361847936540767317370054051860946414183896548237310400364774908109221933938074760427585992399331326983413113502207577286580341484462252558749447223646868801759900597452379695581504112004540381949851400996643885236040625486372605924931018752859574327445314465142484687968972741301351340026530133983486526805422031685328364490000122811630133312509098540433665049579480396865892481354007110894339939101456494203497514492135523077279606576541413462489759660602250212125314852884441883384700103426315490144701454790128442515074801104839474730971432033139090196291218289425106088636679989449483982784393782382883681372012956190573626742401043922602145062800130630240236823258173324989128765827010965642810547914724168059781878210332142182907735735912566415279855306937963998927295136085958656402045621346460773628607023316701679927598066245051104876571280689240128291983612079633371743851065657947392366375989853907149773681425676525594805991161850514713262595103257386350407106474521511647809740663326123707622608700588201719807163747665778059773613548342717124840119850325519492646076623582303163532995357921767125884505391317997657053332873569241876465101272976732025804427271760894920482801567463487462006511717516497348854926350349447063882927981727480801484035260486802133185177565725985448613574106327934058323083146217229228992654011315699303930601037154874701866331832851882124287407441702140566907749956719119671350249822239573142858789447455414822738309892450249093513626380782187958908414317486579127509849230359807748004062489304029205097357252004109778169943425161311138762854900185652897072855630104779053487075698551387080135237214179369796502233493525998947940320707198243854741899156334161346115395079520961725179185485983311082267518864518494017886254990796258419819368948260412441694309471041807716052436862870973023567264303965377636019558590355746867832871015114959004990506276266711402857029486682752494969174106095383188578311646214566028328562208197909081912285171310170491742246070546211559844547258192415287511854679658067234142101315328488585011173813703999481883069902548967884295542802271813622593235064459495362682809050648720799977980829426231244245476874732206560125135484600541965816606374238937531043825033504442089052081419283689199731671941390300144821694496139663109642770071964546823231992800900782502070045122583283574755189659829838899379568770433429429239330621827963739905549881008379978923024082614349325804703323685613484111701654291933102418536829164848384969121930764015855445485556760014392228077906912795446668166046506179214867118636825174966749207827488509070280019494160033930211068184745745461107761802038317977303925030285832510016019048746910854648214681335489747705068215008960134005623518853521690066632343974549305471875471761261528306858521729194283817720537208951809814919850764552231789245315482825859627289730224789811780975228769429160704865850177382428503361306147657962683883802959045993377386691075117126432041105916887300658695156522161939393737199256126588360769881174526517769589409398289449051135024038246001040414772448590591827361827926680185395832491496471245633978713808391206883873594673898937925168114264850371450386167098804759117508772527830890457909860788134567629165825921620430334167559483388819858523780911056640038280212817101392914541637762204112771505259564074531263747160294041889913036967538853058194243728617038412902913008167646845403127023167903199937586012182701678680892995040013674336205301430080322809073502071427509403865327975361544251734564410461588681849332313311115486745427494261896736676862584054770223412557356390364271772357739089669671839749020098229115563743078732502671062094929685236428223327185161263851986160421223146849924160612539409018403628013634857138669285152537521337630975930277962941443303578224915308774546373469804440410540683990668123608791945850141036263949901588708621843763304282899985455433673780648021940002363732528391590617924243417367322156013492938811969630301539357824583101859275448202247230434383762721810867368642836960006340723280357272534628150178631839336208535465325084479124160934797574833384742860513657810001679618987121437454533428991752096239028198384038357589828469465950796038067665892789025237058121265272973336425504330348742492910780709280584157558553082613641774994423278829414347844970946307147239368293419839999483561878825559512330279615672906391356390789336673755472948709239237850948911365782437358289656988164559495324692962039913582621477074626806524088995716076191507883784403242060194480505677334603351736318537622419185367081192972136634708052329372879719064159153929388764926724394095162542048910033775936107531308681162958292831090746807184582854591114256338783404543545973267812535134309610204751571132792132398203380568864717213842778404408493725857910920992923847690593253714973547818669444537441205634046214840948893717690942566328804907766831862008190286426621765707732281153039388293488234776308295305092268861228012707264233478227198959321901681932697650526956920569973910729913873321358962395471843047562018278081438679882458189333870406959362926970304935248797710589140756257582083946182977083486943348824845440622561166968963822122643414253639914977378190642335652984259907221513980472597071798966921083300065631026636716406550388222147774010903206226608427658125605117052247313675004789031954278243257698055027182293930934362529383373329803119465583827684472712661292816625761250725396951255779363162678611278954721316109077179265081425799150073099043045705248073633870404266803963233355018131009579100847504191955083628566004201380920907090225352823582344360080860763322183256047419991653639088025540368142506816372316946701497418113789847589957454961553870576561100442068108112848459255855233686073812148393906965749290160775918597029170525575081479831162279259189042188230218175036295877553851572033552076190520706746708957079286189642715515285782776486104853513660698992922318665210492394877631585038107037319661705512044321068819203543827070498416301792855124252591861396595975887187087455567262997263383641207492911338831486401464930721248851604776093259794871111349140947888252329344682502743533508617571246492896882109047951016179403433797852414355431905710371429698619809139077205783767010151094561391464341256679466548600072558319113164791296832049261088194707066233445058604904464818389965487635490715692317995569570575316021257300004839958051125679892621946541696635996108749377801439065197660071696270967132269244891449117524546299964895183302821809482595518152541775719778639245916401232613331796973533404147943981056331120534181886413319685039407154743642599380124059040532146969201549039477312263356629182815713662890874270027119234840103044618302873212436936728871913778912611453217749599525297149561153707665292666946253666221419622720853783231042604091492210344710375880712960259289916576146802549281460383223586140773109914131441065276738260878806019177075768473372272203512129283439611898088541742938533852842127297866031361110160914337631732532165503717107375516601311546754691698919566480863912064770629552467850858511920055219616000459622691481774231173053480508183851743289268293957006737656942103830878246917427185079744799328232334054709949524703343440208242223750629929532973353730973373194899107142580872249057223905829692412400535336243996273161805977042517634430687125707323957751317011587295872373229417202534599774978921063174167203653999576885206348690634878935288307104980028053775776291343216777988913893365599956395442314593676365798757035790908728693678319223121353744290667321676418097346467075450494461667429612352792339200240219436454902366980499347956832994882801562482856737638315011902588511721174154451580221236029456714436729480026919235689815193602515960189529179757519025763705524882522512468707401417937869259878871453381485326579661190656572237951189382485383612192507902106797615616241067165914986875077234558122396406150919750956364289797440940688963516937973549509172961531405410679359043883163575479094208978048200454244987894149085992279644700400590345564685943092052056394315246490719217811603966915390013081322718903172006871574295261452135118442245254977639226391773399544383171940140976833893829065543516596491177950584075210609503058720568920562610735835645409150795330610865335881303199863189875792501115545301460816320249559805514923166662797265298931439212246729930360096843385028941730287548029162543347390127709956731200426157904643723608561509909689046493251520912385413564120682268592539298878727051602319553995200158549921226601176320071259245743437914786433794637928085418456523518685021457314286827473183982381002141003881202078398593858053464001993152451498183760300715440028602361316519909075278864646926544295645839275107422991704123894198630127554398407726744003760836507533580646109853700004803918201861788971524177625956437946389621766371306208666412260464349968880833497805215720795846088839915176390578541292023637753049042970164574125362289647168666322276396700845087854705479374620813481107390620122142072878333783646551821026572395027579371325362234515357418310240982159125580911301235582254726584383928541361448947902941003855101026399447197013928816705736146833802574181329861481339297624273773287011177372779647045845671172239953684081135647292215333920358145466330182364725383651615970357307887879546955845604963735315182517375956370541044420465703762213390824374235933197291797752148387225501877907650405502946414226305602879116574881102659198600468122536575704963936808084894749299212285789941519966794132921259865953740085728079356113538272832743804575365951948542520958705524266371910225410973296208478768619619280227746499591888830971794068559091106480286775229941526311839105141520974240244358506306197567564214075713557293312721016202502104443379906768780660099944504809228601733064913082299835574400553116310719047059768405900611276805438591460342868459512393177210569690813101140069631896455346154132676568951728375801016569706185229075086994316466604644181910556057166492113574539015224164560766704396519620517261241696923532705811899487611795931336720714095501680969794019065764523453167554505862380848895858671237811473596281133515872378106569847413974130862257749755886428324878136028808974252139306920322994340012827416410322002351511683789141408774343916136400742318041813228418477113652560108255934132933336433770817070249370129824745874958857879743729975142898350267903307924101850496660439183631174830121729894017093188628618109562102366555060934508757711610800814241805686642724806313425014176799482893646461199229984293575901852611754342508528272017626950829038601994810019263384066419147188774611146620185507449661892085484390857878258561803192430427620216214978391302121433339460190529936865275261868722746396941013488494482299481631838326309125008290732702253712873693427792050880315443712888670222906028488719549330657788634629985358043560293635228534128840523685595917190919310657592123115590895392536641085766351240049152035766236470299132382978167024706048416304758526388672931517755642265766606467783759525018993636248823028793807754080237360258437945760692836567698945784154857044064582100928707064802894935802492982120283141843926465413548929941792163033221913542132518822382266195393866000329598042973218530294163787558411854320679711424598118750375320591193581107384325027129402478976944044855225433879737812255887482307532946991513663570698298821237280335110887467777922997425139508034138086888533664591396793278618847426125414639474532869973368415140190388712764664312676200678573611172299952572628971892554572814621726705461914666660877448151727433554624285032664774882090706854865943715463661708204391140562814775989427406135772576811910992861224208378190759104586537451141884128382043319824864462411171161121779828037116398340980392536455990601817795817918129941268885957123204694739248095792801600782309964878895860082081070806920883976739567828167400699136506470768165281341892897961345132674695981766303888857645216890255288315958758077364970178577481504409492571692609075794965035498393908751381437912318775504023669806733361258074797218737269186483722132294646699148221543377199582327881564724303965037040380067259561490404208763221243783265576025712380661442882383286456447391939928059769000911556818553761868899025231985007669063576172000657838917440257113780664153243857898030719748361708904367910365773597268718829111298883532814012764967527714627734487946484037538368795522225158773517371642199603617802657242704096854817276542971985150257816140139983064364100156256765862401668623661739327208814861618092142992643145485294306291231049956530335956312647916855426551557013036292831542242557091566844812051397289790138088239740312180414542453323259717887508130231795958709260296165148180186368253175895500757163011761958482861445735748884596135000355777531644150522075742634494080061369849493883712155245567698272153737391055745040729287544758724256008429042154724536554604943327503542329106869792942300316967747277068374272990868473629717822490639742761661593882088916458098257899939012512720809365532715800789100104833494688931116072598778807686585133878282113332518247708572753027245745471221234238902834733948504823714460853157227523337941139717370079301525049100332258541985126648573829070670668936328162038402499301899099473302819052587189205712602495048585524270704919887224895456702960544712979408665795961485897559114005805000453410335717432766343204787110060296060493853995376939394760040055856950521273149290088207908083128382219973314750446208336198832835048028952899238667929239543573278644148864092977785154438207413025922383948642776129398572080267450065773195241000144177132767362153829265393105764397346719969702305586936557296190686374495026211377659409005068966268296961141478312152943027161973905380275027092207379931094750805260362501587989247773203529982033434266424813090783093940984237314184092453834111886028670866138722676799654762113768616333678038973787866711590837648093407033357150257370021045227622901996348511961344153600944192862363998605961601203471970124207094960361061790607493217945232340046029324604624120062211976037725504908239282326998656229028268256832344959566618527308463742175922067053821752488735416983524183084330622983553966660948343962791731325674566005564202396617008362324997801173566614268770448492451363149097749289130731453691107060270622518591893855180204671009586621137754802825194612342774810793483968523843031458805270372808610874657683291731439113363076583222117766771142078371207029416203741150590766220911133696570229308339077074035733069743466767639892942842853733918606282501023458646345335867764597207890029608660237629841070328364454285691945744109717675853393330558673648368267297090736213631616874077779176188374928180230872758809257592736679191405114932771535253491862068227859317162177371474376852982764878505450889892125534898113473085439158357048453309084464401244738623962320366491682922836932382173171040483319239819119051398851653302396082049473563262449377554644632910570028621128437082547693645731554643984445645186329473968808014079055631024101322243066564026075860505625090285604959943474635477250106618718494112108752830218361325803081242633787405027741835756851026496802939584481117567863037446149846169424053338440720447972412112592169971710807913412373396926115339470364325833352354673673117471422927259608313834480518963389606906352462478256477618926130183920225800571168839522440450274319390970702970165555609948863456727137989168708871149282249269188080396688929668390741905486935841391334307896333084147889759642605722060805059751772162790468580485523462966227332770002734722436229657355843566143590646811574689949065129138900840903380699060391078765658424424383068084553816741121159514520105973298054399464274299255309804634727278232599400574862292294385581745091294977212834732609806437510389305656877775641352427125184184067355485457274546657534560143598550017739497069894606784360069299590122596074140717580155464671598964041421171203356304999716089567277547718536403007682551732273933547285371251434320557092032938598534244129885034201347646933253303142038082651652564545154565011394620997012673060739032794530506708138068049950625720380432127859565804671775007301765585401289551472893015172803082719814291691579767665791512717007256308767512005266166831465958296540993882435451726728266887005767277340330351290117209937542028495025743970288530653435644181688527526731934654453055131229538074340139383957839088099024804720539706304908770323894985918386387988789727752863773711086931916158931809972145333286147522030733558747397339368519225333842793525546948668215905375159253210815599995597150009926267779410810948054014938150601105497055429075703318036750628993353858087182254116299125576263661164730152017822860152915204004188263453780335588355463843875848685402435633059718006577727066457179653710053643721559637380271112683026114825505143716695203305015183089404774932064867827101947859417762877178586087211241466816878444690092221799272552087813779945883012133064236887413723250329977600314397705061381751270406378440154076919600719337349683091138203379208026871301950936171555290363586626345252632378845372571182397479319388841167522550335419198207264810702147402947679683776687459510403274326650977988903221103239267750696573541994901135480119784688515804099240934582029730831829448341237037780254336910450003660688800761503129990059934124048710206226194362237401547929186767481980035905050616997967997925838799552166687005410698858230383453849252031663384664929128692597453850727130034494678225490046753253707449452723928360619478369413882694855518908839520150760341981104907790882451402429359214909214247825457185282367282769206754676323918716305878481927387070908847495828659243046754637267198028931587017841552295923575994228055028894837094087639690020312678098385307144670344364419937584705998798704608908944119106087028375757612675171181482340378367040216715170556157654077108019436509649931320600717118215954503453002150078094253027815165225398787209784005845930372158190430279993160586091733332142952468244379715826010436783008909446697168942493103397626473052059748869712110064800113051179880599310147494476651915051120778292234820276150148668897436056640580187263651977737546289044291504971698905423749224161068507260499255573510887358180725208854029372920118002152394786503672083959921201729408544593236927590852995746300145074503877723159922942377652612946179703224845340733183237852604966127894391780119285882768660370999826137328723439575798888708695017231881873013235938802021985442653413386477838430821516065153615409296195116603274475444656210722627617095920742917385913788513042869457552451706935771322919012662713297508533368696849552013170900290966503357233461721136237354682695999589921708711630589595763363003322395186513244047632002880810477651273082723804640089635718782901617344627135470956717401026896392202115949194868116557384955811229670669890002213436448999927384139323385495038764790622600557798739616584439819648997014471368160408036868559921678790410006325437917011812718224336200421689097981230230939997186059733391670537305898079160547845433105778887250012845270368568316254982609501163496863815672221114374626908623949495760564574732434218432078678179888332391597450736623400071652966028710564332299324274129625167121341312082857479575349170570795772081265345697742991791594014818427008201276134237886755683964400013470274778238917250104920827653415353185614132361908087162651632233947069622288929861076833194944771352171082453346228524641609985369689474954390344539846290772718285214107065399691231038514052840533002206894191376164356188236861849250845860140849997739329955566594330649812201221029373901746161267379825525174287843145554548042306814719182694229299714274269527316866685569469227562120171469199329938327912131226216866092303683618852990384268109771968603169924165002165632301915736029542663949761759920349804086170474655841306025339724403130353751985328671005353211775128100250890232226023722523843824795447125985900572993361830365565639028825676546637735277916025380338756015446643247829724060297850873836418291277236983055953917083328332027389215963386187842453870218046042774780108757124353719956282534043309997737978617198342158386382299537060859679341340449739044285934195594665686259992982269006881127324995434402919045247758719069277477247022501778209502186698000203040572813071257662061807468161367299455497005821781030782727850244372772063963279754822317454399817155727496834616605010193748208907023801848783912964013610368149876304042624879585788888537604813893870334708518997038539087981656843943143199387281075137094306074570057911395383627208451639665752358826054152661715705281440755643478550974545239626802170141963996293590366569346217827075262687041273236359522946755997689531363176893241200537277000053358344960106366420024144054156741984598875517446195691863109586543745526825885441422152521961896114771872622422135559131827951234143536676831172108417981996629136648096737926460219052061739745714680178850497953832299567199385713986375374266823558779739538319325648473099487030281393519964188628053180084757406043432421768370080838959871133253146302406476621521164122341168802430915949245586345159734721567656754097295298469676614726391688350301470625552376961393309080918913227355674871681618246243237461767625328795080173383933179521800256552466590685767485499851265978923910024062346252431739184115512237441390994983466244625466569000326787682398839439884260130659883766703716488030982697298533453294653546039285103846065364146885506410341945732531761766715053851597005785298247634308629073571622088059075583444877660783958288996488106341565914360185710107662883104322025225974314421465398289448657339980647512279055724592200563179601021938068337791710271198647484681967296019944850106145253853799116731432641803755544516732043801502406325347448252608532207932740717649226947897510152132931867419730928534214705476807013948837778033099346106559552435154423655962854986109588362290211180460363743881766541413086256227640553593836691204374482929621843401187676242040168350127258506291609024471446255124219866264197535468101059953749100591898116276238944422326277190595109991602602425569376844894973352692845560218973432636316034412459372152340333988591394930549538668459643987506160758343633502291387029560287185133391112277551230086942078417022715492698916438637120648549337617005850137930989494467494788820489914448583579068422555090893442896717036829194024413962224896357131108681402640320296002564696252115981266824774451730058568912588774327483663395899569101804375614153524837815389808531534968800279844096545048632673746762317155638604421698739213303210695744238917114582591382346317038272750947287866588241967354268257933683337553645321843705373095521470819588876852223205824152116943083987623938565283358317367664171832295614471950589860623244269435478250793655944811952150041554905389529617810601925207200577280196705371306656740086947562746400063433154391569593747502272858400545191548693513792938499346048175253970001693024223604134597400324760784869276230097910072069496087231162629431839940547709922982480684961948801613916157146206734861473341407381115276752395491591547304582297557825332799057886604294172945626050474696936193198629458617418821357181533491037033265364990300242140486256167492888193272565284800117490352636163282644251829454431037884613041240860336060914420321136177075400156591335424264194187855176426837371913769359350882638856756071192285480715657066676781409496182517814589339744480447522855855761022095608788446958235653486742705128458832137015277326107778872376390990724742087549858257884984444520743372900777127907180025875753196966550160800889303928796578532652796576051674093602839357184787487515593040562346224998032071475495001322297489511538827559449861383051739754452135147851255270157905174910218142002824523851546633015504718498396821835826674490612111525188141439204603881976818559250081097517260494134102474532439710705830044970095739253973196429172796254321656435449944324288800834992556733032404951524379581508519534049884763337465997791048206002093875727301825528717807105101559602300542568964709210704262707823600318827771963319376319721913837561793871377178695337609284464835743755504538858901237827807802048009394417102724362488489220199088003935326079612439226814785555552946964956104392738651944029491471191048046854365253004958140131451727449069110791530588301258702597852765553183979217691797152134792981142110727001159144754482518237128671270847656849303241350709797974987771725923307883180424536594851443694951736303386982961675278062423489453879630957433033216724514366203489436208574677851367001078610690547860053749123876185203821081256032211054720521506368185759625540994531699366404848818856438529405880736849922000796296698688981480695195588274192679436731936591033239015849066239112411290875844567436840383252956659045246364823247768901159341217887004257743735455023761496907336785504975785597947281318762112770703847829780042015885257796910807564613131428671055964315451087293136727294845688134571823897267650094132884032051767493057948189477528555384811653218924984446855982895409679491690218845614232802155829988722095559971275123657546662761752949038555097979812106367846199642250880652718435941888008253461380674639832325635953014900678789628688605092298604177390241016578963862738874080397660541566311909653049018622732939988251358388106344872466420460648962154303291768474451776169372581943455999085274218462220795546373157525726529787140036140658474956268082731304076160045224016577164752281650017910311000192274231338045979383874138128232770179607760502925092138538796501396174582557987273824091743024901074919477326591876325549162981494168594672395539016372151775259444352114322169019448452328546470002405501094121064946866705732422428983040657705394946214522586897679333711584597909802767592989350381149394394437187064003762029480162701362956724812221557244794098832842280760661721599455328969489016669844466913937269536659105313554033977172799148882030491175975420658131764383578983551001653940315339240526700679079546951459226070101307236831637861261400976958841583303310850332905514117729448958434380440604943364936922030749322445961979714498550891597208325638339302102536709481252637516326420421753837353197601736835422265822747139957338159675174965385974550707129941313571723475021231875157126916836456390991635267108372749971135259911965344602795476435215977837343583971839838585631284888264543094124473361504373668105180708943079882138798134917377468269788515575459532493900319890348610983108133917229132519673947475926841976593373131513825126056601866862024473019861342624951740373113751086359121970614153731795133141188732083242497941443773244329655896648258959269950888901385374509385239621180241713148948090162657451053222236966493988780647326074651784177518791683510357928947900250207519930108178515163185866415447812983281038326434781733982482331753335362445667156862977618629615560177099475684026832111536323324929358493466936588850711591671767416866220074363610123957739806597347995619179384396029566438275903559546062563622850938574096044381797220392843675629877475552875805961673230299109555042320313552517821713128176159404581644789459112382986232544150360022861584382330242632129372392431280375376320977129464328736526436513406585808593516148318553069553344172798341518183142126176896945791196280524176767858425560660530692895833991669973436806621975692416155840097471186412102586107651918971296009521737381653061025987815962435964604325454757094466554376449975998045263667959251551708570361797994274458144840654430522228445447967557602208518310373199639168405779898704770985327029526910585724821705402350331567405126813181599713729137722403609025260547698885425488214966632425805634172838443514038381262513858542308250193268512631542038542645163488455297642556769690770260251179898510867694802357128582702139277801953692802637383867547230229154549177215423806147775845139052668979488698236292666237404821327731061943038688561018655810109526208417511250397696973788060388082079740724966880359405773242313742140078769274026727386326064747946499016992375415836297679558541946607069449913375813936173701484716973447543189702035617541727615805137818806168447234294906560780794063309220515944795562540221772666072218945741228698686448288889598351446504942718710011650241080800768927000051286625363269571291898518324247235412394385795756378004006254858714718539544854323987440289189017796843205789357772597306661375560827725230332563037083082463476547311423535384571508877167246544403454847744513298760136879495939811723757654206842363579709260634402970211248909787083709229875060539704147622400930052053782655466699983477972713186678290909466172903214548893916158946379324740038694329593581850888920529838421968059642363352100065788896695514812750156806906644859241565603092918565746877369165099652473947265338594002619365167581622586824970574526529401692705282779074750750497131978735289698760404955020276824333218709055552780745414128630163727487960814743522766540936840854008899968499132490655880085299866288741877944934837492091884221618098188781722627007083569376759874173644908889646370430627709093659756071587175455856506462837012452475868965001518603808717457543512195307111234025439311912264451700927218166728217080714466019802847527238266418357278189782926620063554198369566694983975408381704043521687498911333387296426401681573930140890268677599187637843876421152856938223219427460745918836196556789745048858236422053008607834392573508429214151552988700295157471168234310127845572043497091879595628969067067460567842921764752464650557516008302881286565288313400749712609217341504346395624929417284930385082984773997426168668190106977505214766440343829528876828113584007451894892977216849718493532212692873501372065285359254572792919979389337613714171642740401705168108990608262420939589962865823465808240967459012760299908685301959034211637203129759975092112306044697246767410485959539195268120656381345696450132386202880669250366548659238061836764440328518066513228535332993651642048792805940195600533423569857261219754089891280812115194859132496553515123239378794856229956270147654417556221740337459663876684976805841250308690076735632277509352823120884943554622052539738176850995347881570994139685319290367147934665651592996485866321204494990338061329467576768143041960588836665535219420428912353281980162549813526964440113315600683973279555406033223256530366583174381856746286907808700675668137657687939661274958862966145033315723175135310088569254003343508070190052760984234898965488576088702223935760906456859363957255617917668192239671586021947052828950580703238021583391708598600091833936539229382147441309259218343191660197196146876809070875816208315702937780081587061010183755110480273615375943734178725814546369892386407455562160978605815034961892043260895722879896901516381989183487006544730609049833458091795987700198141026540990374522036675230748572510512529374633348000503030128589593380491531213935396737941685231592106720621979933177910857862936727427333216115207259437234565095183441349258050200610786031302754623630833602120191562598311286455628124977302226746890391001201429691316136122841359382771270704453225713891395166655328687677596523297786887679560230437039907444664381219614296152176908766376238779357001551017084371807989043784986715546763299290386075396267001903622101410209198485407787675454951750396331662649795447849292729595448185442173532323612332814709083834582468947970346112345522806840857447703759809343609687202616498071344692238235087665674481944778442777855283250302479960875981730590057383107080295011816134646256074274190666468987640902536270490114589772923505603502830053354721270189784897477720189261967183520354230633367735534030234784924692440099724307788081002695458333839905859620705748914659118603151958905913026519956921523285368125137702414988476221619705707599254209837684362056903448788596569919750481634400565161321561527483149993682170505513155195466615684083488407197059909644286022706544515805840548709519915900045097877179108199659292945082498451125234759487735719802516062005453809259781912890318580221742846237790218742310116002797904424392971884388559692477158255663809820425141349155300889618702672955993731064649219506045554788679614264739425024150249945538979799685021018806887947457746561090130930212340072599060337455234068957120918052241174599296059320369782409390767586811599903861978144063351957361866353614863962497200371696936062342653278229407346727348992552163360096620823095671125261834831914451836520862036470407013253558826053876995080075900477004633498614192941170263217212451862169004754945789708750333070162113077414947549007979154402106377054873425607262846564207626540962960108728582741600715114872721368668715813102821999811516585557414806659237766087688972176440378172344243082435707117745152660377400193534805341220848608500258552782492176395572591984344365312660690314931049485381029316024824802441409651480577519660288316843616454114409638048640440690104600561538632109338891810693078805784974681743578771501154640546343471355019088514904166066692955515480017414829829824829753066214930969979477256642277869147712675830789247377798275887485737117308465895414513963730035672482887927639191537470186341444745884350966812812851319327748421063957256245397021885660821408231869713385072315336980375719981363146694659424312879723300982077575349073345059778015476385216261546724033457487932307297021856233782428995512853473948354025827563656452138027385435044858875088393896271732434636501921153469377571982405155389921192928975207166925297624672944149926438915749491686840279785903519003987605401543398588422520876546783690954075322703766367831973642576185787325945268526197420364700410667155743583921136790686278413403016312280527809779930523220159219505712155453465234754926354780678464492250497912253183466653058892622810208317369757969888550694448512328184540441496594623767967143458519522787247742353809845303704041706054117628249857731476451199112151792824865448333896729929053646040019004697252613136589102417727552034286287983495962922630460389043109229177560543737521348328529210648015052456607044105495788087431334584468455085079379213391186867315258700862610442498940546947449327635949748226610125418469275728197875232491109200406879959509215319972558393758709018992951305337994782102222369571209398846987193955321199177017268204984357323845204532474248424987218977328992785912907574999210292108218016599306551293795031754223288577039150313331628601248422423079339652283032725973000527060025699288312955051408325707433222814282748224810889421085228969871614257324689235715787043253486606537071552021935686212657621857244836234430915990389921872846154521422187153561318782229724845570931215380441707836042018240484034133159160303374000926197101887425505069936062638296761925363649393085394480545125621740372872224046042522056371032453275292156985186909237030085659926691440319973170152285254364284209676471639744073852828014106837192565386816690318137367178701642593526984777915100393305165194211835077665065679049552989949591474003556815310531475657706566834215616723420010982758073423004449265011012565458009120921569357461948261882921752411117887849066876209679733085086216909851089543218003813252710881336435695122075550099890938655811199243349502382113987910630291588362472563309515106631633614670520293986994065817759301096004631422767650799177472661972355221713472596132724150126262227862428968792744253288990549408754835511036295110577743869276170476418695177795842733807844958593053850024667937334148391984784439749166760790467632283828879217810995732808609367757996805819819700446087278289247269280266402130984465263320203227775065398222304397010062795067674501933638268975048147512425771954441279766457780694451873012843419804656116211390132304499676595250107730512712519931476869662220273156338347296608029747828516329002125155432448485881906375114672405839460216380877797822083963781359751294505628771346039026210771927739718760561858117909148008140760491041238317056735774755838736285765280285945191067209874715604417315041731205966403862258310310276113863580693768754948815608046047395572870554285532994859303433598540394527588865226524533998340958489321052849915092587201677011213853646359782242740070949128962317743631842966726834884288126892022492239556268039077353077160007152245421676294739144559029404274682681157091765129087492518449852929438958344437117591700930371978676262267648031611169570995665095881888303605385102989570887089785567659160821825227247994803281471961521050530625734885489205796789803586259797471516351277492654337549289471238033954675398326740318137568404657626355062341176419717639480195091138805251626797720694072070519834517162440544867493908363678655718015869605413262810744152312608015419432070193707314256559256967955746653277890892998637134100621775605694920195334692336759819744119087318434693743324250143244680943058883638279967930927955542228191988887197088151747618639336422591932684847299787880609940616766386933689989282833016193446267035454438136316479727086344401338404730428326543139267610558594623839119550757583378451900955345641497468465871204601310057028367288917055392463649659848272887000955869154509580157774665953981579966512081103911230020665596434071428883370737725195464305471471252130629972453480109978735356427125757416827498334532210250370663520852035743121316759040717535554766069372182088341300020631078781472453922287639427969745719383905714529531230319594500938744129563843274620438489910568218119876312785292185679585816946696225174457520480985462746962552855101678730261641098429290816192674331896783231012534927397242308834164964714058546843768787519316142469121988740314835992273754915344213429782954307392475114238010635670123117046191639396249883720814643329463759102082706650261572664145180317946089736257326175026686645021906208047654083192098205392651863617119549676963343441753544352755555098443664591281957092635133242443462031015438891042622318040223356447827704740584700348097322294956353979289945583013459553512362925912391703662608034160076461937280103613494068885343124970515573628241221182228563726000552701623080186842194156882269726802054788562910406164206737025587214829791652374660858804834594501275576661116195985089925193711606209292419334635493788592374905238649165998586246682960266012816160933495497192343788102066716702611915479497145089416462842900637414762990506134285046547999169494728508048568841878205049949826834786106522147844342009620268776405658335472282765834152115180586048145827509046221433828932910803423339382115679522173467682128011259676672329436633928599994634162277660558724058337877204003669421559296156974572904788486345554246617788201207225332422041224096634113159743138235005066386095553758248884823718887989479984295429172225222094282994922090019160569468202620339439859140315820400557263012197091969834219495707159240271998230817277366805998083426688810417442819200352157209286816285553047448783645260732128951673083233924782774902379030089841140464648395219953478492480685156602175434374417150702735514584045106996558953351969227032767568342001917260078441551065189160346377656895894229632666510908323160775405947896580694749456566427231899058976098649661917398719493178573219911607285793909913911003856175217352008370317844038587706775050899513186728227459463192238891226996896978100033826263841659672848412338660025332196044246723119873921792390771851421099642047241668030291653279011888633009081514749678981226212511698980284249474727747981719140523322969066813918206965234650358866409337479443145739939190488278088522395975797792498532985450337889351055820212290234406799861646707286651609231335001802481375673740570002519068716816338150552647309226475038132745601775482601440945743881988785078990382561895649596145433093164607808597708777468390619238755443825666436426057036631951240581874539511162634916992586038404676810511958404131719587110135812709302469187675937504248602276810219420546928009571747644609219984381276239203454680133125358587844159616074081114212441045579024689437167012518822806456499541751109492077005625078170392826903792913722365505424811379321509185942519627714255342968037503259331992014227030888767406933853180467366633978665144629407336976910309453391215376016446166544189160734690647451594620759646229129959987227253633838532573108512599741361319116568551371414840875734568181404711540320609848643587833328936732029481964864550305009474809068974377288914564423895677024494713976199410527205819999756176714931524973020705422069539617808545930496167742435959950379463953133226148832632872236160753468390664049143808492900198642640452776077054691334460969007472747833044804420100851508667924482012340578743113069874207757481266375697914220232563758582909790880568042107684274163624051292092935331656514861518905210801123329130259531373663015283018965913089223080157807150660897294057223686890936278089867173071677402108726341005814102504400974769806523463359414982139072976521989620060631125917187189367035371762996132154378628939567179229855601928872982804444648704621668398054637296423080919659504961610509361281260495607995446694489870621048847125314918990965501960257733556815300420793545818915180822414481839990444480808729028548245480005137873301377156349298803712689536964921438054687446485621138868542811514439456511979384085856727699083449873200014267437119893713244341177910540523595816605875343423535564730792867670971393077539050978054096019434433724828807355902639695590244960530334375344881830779644273979982506938455175160441909791594838787723878697587970964547922190576241124746395186416851722416398576639526262801843656471572903059429846364045799850194098296448041100066069528226545646566721131400855493387423400584690677583789906779559930563125669818054461795062524750779862720204475306349076863086119669299524849244814054662353018185572828589224443939277280988663201873059318928506407262918999453577907173911360633183276359265995251245538178748645671508890852119013830423352234273193933130713839917510677358770390363773568036511068850819327591545030942556049779925598056824809397269237613685140651781829276903389094589960546006485003858864678031943330459366462974171291924516120361611125923337529671246599304763568236372479019532257586478509589126541890734918954579236612743222551066374140460737391245984043353623224460711812905919490406134047161134392941633877474282590962417051688748630100308231870646383429743759182527279062627079265224048354350887082538329753397718526957180903662201669446057503368027194834134315058680584486351419869540067038979968319348071250765329350269471427687383984654908880073753835411371313371954888272980196675768507244163047036897528923230628468071444956063118168622912606464444598216745772243783036060699290096902601277574125062416968421984236336524817530590778813240233483178813838479501962225751112259603073461304662387111739271460279132858656839459544498419387828110051996633125157816318361562176372908998660267703372009904509289316751755159525609826164811218152411893031041452184433844441813701492593652748013828928018799444853287765258670116608249880384523481799735364161280951887416002504416224646602911115196310932444812202511434003759596858636668178001779849602997605168568487957858851040022852585284586734692513076885190911185967643849229477891616328486829563774244217773708874656870389484304519565455972668691367339533342384543710882755289697915599092037543806448377818139966757165865300677988661902813088784030900669768778550802845848403545608918104175560756204274035347505337357600737574528535532757717021687719940063790723222971552127052771560046479360074658353443246094700063760985768622985980514331150657924143639639337579257129245474266232385398397691183200450970206896653756666253570229180956362646169932877424144297809508812755154720120060051894043836750766732273759892051592909925858573219172465509618896758495066966878151105299531659749280328254849410144468235958846116476111178694710212867508199623477727509223433884703723004138363923940570304285916239487310126039836532595070658059569238627067714211923452524471250532288192659604950372448276020035602361350922479140261141702084962069296543406926988611052311088759138865419073655222494440136279944988835460105346081410101456415063021811910717054303290657958226341589865441182280429162913209960210172469080828519268520272763530776542496075486550465149898844061828683622363020162841139401144540321576568093031265484045448478210875605661944356306866732301100881926945541383054564658611088275237107687852764234700729950469829567824247504289792270185371471673875689239189131623197294167143432888139684658473531781919849966058444845609443790280243981281943210728717619446511307537597047304538987427537488278901155913951351008513937255055462714089511856684246549538231160248978359366589185359784939914826612479892846266465405362976439034541296948959351170916792675498860034644719837269045016816462373230889036670041168067421139552469338672192615271136852512717114895828749299655984534320937080998859962455636934221267906565063768590649510619713039734331940347307200535021834936892976245193843971208369026014929342950007007606629357796153264200286091798553388261131040106147735830333326794759900392366155691810093990596562726177213168260829195863321461071537741220716357482456285687066856898223808095418887722469244598970984673182680521063527411832292387421262739309087737020200267786176773723945691096574356306648768204226235503367464525067831732938844346354309768298533699145397752439074202587857597802038826766404111190341816026833668797534855255939999920747249709442434569759086512313342536440824095861811627428154979170157607317959787095065439697887213096439178216458334495326091591493745047327471735958335910561278578457657841890598422603796819009310899653969139146530404291501237735507053849733227540292667180009875936351126226128288729485872282476404940521034793137584206542750860535671753367410950483287604134296607303059824877354168984238440509356628128465507571466402374908537315348676046306803830096413810836435158016317249636084994176956959020843432098210935435632692789605032455003437848542691387241690732905951844716770653865887450844368968156778601392814919096451730863300931310162995181307926654098114588887821673327357031355119355403793721437030222048975380072925010191596275775966431803827882350534062669078883006874142207630809579843155068748391438631505230749829710286625618324192036623977826499397246882970913412292889871134223746897746277203999746862634046994592105344366110303681832229880348857725558732995041205181396833412096242294064811876868880151388194795990152335995032211825916891052550791179168891458788537853854762392709220184858871902813865162948478194557721994677306934192624340831723241111006580564519829948940857329828176853618779198515618511248766166970670926319784661033447568095127990688001234911443913680706430523093112239064862601032636100087085449064856790195583927832580820450162345117115100919163595779092758753493206700673806078986698977902567358489374060537492446268981401238501502741227611477785836521379511915396669654446645784210463828721119869414518262781842275541797484233837526140006273584320029737131960857499895664103740566019721031481281265049950850397324454699764425062498708565484901810318331930592095842573341501987615408619298436706272498952456536197264311522718801364734307303236289080934262961335167178746380545877816525761198699118776523436045035972776544432867298638101283431221355297372479078934993171790955000020838312039666625660069424588406953137499604435315906030089659471548879420360715319306888889184350833170398225898923611438959051362042379912943149307720840386602242459327641678934133956332775609096968218837858093750137847423284323005756408230975382047868052845620235874701903061456511375918822814914664324731909497810135375845354694952048853752614902992355054021983395102141354473557739870958687355697358801436838796351795388702548966430248758734122183383053443443070745791487765391550789038560924882751649107805598515233874694413622177146840809116601219560063943399727559721587353849610208575249565849081532147862731767900008241431037513807539510181839567488015415332126231359976063633432249940921328390848943967916660474859768394264442955767269940522194515451444014749747808765543293074084406213431356484777145552264596469108029894400197022198886869087973652455751174928073142452333278309231824638741310371880440221426901166147678706904113859205732446558702799972018552184111869179462419965442107296825779610361901942044660136350851520517473959279665065287741711928583632422867919037629809064640635833925043333288783275932002621723778001875531349582353871648684068857984479267856223534026354826183190124607014278494757736081195841424236108433526296933499410414835078094881487526589567439016635436856609607285731137808629812350301366964394839524547750252187807016084026235890193876085263108172216434336865560909298209793794736734619445480834447076691525078831505006301070456576970046633317415223500007902964764871325585306993611436902588132361700493652638549845482908261748354732033949558848879151808535566955372051284043432845626696996235263723188387993850907562578698547096138685182833537407026312307291535825498269362502519345897016477273505215300696855532838059625543554197161284100116692001488549088597720984690121536917092331918535873246130796521580448267723645469495178454941682009590323671756468643226987275939893929693458101865042603428635652763630867896435907904123736254145412176722710713046699580826195701194498513001883407515693063006851022887282565020418807312482148940344507552011934403129299595915920988245580552717051330982462205392063226603295974351279396172776795881641547630786724941492626816409996901099657160983749232068127064179180506252681569949097023291147253899090356374639063604539227658687980015438554168540261456215837747895424880243390493633707666178415308230331348279805477072347110534659744069330423900962009865593946091880111753243493785525147330449687135506060993326098129718554471056490338695948774728683466883830551812687580733851653933322573722086101980006271295126815029268550857799188240670434328181872904885780962598971822388254238313838276407939154706894925189270482548334247721433843566757698947917317283849957105736702870283312937501938371589523968102990013651517026464972423617993274086087071460169810622849540040426040581299869088628439326432696401308305494536604957345886914486034592057392567941819958271367417492735977291386165864467139914176490154526346467062661748753002267121535346108140368384462393944102119616676278958647964674907878549068303000421254401947817114857201296400164402148885517563436417388625289821147404122137238548098597067511669576479430947579037221882798518957182663143035871801252951490955565196841501580364620607582811577556445430075035555456830555122447052825484636041559580694456576902355515842997049985048658998549128565354804409686313107920624277518935365371542305001132956454887457655729649231082664565481443966496607475190752775236343760486495307931558058176581317534356905253471429666377283542199745665751463286740367400225816726629327124292173006011350990855447584211462842315712452391486385102505479429108304857896445740713683221206480379291094606466958409885603833141976762789259268853551192822913349847444812695611704988661612038601502757293333210775987424303734606687951004180959403490288535490218496847327248255036496278778090141605962493722530882072499603723016602291013369665435818779122002344962930514077400108537304421820807365949512793281982530129843656920642816790168651498179888527836477699579993309228700086257149652041405860132974812239129811373186154898499795501853900081992786604553191569881197633215694441610574611946018122000305535972554454064752071948663499298558610986310750039384854143195463741204505480855786022843347899674020901018011166816400436336580642637127784286509828494663306239722798510860674422190197682733241359140717438083320233342057319673915648290848799940205352122499269258452053677427977797053612982308167030343049067747103453961459233216836444891615212511762005724218470958536301247088070286446110271115399298936517120646353524426529618757714514350765180428569887667440242354008059169594290746449427312019253221216803045288795792469794678359312157263521126534069756124166389038977406515055585890785533463945530878840039223615896154726105227667747221683984371204994948711774116316385584634269167460672833602460596733653728552792539567078925510114186696138676514180490073149398875832699658723777135855106822892824460268208937371324900101209762840870717611009089949153850314701776382573609991814004050886386900742052827529445538215891739531980377590812376729955222496786051573937820942918857235318246788926214075994439559185400397269555865788292312483853179363033498619103207876157569508356641093276646566261641906023622662714648145712499067577604453017651261371236405547555467713300897832708280755322820912881083524238128058514217312912531584325794682700905990146974529481800276515415276584758208483130209086928844769448077312969575590823611466175607844493510201110527795832878879391357156775752434956998119756614899324090573900387630957850315209569634925605025561822626086165952580527468079760338753346733065205886927771690685719114442556454522092423393533493829732847783281093596186810010911905629194800230853244773747573247387623046928126620623586361612600835848938778609442202756938276441768221995708088721160669363834122616178432068560338812008217540663839889708837434619433995910921911883732335682622676331600142723672999829696369122680322633645559583676491476764684889851963179645082277351008236875022160948635791435346554294134450121211187238339883876227886724911604137962605197498496129988497173714829972448438771519368920567653859255971837627529002660256325855002683911760215438509089073858915146354705593467586217763052517493054301965028665120200443509993322954643279223482050059685949598825779241195004159888214632943841566713820450927407725123548778560051278604205176632618515361087715171416845577859146133454760666911982823727700563866535164685868646887599884031973932965555261822781250652756807713895962562436025802043880461020829054934360480243086600902142267037846459463339824857593840046455969244291609333938792586244975425451899378218802713085569118674975628234876859336080248308507723003035603180960437690701637712198261299276090103667808197968113233305375676070675408949939859693545311800325801092555092934280173035551410917894384508853440371181599007659366406706348917138347500898625855689211245484183730786217146817492416940394326429398161625531020816587974660121972968593876839712560222828792004122632298857798984183149887183103197346076366838734206685145087753284976280065184567608467736138601383706713324542315217023624956299145717642945967228302719083954263792853534252444863842637343037042194177664673942746015821023653863416690025538902233228937543950741947353980440005463714911999660417643223442868507330615501750900983347678473101713744369348592566797740458337978773411537555700871500119490791054866569672012865275601107145504905206211187134651578673149880439329453058852846112566557138781939067979724632745953326581706312747265179105354026300488691484931832667610503810053581377342363279244764766976683146342631124732301449384405979676053567511000894576566895389871748974743946175804632084540889984693607022942798181086345505622970128012703861741279680506226939168381434720115331817614153030966998866128299189203920636715341618067707817673717508411655812188224999728362500662300502833287254195278217090874505950974069148305748934098215985598943314279196289840262318443332250902737012920821950514147180260178978477195327278911350736022818665520336305757442889190802491717068801354395680558115169845192548931213665651099166043398834182508120884084659188732432080376904379553361817349673712946389156727388840679020365930039224849649039940537864947757205058068123661742975745873249884503250164539631471268885974976108824116443613850403008232777359523742613965518216225264998236467569433070324441145042225073238017180779102077740939789578220637964711692805373086486897466140274817850786142978221274863157864057754741857083161592605636926287553738434434780931287183918787369694158630072928404096733653837317569475883499151637492252227822885733810121816753199356129055707473291697656729369492982750246882352400330136294233409393439710785423849097782155600516753793513079684240340217536488392868878065676457697719378460684127361003030437272294303256609458375278890414142320126677031054807095098327985295119470508014458505380124801107913789535171121069787239903582548753704194601857862673146464949681334816346339328521024945407754148152939828903001412902681770174139804627212343824511051098490745231033229131757013128145751052025778669808102264675010479540293123160446259159412346943252822620026954345536278641353322003924782388127801714189222545384412628511930287848522820335033772281822991647459009258121090467154312704159035969552951771904779545405917676290603381589325967365939296204670531563188819246765875927852765133378821823339391601103665236029774652447144033336181049071081560415181551394198608367696353077552666787747439487713204281779423671157349817756290969988262429174382862998991347170128562768073974663106166602283508922074041968405048611316954924276455938462730859259584109065360791682139837883861740220366555685059160667551887183061467663370298330675536038881079641337123606485841062715234909165065777167822305678047936435527768715662631457057040098641986964599371724781518965974998292525416349310240527359923770362030478701376580765683288706408990295426162555345479703442694343582444575895229753879745282613515826521526871979497836981042019398185335074066845480276657246355530807619692105406276290405561800811590983853325616108409304162128189081970155491641626955226090181748919636241399581194195861543772962599101400532727330851851729459819948549539154196182113493993035813739224310039831313403419641428890941079613532499314392765931713174032229462654580070756667645791280971361700582060624859172440997103135958900224516817924744137166103601672063053032806834483603012438686222133714234532599758737653374442268824233161283207606829596187986770883928708624007214874316217191442887474618167479400904521373691837439810492305931637615641499879111947922011273614860722876745637463837008294420496021102864403886640870604166149625960732125426879872438214204700023347962281179883840141254992036221970953470902942725981698537657100101026494716826756721154198230970429776672090777293803060102409971067448637466378771570653654226255489796392364738450114980457830246895499117453156117906641669170373823290423988441312495068197745806235857431514951419070541496080481172322167796026514172197823460026727002339280557497537851234855538926855299447057825663939811654214617478501813393371814524506485505077099847035370059990622619700596098496983773457661845446539410120535321292661589737762349086769898435230338673743654126824375730310836213202783484655758212639228519857547691088466809527696361671394251424946784338378431746524470291006422425168895287088872249015356272873261655585935710879766492213802219563682908580003123290989120171344877924923971109978600136171157255734809078139591090960099122282391244793778490040970309796358251507970893051292808912202585593071052792861214064469455753320390377455717196263087457677568451156963698148255609992694837840026328965208176556810404610149140842215502278807771832562954092223056028047668889671293489996557730453617600114214412746025575621494680928991965759088490898271600694645063900185674817978664986818240669106578910488886284070329771244768570294289286727536691583788913057204237978649547977973902089443250347761590391078201023893841633111728685128822575583913191729042065817851936252670192904724802475676940093281685974749034648049091212643406592627676611228326097432232854358120748661971622514565611513180215611490588378894403496352278224450605712585048817757862356171556682382345159078458428778980837683792913520593973594192938488384896934243162096312016415313477590655145250888511261125327038625496689716539989233376926120014683363553151058231541946817715879444945039645879147681525149102132972100707073289151464991579963447049763104304822493812909027385801418676814171160337587616047731161906899573836441959595787842471985460594846673935018978195737202630872131841334617983803525549618163450594508625813653435007732818102523497713613994527488389852198465199373260714602525207158340729494289999457739146485562692123440366877357678250083462088859587792469318874694526696171383882843316279500986469558484231536341699526275058894270769495393984254995997259352164010834746719485781635131472813638127303113930741646918919074261503562743131782033204165613142357994084428626132986268085274384180229843165272107710756877236915544847784883698085079906783930758160587897385140838417790607095812434858255063673008547085593659108798310204738022103166742592261405482508382894545104323094418398331003440281199730788098156118889959270530650119370770628070761379611634415940249924310507415345468295455487168664071110418502891056050452824217353578332505419085425428703994805947333320499439173822412235265299124941820108085424691546961104879751554622196729507946895234443594159646580561205577311908710829570765958304564064819790989049691355830652992645499651349417401607922627763540805613403560834125717895284657207350246963613749329647518923140519676836538567623216449102216460092092356065754308175103412473727906928920979507751471183735715778524468244119215370636720023339795094545038149338627861587984698473837723237574392297473798235171510601341464159490067242231159944649148615169141617868342716380527556261833284126558211455090348896180761394944013164616100766091860424769013590583047511373001504037088117307409276759361378421547882548313731028177408771107381279069012227472948561018564798849927143743597373343203128664637350187419031619592787976016057940357599738520553860824411058568753443162554961675385766765765143627856462079270227151024462071239126534031639398721394398032585791681624351779538784963351389917269753400057398822969072832726307425647210857118162248361939490380843857841824190539037000921299425089017334712048715961106307838992809796189811676041071968474020836384309689235942045885691998959326467841663567371642505916205633477314850007385965360793046143077150190451655334287857139195719981518648049255802429327681316861978107894862260932316734072081324656351629954791937023470562439839438207905033745729132499464259159446649744133288055469538854463944045044801425097867266413414017629389998961564512939642633872037439035368740969220178636778539416181494686492596319331368718519607203997880928338075312780734381831739027979595855970574044037515022273089647426313654966864030203900313311722494013760676835351417050750996488482586482501095183998079837797256243715537958531587862702967236791000450358685779466558625005477033342268820078331036179637627884390678536899922516282544597585381596137964782151027017958874384125220080204391274351898859874198369959236044660150510007712953422997339703477938942323227654285724958166542943927757760375451644594724735587911874901345287315963204975293474656300573098779689342846843772754210496861216460588911444345654569574710972609862973443690227991303483129687821217178278877326896278227096921845752857482775933207671231583511062498303684907306291886960031178521656279574262288997767411816177900311755539448826335295349405777263292815358663992139327234786992264342669297573256030840719497720177683981607035894454456052360924857459592437726161628125456163595263936425542362758765465093795134374390146142072456314926415297929102228105552427477202042238571711900297213609182645005162553149060652604806445530326681983178119067003443054659128473415152759463094987887806227036412152609118893171358228982053585784273626558675205553453552861003166930998613295966824386995664635587495041229122434276670442374211137231001252723867810863307835066251731039375216064162993596812318303583434114771797894535248968490564574644766859385686869123540334744606969156829051371674975933233050865848600323578224943385113932490787756415670994539029586026619882615068432824801972503638949863298266550957913678023582301797367639462056454740423129692002352639127502945432201045230852168245470532740584859502409050106995992373817947483990621800343559532218947237460131248763422767073324342652841237030207587002901861379590254022231082785763751381999550367353608835567437415868623257190008028523142498091254899056830557939444455868727530741662903819533243680518892542672846129943791859327308203363667408920971137093455602348345234652826668450909110069703894851989080259721082134614142402922560197371938001194341754951518213992287195653227083253302754102969644168820444819600065752273015500293954082363747460171287486912311056318596736374460402279993727863152505474011570008335575795475818768629223662796012326688155722689858951454911462049958837968901944165048371454057707908111160831405464852041409497873821357907543176750254991834278456887644332691268061388566714881774063531258899810234577726900505373945501032375116220427115463259258550626073735476624963827074139414710940973137291126459963717114609332705829013489511898360234427075774710317190595491381113874252772631967322105727990129704469943157195301620963277966327124701200760231609515370550218505116547258975984607878626012799410121721742885061872145711136823697807146709689925880086288987792585460830916803352860207143657465725484768662243820611070527866075004581828754747242960964748557976286461278683372541150127937943930980411672484448631844206109216328908025973739354276148521350508247882826994415654918569403680895998664189445797891954403746509817967311793769666727431744709579821877138380081893566005991842591130457538511601859471761388774934187593700506713943431551075472607699660342296406708520626803157329358041112242110700329848716679928198034864031874588635304236940802622119295475662464032586918025179829844129626379054530454986021294563420864468275890322046434118056603117085968488270200284905073461915153305955459557395457597455786036142757802012852126745419514567024445939737887922117315156363288713132844091415292118138309433244189088046679027352399252533668553131741628375645443170039487494592691029522731914860010206443227120041829423585742098199262569358715953026109469539361041030789881140584293037469968750516984159410151803683183392505624791963054562151810739353564644979319882153944831391006861003806905563262820848104273690681238361201047021802931404925631504650793144977182255753000444160773188112032959939817363236597127206292430464915294267748167750158181168722472583498384809988791891662545212602823466715251171300703502029353490901604085116918960186718313258287507006364522893577791904739836636949257627984198767815843088630997214563424620994811635879853779884252205530380662207333077519372368787920223485842569404603580782409191604481914603154250090839461448219606200949145477123810608829389649257712323371221067449095007029040157316572863158340546712157786671750357027093310944609618199717271347184170836812729379108827527834632251898635774144208638286517124390712791023785902667838826011800424708215940169166161943368810440667018216969558635909674939590801561085927189262348431215144240672805400248626793262073496336628159597752635340524744168199804388646389003014133677973945283123994733003407902589195629637622424801469658299657689092660859933890466641206450878777671915491558433011880827621366710814318995780904201822362590191918298318624647680125588780470211394527986500911365747480053370797609188960721783503747845277466840003967062138011352414787267527923186199138879275169379554233423381642095876885579057207724915447718820029359236844547883527538922003723811159467692136144078138538598692950206342979356297680466502058629985358985833031801760894679380290394551519932277625899421788530204300273788136991993200555913968529503326183612227681669692743845999244558219587220996520180971850065190225420378543646300812340698022570752369675228829994632632352507822651045318529782104505950413261875128366299599023480459918339338220500965332287369810059728958070361213158851010621047455689751236396399580519537401170918056129710911099558786799035123966634074758726291533317115901392168111183797488903415296842532527971285420684878096558665806441728890505613901266830352775951734867502186213253426158807270472248995805978117091890247764001878150767277901649900865820382106910998748975867947240057919861476914487290317373798979737169833650752118421422657596558030703454641483224472743248953721172994089859170477110361495654859865879166209264316761271461953216507789820593013068072052679138298778230357296424167644594513712102003370683559899111145406791371719031170217316005030574648227242869254412222082242006440633205466637050546086487796253117851250494293941907365132357653289493869265423508277415684106744984425528948626402940626168901822442464041614739690381558716420683067424244588332921125548680683080198455862021067592370326091266465039171997375562097586564767976398393700238289967816117445582717429709926190820646172373269600833130955636832614944038645247228170298068532064206119450565381918129074651671518367800617433270514964272351049077897632273894079474558543188494254886382843684988176409865833675214558455401771173057709072176513976873776874909783146360896495583991602318273529013878673972972501215361135095706472814184446014652135404996612987803459937685582120674319258513363377931159107070795388671455065500468056572162986556520555218786132715136608380560511838494833425972931947530799252351472243998464037328403046661272949837844599997353754827227690192148868635694840300448161466289476074760517544853918136608601640149325339621854684367573668250213504433020782799949407979909259653936761220880398541729513766773007106228707946449041683007990554350823884876503675921272465988984225111316695546841560722625028575445887315214492860620967084355349838953186957165238835248093847348453748107204745315609464836181753109349436939854484842478340443710636444522712236287089713697078699988207601511074391837640550236641596451989155639652910000816806026900589528079989532501302112639591836301592974005584542241610070594118517939937312602861703724515027959184438243466856448719388818445506938421852301671270699996445534690109399080047390950500238655931938077027678212473605163921165312900465870360447545288787558192228395203656013727614940462520427401017827728017393796544238447488901151332761807288246601588260671623896290084019107416628648397527761770732241069822886799512445989445445838832899217013509851176799943500961043429668842798086732815820191531467625334383454589286295456414285991641529909830378789962357787355365039207718253769775565826246896940306241252875748391468541583163036951926652283687708756470653551323580121777846884713907007507269336532703852741435441035672976708475982674400413736053035682586456227566875115939835317649289448572724858537573408685500028066581717519991863483014710468660512715075815917232818604038348504009972879979965428210678799305033516583755070361395696197040365411416584497218085938316963694345313360197512286656547150959123106071300049413154470764656087262636789390959048556688253970762780232086433894048054499351285631136048985515328679330674582327578720480390216038046619832047949579008902230489437076866706509962122211642676902974876127789210720920458048494218625303181942384099380706719859884708792148368601341525046474534507138010930798366796753044201328005004720684837672458715270754682595739099542878180392459754044196549881215927149320216035815109274006701353075273776469295385663519494256582335158923658978327060249647080342167151886798516065050984252617512934782761439973741654223565509975836789936162371602775663756511629389439619901160768939773761777749033584960816131086802869489853074261644303161721689003113212193882838556112579109155198575363527491832802316624967913118444426711569669840284192119841016282230346431811895413095738621712680463044910550138960142782729445601116166572636051683599820687754263478233452129949976859057173275000164424757461921798697168300855803650051407772038030041737472907955801077612372219523610699125525554085248167023473750313942690604104484819218806689359988051091513885776916543634246856856304748156530769794846987040415615712365914043081554043847959419684895128287338316468614208253597673263055204585658220342916161152928581200244024362373463201086390829202177141303451212350088542763637227229098572378779139741737716521918480757544584314584076310287360516849246185397162018097480174050242903075796858759884082884724193866710655373801952908683396437626962524129026317362340397306055316705930566336643712783007609336391829759022372018687388988379572066005160507213605956781586616146522294665947678126883048639618677280025209990946543684999802317413895099040900725697212456295842433861709694355839070681452400871032064553411444154006225247672649876504731641193569327403122059694749831492686639495945663160581476928057706425192033696793438495968627413143924542137374880362088738848964386343163660885155082471696381598665500554969978116895254776378691663894415949293603256061676419722362377733662584318902512987810153840425667335702169371053635038527567379238531772250870247156664342369830608707885154745003364701569879676462545508618292406146414923623780371562149260841713497472138218013236219663662876350481286672733540315108096116831641623827895853462223482815270932303868874677327277338868582899888207524909095082090247718352938995389262413380131665232571873419093643728874943135812973427081433198918760953187501990792107825208451880506463818030760003534573981377725538458623991346176211081965547028661230461247487597044989754536049164014533453024389894889401018233760569771045937919536511191597497674157031462085818815236274133284838881397476013589119127674574444542840872287857316539211274592070813200836723763341198307390181607459743333737144112616890740341254963448949278048190496002520371073801399333237835322568177217761774758681732679843481732863607160070910787824650451336970004390719964236365786894985696196453559510828314538764881597237895483780897233257437013914542482519972671341812060186301488766159276918656424964215695922950102815648186413887831815787622487321163222941384246037621215302649849269230876290666224672546497198642606006288522111235527954291224989777416061258344911651515237014141127053287975316469485718368826905296429113523216771526327517158807060797122198031311310819119574674845094386775303935813666174759907261669035696190920913195827865803990927868896545940179442056936907453100722393931232262367829451531656431164702841774243357070316897287540234136448175510910213134134534829668891339869593233838994052653170727697729782341088720719872980808181332906548777805605784086344139152942739599362328973174332641967940363429011051500477243133478767006128778160497557532019003181819821919948760139519103594065216388413906112747707842028262474433920383608924580782407964399982110682856639089890973838118823985941496681677281746497730921125376453690364469114555839030816687775407421055278170319478436659084474406174339239682003356932245413988639343000709747361674486722667189897384210049245525588998548182661148863266033739391777616585399863151312275752743964883332510853504396484664268318204591603678007963880292122808474394946725343747823953310349485297084145969207955294924577035840189076413939247640049435387464030574083258251742903624683920667438922205231826140468808612401895022341443836507471268890893290537903615817440809588846899794292566444044221079827034723709551702730502107784799764961102579473583641456439314275343672735837301146431511693835395978786107005866665080187232616225146903239583801542804544271545365467889123050960367122923123866231336203425558199246484034563567373847847317005688628363568709898273499709223405688423208143479039115057070849452371422191631529784031262407218400371416417175138453745059049386815500767944619644632211586348067057297470393414352812274126587130681928099498747231468809019810335345719484903613206381154195456765988711392184550020726278113195127838731625932722806867981750156691561804761571426091232100911764894676677691582632202386312783651252534529791499679078988679743479982695602752160091296172567622712977633426018888682672528648688118714766939100536437235004073254255312350242091875896192821919106612705566542679140893274076839393541007960924403858109472422173790308510273791389766821058196771234601771512215633482723614886279867563733410945514489874728579481430010628888512611015556055181990303979813598523673321322583305496243865927777354940302192966843716286788043071020806275497059970527575218770041812349305107285783727795489663657259059878689147338308756314846990576322544453320484340661467843232300640889002274017460120368978663872357374832112493495352474510206280420484658527439944725762537652207475318864936670270333114910416692718064287886163292234473591172596501975844950876758502214619083945061982197631391074059664042685571750632628230890055689698097099116523140333670741567161648606764118146979326800186098619725711766742100782468953673858939627744659555938932795189415486754599607588072673569936659319700243972301178033955127360549188519380242335150118736984193260112181410650193519913012950945402109512963752404820545080211713880424201106118452975672229194120776111129120899203856280617652283752607033549152226180456555860201427591760161792733946421634388239871952426033829028227160702001870817020488695840101738385770108904626997800356182745420387911562913902402137038193224194973204033237271866319901269669111236405257551293002937382982876948764632208582985372995716613568004930466550650879462793601527139160142577660540749006664934588806913363374868030888351032557653009981699877595789404482250968218684369709909660260132310606059444871461067295654269850480382170531563098891756444597622137708904132991499256564040219859653454867337679219391523946859605143084249541982023267170887092231286541975062501056098459542260019296343529848538522731336064761177018816672062322964348366578728473170673350386925409593861470077934656869470368958146532863842355821642859293918743405149018591300874828704859694865864984404593086550533528519940658972636532809801449009521174945205427732794096151687352185276534473933623199392759383856705244563687521175495031113414395650045802108955639798807464486751780689761403187988703912886606888920257557142522177895335538417801722674239677421239798929858407331447789259813707682812967005616826565494757802143109600990858221767798033036468951104611394145930105958833742685677902255646160568477612684730744043884231116780664482948168403761476142475819683993465668345367784720365889886087374230862157780808536060930277033642040703854559110716130011956849473564428800633606208914394684779141472982223902733287655879216386063059253520187737970792045625693059210898796638147124027926166096770754245128743295901644742985694195963376581872936823323763482938646439375519643112587388479739067173586398912140205182614640635554597383585269869260239112967293216607562874488177610413637508790787041862665256106936789849676122326344114734897125157345744056524649223191375878410499706928451195526653435491846053367028941258578978548484995296337918935167265066110744894717757443997243513976032600257819390281503892321115953687052817688339498564057363383583762706044074502484296145933391424121787411212990715933524892467519006101580615459582373397585471577907447861182573246199526273446646060452014265156189052729581590912797786366617398090531840278012127683334662816589365658410691487216236706842193890120539648372781946251511044190822213669821594255038285361312687607524165108980879969043467646153214114861341670668735693235325161649163045294231167155182905725928564117545171911966489559707326280979250019336870688559655512793309785444748632494614635660362362129390153580587607767519645403230556175731173875317462309994698991816248667296474652480709693427263179307247525277762536726147850153582902509692543846852119290905390937179262463656755017459762645228948448749684323162749368807400632126818122938090377105348696794412591723547569639258953026254115806409260559362707810363555088583124430112067417931514059669162782591913204718076158073339165121165827875451103488668498618140949760689238009392993175195826835865888991672694660913894576460080484150517741854330984051057608154091171792586829893594667382619927488259593327621719311133153653483336016123567248733015826096234399856025243273362980206669550644727099738962660504666797032514801536800159101072647322953096454495830424414449426349556805688384453756627955988992313436966330177778491568659034471290775216545869074398357545407033713722108440140280388805273934413501754298373584712311342269397391199142491997919838277878520862351271836336297610700658995983218745752068008176923767996045401156917671209865923445134297741929417934669780716917686725498944895397410795330864602074481847033519061380614037514293430540386046003761887446954674051973572823236782552246493525041678351818061411495575617131315523723444290551927741526404955309125092161114469738563860852031677221692174129676895470594675874320200064004082707604927642908637600578311528380815424425874932048099240227157185766408577675229254335321409693160789459870017055904741685408878725269914009665468062958611764706771351213563697478225620542811644584905145042993139299554514123992116397182873885396680566738794681307707516073873857890316727561975860859447701837481962023739200081936880997641474156067869703506691658219416717731536479111061191865760860071362330410106289192234489519793736553554352382011591601543271571067946255555479233367989793082161885519690791964976532113361217704066912354551048281252614466458384984631409714775551953244153980301448531091757500377096236335233245398320224887471132354961740688762596743722105698160169240386926533708848569052274482377042692384466180330102723978819250475737843308612568301358981171598286552619908686213247420053461421101516132682420693493862851533033719713971830451875892571951456307933470310062222571028213715149103275764502741011750371003664459324117603882139288930695954356216512593236823563806446747106652574051299660741470715867484915516324152937912809146094622673951740083547592386920365591181595637073518897679944853477700545208996715120149468906288493919457605728197427794578853906971072226823812004087733169514574229984901331466011595780013255250566670376346211946719400724160050727053725361604587769834110356915013262032908676258487365581162986025236898656658756587746571006187975946271055615498233216757659744737719642667062931123594559090561914265447811708171443287683022988169466886327667241396283296796116506927456609157360756545010690077609412543633119144947401891084168527263601016808182551561562515481904758284527583537201763459547349169309202359423624286463795124935366905356461779820317564708183347359655135700911660864038736799877525774800406118944746040918398484308817930078904186023075302970557341839046703271867223644472544927204093110909042483540375325427298494979516945419248800802126954994029453287812617758709488970570898728694820314083936160523857201125767882751405064275122500628200147970108286538066216797823395350857287763092872002835551302760932761869089566921171255002752354477800399560173386617943500819442086348014599948280127082396999126720878119906668564919103653100867966243646729755372572572476415275708119283089258674184621209201270450726683075985934849876430876041149025350909993153401673182343978429413663742857948901802130422740465576309015073093698673002120143859419828655290738265109958901914409542871338355263231643953633889680483429060899916787063619299710909649660413921440540282336786367182792665340951909798520321133321047216608993497647854176345884324177227994295627241982306502645717370759938062443035326760258000061930074474895917786502650109029129077345744933978710469969906530887198612066302617858853934566154312194215416539245073962488849305204675901237287936108609468709465628396750277948962257740083763074349582682079183512113470951953441713710662500459521129917409262326024308701201794293300177045149107670943016153450320126646517485908214397883789316653861555276745961948580941104235314526434828477039111408840253024317455196710986228875147147345146874026829946419470282000229296090850265063574510756244464737835013177457905321099880993632095633740535023805136332063873822982384988580309936697372139788455898458292091089329907318524759581897679114263707941750691395583863541393980518717465197844106434033718573993073027463001023206158916790805114561036620826545919363155510662352240666161463750171326727058707892984928100884474931146945815661396096481497040212930107863427945319747753746641802254818146556414095700122251830324402239583967973640318880330581686027915844369985034899002376088644091156642276967674290739067106315911399611143628217748050231443611576859144353647216083318772993551427787442828560528327544979619451100525677716764337011338377095439783771013294680746750811343392721331082238175642276705702403674621868668139530633509174158012395441547699464873350202541314045305994680517707038550297433576203973246967771935481851727770882714682833779805847959643181939813969430874697427324056174822291029161025458268443639531122222850532205213885015747548843345175087708781293824493839781452543496821586541137266306404265417712712914331506983184281746134301719696249192278175433199997029036645303914976507053457193054789414747804247951544477071049704102618371585066138381323106851894487689676146297164659859461912791412763626332220560360863640521673105492289404057297521260130847539405420383092434054795766628414981890086824873404531170068707960720344921524588201451668395328246230184177215774805552082753892156419990822960906892213861434738395732255736494934595257116505189431062320793772094370409303095796491098985144891126758443335733888079477875037133345931664664958161054071148616595830735873834275786726690869794896004349292930040948476109572050202437013468749285933807293248621158076059030770564262305182488910616222792876664888159557339734964462495797366577365911358969672882729722999627428310419596309868316885918850302138359747097420161008913605429884886605737133766158234199547541809256535973261492286041695875077869545561022681168377078765445272394978761726668698061619944375610798903645804682451588734949286688148148823607192170578230664361033578927285693771986073172027410278224182739384771285810508615733344354969524170472772369159536218273592174854727184722306472029541119860138458420509338032206803092379860299066344633440976473293125832476970160567458030320060334577209883774859783373528320188283843187297346155633179684186138729311346179010134621450536205835742682082787055992324298486405486587733963478142112133442370515521926152068963335416417540120744175118409647390908449301467467885336411681074574366846332380084958535344288112134249582940030943617940219191730216496726909296731431599595302128199985090328405194486454054347038533113324900586340428853582566125994142862084345528698273111289287476290519705325477625355541837070209183806733214839279477534743627199168696555924721163389181292881132681214601738665998285656407499317499083535984205430745155165476427979781631229652945559620118907311260221709769178206405018924504350871770449632791221797641674922469523347357247077872482363051481031211808632557647277357740402334925332906932625209351144948881142473222585522433368900895684555183902245779338297026260912778183087236040419048750951259679587287417885016208027898013068380967352260964883555567583447670324290493117812256564515703370517171046241910615573119871374876602732658611940704527383179360809069977280017421769529863827942588587058466754527226796875517841701829370860795218996876149767531980272530381516717263414028498768554231854304955214627838701752722303311912173877808680535751681909117289382269523988344589971202973844468384791240873677183855230689272356035319478269651390846590478639540441139826839432088446238575694820565706061380072744400699855364171434541976723912854337441919484764748306949540130136250483892796441553521926236248042540541672431046772859729530221224307013572438273346762084758002970990723001704599523213816893626727072402577074388738848309108935562723957601649617747550910420545064190947601165898632668417950461670403611472441518711935745528280354691545614325848430803430346523765304047243659128661054832154899487214300806386990122796153432744330905951273601950060345500710186029102542104207306624608047932152757719508588439341549989573705037231717255321424199452606223100265283942356273957639085942178811487437633890403162556484195690963796325128400734915064236914970069348311452138760170071230856548644933412203069930617633698182371017715321614534729866389235921384219691528620343791546825159670021439157351864173595799088676249110565959888953466043391130891182718592599375021034289156441854065715434943839933762296357852762810900723426548787736007880051169343388002550219490185248793019764486368410402983597620770801121132801159563793905403414533948612510257752561215253791642085061761594874264668891512549680116735946943296873886154908717722142141775863703127622640953690935834112614843454280731126505613994543697587903962668788906073791276484830126491227067047071837982893468759781804901897894301577335694927089630091867024057593867598857811104170060171029177475220236104631382845041730153028744514209808586449550506112671911786942730729152476373147380749068151327516855036874634005021331329872423030199391263366957733350189665283146685192127640084003421362109696089684624866035939984807853484265897792157140864497660879816300550425107457397934034411257525945282730822154215854792733112556833015724167783580987349157895883527006721951514513670288966178757183563883049260803131641600859663882512100913258301681983271768748404669278432127280659362228426039640077147411749932863704408606818780145054822381095993711233982759084746035865667858711880873389451404089014501347052100061989246794031203416330954888921151799076412159952308610423515432502015965557463043750363292869012382935128369818664721236154182823826873795368833651029971989400331582547299313287409357662528231296172464218045266667314597390130154897264168473216666327145165553891895399100346222840685281951085593262572815337712421773923886305524657337312775815844774670619289171802413997560707434394509572847565424287998949425333982383403754706511328796422665717089351280688945632423974676246911319698438611035819270692294247791405773283885942108788607013064604577929967021936268504831952746694011620954248525782364129395383778480115998677379750996216738680144945214742728226179384524366271998065406388983028188197435705519700749394209392351522693116276148033730231689151800981362865472397086888690344945399721151078262373386698013993724011152595076161812345145831975410896102004330445216333258771388586413247753166002240352426930030920782152169983040699924259484191516605184518654184701338206436605904866954841481562664187283997254790047169891681136591435403924536431140207120411786353830439234669270558776566570762304323494401701888717035664254844793474418920170280520127891526699062580101874322761036864662303753853398645517258596463957718111889449403722837436717509522416920692484807613917463750001093750439218815779534172958084133110248014197648975480086280614494973964919660308471792237200676892335246962971355840855314423439533642902221415483714658823228184605470276497278433386910842466119871709449642014312733443091121555902495532454747657694864656689940430932965539892636910541022782019269431288421169330299761629182104768937878778901749571097688133012300780409774829910988309405205314375794671347744070295371885490687011676235023451110782513108521927817937627494095822970718131591798559696261205724607957032939339927969790934119148250721010984174597767655469554269214677487269038452174511532982088838661570319589729318715873682071932411269137702380487022160823350934190610441051708421707028589920387948519925594765679547679132397701010701609269330270497576163322747547567036190200739875325123553360515001272186591477752575436076801973936440878182036041145190390582736469561600382328214062053574755938560791777484974829844510858311157695062634045193925468375453225684791812815131995549310012598140679134722366378917269290872401032108263875312535693613310838609485642942960532160047038425020308971011112268144886406607269523960614475939003388978077357258664340067782862361937690787359438265606976525892245553294987096704498084430684239065959601547592610642575046423170826971354301139080119525642787926970555188655063969252428269449891136850662669708090820919967097560323180268617528502134538177154117462617981742878568953115811079929391275838786485987513399483980481178077692895795988978798098910476065318753518614189761004106032506329279883071859089574049650758848957062866128093183192589842660482537387660814324080452248319646786171234234005192846223369248857321295035589251663730410691820092056992318906880004328662255050908306877578903881347840958184321991373479250259578260843675139508881953412914348936913758939431617133764759364612450246161163404425485597593077425045740650835235072897142880064449572366523833970120154950920815857007997569759099274901559543974772590030245801566352885628114179953224233550042614631196854228663585075020493887877927348714329306252539819160657742152357319394527253350836482115946463059336781258006876136384115418715789274449235062434160794977194919303199058557061396807737344678305758064712048135144728236132377919635349103471308948820753625670764142406484217043585872425768746011246444975804018735057362881453070945140401841125842569934142784597945877529149205208758261297872728813044105674095690570865040790571102619636445220492010270527899568620236311605946915459813350689764023063926051844137739644684823474736851612795348686357960556868139434012400065754083418903311757012004605210793748883227389686508735284118367253711681803875174036008044660554174906848342823083920444054372452694192611538848931334993589940602870234551366969149644903800751353317433635140827184484401566159746134952149336547738550982260758950077345003273924417074565076817545895714072175914455004729226219799580564285198284732338672057851841926648488035054457321315220723361243703416756460437965509837146183198885070269811192365672251250396766314546066451103998688932305045187326014502067034655556824202896165081713369543455418861215627333557812598971856604315188224359032266002319701527822700709759379838542580900869416304874717848830659433865876668751561304621054402624096217772057836103215739242963040621934315373127387755450550607885857196398261826551011074696443483486941361498341547493005718574104606294567431594026837229166982607386311419621104567187783778100632009666450838585385409496355015985014279858470709263072615981843817078846983868041214526479530829548226520897861107027197434724518953769430787596891894521043952814158847919092943491392524989389003531122005245004436550172856513370187115707662235869590560813951587230868632379485278624091493696974885956027931545861863800258286536094493285607549412201865902163652112894110386794254591317350268075328520165104665771969020228807669931507714260520151085503238275948549839762356372845660013492503503876151930264557463161777154254856604867643149444192136966320975118392764401730232687628031695489797590165260465826927805903599679139059488024396019510226568725058812174720050847208694472117079512853542591372496877413258410599643980909309553217935778762728004128638794662997451382584534294131207664887526967401041888911742581651443706724508873117488550959546396619027807492646456808798419412884968295103742533260535589633432730997175468361404729151642881619897662643274545835002358771154090837162792939376390915685671962075466514320238883174487690213319577290765511131502142235361181072080338967984475391093550990638629358903022226687777580027521844804470323276298155415410389951132905008088220025358396307531755974487272725660194728364449909895868263195212965429430877259927955833062856316110074308594882512236464694360363209048004021529371616230955915864070640717729351077937948823130906359391601717441139122898615120763526919990951158962631766248848501299982869533857743585745842791485017718341789896438788491710163172852125674185184936247814083057828844797883676851744481558689252663866411125140868979365650880564946113070334081399958124377929984713625332355740395267813754055311306358406153998475896000981728652303876116822764022728615582196964700780504832717283578923351399291268059000348527854095548992416448394541813592388384247679848397713245292467880557506479750371658549290486261234094225543016338876999244013704261479816956350698859532407864151369235854226983194699062832714079446424628592094175690046810731080629708721340674357553962575032030002843190238891212983161648774643648131728941869384441120568403797366442031748363930548543129006515843297931495431993779898657139435261772008881817475891596664654209394849201884271992791768365556339700416483298014866977896815418375096457080526777634223493175724859064533000282043367377631740002662778247394782396839901244206402127390900837143778839358239993374819089349530932633654671211113442550763811556210569403974722169506859165162229811290368221927472668885202957268583089153387370434373712434980023907007617859620303098452839528341070213456974194918167887963620542389677285313750261110018765938683248094613941463578741929908670639535483762421158802042627477389512384043745149981276905362694676393462593759158653544810474404258855812021684008432321417582642539347972928604477451379411328344155430290593281297389950794244306216747168164919636557800741203533018976743451758351253699730309005738974548797221915531234187513688552722577206636150707053297853923404045134378289833789293879515416707659803329187235526786883938417724700603210567309638796757915401770808714018867047416047729388875892167444686010753906029405821014257432615343342461765254135349712495871965431499137795077695925438526996321876922793524146072719972176575627234071420215247452412266642142034300676695987166402056695067918516510397781628221924109377047076404287445263404932339272086405184143894207431780344193783541916247018897525666216972811858097980184959881934459384542821291490525447695889426949468034294000349104084008425939195797266878925622980495859105759860362310627995315841282842465358453058762515623054285587594665014794059083996123289048769093234750346605821583805773110845175682689853511482897432459688433633847986563652199064432027506536430180722739864992813163280645014282334285592605347199668049113484684233834808670788146473382273373309967472041406880417547325881772309216460144299065674007724457634910627771495326153585297425117888230266958095946898855666380179956646072319659023480602950760565915410957285000037408176582109191984962791495484918572362893201805226113227689386853648039105426322400131228692022665908550455905931058875355515731440142752910302771739997512602990831714928245670001035728538627579374846620803176278933191473440272599791438745304308776151967946026768040527088848170537265281286001586764663789782791826030275695977983016890748125129648414082494149086211749618229350379075540863982207958735318237606519521363429177683087526515332415518565006831063273022679134230919387936472840489049680692545553842401847425199202101358266642652481896450519316934153810500449710713595676105477306903314780613086994740419768062360576729952767478539475900386449464001826745912042860833617028910513361935713876688445376653378991449546098609405238657529710180069488101202214962822852800144254572333837054926981498671732060317622499705929672716330102410070913552135088149584854506634017322694170006660679858277447683759952339431940320395221466215593379500235078037400147913917509595922071453092369198703037421018690239331762682594614055064228255230047283997737603066076690102543720784037856603305757769956874834484048800544511181723965944035327386126333252675917553819934834091357313075374579220512734584273581623223560820396950465379569502488425294241102989853790623814191707665698805196731327909841503685588395241887119850156081166927051266153497793080220550368476013463536491480363111351260263584605960284631289964503104510000058400080027666918213896030806716255585121342639948635643538853732010721965059634358457918742576495297307288807722453224657759913427688932697119971783225406940255863200028770443910426726677210455256791608521028400212827552688460308409135840402197323480599379598979559682084987706948763294360267341606583921001983933751999562089936434003613867823586868258117864467735192855647912603931652592480003715753976078472424741738760085313247518752190269818667865815672463346671332961264163292942334749724157647727892657571754230225654183917371258647842954418665408128916564107554487210843623199145480441776469163554928410786825602950240908174842563230976281689534256960097923637523547340312470643253321480286122466717701055276110556422825820945101256158124750986919410397908573497328063851077411638905648709833716792703422198457884796955277985915902106885088662746824823905442443768636723358826393892051342935815645684254907207267366148120599122713516896528177912479629536039322953115734436196026628057002382316974532244656986525435540103644154063176260192502313789168961525410245365035657553682768049194320754569665674689976757657417137574392250218939866938521087284621447212866858676117782849677321500126169096585856219514116453174285164080386489695536684479731769882477040818603331338131753747527843419582867203502674152190753119906640606596385108069623591041159498096357520293328077245533097734828559763591254590157822377568816018440707770035113833294763918999096619751756158677398528719761924544069204493880291264011274179962776017994515759552270469003664733624224637100685835505442160986322029448693088728436297865285449617061306481307764859151058177353779328285813121564028243777684121211713143754183893597146805956787646001747353794950858322023854896623648004220510504785182152687587436108882071381933771714335812782638680642812489597394448756286235466839198839071122857960372924306337531491861879544040533256634688035556715088286849765323472098905482998543007922263643856346346041586256164622045435056294731971208459441880656316224709441718795045903382358117996694920715339004690222211705973813746065181065108551799944379514587325944785451568337653823084371141498001329144169555867558113557487495701804111814847898188173930143600629369127482597113733543651304159437690013557909293688195712125943589938361276207553550894335615990545445519245900283239158195846737848010076509907902866782583395088044792263457868458850372858041664728274481995827022865848385841479883515509856897859193889207740358585622169445715531070628582852887292865245211012689904940211560196202143243476237853011600379471727144001836893356626232197727210345454536376138366434485694215221667478541912042953299053829327936340620991073976274193843683456702470187164008918877175592098414641073099382787044952441630765068318284999149011474368959339031884081970318748099054687593543143219361867858929639687761448151081393147783210409575104315203051098536722694378047343143725316187863609683918600111178005656675198238056941699751523603930860113873844387926664814338320117001943876375039696513511153291170309443648718609417383187204217330502248603255525157110778716603322491132174215407119750114786494368642853885455193416842039507060944059513484626242539408043560456628243549527941246534747515905236576635428011540845955952291797769522574757436158963792032518637617931196617468340019212759499824628849891295042903970984815069365234341147898161318489979192757552032788665562332097817926339618676243698905033440906118064465168739209941487396404934408842104388232464494821883810325350228457597513475476808914381302110939470013732715668142374827155334481040981115956044710916409395692577986191386773898752590455010220125266555077793313504254084610646250568361003308318863163751537355593157302596503345058122771459812994963656042764516265245097626755688451288203541396881330537439828453272300387137348324642591401219306936198706341150016082800378281263477766796250655384184303461523110452478802219829225817545060580012902421418991276177390795099103047323155572659619573294036142298683314726469997051888361282357358236987065460742454614987075531482822469576811078128999364412422642428032791720929875506120729129514308641500627695344513393763541546434077506660365104505319972530790819074129354536258664799791685522085379699842797862576053402589408016568617193583040631250473025671196808762998402623183322799553709660483977699138827007081305959350533988839861722362628564700287422122957044115859126013912720870934807873060798071870369353710582969408515939995071577687000173091908015340035906303931256223773350316116828209077418321005352055014683615234165623550158299019549664335007495544303559530100793610710700622242578101181404317366386017009359572306653769984899808998642985120394482083584634187663340889322346869319886649131621333103327853325440954863623692524789024064780194738165623324216542336300695556785980461247272178807753813161910020304999064854042134143447180580275893404606056191399505191791720606978172654220024008983409923319051401806279487127504276088842719236982131881089748645114211229107977496440782082430363736034480217046489878744461096970408208326965851666038916704311505819266659534684173307952290617258776744672065647973511196753716678400172716816662544146091460855834490997085634110217118413398035885001583298581981364298631570414965746927389449880182867462189929502272600744087534201565721491689995331501644191289031746199270752791348099401262707931610044464044948419090397795807477667582590930510873758582057538462154161245174914997167592646849835202177018505085942304054720210656840859330532510067638582941954527987372792011553744267376468251446305310874606954530178596512296214792013919813403526584195660630582602238976059631572659510899025935737530003698785908886118911302421646893482568137144512057043799873313554330863589375380137839636165293548795101102240935737410234778369258499363640346960043136200211092772080205611690117950899162455541759546039140149864768129674396424289754625163289476734689277347774815059329610603913100990868416785331206862152967687301095257068172591640856755932262369768208692679051333114531295156367368320503277795548043668580082835272167026086668083642048902145136697121711351374834910283685557736788365484537941558689129523438693819105063425383913802618262322143945972324292115546380058250160815085738824372834242685031059601388995616012556392136965542997549618825495589297770311496009438045214656837385582098083757778081136551900522357328903921938304239257216681693108348792620230881919578140793503852405196738082437559205257169706211711728314921401601301773335318328504855765184008602304197103084478700450374860784231293758876680249938748349920517954383727104585626295939615524863341598280165807180262070804490813202119721737396215425902703623552986497794088664304429273832460127593924673859309320935340012451770300605549458221567444408909119112368883020117374406627090465093269621414640666243307552195995841742492262067706307828598617165930053940421436915009228989823784644637627884537155575203721149121053490848055935766896355639191762525364581998294737209432170849272093815277600744362805555426208959189365283914002590712603937669127353743249413167164484805831652946417108145060870329735576777947900216436608260130992367371141582958351548649384659524333079879523685929695764261798673702466644345320201059192547643146104566373379703053630168216604825842248849127785683207606638915531063957889463176316828667384304659802049439187744173943476288113004378038795668754827294619362260716456449257071737790432426736479567111618476790092626642365237544690281545487710953676070540226808955553891248169034238328839557792294356601642449018686330146150956704121400922431582277667508537330158215234525325010768413576807690265268821967709130501434282272687873462188591169210038067235533892600856787533041773378070140041163201317344948363815935865453519923200008679802670630128562350516530504811677084986369964588352685867774771271205584528092864362799523643644010281374538481969607572914987051841140190204929858731763644424211952081601791953959407034326147088049880042988570389612171486131564035000594939937005772826003513710644533731678040323222528045041850147554317101290364554927522290651986570852323998954341270741537988827430805739124812304263675604239211691973742967156436651213965789073586497319087239501441884073706684593645725136219500042540081898728273863361598374588076648756289671691897189685234373593168422899325821399868815123311976442762714828933246416280584609683731338351695266042521182424702424242256324338197907267166079884020453414207529375847187337204346477997350703760209578653504879464625897101187135915814525111125138506677634554463945031046626907769391062199944966518985301584246021116490439984874626538441590244002104178955665608521503605395223556262613898711966808618058106015816199060586896561607647329355776281050236184899365261954111406560016082939893689791270471125530149130315698113533209381591658660067810303802038076009747171065995318489465835177755539433285759666204269109343444438740905872699232775731245323858351609579927496372650104291719119955728027400369600996077727671545030863037935388051309287368419685006867617161850311842547866668478607479245256691837800608423768688198290376500654008097766644277939583847823311395182227360061061746035882510296363877018377242397912772421054311289760620829994360020395605549427450824142095838566595432855893937946766509578135710875276962492890988440103809824996212194360805998853630130105848557232409904770805954365936204405182150823164830517647331561173980964400955639289906144904068138265787106496903897653031440544997430297170897432134345398224992489869548163146899585835341912953937793955430721221437562551841446230621136634769872245931600868437816516226352259185232109813217512185129361438673176937777410265430325529824184221308537899324757095177723158648727138504340674109819059748608661027406242355867079826956336423760485896345714835286464186578795241905390473338689361476369435145903276701700120052332797346773264777291780075856969352232584977782032848726951889846105392993557684476362540208513226144369124396215227269608736298605425605012284458367809855985168148912325600111055829265275325096323599412314806334232659974824529484885273672892906365480821431803526112922406740283845504719935638684272550223654451998936203448445689496619444982797925349052186734411462887711177039001281014396406036721542376086096384060945797153097165013950678380699151026184529572518519379354887444522496381776453931887087027190504463154935197587775350499931856798930693906571241938382319855235810295637539669570875430577914804707661769629354449934411027146572102645712554943109427282831940287620410336481867671592138037197578056116434854793059359453552285426733305595378571275644069897903989190790847084930107937566103931416393408149435915271073216514896447231532636122298238140796270699322484590980753492812564813551296915089813413559962390860988903203674265523175325380903541908689492254679129129761328855949801854723871629283215207020688113125930546522054731473908932104488580872472156837088602107715100051678240417780824536863634051619449555368582001868868217924106921579423498945384924244911584800616313027830781176174369931142731322617447152870384583244429900226453468512281477850923698412612508474346154201067630884685854476575770610138639804927338327236350957449228524158696103786780106104168138224314363843759941245356956420339519629564982185486694600969066312518208077019581725957155553232976395167179701225426408487409016093253953661110002256152239983005872977318930757598152399977888608819042171772737676195229126873564000476597052374521642436338154173594270631896191014648607596913975832225702391363127346640479406246031520465244601379607228697624570897048561958369966952219717608306032022931612655187440613221328225738558857112045448862263328552675725551698174669946881651568474752884421985640642740000715882315030247929764558569822521945407329640856708325465106061566254963236643205656875698901237299423928296707075152043364448709851098358964350392469763700370560844353873765564297457865868143316944939344428547097819410497100164654444601495664714180826697702514986695020582078114141835497242789850365767571272139072257961499650162482787998873315739167769245278387702572706252520569673856133579266042111421112794968631735509537079155331737047417732324214480142189596005754838958010999732897763699476029919277243925161047530243045615733204154111704495794102874239945464287971174970564041487318049380742633585285097028610884719022546361549559415956546876029528509485041963469870178880927470093209682987792115452247447229484235160859513668701517930480387149703207719356560987569604109379930888395752961370222889321185843461870719263787172879291793263212702170935821056016659171039806591526801724248517664019480814952084864884219680018782947985118854160812384255420037838949489886807173753091515852112139186837539311053879607549233081760186778899951624772699679731619205245219289496265164029975733133197966183763601435586179272040279401528391019237282553424327027753760380288763708788376709749104883845938169334858450168637326249126844537217151725138803002587489033737441088850917607379666551160071889758309760711629131983792380999929622795706013574999114469798407248184590605959987520817726437530722938238094112564745970796237420565215164482034954181625169780852259781974264583944264928829027219059999126209535547400119202471918504816963790155025981982457850132595860248244271164260421265037299731202699986882513744052545496085638646101891205436738281543991849231441315173471388645380226961975518881892931102495608193079435183537396546996147526108495345591534884785870974786766534305101842023865879952134464110386838387938587367776135028046564583476470638987653441452733561890959509721936200318981377315298245376320354668683441780614926875341194052437674135672380507387995622442325073430420429778124028258227338451600366215653270948780545259383197591600405968156133784573639108843721382526094049795862710026596571331607254025894360919486650054697293765683196307884446156449527438073869280655599045173913299553084948514016906614656798215732078344513167726648080678059040711662746581813492628327938273195681369987562680427661843856840436087003922551726418150135192231920260678781180067265116301220754201311736612073502196028558054858716107470786124344453173522144125851484835533876741454513575736442004662852546970016605040162246572259693183500034682343909434130191306380315586518307049629208281833525430398611032912605630630802285912317143901000013526287239692256141461049502578678202605056703220950684586166237221093669236665414776388156641011337827405213503783013999045929075579643116040824452177992649860690748553106024301605208182780798518305849971560657696145590819257170124409196808786279508011591983186194137160842092084670446221038637876395166567801400929993069002659973286738250613983796045753068372262601361958991286945769111957046823746407311314597158128495056109071584362964851293408653628237267886293639647287579388235828873556559522962250058054820816711993471839750025733564018982841647075208607490596246788627042433734697103739512665843622710459844116499346458421224523284570592813904174092372433902568863833403042525886671219837056637435794145373969882969805534730652592519492481492974065881428521409807334245894011402457778034472363895163761482979404913850566760781329201862691210511001210182365900448333796767059455490721080813918189648872292633942228360240256349606520034340669606293208520642464746969329544514694999726437002000054880145057731243122031096727252723673391103848770340215541070074351709428694032587489037460712509740877478011054966790978772791440267082064554187218422089698452414681155999067125344934920856500612325967719992099999121356905012205869268073942590200422986911380000684093336217560425990147156218429501522978232642531306013687174363901761853390638447835580797790113868626276316505243315908491592932005065614687844246230488747723506954131662357058995404919701824192235919158767511277456079121712649217807529644581084517874762854930385643452115994983906511779982991016638775252525710105819127567832399802967852915444643777531806495384336861669882214082286445312458002066814923977354033165328922819536987578365383783389292215758887435755999139282776090585708203763084348360617126239013495024056551872730053321050852073110320066490711988181491814671105793024590491915844755534895338598432821125261352578691121374600360227572933306063850335351987203228029338583763490327292217603281124632760357783454631769584273121129041511687480372196492725492279261890186444988217121851371191382547166666318486918700216802491216083045933636715274863525629104265065516614554819398418194146156953671062137409779911500425053518999791859344233744728615803348758139106261791123246557352086439387033508755012128956601198222446428916726905393147673414178127269411827638069982907941885749074083367608486919923865949776028450406735219722616968955921038161246366486179189418122691502058716856347746034524156152024941255269883108577010979519435728550453538308540290284471018916322084840454311400818288157319841583408996679732576065955416816797028623248609501016932963937474620806663320335433772158658604214180313803285973082648362248267918361972217119336475634375650047830947823836640881293327180912335199954444177174678835756742420675838502327555957439738399334278903697024691795499218928562698831660238893733997020065343019073720587342968615507538854338147751952101621796220734095750684901439033000125757886840229986476523041401326388045950642210782641634392854414743878440099134799768246808049133058707001747152575226605232657959810252317314966423999256467952181035010472229795948821778896339502376004720585515762443609106044589840670631217203517837575085289207243652842637879895073685007200461621860260096584612573679063481268467426747849670579309849377556264106556048634617154423254941361518510944647629747225208473305784926856190255390375841594398626292102131592010255007734091258586944081102545336438927911121212859652175276202864135694317103120932885400588293543069913438331075564745090098615998965422483633647092682981327860088071056383454207464351074914964874482679284184303436175429617765219804125933301205907748320675875658273065983639632177771072455581866271486273872089477434413666590502881973355447813194992744338698509678683862974145018921606383276788866479172969077097751451457155770938982281893316033252381604881241182756211026137136484494204059409520004380951310448336349649398076948224043985205764678536417191423516188888195838727213308552320389208848576334337811728439193291561769173978692117615265492100407336971621735007705750249971138377189988059272176177045176645228316539885242269907388122065540218019104656320838426546406890315828195883315622952182422847170866158476523026356327490860463076214087876912047386359198746590835925487698631670457686819861872541621981563421146757030229818088442297303862999674136055237233379054939162123228825752126600603384540273358669750754573123639437041689986936430472167891483880535281195953370609315112537103779904061456200720778787157216021405926819344329894615365457252623240606601422342937697574064239717909605964062481287255753657216943453338410828408132203956330213066907950274384085115902367733549188873385181266832959674122490433900482700413769646924362682403387962604492755503591835262751646575992368677180539824478193520971951586211379422739728141379868492857660530189592997156916971313426020397439907147869094588126442026806349545588684322729988944948599449233520352323899032495793200768082804769869675836529031954172261888058802684528572786468452783146797695013369589654304976167178819860075071484121281280000967215604060568897878126250206525884770144754429783254145894493854462290675335589087226403500151412088277132841794749715716120054804386991953339906908937884592994123580714880556684062600988402479360781836010426757296742929773387838418938151872646575226130349091879783103345957423028667861894032893201393828524448985495181567325129094947337724439057471240445224107472690061656375499115407345969928559965274001346396664572137955567866326296177634065242977338231789457815284920259448619755166808569049492670717250356358507492117028957416066106783973713860552623689377908900833652293630531937903518298364899151444158955387067502200982778076591633880698188089218117754081423570719480771456811277611614654009398656361846042449875617126800881202627196919478580860735805560565018225230114827251437884982169301343769681122487012803240654070506722763337633079873654802228598073342427569473921940226878918777893424834556512770852346801311001780480868978722027932637318214876562405807588506436763344385087085222317409479153743640566183829700663661456307895184136320818474563523215906497588764527175246726259592820693688635469286597505400709381383345172207136149756676269581710915924119157771517061213416032145861381329552832840037022333405989960656572088915004579997303481320679181159907401244815027442742930970891957897324745317942627503577521339833487188107845380463116546903232392991139433843852218261366628054616062521421975963095024928885235850219809101099321793500914950897840714680171367375133973182803149725292377291707187420604388931571743845925996893533610147669668947726696208089853601414260718934573565409280506839114206420552060911526395391975534236808174829968991346642409342755671781341254735154246884932840050539373050597400839938434665123462005367522739862151150762094448156150622966092643233620489764196833623620394846413560957087337442857564889535082875250391918580267524312723110173570618941793291877876678278669445123570126131842336133341007380606135247667954153173571913796953249354088639567552328497249925637298990948572128574808248320366577387284448966619404191279891914592853152790959081608090763644330455470902026905705664254556736229207054070511080353840096947723661538235152891095695349383793557846865915940037585756109802768144856589819598423330043221560052478131485302314557783870158296077890735793044975249844689844341378923236513772408399808021674172682003753635986885268219837465774868832250140351814082828738868585022395311040140499382970145131114818092278843350804001240649535183151808228436570221858807366765611197555843559943327680361501261006416460278711883730023687323498050178984443291489131155133249074906417316662288294206982654286349533507201322540255174924669710574252249081635954833236620489305289547847277132129566715093770245709023058470030658106866566843250267198105779379107753689668314882812891247805487925395030082881370174401404184259860309646923448939535420084660232556404091488108891358866385788304380825805368143920524794982221720967906479600280057860682579993424024828926885280959451144925825027960508660642531781741045681289918182699265433203659112014192645206903071474050790598777991402927550750481401759020346190992260596205251152427495168457108655815811647276349601152442171335812332255027796944582031144762161396081993277245740991295982391233419121601231204737186166909468412557353885956077176865090741149892779834391518537174061943167180986185855665103666590345241494644326463404317144980972201198104141961361779030876123998690876914329377628658149401527552117308929145606057256447517327321153334438627339624738686851140650986054481118791420956266821914611490690389216219511275511882968790406819033578693780698706837035668763493435882543242683507300522559525022810346256119386622465376079113029333385265569145309397273873840796496651921568610283355224025062957630096302664027423999752981447660166762073445027911194117983849573867247384542875783322728233885457810893916365727600049503150853553390878122704226016076295088107999435277243291504537242284596975019089264393962065029930061610981635105043244174656407291970123996121656986590260268371153901655586000110174590512940305695914936789308653564179173037372506568111946939801821211974945178267615365382097752312629919534394981876740530611899236838243311099913563408347456552280471716107981052618639722683717987485109904486946192073689550994541849097821581265674330479037036494638616052163362113734194004101797044998787658908957821812200926705266077186443306569057020207976199554600344206165595533185444877367064739376660852906878171171651301907577144583258032164626915564054938602431349218134426667636213556570882797191400242792087355779825884535316401753376148265324962323491807308641385951698779605560246739851207926711399282119691214509502655571214637618404398186760864968459313168829227987660702806796973281862962088009791899908621225088601060294896625061472316159025606335218723985923264226154015546434526011941490843887748881209015786048030270539092740314380087407694187071139628273882696102901157931899366317204591215879223431506393837649312525464340112339887764040242114161084469279581472345622572979701851742957002550487493803784643096493092963735067092157371196312245000634953938744916961759906774079571414732891973751144880577580868113319509110624692860282035829438173294553105401683469909888914515551642868311343045625732521904057868895412591204307226638495629186791508782215013304140699426016460884005197686048644855565548107343245979914437639086402206718020341118024444878836893131700854720051251882447003804091491957923638257531563537479625995751764117826200793542329529855693385381188786221545002061660522942351442167208024917844276975383964836608331699368808043125081850694355333963933827916575750826118394865284555297316151873854349056472874533941109603847005028647706669725955531647457924262134099219392288080131663409290613086630694557286970917074241063108740525400314563068502029738551312621316999279253444601472538327795416266536660833082135923843372993508606836204774255899833074058734514364735929843079078133297197329094861085680285061299592923517274787272722697254978009837425624315866845448258988686690724925811064472642441617767030023553948131101913864130392074850990392595476126928188724371512118145835093196736408870822929583009439054594299291199068339826540435718745008564046163573575770920852106452674481443627601432081603990974930033675924634308099727604439895465359484584837227165716658286266000516345433667703556597081234196020746741614081550545383709246598735593212791072751858871973397104083898319794775879198139648075746826164679409394368522446209409903681928978743517584322599973229934674815171125061135953536875676769630617932599395258052752972152700284999129124469334900611689442819727522309766217235490374945864276903138670967338969993489531519039053428380717645308983524136913270570886413318433342142608233804554971866764032681309167344923436071948164814461776270652293435760038894793994275678851022978654587323738905845645158841362283806394283096325262386679803148281313958449378051651648247787670005737502391718906829651554523941357131930372836427761009360510452194946435487383374062070772499448886415218920232107535614266836108761177533418576456250499649668527394632449876770307647532713754140970557670435769042752103479266547526097227794489931713682226950865065817635152849208003630481443859780241734272510005761209397383888279391816848628430640779225524508052324361596511919402424021879984053119123352652847142681207621480450468051956427315731854250084688826858170229015848306780219753385320059350624103659925648141479677446910607512096157082211629250625538157276683262755724110035168970095585510554647642383049342989171557783873201109963227764099649590839408039776719144738162071912142070949815737730324180969216663654843088068342559737026999807058632963050314114844179362221334566617374083211358191265290361574960813710311842069719998276341333299583463950724177527573916934630203286148677628894548449453873713807125284767958729080726971972635171897522636440846977229144055931036700374819712172647165828543614504068126375948118853641151381377391895601962473224925624796949624694016731665800459605357763040825154445383396028184510329661453785538477771894427582425057733529119429566971314711498895261083975676521295644277138560619281744020606957365497278196386257683101266479133237973626084618261414260978249355071548608287320736792422875275857765153862806121064865691021574775848176489198867458667715908574548563607108300617045573120533476305229641876090792723479490061240613101806713293286280041000324598132664306011883309577662332744391231843993361324674116601891260994087742697024612401541086486385307214466502665243841460363317205151601006574403950618548576997911522787243775229673693588259247758130606873529243384078715070997681845484243586559332788734173822706980029667111051867842011165117909992590452548137495663957597527107536892876610914525970379295955448032274523867161136927061789209227076895638303985431505135020617068206664498757614542931036879811651029841039646663871419205745958019870881042945693713228920257513916522797830363743965630277914390604889111842023571225346022977117910725485030471263813269289726927155023741117419783594459855351154892919125135130391609126335228992305119144513427078273917225501213903585372838318700382742131265522677452302978007007276711162690564898030356692346478592670069531002489179496397066656290405639625731624756893149807861266284085666882629867640593590045816711764031872936601450734578087048135811655645722783816305258083478094840994887443175327156866822124106179527225205618593229974612430335824695909965517460721537739232387656926117787767473168471187883613025639913288320923023402118647529793609692872636499844158098103164427954770640660203130232138059864235621817103649206980095811490455403057364482414561820791660040215241302568555306560974773566446121298739041436510348656503072774076095106198844260991798807909412455035792227772405956058675829017738719768086449847637255010779400242815946090320251451592279902995540939386061657076961566730383545508940306652465013704766345529478601167103277348913119073511438238261212913329885129552763597777448823240109912619725211440423090911037996744452385462735484401405402165319218964416609956680994468900487216701845513658556274290013015681569220148075166990616277694906129133517507450041204007964862315620744255729811200628140469091183243585637123550823851652983940310813428020406776101806601315840523461841522427589539699192592785492753056622036905327650855291710315166344594664685529862443543298723246820758521013327279073828095632539398964646492464829195227405822535354444504124092530745792673680241051173690764416888648825720874061421197473319849016685393639857442195176699171634867805658126452721337939510344785683995044703225292567590303031287849419689064862810169548221382467333062146904423771493385542438369321152806310225462724804474416591631922226180537050548227105530374387063608092678029343879930940340978235764564841898765716797148677414981292514332089192208222563223023724103624872396938420244847451815619086946815887516003677905033900121299320194532237662305522387187682343783872016447084826634340441172589415072611565228988270557470933370172024270368026983037147863973855564402207538131662486657806451771112539289767902773287923268162182621089665010785063554615268014911964004737657147585954703799775369747659858606644707495255128010586822179859322755639940821788061614819079408261701142316096313717018387296451832725180861060033850587923810739719387303443224361120393474362703192764106181204305540341967414890774445025837018562268242352844348630813535373975006586036254389239656080193022351573542501247590112484279629907459693980184310033324936494881101708969404425095657398767663547800709175859047290257749336669420759341839260249704981615166032050372993451416655002529690230552493751895414827754650482589410733964309090501159672551937780788538310061970566206365419345013586447159674590839638849596915876791641590112028741901098520858271904599072265400199827248369937566450823167802776330380837368917038401440611289363366733268886953549629656838985816726527499090830129485999263054497461801626881462697928828036923578489451235468048138771358298612209431990658212205451162139927009130190166057733296542654560533254785141689470663331499418464553626281646701571918304817631732089294580676192930111981772816776811022439148636151862763856910274416769582891555298016619592964605754947591351957717266466758269933540742842317957309558763722221006629680108447798906064374681414734294394756730878074982576299362165435844055574998923058056006044824281743031811222232632817377729768607564429374753107830246341155955488475274769860187398214022216011190665517126137085597701615163254806928977619401330590001760591464099084483685038965006968495902869915549072301994936583214519732667540623303565588351357531077766203600372776444974483656367181535998022790763260230166586667445610040253201217926615394296580968778611804103147531631889699168559145048540890718060503401105224589501752203742582208937292365618143961518591512880369218876653788509567884263534593250865427620289196377612860415101598838971765750367474586036628417876873314381929865710589006845719206814591836844442391443105235084650570909559930578114595503192363945976299632186176403963564788375254871670662694804945762182472354567676685740739450126356059213748325911388993841939145144723518725533969822126662062925842557805953326784320497610032231420769926964512954038594206896220492979444908487954893435512842992177017239293361197317433594046068626417298264194658173652408439129982965502886775521388656926412160423888726764111159385394294543727531873923332250353934609377459038847890791988453522374286718342952797467059550667973104492255508652648272614594743106396476836725314775480813012123817030113540108169108379369805293815008355504108546227874135062803348612387921003380775103861579637924700071070468924893522005925820929337851981159170193691508910354465535040110518076348288484231116544035808580413529224939009219692494245321248582091029909973005005392287502745400647550175849334483256573746652315396489445476436863027651960471672805359915658540342678250618752487361991527211024414237608703843003016245308441826669195898568635572537693957527343568139494973934152487078678612608142942551707909971989227260821031421485150476076257751676198163276271058783740506507559019632828392125916182071088757189477617257527452576338402571945547312123448735686547045296474854342281492891188505736172598354986027658933391049611969478657606458994943155866333413748623782801049971057526639646603210314459611288660416471788061618623907261051381006981376891255488394451537060611694748288993701192550313022505479808189360380699131440245118447540734362208498986820083972691053308964279259091726644421714970906330255902713478163562725298437109542458607630156110759140917505715077946120542119560599225825432256360745478889427448476623938532801072031302921318607914092558652458184231784731530859341898400356172083734462637492399472858223287100080442841371820123485504596462285048355693015856464369768176430542699063870201383381772408398098599889594820033023786861444556419722903541527444229366058875755714411426980781299422148098157822864976806422433233451206142922159206797687551249230905833685963800988380267870141287273104373872155221355528077383297584763095898034536913171352955378485572147527981390192828076728797166896727222432231756481719228229711622648346887803178386898980556478528409965064413775762223335013269818150287902044952144833201071800339091368135208497123223002682509571715741555125811331262639724968024045329796096780040452124740387978212308593667855609180004672079712201095052676448392463354189954161752966989678747734483571775978382980259145212523071785145178495968077611375213867569606721711599127475399573610663194987895092372467848235302682290239274252205888219629863417788840490211229222485452730319340292309372311462315968741076312182127981706692205432056925297807645024838981765993562941375597996208575177450127739419822860065191509858835387312680035791315531723940248943342677878049775173892416019724650236959483745305186671839261530837819073670448541436641083104158624688047617861384317442664659230245891294374666094282825841889367754403741945108006074588671853771061663133678991458742897310287761031963253422800432144482180694070168910434735081129598013497576224444401705975776218685690648449915903443747487815346962455711801321065559924389305380080723826185644919320490258962564657348451205539421576084399771389997630835718310010800954847480359264306157332626587075444751902625063242774443768676622628392149130951394253976618758177416952395072133227386102895664738403575369490510474371485019690566036994444749031544174257056266656615013592226389926663097502201428626790082360747131710347803725975437006704984975273063249612243086063372741751034628637492757398020213384833389418112077679627645258362775343383362115442901647536571170539657516864815137274163347759176074776856859826538987505414943099912504682311483096241353056507003501276150028903037239760819756327784882255272655821357145472643364504696097556933533619853653782979463889556305197757853303052981194402886571952871354316369634907886907360551826612463349325209324062305766281191178620733243413383568763638162631932225265512098610036264130444350513467432656578779895835599401163874277639692579046914214880991274746170482864121885882931829534238704024169288816982011384048066200907034864846383841294528739091682139321712528727304767474183758609771420876130089120284967794991685104787676615479245238355236786063251146362885375752325684330713363233689801353093465493704468332516949204101761644384801781933530428379058798094363552308154383042267594092743619769071040029315345183174799425587935806748706738602765720380910886123235051211038742262457854162997770559638298271398172975473406801968659384130489032590936534742691851327807596477491122895285155892929762084919773788136420398321829973584528745755695579133948507291338574385376188516674014498669706731188785588391422495309406438202381744477048132277181758992205861750521601922548924672770444413985845403722706198441494010993356766914504227346259197976798785460365141713193842832979313487507517632760634362978979383078759540237355426846622444520812292973684877427283784350793384249338791501014697119927195568184701181400408935723050617391089732719354586011191383337294366344825582296532169001800057416607972833874389162177879957940128948549346966732937459662195080731305709169801580128440861219129393205398184690356616981455104572415577303880917337406192718782626108421333402552297814180097676584607419281826200045264211466075688723051829188533651289119425928535403773676002111910584249923929143789809907246242031857226069801268026462911778659347884103241560516590803769157247396658937199218821171000209731597064135146069949256342179821865409374537980012237761922924086870866869123583676107129731135357492279987077760982284873869544941681864769210735756919775271933552574811314070330493492016931656424295383732582135452453747311576079905595974181504061471401693834962126783553828089272339952274681674721467250206161991984864913307930412624391105907020924815778713110785436354936791054208564756848624324380006016196159144524429660710554427666355644540421240271279524179710214345007693308972601069263698981556552618438201003071938805603550620681134157465243033364072620557044084788138781348973506718639618541947295364989312626229752658904010860104489423167365564543898693268500160451370589503597968213862273294905681384490514387928144876453673236727368624017663435153454610294011485180880036836440410642203066777599637924419954329021340613725271130206582976639832379762631972005786096413985125598913313108178475718582154107290520496256745656481676925041901859188891757653334893166106564054672197908174490684489937909347917886841417871352943038847009755007878721627179568647680442591040886773672618280740141237618296009472996389308230962443442903456742564467716122619289189294889631576190770839086206817094299484537125138738878226060242395946645198616808732878953828521413488511157666827402236887445725864621021850892019465782055991052742194991133063610300321116200460420417766163640390837964801155007147593443275095893877992579233316419707280212211143196021020170863375463259725764434279774849192679686057395033955778978328791227231205696565864610913254139409317880697960948808062627582139754370583044439494083816708082754564456011106005820321217001364806653926754718869706120991809403957668700702099919780423274342659349275649380798050290353428807775456888532634009088991519310638894546843731036875315223059108549431873259404976044722959302216905840278327715916240904760447218045034084824683819137040832839320682016251534855458965554413542512579573274525299019793832495419407906348136142729022662172884252171895060343916387870068486012784422874294755848414104939491142555501394591717196268191601662955007124011010497238750843348105647643335167834957345150663312433118878282059545010133569586375854145505283567970443689452052004743417921510093197620332294713200069946902228498845119710525787444978320706186997980523414680619134826235317467091061632831191115182683819922654883588688685949532178304893475487463777119929801067127867366591266890132818047344205956272709839612548478597563244322595340760689842264192511501924545479814013053806760484390541421608767294457939343472050023496836670346483353556894771174737109428921516914574668982484424559279413206134225239370803442072143229296308032520000403308692904916832492536488016539471303668558118567436905192874953345305789899888311851899348574865035747767593096347163423979739631672335651951285143414345128158392486543486230213617123357430951336967829924248821461209315936450039323484236932657135705900936997536328693091092240235566679055392543950372131842889324892550945892483856230710628610953154793847020190826521321935429533120408327343209449624781129575954960419322988432175132226254480432860965253874291779601188401029387531673439309213185246649969824474368379830622845285771044439460743761384754015083883650934245555557092783504126876866452747399718747549107477318598644277008385734880735347486773141978875548499362209345263311324751022101868260022581801502376414069860716881747610508069333736731573091713055796817149513574632399913504271420085045424510183689992775603908838524787766185931667143921374044773095642178316919396726333300588223961585656809330617442042249269683870894834115287401790067548524082639489196854599475737269179232394262832187892475931738251862714563860002741423992154834855053129058495712024339693890729963518987043679133527620039550360535983106454081873443545113303029801089468942780654915865792326329036550880976380979838730774867467816647793707160252792110021571781947689730126316635976172705167913260783927271811336216830247434952059587232318481470844263448657729010866721517084538335337100811457880669670675726531673228221360953677941610498617763364670033943336267093007101932654102691949414237860031123159042954627435265748870013827076080766165463846875281599544288790771037042543333929638056470078694613577030209255198920909206625456026617571641316146300366993549779487883467363536526204309382059538237229677083870310165815297964821936294819932788743484497210927270463251670325455736920356144918899921192030036400097163738756869986677002784767430875560701229996879596286150827816909287588162347416460445753917412545556350371554830289542946702292910329129932146816361210519145939147036498469110976114159918342795874183447197477940949353126353590342519575784253783450852243723518563595950602057391927458630885154926964020126249717783974070177993072995101051846737342200896434945140428090170088197636423765074453920557615030659294877579865300973186136441308109720581096194016437533381848341347426981594507609123939367066575321155229721099521211759195561906187031247073519049235513807306662673981929632795162208510324695679533735065977733770200994586569340409864714946518188516039737624196219237606868314048286042225122009295299649522729563555340396420794755967028852973594085137276830217625888899879226323602617893324607167969750921148123044435423861266157921278729735832791325274229467229438408655281783846761112807521188944658334043432442030283736485161786775356083419010427500424597130679103073991765791051663495610212751598390714935258281094443861005546786353594142807623538734189488274096404138740769549642589154368301569568144583162507619286497576057800397502656492138411380132308193646150098115415202270107073635957002977249736680570225908856363476788885566219478814752265936672682097743516678767287274144833000709772941448807261961011010398429783914419732125248081830353613668792208701477464559349203160456655586698954867010355669692110995379298438411034085770791295851089438614944274414999831364132577978067743014684376027738474771625448819520697757539330548808001058067943293692020211858955619034882056751461983836479791402659633600301709388373379010609665836974609625229645773931958191722396446728489230736209308802517403248027534795290320699101808705132594039499994341240878981658274830366285116422055237732240729204450545598109853943298299514779011476485426514763322096621549938846113425588996082365663299031197173349748349693396869227717609792904504056823196568155930430866450681222156718646111019031607079241690795038652562287479197206679558460262125605007518480643989307300098921495856739060904095411817908128594697551928827470665274375832769286245860761263507054946741551487968613484018199292634633848627751396255776848722274519988853886631265199290467221554923409460954854752166724734229276844668758841101697044200162691129916306039866797237402590352264591962154304616268361809122195247200842360519038293403482837154113390729682082614584100089171010887678063907105266682888942460200007175470959602008624140554638686429367895740831631726167711494614152331837784586301966055622284845427068524900410354635356743464058185449833258835550061413823130139423592588114437157816385723050859972785658984442186841238283103117960831659287901412107381498453423278830081686796701028436645526769681251988399460062732295575759829682679480772771023016213750615080047321780184211157855252331982049069544345839134839628847032834868801734527845820828512052472928477965017890742050305994286621375042767573385849581232229699486012621485989257849219122555246854367293607013225261622670567995588782414392442383133533647671992163987358664149816467745938043083506512644390816380976073912303354204660542550516006641566801087786376547000258791822420692777472829158190716638856336726799775508887466713665861103204664101672260045724348222910743753730222281065706463283276698062731484057545287245166305879412738845952885264942440605401611043733103701112409665937508490388445464402190849374082406822945085241887926376843831501525074294105245241414835399020170875415155513625869658081671196868453909303504502262488330442905257922782994766132534661182161727425091137630119663112721511198020816614653146103274839060438662832078537039667205914324640606989861266571035939143845413409463786545414945138915817098805638551779993898283474932394849481573992174461362038150899912238523523891879284398577327213989754707084566493509014105685585294814725320617341202603761343899516592456203876784674217104276114052111274049717656564245300429381600531913150867014426500261448618604254858120372703082873966538273693840393850779509534180107265184353425995432221221784573335181212299396064411806134101601335637553377624530277831348300622671093603006570672132040592636791138294707560188453802606686254422607491153018860758412960189512723554166919576762672739007234088176303586180628337584652145432335840853043235843806153700723261316869466506058404590667492803913594463797053775762345564102061301730633739573301141805995874087916012839826005007100051146112397735116003527007661392755626074165979441105882490761751767883180300396454910239039088485413702597540603498534407623458238891417656630290971477854185647343734812322168250779593141807092253909947857521225723239635887894805058633035121937583080070160688958576117624996822186792934171491430708782272562795931475093995211897238255698183100220217714604204684263107699360338916362266677910901464948893857179462460758240182642065336583316111386367137118545879216561454840226354426382328672279510068388904921433903219455602678066535905962444364718930510757129883161736108372174169364080674765279635618243497285496949988090144816480182368832997185837234468611530647649221365353338667546633523751637670885610704627325159386906738103519780435373506230548376240601052588629546046953204053752614095754786871378513074612723434314104380761875442951536211382999135466925870282455617033661457063928496547669729412083130199777042558988391111298486430117440819795637107904207724598826889369194780980386983790065571495214931459036445201469067087097804134368928946408593612308322423871749180912314054469396197487431362292462214938717455049762676540170389362875849192422603513749768901059281273799128787044414148318438745879717956126654875354002638737970830116720217954946169866471155668245452904303021707625071225571359458894532950175968155494324337317840461244251471638194729377543773493418304588182387325715217522667334802830137498279204907533287617764925446271336795870365175657717255736016482091994724611083809439202792156058724924097349406044644044638168816553617644635358654203438697306795224166541396778776938465790454399437481291904030478705260425197632693463117066202764320563632145878009980384386283215280903005488517079886397580925485921726765477283301501238308924137484476448477276363209904225558245623233163247312444604424760741741668209913907541649640451503632289935461838774095524832197665702278708843366953808309699681650505789739679167812104095852868193478986407118052141990288387139239690459839500336529384545283525800883730841489987433664971099270565344054243446382086744816206983538397290832079292081875438926793378102932283223659472006318786172568090130231617902336395460780870088187599816167133001116231451222825414417620993530462902363900227516205021949564719418857736555760646215531332277710981817035889019905293767175185100300259472904225758252080376258471902060704111070892186441204364646272196424741031315342242224650528347058567507775655439050442442681127877842952297360162226177955516663993553192639621105475258012858912813206451397445700494810573410869986928294651272479448526283597742082292624942985545407995763641617032632657319322010105921333942365528737676467502205484572236190372637235553259889022160224714766375620459225316044375148382665143706408142143864899097947866567489474505469665024822051024596735345173737334683850818182381152783038095588461706747264905200736197210589716944141891142655748618453973719058286152265434204191320606124026744301531002846464006852799298706976070039415127437504931984570248824027767151050742612237549586052395193120362647147252791308158379456411046981802518338925293593121135171317821854909711875223571384834694618298850043395008336509844104829518863221855407362709286138107622140678318093105608536205912488610589205000469268585386658230429935024614522327880086847564483487114921102572312157037218516528148659054988157146133974689085192846695055319371861361602492290864312558150839061233699377135992506290012519522929470703298644023381205102955480815031196930259098763298997678390667487403194759941541270755564888817369075505886986615869833237110610439165272647890191266476023164019811724685136035454628665943589931970911001338101620001883311321698469848136660392894359805779715337204119699235375328266865876438776223959133876011148566366002879248677372464828650173378196868963207933945683384637599654096385082783531212640106005378184042645124639846521429513546535680517550516780066801222345098076029648269279488542512245883413334241996899509396782022626762802851049647793587447726466992288499755763620132629866478362564821791417170610733002347859460732031347903212859332238408386526054199849579528720219536680368489006710003273509875552847767410514665881343424176501682415819243014695662757430297909567273086371696403396145547597462719190802681819941275158780538522357369067988448956278484185547967177342130046817017052529800124943423819624453337806053176440898746307283252355991049693235648214428418893004095573162625274705154162419677181932624845475421242072166331053894278055198772602152157237488795436124663328199135248136568786450775101167239050311562900481503415228536079234729783026671115738324953373780384094349923964282671361438639355815943541933780394412494691300567875129105958661896796600935544549380596481882430579663756477694390486286569357770959297731227970657322181977715299539196331391403027801448904096959448246020325270233200057784111596446036926706021921870046013592834573520999847715488843947082787792234976697126852687091074680900341225569697939522570642950986097584132227994863190807548253718698666205853768740651549506065977763587600380849306790619881236010810029009796418168221142310024700473517264485444839974491570725372240017079617975893872394941331308680477701371825480926793411201506348979239144526195658766832699545472322201277553770578900300928673336934053163977115962606877334732491924227244113969479268897905654715400958473709780784715137720705468162644756008007315985948369396015298130102826667847404171106645972666641131830189332045668864222223386344597352465173917567670202724089363122397170285538412622796797222872559475523406404291808515782987766289369884906656523079742606164051406769939324746411272920156433526295206434142256924398888020205748839515097381096995488145682023507455700855790422774208343597016243377807398590490951212716092678761586818220368542477502691408698456143250130112955853756817230960739293095186885729159377568566488843530707465853525079723373540090356147164539366387467812545591238112640063793454696961444560868802396957323781911837045397546667466279667900143140316951780705818030342181699792867832107637212108570643863999769509401299549215044452589228609226861207092031125775657076019269300377900137078676527867773307361784051207280843764563309126800879262799113403966296036462454351036153715102370820363851631668388676296410279804074116187018009039565362297029916533263127322190467934586200305350337072347001264206501552414376099649072176592219089600972185100091332482573003913358200051835517026580282275938816384078424037738231242476111150896697238937522267685365439459139235181453737956584711112931902377742774797207596427062546725871355575148584226341375228887122852484331129485796925743294492590394241332796055148396039947755202991838500361586161984398751781220748940118318600419994299272679416408213513003579086602741653743334052803083528967623089845879060629484546212091143019456918664369479531240162915343140330884768395123958863459843154430374681362304796932583788860284030202790247731890362761627449673833770355499930891073007077368885309655113115212615308856194162725237821912256548670099488097381106523629436715225021193781383130069726596926699303209406444649651384610208783760592336859285225899018038102803153332426748268812257159714127465433290378668112905638656769776406012327487507644695826149103385368172492054005421068547612214170123376845652543115708629953785695273695299560458666887836734025806850376625569991718388529369638998892355846821980969245923095280361713047048166140493653505983093482083618147895751679896216570451513106130226054865196288621486627787148281804764640127551134650559349407868307293909196500909117104462077859198006571100652713045958988359396194647925255359849471380904773328091934168706054627692693556042254862431889739834160452864319903948253573589846662765472754361799376612018623114853435635625223796524246112263101838208294783236124402941565945442486257049210655326417689577385417413282018673525844793732402140247363370140195377277811372162468683580162507775862648125176638815361981849315414140109541468838802158918510237125341611615446743213559988759190344060771723313112820549783972095887478515722079067543909153920209343515105869627500750386691824094208855560810146988057524215743714665717113593615709155821815171773513236286809950680831891444962386922068113183843292846554899647267347073452506874707965036111912870198956292534599191483569404880889480972641814934404979009988756196627402109678875231965016059706470950560223350710972077913766087765657207866441874176166801996639773664182005112925623376671739122473382794125861715427422255646528311707067924573391188471959748231242189841758357504131457357402710775918420480165291273920987701574431142102176525358077299491994991617202803214401392342581976045310813188853329987874360712756723958615346969374567223314387685309088409134163325019365212811998132915416832971126376465860289905679168837673835852968052296507551240880571756521429890760491602970271379544186225943023552114798972091076852762189641069891192357951108844262411387370744584702704256277019676836264304392931749651680915820260611077768964676422365390790061699516892813811449494579789967537722085948246792538381372219577351937807971567708897897274949615351186886931149401760635440963696436243215130131260273482854517859692838537678428097702529109411169830404459232137101272981829345502781848555443022099256655680509237456429599949369287930941641826547819050095385256743458052787492256143644568306267754565288980255146640569476732370064608795258539150355078820558601566320113225924224810497938117325782874482409864601065237004391133786304341745110867044201753801448835791896158176621946692765301830625394637234872561257590064702276300803797962383273911491898227251593618834334220321973698816961824296394431851215296302484785159238172302876076084905131443163216781366935821600139546195743424365182046295323951214927646304104777908258124611774194151688298054562593804570649632432942114393124089032129206404434055879738863186135639407817461516946838607797075365735875050782418361539151144894627445921254059852388405146767680057923255096802780199503046641449466330819018740615241729038671869019253752887608389978090245630288114218895871812937543071942755565281455300640695152633459494059935798540654125566597909405041152793211194958900349833302015546560334409755100221016971300973588594557443449082804127971725372572203217727509260863095777039873253130173360157595797378407218517414134937779840912389727050200183679003289281493869953382928649515164457569893215105138657449740054960963449519049843394858214698322859904887257764907474019506156374504198932415200978090561151896959192706015230325208256934246545158594623616841372735803196194650154190113860059243334585425979748431660252206404131306635599036033043791528589633950067466874408467227574280411908549129561529763392558916069811383015139524168667948630917786314768956917504998625953785042037797823874529544271896711737514810842045119114248970709127818978542717595737256638282740174267960017582973299747125537170007451801275090775871723317742223846290634027652451928560330596690112920027541022843979530014807828664312861744822345081743154328637035555614584726402805760674762950694808744296990813605995707678969646415371935400329538396006708990681485016359682461673558357799118469295573752852270227901585548260330527229352321565958792228960033306359185796444984087089764131108713929964006319076992945481369107157757956815583290932919218298949614113439288369556405731460694824518958449607302193314741076468614603409376213888118290779666444225088905014926711985242803436887108529003059284137676424344250635218371328070052048295152243322910509878195799585752931785852921331478976708365012685206072581431490465337784054024229258990262607722333785841086864710088562590551433373099241576081876526317640822404696088503994307402407574501824582198503827670843471267430539703590671502117717382033344879335637875666663880330014649518337633682112292392049002349976704859641932554646117785733258008001431069983697900810069218286666470385453244722222531863948728938118798778885851120999492927569620228040055038194964724280487424403912759945792522921444272693040669206039466235497827277690251493205200574688316525793660141150763774568001096402354696190366147016204184789903429407350056488917740522423238854164269369760752584238073988474691615881697301075918508387607042568661505283671153497669360925315591628895804173031030655921137837092873096302778922175244922909228836674734590717334420650176212565285769361270213365800133818459948198835760253750390903925046768728726253059290636097980708307491091834493125648782333195555625823724722835132099517045802258682340713404966617225785528908638150938750314427521658470410446748387423402951822203459874077702254553084745912950155465189434360535403844968286093155133036778700988232883632309810489910866526777722853912628729032088358278327957268432747699511081423261869503678810562962644150704694964091464622842473247618222320824325418156319412947665044972983588856180452827191331905397036390124612997963812757816973419385669783585446738607893951213019885404706389005986011582425682859046533527959754405310418849658597619891355063576128670829506791596651773612693621339246083149008293372239108999692200572664609823662546853431476446681944714955561558511616422807492962934308637660156734221122708823923065172963479516038083740209280834144077734889700545476988253931854698518232473030503956120546301356110940870914066916083898293338901250776889733005209634827477144864812704969639986690485647874362579590118985074684925643954575946126937341486759146046485479595273389154510392317059011486559906878603674066507374814684489015703500571098005441282345847221231993440459339335875385312090508048808407405826291042543047447771819421436335331380161520904789149900511024481028920414650093410984814874702812418159117099335560528906198709365935559537894663339329178208108395488115167601000574771162943100297884679007137693151512364648123523667298443336011987428444795017252685794263230476811626277314563204987445015750946474437771380649321646545186661689477558206211029518758724009662688090445400591857234591227103757845417129283553947850563319650169349698223411805562838491622255928752185502881872807258800676957980390798253200715251393564052542107493774029980309235596032349542433960698896998516407204314716779926159929494162444170626891468451360886688111436015305539160930853051315368733602916629411241791581000362207506669237450035153625789325401486193914469946537425304134929071630414169625130773621973484959092213867418911980647468091074063698366246022111308685373488058740285715931795346265256138338750547775701881085992783696964274266045126190016053541400262082255751669345844296798496442855992209157677173196378881625768580013368289467777150008622299298414059855165642896469065676546522609885091248979289446969644092065588916640419135018514199271505603368794897567974261186025059861213339865525347075067764211642801436823824791345078423100177023602553161316909560890488330230579188948054914452793031333840050305480128776551496709751704554196161404942974268483438383481647549968645273792675300409667858273290792305282067810871295828005655026600782513472198950516085097502560311588668469484749097463188179590931953667236881083139049869430466721363889288156657913076564501550550495321467230193842763146313286360514130456937490531096170778241206059434899497676826616451831134745396284455878900053243226344619835805893772427786257035917918376530272869214242737139471590200154086421200957455645366411657518619896460583107011056231142936937183200294172147511080813800409368657763014871527879576591868989237042659411858714903803744840099078966644451896356319809789254027546429326026584906052511201029626916413087240239611740308734485418576756094505059179971954555487478256382515638950420918767555522175095628042288746987708406064607126345317424968435730111981236136261081522637684887122180343700471126148755103537719707888551740299271962322235224184436027987431522143662936658225159461922199837052564208525841858801698460757132751295448962981083567425263766082248355587390627646342092239641369684241457526745751073323510532037670938383714489388482864154903049672195457470924434031689610372497140956060759329101348764922173123148836978930715701830328226903586279879017854287647245033747237640853218549120264555955505277981740169663255259499370669254391534030765158036249274235253821782499225896574486759486709556551071785032270582800595669468624406964873349628603771426032650389246294437675710661917990677804084306889602617872752342202595690264118831456599371963988426745367754677126158234446523201569682993834659080673533660446881196820854078540611229931922242069684075851988549592959897517878530248072719080702959201000533874807564856759696023058621058339952727997641958555283958223572319570444027548644803857564633207594428648999928708490362080533091262349820129175510855882901966052694716020264017205939949848551041730226657969091851925392720351546829058320182520271127140618369154658407264976617365968931996651558198978523530408857195958461385380432061386558891937591049559263119252872827890297592816681438994174085948454376432744189239493970979475454727378187475095290589386673823827394554832342731614075937729412597953252119893499415886704188727005033537734811775897492378798195617979643123676122354541014088206981666225831224207430084494796037523137142619810511490957062403851518303824869121103129298358935442236354616823752614668160596141583168218616809100199657924246529859859409259891545588154608861855634135226561265974396592118582599667213044002412807833597684387998671204261959243710953068709767774536228994487354673680573073156942624939132092588547149015467469285297715386643849019915703575614763571254323443397040579196790692238936001346296995635518955212289709997359507165023505174034456338634837499779879354510151947873121969873383190702939980117663389724091441127239744814641386441727612651208862981837296184883625134779118374870873602208101583990625138961950043849447599314564822933440358694034794807969460249334008270899636326811965710363773972638101663287517764370170290115533120381384370898501120842276326942632858895640139371307415387140620786725515377526001727231887100706728698419020918151421323239412147861548152808531525544336394337969657422744957351965971139227503950341071651590366440435979726915686572416582223767661304962445261716937521077151692539064553769064073691903876758158101449747904257600658811427988412096265412690746530913224520408239396667587189979450721262115784896758440641978858816050917902071427854180967831584244840260307024841983518392773598313131691646580082526172722207773365110173841661323641823225114844889013402823593036856672191156387535732946155563964816984196888956965009437515716209915989933647692685122615750777696366100211655285097739609478310005125700497862068608668523934379379791635564571809534010465371123968924486881461367104178647599781103808228674745320784093038424250964126421661121575608426225506306392482726078423849580793652568962667833682662912714502504164136984418230677403549963033188606369801069745425914202611728987322579408191438867963822329198599421184618984303460837637955275982489075009067811319967716377975519602929327189918501387433445699054523450114853603002405152872613672370842014679452018928483438457061499159497077777879957308547567705209307190864767712285685142100328453122157332701662112495796996583964235910464427742391089943981601916752777013101840381891125625552315598210088838054230783201409220729158776224164578758353895735014569956548970354769386675134924184483232453324517655358149709316626072265321879982665540112808036013165482123046966077333263281756515374465160122706975693756829833230900286716060066831833030202008271954042443665356868744052970843473882823523911885499838228424129335479275091477268306523805100077485135049516177654765067831568291588328032051672911293589086354955690095822693480980975972192950314340064994664880965840374540575570962267770201063116063871317684986940480722946783382331333359174515880981629492561507541334877338550276935069137553926839936247206658859826211730904479365482858089079997855680010864783234582255752908743258812024861336456272907852921401257348126047043710897037463520111193331807499171626737847222011176868224119187822956158332191464492538837144732629848757326392131830473695967710071546186146719326353185014949018758772011442164634138585523122936273511279282019065965523228428443754196109221531030416243734229622887863223106055213928145240962820266230503872958813333601404117133249623254017855819012651663897513815096200729759817827617139471276379654372173491319288516140762662893597569728447682483049787197260458121178794740005941130441421414143878109688172585914930717797853471663608450127777895714658370092077018410146227570956444426273659926830775726210412380463482734904353378644284624484781837572627146279292122679630316311663217921529575202754191297003735248422375790764373287145191347288010091610844203358511610998475847519364245064634991333540770987468986599640618277461637008971105468887787712795115838208747590776500349214924396528126200617491565494932395586012511015632099315664772675306876755525834922820497762722371444633196432357785447717602207053978645173911026830513037789524412636834622245685083671265191673308988879088967043804403042368887629673761115211216050538249931579424565861497083575976894013075809671074652753285632904408478834356646128379798711589052089721555845412040348056997154730981931881762565996509913757679607785187363646135256736399331998790205463656253786838113999119150457172797158340445524754621690016305645130604247968533803510146589061145845680240865946522980990530169603229957866093916571970034010242426895256331048920686924122811155225165503073467003239319562797087970142967413455325050837849168229378023527370915873462308077145718293809537960818699059279818441613840185416431004414455956574464076254591168246020927894672211290691503933210020271803610209041602449255386566952297666039802231040229331916344491001450901661865947612429699198704019280552625076784532164530734015384652430333212511551474431911533525659776066439708072337066657039703681267347463662487505708842311064158274517188630284795492553439280487508868896032939018217965777258900449624832073004228493936536775677451928921767678183062834924623106240448875938398867466243289231651214399401680932340974853885430046590036223215980565905725633612989389803303912052844049687227091743123358298851725169198342489280757207566762805401689120973590053632942102758264133289235967566443358033320487189247671496453359492711329705251611289487181527313596439928437266891897931576209234485796208726041932446834792794136085656405701709297609804115544549557695953727996990249728145805081864730738571863999926176326392852160227163364365062788269671683726930379096100004067676519016653396608515912097381360645888718870846228839494058518608597872921979451206695016745597441968106423469590248513868203824590313390126582579186993047228155865961468725466971166185437724719168084981693170125295545106171126882664670445739431874350691048126417084673236984615283664375767523323408426284389991827243068233765545175078005276322505998134667917671379865993922385198175151642177887423096166034152678211505762878824705506527281961517000015561053726262017995034049137079838502572806664961613226000587697111173298824529748515494093205384096184996891206811875752176603500736716822198984881560479972340166340331891028527184607706527285080305837876732623746158413216914504587695922307979892336037066775528068159501786471432586536558902550525043923260177911671124098503407863177564596502883861361943464388765086098862248356873316767265214824193862216437285841415533486888782434045094397646495291570324001335481563718559984299864831787594975975507193002325854393240109979922510615590557937781141288719851003107020186422972878386616966374994939766805671924093498731995095395981397369872681665061399901627276238497051517083455653921504636810834612032965094297863696287873471678261297107317288014479683523824399813948804354776685744980757893502553791230488135437751765602829165253752901686788722786901525582938138594678590306018959888290017301371516638048636611905181434622672350718231848083835462183968479158526123110826945034894446084555876297800079722176722938232741413861624416526330948850781019460658022986103588592275648391239317647575061961455405263671503624950794314348377239046515184878601036007053858727249877733781423949719932723902350832670920929239829291400905276218450923512099416923293598886861966767897251334683609642195656494704466311836599738288652360203604138130603018637345403547042275988707052457962287546899408629258912397502728638895669494762336799112191355387698400768648951827823452550998377617657992836039326432977051766741109462931565181423919506190235525933836137970520749181658161478669451395833996367747010420186512946463382411200545792745888598584585334758404733884610131613525723872178109750006488188073451669015895301700889853521719095162634982628714394101349481372082115430082469912619022558046019956171434210063345346273217388049864826239508147656303676559182813435538163740954437936841476776663096243583522363589275825601619258523121195238318797154935879972414688514829969983551852734925510800662897695832902070007533578571186357013766838605316449339265177451967633378051878895004621679301333964644188083488279366747388558997373918673312242931200800609738226536447224325556368321313417852314358098209797970315095555310555107255015278386778292555581713094016548461506789829107588704709493767575876077598121496144570870536928989330629958771355022093367825838161133494839494515726462388995366573953238077038686672909624456041081054171855611718058093913180982197281836213207001962865173927670367383843912788068266296134876964159478528271476173274031591556170274226629752426307139587613330286274991250177227264591277544967567843378467940453472344681479919150964600206249229578470362331058210510445771406547303112112603096270325310634017398747739421663794958061935681877312872864256021648667689827944268632445833811255258475193945043563691155216404130736071708991011028083202733254908901342709086712202463518733364089436398430660375180631370383240298594914406673234832435513554998718922800562503301147982985766076216009182993140188087460299433669938337573697368523045590189336877582036988784337804427588600377646341619358760905193077217998490591645067407711921158625935686410726312928989078360628955898058848681252248534294537675747806280713614284491203185282379829313351645325491020705652764108494200175578411981321898910139914782910465994282213215117402155012775837996303752565973599788082278158895664042517096245498198708079371650115203244136484277208241926494134731282928712792605347398691854370273618424502889011012079681110176108973327590530309646265273071510063312978193612067245825399095399873960901662564189308988292750245632333641048620528362890021911327321668072706611875224092802282332081159587486674559998402458818362714658839795557413670092975420119223563138351581229329958301542659835729146802370999861845491909776590832872351423039182123375933279199792872846915032701230124557762835349039284698362511167452667020249273801336458045180474123460096552382823395359608131859459139341653326512184058966309174578181624966004955340713644304163529122501385687733514769310823267360215482735066640480147202568233296670472934128981943546776446426380209987402176629167309995461554452048176447131201142230514110720118314371004084303165933749911892702291080228431619602752425362148665731797987717073694230738172200269465746267447162901797740894477548577123903303727626587951503341083151333612545040310268544533097321581362111163436955681404294973706039540590475177911984725514584524246535264947843976051478307735915759613026676799978596449515009277370772804271958210343113409404443734419832504259847865698302752470435593345826142713531026781638489601059320825642622547095709178637218183943807384788591685457107581370726410057236303680500958676739020126333027265179519752694837193957586906400061242197338866118911175020368379642480366931840120293249922002876600732309009925874235393018584610661591374681772664539937527201940903892234927695497425055971477009402781463930349283933160941519199027562771289049696661161506137300706913740221408781795159950048957819947344665018567675668688793124229964079055650204094005322703020797733155624775378298519598598552711483201124275569513893655675361369327243179653511018005374561347720745714519207741395682953825970885103973201716807019447437863472886826040366352843527346843126793272557823851833405723496788938336629564562631220160177980772117552137361207935458577070787354639411881788991149234879367699037085984900625178451879617276764824476367931551838593732884619024287141086668508774305322253192739049889192076111365693395389760505521397329585461789257271342179811723930578815036997367589838875642581543908571123073937551506878415242847724810391429780638235126793355454244757592581655236291553563255985341313835613471948429236447058270185051333378998501400416737748080169321495898646665846739688797479367148171827435382714449365943831852396422398310597864117413434741523076833978490989406291556496506935655882397080722575286483971360983865296619630584182108201313834152849471195122135100394165875950948902897877371308170396035583285813365433824038518481693573352908432138043277581275689852372429930211703142430238132186111346546942990994630583427325934001549696182636265887085168639685396752261241682367967296700367294119366697116173543527016987124064355184767969140250375883137405745839829692077746100475352351377319058807036786271767435069406542072832177680594178992163868283060392354626477823685494647432883919834910084574184056021679447163331512808538039197770914545588289578454848789588010513594764361351894946791471201745776362187124116437400694284568309338252886085559935913859891063145436682742758158430209576429473308938058407582898279124237105508686653250620919818940107342926679768674334702072405694922335805274176937647379869104252777514111739278111990222846141499276171268531614776965255486806370123959167884764065023675265399794878794459644277478446579500873681096986610060154803901080419476344537503772971020587835854353572936624169908282955263065480488913255013213682896402044409036992675695653479366949625383414096885384549925806719445383741183568089186198871827121578699732657919219993085084782166123471917002046133639666970863520451877210881422451027248452685218674488447494550286211103392217584241044962506000368927368358660811489495643065147321591805270691305106868598865439763325118608510404855222010425421631456325544702362269715426700732789934387349217082122500787990225274362385035807348592005267598889402607128572473828807719632764659605280627553905377063088066713953433926321054178538545298870708779500657518783270147179589005671898683002775554350180056223910291437259899148492609361668818697110593026326729249173037544539557486924611540719989622024517893216619989771238975110739230704977488811230397108038198112629394529617035524008746919926476024744780255597031085731749614136667212582873573669395421847053479997036854659808289568688086843456126955202753821791462467660484393888091528014651603860947499920762072364147230333962404561191232971199108250153327300368641726166131606806796311227448269991628653902901421224389157391487059228369834198765821221112005056516211296388994604342667450726137226052386271758878365051354154762316253408411841233827777488538859203754511815180391823464513999044392996006403026650840852579976419307056889001823047897007039945481938549268033269281318653140086128695795537872191076008837045419555789415074577436294502641100872013413883835338044331651433010567039819283784639040258406458149326426682104297774087945325836659020390858983143905234840132646524681045065667103664709015473709164843482993302637267370602573399793802022640094510754485372554250737459709486888284330059275506258983203120777989894148374557269040076101135675753222263561692669086995649961615515950306680295883168783767866710721368716496726278223614784960398857279777102112275024077924423883888032924929531432455559002732511932789022114642940768214550149661766955971545812654475375680579420819370711758784720985405861302287289024859576703654361282214582578719062754830294395950600497303529389066110725071067722016728863882853112739754921747022511705287825140033824231572021685595062254008643727909320264421608548551783736882770719864760096096459370369119367967461789091438443365313387321827313792657428354706582931392071265840156976091699992228169065362207646321742231804708600673314075091138519587376193411037008882912290128071757831384812674545402449217605832829945001163591731089415571702314340495098457670064005527730530021562455037124257704287081430001437774428043879304754489376074415725282506180007411221083829128076597272297173731160350930067742648642034240376469550001519560613405744241634007382598568515607009665522301258955066709757803118156058122740946675943025780586182984336905030468111444617992108755128794944989624523738866929061148733045573994130209885987134027542582503471360034583205190950090835227304206292283413371630288417638073874538373635663244280206094212127694010059847877403778904294229468067250973276315291486746192988953459172602709370360958756627181181735406951781033880348834415155950996839775734999142560304272208386139623154106025453656609289613905390977647979810129324902117172213235435189032763553773330224988829655433683775540002236407451688976667592298933999624974211426844676768298421998456123152630058483567630723530724700783519086057300283542954251119827023423104912605243890300545126282638510865693479881907453998187061855197106135523895465909008663681062358803131802661398228691845693411191314484243819088512251259214698856407711992458047332178683213861928823931066862170727780046806193194191875713293479998354472343801122964982949904669632684581248548037465788106192088931018090648521655482371249553962885904918649276562453079391030926025189432675139153854433546931463500576234913624930928192100125082055903776635794402618134862000661112038716322954357264591377691657271375172534413099424536657043115897565421144755540955928615326102072935187564629417418143119109590238688290991357743130539619007270333701434746230535184978937015857699347857902265795800698704109941578548386529469785921556800683754480228264936215442475902062723918832023958743368501886243868430117430426803102663165374049250835950980763273399814034387736623010272702111513576042570734076058718859864006645045148439107611259861442178429825579477625509412979850401444957818042137082712210815574463546099075876411928630320372442714707827658067626835648646627833718118852639376544372032368697735463480561099028200556535430536393180474037339740892843184517729315740789070737226477756920038290578438004919829549380683114791566292026128320654337189839910210287278836441513173331208154464910855007443086152497898742407310917047913361634138885145064745059241677097855060917069454412772143425571239880733319589827783617781747576371515597011129631761303293369362025154143810566047975205270900331403313939257836347099300750283956452275574510013726595859599381938781484109197379030820620084454753382212550021821522386626230832388513091707880911942688228252771566240800205231722454430438365744871219535423542734819165690134073272673253614833767275709781411989582515166195362374227479123315027679695688748838859347110585292447342612512255027872848628943810952957355491491608664198646787419803831154973749230743625447959597967502862041162797089749695241217029389336488516410304909183917673620260668382840024782211234489299485100116121042827131961729664271509931435376996972977404535194093751759764607432187228680783643393167112569858977343099212189318144403060668418668231133337013854994190743223941257892926119400546158441992511810563658841272361434628876165807689017732897427597961407234471754854327822460365258977505596451028459453047118207799227203972188474328204499477739127809469858847481170594106152356134061235684044090143212783407587955709703023342818720704023637317208075600029239512692513996614104409033822136753826130929049650198221087012131060546468062544957417948365469680290180266728011826841857824710075126498912960681444757572030353748875325688277975947037145502402005939849058434631455213891231081808843294622110090970245786429199262021826926770912785042836168841444180995403930675988491635627682772358796978188227757096044707766730310270821591336094694441298116614079046721622886808443433596347106474492849440074481976474001757309342335015907710866657062605015399264726445447405236685650160190380444569784579190391531978217767439506361974335295624545025044042800298767827234406629992512823278731592366516308918149084621786433935716750018913454239990182765817090173654921592706382931458187096393343281631705765435995010447497334532768664403395138079892465342494017174289451071778591747122751614811428579619760130104167032036995063235244684867354513370149146162106668055475848425229846808188145736464365554307400504023759623539103866661589407214983557413396524273046296619505042247204822909036913267641116675704233394795497144154452555938238035652631706348184891201288646931631794228249905331768279068123974729504113028886724092547046310193949799998261027029878050852385729685459284477697749110758917444055032506272196189110651894610721191086219663627570697834610170188540611446636127361646877946644359557606417470685555899510265883985661326860602160648571875517500450201703090341093083137352405137556126642889630992749817956405204871467064646982991473869180010840509048917168692314191617298881767303530035288521133422693245211207555480322662043969422494749105762752848140397540317888659701112708101112697044423646672203406022599640796537229797815577016191958676858723347865461027131035747582335588359718432325939008620431310786135475528770171460479718513484047398195906826179095309124884085027598292721779523733302972353966573896754921786466733936156386290883961405218570873756088960304722705521240796108079496963110469285138817574092657102632915755854291452638387186690369165187681310303301463959244713186119037126548478449899165963703166261810948324407622294742441132576143183683734072770614252392153788842892422674111017332577656592616934110161329586541209949327867530116790470175932853489427521476856945091984329048956547162539237674701618588025829884890974552360139205077281968886191252140469894402301614676365873818790496418327154501679576915011178161449814943579581650128001423289382472841575070418502795656463223728270911591173949335086979192998105099833706897489022744623841739958113500413194709907569851769794938113186024988803688148295004974187859944956099359535238479754775027980948470201156709181125601794559256546447572489143028804372730982447229431595392774819645878932857992732541857487142478544552361906775544232506549818272181764309675166917818123635650273210383120423673075697552237871439069317697146314528048598170385156960940434974860751817487858630475895096621029454780294016026983158616892455632504940394299166096099610952795221545127429005893950475752249254015577903198734626350899865238938347434803566044076492323276610452506831497208397817340858184513779261497107745205454059426124041553744436467826409105940061112510743375151892613599312410666534069704112628111416618309029658641584487376351991249822253379348447129103116861145374836007722893304843648472075165935622027867984658065529949195919690601796043775719271159853678858769231370284682530857372244826835532616608761116924827007088871809173139285506181593771711086552112363535474859754651889745124023770951134649740539178409117236671666542332460913828190999646249219683244396678040149826116239911427450550917215550482665151372540134730482842451967753738274168701997206126970308505547114583894691943597692529154152431212016855362377601706410192336911315972850230915837560376202753020410795794992298506878417965613411737709491211505330398257214923081285358684643045619759819655194350816858802798169056350382649468351316780049096941071437207942730124559184111910887940240607114828462356879438751913436081676431319038416619949511640482332978316001044986000059266217346051822650116053609879771538358116191827843963451850494690715920538208368018434440699730036076339833664716039049826869901209297226544063364153537920435317251272456477709421930607826269370409568996213261350219711041531434793799942163737015118125166872716617487805328047639587415890722668445586758827734670916862231497845844556288891531864048971555638327841648536757132643373764803370916615176401450493458336100025160733402853902768393563293289493187383312647916959755495716682238680375188819570949565509653943097960820635895515431547158486097671059676407336395112828283926515007070856747839703155302912137370284739360469988843390011239530763688098567239993512501676900639461759733302363593781991876511625177333400848338496128025223227047388521813968124876647455456229163345978346947742051568432110590947579445165381691648966347862307056371377007093667924295648646711348910944648002672569270753266323687382175431801212622808679641083945404679128003546089791692508982610277253865568206360643296472426462533006357908494832411808776830565435860662762323494053667490550240736034598542810707051692673823698183918751352642240729152371155465745881983383850018568316005887012258846860036186414984402655729503985142512219582619032066953047752604660505162285568607943333218157935131732232312593580692397909345665566428017145961503166396020395113999030324611922437435841197153990675887647761271021954249411763099178667860213021351727481081269414109160427442836460612234061496196302024807268606376138629412933858853243607373392578061503943071944902978671088002008866977914503870429926397848839622742841007312540418592496835057986731804095213962647626470378141475868863627947210315911243972806191010660311959893114808399545555249765471662102590531876432458227331720221150857262276232342826573001698452328789153110624789651389265174524181505590237535831474462398334686830572148492016279015731600339691274691578683650908481793580458146896943652998035385033154537816468196069301898868012776437049899882910764782077722117934911061037309215521711595961200339032847835152837085334896615134263402983629438146919445173269365840825453582106297381138805611329008348850066826610927976057073012968184993911958863074542587535062974937892437336376010500127749854622695691872564864103600647234246040554314942344093951273097978172506729094797951102194018458999269028564756770033029016179642456739090657866474667640593180255706294334087997874226504165656900089002954467176701288639519589394523454745553266209573307234369541751402243590781845947721854787665166154507408474421481549083666737478353342582568336072056142413596189926475058524535673948463338757879932753632128014548809714852497350073109026226139904293936205169363454934927452394943506749745691782305832427481115613669939331429283896535949160132653972939972753972937330301602950016415836907488410006923829076324736538562424445088448913339409750136059387285225848636382741916692769200700954559398779682516089923938539003178806490808268211573274328687169990894302273279791060248653460899384089083655830425757610816359301926437248148290541600489112328368344943921073980714894623595260199780751601747167450884407020128567894381614369380201850566136355016459340424553795241285553609381466113960375039127181053361434849767552153761300588494543041884137524844884969907549650438484818483902203496304358324082107080234516461192133439990588984982944180630870728992515707275105773598826232884313891140019528407491052340104565337636424526836453659859600057823888218749989900770247945263004849249325731591602412922042753418105089736846004633404425205724116274993870648383668039868019771496421914900018495788978762818566267443477146598594034220387925186328724878761887712215549704258694670462910718741152278036663003397020063679467982612183899904264557390274285150396450315484949982575893653155879929927249887020141644132675542012901157208074142577300947566930633257003958116155687517991598135514530642715384737244147349690293292775715380884703542002530302846817143075516331106673608495881790450573568613940028082008408652753057567834106542674495276186413313749182790541395769371672698238500778961797445981174761135116870412781013002476504769525321650060187886715829766491099030171076532258307504149741127215828481453345564585155279032137902621548319830784450436897971783514137912326422723942329324130542596522801747522841429864883134062697273603546512414559982082723924824202514263579695046585878157628440904663769923535205143245016911278817690703710814581887935052676416954136822389320536268588598895358635673323240447720893435889402113033383111264163760437358662953432886422298865652308056523680587449713573195332111811490665914347623385605342704393792336932475030648149389983067302269401164772426823188166951731203618524832832375854415593188343658359079261114120809396449391104714685702557270217775747537103864037472953830463632562611080995959786224742949795029605572829923235422689596879618986721741174108015844947657559203929625988175590802813221240660021122713473695270603739277493963286809280442675811836535638256913581107934645379491601078255271821219654052662246597630747909381648411387725824845386971048820115011914304923765611936372070921168153747266857666286263275903943323943947476691136612641139073014914420972110888509435222201997716597078027659317106086667593656002774676759241269152940636122526623482314017547777903996056459489094371012685683465568302891222905889279110038041820213882269240753016174388845494834083382084701432098528257812990658498872595553738869509769682780776747756804760286527105485514822061971421465244433228654473699760170375381166018220790096016214636798858813428288780206741216686884605719819866106931718159648104226637112846290827868087509513785450139225895094023463313723341013123465076134089328497164303442523225946251843834262546423532113311227478752221066241155931950417479271966874530157423789567878728330472796139075885833311898171290930183105802494741365594911291817985470711743439975351269488264469261187322841920135404963838697961499751919101065649025139806927064282234304293451938690895904755729314666657324259150507211896081903731913520027225857963030458599835903496280385347741345369506072329012390060994967315611080026696361255530522593233913285925318966890980362229472956901265043040994318636578418981406230383537570280556181691018453911733745580772078158928276743537023593965948958445569869131381212086999593397175577505131537246160889914320151831078485283441465557627408746029518655253436218257947208374583358906347794937431412663656744886426696125596545503223654579640513592792817433817685040714339947821226135866012627168838992267914258397778568776410797011704005421618511985567392289043508628536637497358084757630656760884403892405515565516166917262797726574497595990368178058461446444998663023363920312457794353968039662158908459944433201786286603874757837435013243116010362806999632274182300668637608239500275117961181969734026988966790195716433057519128201907856494976994308681507276973596629684544842023396089148059421499055496548489684433317826619584881849932204116812706031220919701897067371901365776152023711592562593659219186761666610617561373728625144896338063007356818697678438936527510865122137409070753658619821123696436970670738713399724718072689373802753253517491932344380998436027327530417562132166025475436607576668374455908497288536209426767214007394303783207864367714218254974546370329771974199767009165589610846523638084064841271936842231367974615728386595789606077390718266736939751397587865285708045406910006931495354656514309186487838448651861768255391234310892579402865271459206847719611873829029000408233585090187814057974619074174432625056306742366371802369617746455782309125583801232622114534041349060118658268835685500462457563795856188518108354915040975478059247472459792330447181409839503127890380032255070240994259154046560549551751178472080453310991970554288667256940114821181582139405811912623863992529010550766065305127963517502814102744029758093809480947332745845297289177710616724306319130193736729154745888503871277856068758073539180761833181913299093080292568814898656695986207438350965815723809179756844023921965624626440908064073088933714971209645540994211799974867256959333185116013251959637920728966188080337706630665476595389287179362270667981412371705066596118188082003330382584619492422795521687474315711546318266131607940376277929851251179649164998406399236681134627018001692523432568035636329631226886263182069736116017030153374419198694531651798694576718956325317637729740233579637767961177077411917298864653649186064669684746092141265617181215711980607363534828480581404126214515805719287681343028442297938854842657900409624032494145248295826159380160616825292419575150959509151043653825181154148580651931093578380750642330028664171566945411279241511420975536111938436402944094615604880611772866531005698790264451331762063575256288759207286329514143705204736349240566020657747343625174285576460972193528879012314124438059212872136584350852669583915366329506854162375205767228545327108228078463343723118439165532231618441650294408544256343283920758288754490695161739403445365986328176356785981654985514559257784050491221383769680628158953904737483403725280919292564547097288609015554841690949495230144977076832392017960825055408488672097458466647137169639966640739924702194637989119130230820293726683659312668889468777131054082548577331729291835674051586891867318654753221289828775871323735854376991761783108926627922036592561441122115062276609538954160886166931347453041602511507775140330702244252276503741208723675088954134216667853485893538841670374495620527918397419202599917736371440005270173139972602996273863029365950904307196661510012884509977454052002741813519780078939940756536184721150425439245297464318616103405431831253938528539794674365279075051587044899719442241907710219425008434923431826391937814405658089152075659550277162852451559964540780040429983258825590566576379240442421602089854064524074610537987029006461753163303617436363580138191947726466867736464488524792167336553714438028828452980037900076219376572205995219153048543366925717749560442311560376020937218861831699749534202312866421285735513072615285660367946261891047814688033091435081706662594077740709636789040470231165604616877504279863518635895551755515428023990497358069913933887675860836173438510992892941854984924611702428561176022793222992019955191728452401722362064575983452314236600811174978403519646285799555770862945163134478755829627566122465348267278439620368904405195504216660805308759205635421185668693998103149074779568692491501305679629742577512711429929488127543402932111246569587840983117212848013208189705164957883773769851938511624984627782125634315689716136942012841248397043629452916907544159227779422127078270703660843124845010477572968520034126790996420012204463956897753339142283429699522628866576258025124585978945938191640453256873310178730015886831485885580958907283458542982262734495485360485805979442900952879358620120627473835980593115232428767252038178410300962867558199793142884339667516035500241515427834523605018362340245031644531520767210567164756101081431119313888021634273594277552420684254659885661078644184824367274324275922535364772170036349963227918443483842633080514674229682889536692256789400111549882878868759924494334968851158959637035418329026107592476078820570309786811400142262646548872194623902126616358335908357656233994789602557683546321196997844448535765909650190063517209796063127988583227805777395387476181312644208037966112238288876284051441774274568297359055301151093442131100919983747893188319621132234785065898068577252133064016657039568357608385911912326287865601400983111151585528829617027122357204938222295183078609675222293011639643110396408192690069316738093010903124025730669283275806828225090938335530394571584637347964716866962500522500795205960156023319487119555071077437830649813995138367952168590558282557439764145050077881696705651065573434457499129715135545211781114083164961214218347547113343854840254842820956235953519130721329771418827443671628304248463290551280333287542572427321351492910844571050726444657355090579542464782410829672649925934145386316971868245525521711031742102785030345090511068771803226171729004985471348566948058493609155608949738800444435611958599778217777380144206332912869567668372962090182746543227383236981912990092392080358815349926783996805662610613358831943123882237989225803917617131987446904667182818992913260744385593755160255030701401778775119416721115139696076381355404334687327124209771552101867843620709722853553574659991948418597865709290325709006952905786951846221578645974951101839134572274666028060158443262886472543112537632822543130415858224289319606398774900902900769185276899414741092151939022298068642886123719676936948382824986715689958434536877961829366103222938275888364079976249364867386094706335594711963883249575538715874492490333099728993013650221374455510360358307838422750356075451103719036524102331040142705415216978775164991023954795517129859273363449636164650287050628898680144491020275054700012804865121804978537778994388793208737715117546021448269633106459783632356193692858269913119028943464982222599684678291451114526918989253178997074066629977974096210096892513319265890479420662326388872058666772604614626262983324511945910701154049811469336592016139109545938217512201965874132350809702679252875177862992182848997950370625062188309753846520113598425904517790421917842651052516973809166878436020266376241772876033252959066791037749109093015746375037917270572116087702752687667517145461467531461853372251935213019873975822501114618963525948813192561008744313506672253996070334154749831049619880444009602417097489046772947258444453681688302996790379923519410892198027567753229485228805171099823517303180338636056640298134262378260329205629906456191362132843734494840301339116886258599079195911512681168215194660836879322938794170483583703830777701282447268253703961476637376966026744619527705400837466104033297025078594914978413246178829287224822542036229574113897170943318492242081079992435011122498967320165194986644551976085298150990589291174323857989695966726801726304374964070429367712718258639550767321575860593793024908664108528379031106383354611121607893094539149838523248389478232982993376505952374216360145203871989210161629344354748850547475989243801975343378929362452188288929964780611310382389113584076148550710187191132718427264826767345214239743388940071207792865008723002762609800870745724196580238983597244292715286530378065671564618043203114648738046553493847165184782272644259691613785662461022984515357484792077624492616026710067590686537266694551185380369602805673572789452557417829841083896365885185283176284188646885572000612909698788096690822428677903242947579805549208428925096519318570360472796779236085010852141725965710981640516209375060780524105102771824393731623604255046000055101118958142966532651757918894067113394793578200750858088066981787190143174102589699272886572957530048121878648811426561344836680620010404173713373780894113189121254076162924109785614076437553876005650767959290014191011678982723383929405622222520439640319576324224898363369209227203301120142759778600139837595541539847491031826486761582178484072147208535557533132032116623228545014895895205097628980392926440180876689650272494258564085031692416551446211265086611404683877198421832122558292549809927546478121168459134129641505312702403003306575812416646535304946460625856832165220733492838320419110153397682597453814795713113430138148797605954483124966118781524875581983858492045049493840811578291190490904900223291419023117441576420013424127258508356654935699930229403293771440155477223744136030297678306071936453206631371816477326645787820981874352943505748121600792790667496316304348847905583387146077250665383204973257456796923760881375905464709135016760906127402966672064339026146576264412845086614206286367387920965071796691650137466386636428092775848290797547315976541721560062530288059492506110153936900998016139441571064299463648744264733462667091850024502491810359235956096409657260555645521940204609776293420642231075476258386214050734683595061917611590652390860093069444848785791690568225957788355175598502352620034674903685043185254750758541004926325804355642258273631128517941091557460387191381692301181785026857008493825375599169634807777860043594991018029684746183312926231761147844094150027553331564440025781486692880401440861117948453585831888085447531747123583964272899514746963240966897951120575035332034272393491335976896617012197269793033769827608202601792761001855058014321808257602833797217209783036845587098102163609120115609022376876315056054116368411137829651326587740417083917069708363057302901311080983836946551687676592525512247578763789509221089826116379908886815698399680345853164474181999801288386241452448101093665142674388114570620601874580819952971440849125441270186546246113080906200443410668582144132297175709277619384332562769097305017551524504232092539532776689733579488620553753159914658099451205092981626308118238053761250299185687150775988963894503126810716663828470287259859594729298113763387094445592090361796888201257918162922169658097809445342703581465564442669656341308757700830244242964730613076843477598220439486798549614449799966102768727034530610856306342163512635660642024145573717940830690411509355149222375992837211465116557613131237467718512907854322367778688975623784357944932018729930582361389660056425385087354553034850755405684105089251451510313691875178623813096443763087172581999476840968679755248093324716003127732726622738025309780311477213238337432823037808673449004597983386402639141145747822782555230809750051490526065480997080929624029743276659407310543815009850099949515562115959388749393679980389496458407493217963054172470140932428287883949999289524435396245834540236805819104396114695733500946523818319220798629840427787371569973031271583960686557632159616005323289792564071545603686959895080800307539120956260258455110571341942753451537630143485713878480813348394199828470864086828012433887417419945552405734300274926598809716209246831371867789432640798032471526149457048743512288323395291760936763991735923144480058410988262939448895996860042276176979443250857464788747750913680300460686436743162065549051776554792013435685269351765484971040139935626272378193668801084988319954436395556370939920234476775397095683907613744369184312174939356264261243716196035099218215912624120110230654334811784543613430085013984046323335635747902428100415232048226994645556122255018968167750349122120340230657090679090549912785629175930153118590905689791308004047745622359326251257868519234025099301727240159973832581808784839425195391982219074155166493491719927521834624990394753760185358508547689215873207033352188401894634961728381592517637621340132049141195286949067770133935624113295447508784795298237391216823502668393675452557846701725999542603263230641685669479445429743941375544225336283809837655643958173682291371126339884374668639604954374344055175568541620653242242476288314461020026983455295092984058134090215687067805090094823631895689781296536612147838778310645257178798005577147289136623628632288768353414776701505607235902129490778041669704699336843099856550357438165141305710934613234147903048610513560075360836925914084639152005320782461270802342488415669620055600687702492640349495654141464014670608798860947777839875528743107023245691980613319038023791098485863246417257843981196714415524021007627608646216156682925543583717055688956633617061402302753411699754018902278360230898830514023604711747719286443319088055915878729204117854891085355521498684730503735437906741603632278679287652411276642245165490674272046137234282136469995099373885915289992805002467813308764796560824813751850100822341010647213756353946334198555904919582926056528175794947612536692807026395002866510725775985865607761673474394148549088091993567991417119860196052642475064949342672286859121972091020705898294757945113792896355570166941002389975638380651977373838328020023417062996217750426666070212100793247373605381463896136550657398079359644995796796736986856131450811528287083041899087315114032176263341867293587792851918943878748673064386838102276729048785473991937631413666476130744782059012756257534934229220119346109553660055652160686934911914813809698180341443260033690204169548878182171233996992312260963516441585325275192676703126334882044209138340510179310657104335698052340357739171170543065453885619417082703723511192110212805475094308963539373404051631285704730637732113938111657372297230180127478701845285841357619921506361378843284656329418531485219222098556911314418079771990834884688471732684985512698161135804062640804424560212421011125253012668908260352989390185831400510814244223043719454788251011454740591013825277351207503941279224381417007426912824817410013311520756914737167636860780806911947778833454343117974239564302115471310503506183417010150695251276478995223644061298954006423166716993730928602541029288933607117775198319031624759979213590989905008675653915196412411400759509147429681933900456622973087708629302769630062404270018155398339591123040832157626004389494658681930603439212952490153246364163356171242760240006531608514065993303300522690326931390049741686214605884588223255688632166661907471772609879094879663539333268233809457164719361136473751351726448100075829325134657341796029086007398774631127656792487418598766342563025745581174154521994085299438469068102104782130931069335604282767265945017162458315907576373421959209843928129800498008743036663240046567726930781141626315672472336668222537624618508364680682818510221106522397686809165389511538180946909113346141572172544451529783540520893210979017295779294164717654847137601069158377693125493707211165030411909413506101157625145063036897553605889605727431785997423097237734318599894652333923731375949637990344196714959903826428541744589798273050445383504432764813969377587678967732005804752378115818554587125483730372755949696391596293182453371992677735737058813349966343382140484458691717508698827186634742734969133922759496571694200683805118091892501855102672150163537963941682407732797615370724123630648279804285064906945685985167238159121733156752330825339297365776345726661467677829831285015778895500187552137143470963912204441406106083714899954459439369605637949463808110999669543640997536333259575147662255308462480118568698002114553955384732860999853841776899198060190671250989031804076526108872989709683383575483651212268616472110662615331250108887217599319395848923034801098241914932734048412582204737129182872206973281839310866395048135725670369553526930837043284124301633447064687080078892049003266326385911058782529055922054597660063008357676939856731174264756829227175324647506332205561532596928234573267200988268679641334683438137981131457199897687658730257538157528893953802570038086415514943083791427431368405132492780735349458866735654910120108882338432116089733776029926780232718325079299208462391921294986642695748055821427543024178637575627269128225488033504511113031156758960592398749733192834195668735638836016354318508561161426348886985428366543351652912366039105758451523670798907098056619077997981070723892667951457511706633975395554051830752361308452578131477959873254813261019905554245853444797892701019793449355588878210220469454406656609143410796570868275374725059727031823207492501027842518539127425545641339214846751072092535653168466109972663621487502350016471296224190512298265006246077463345433568424344287707913616443410615968107750163666573623086609053058839620026198703801208113044981314898049103768275659648110008524798609252744252908338714000008780578761531251593995393861036136167246982126338320966849048968880374245101622729753364764009455591674012902168558135139083854776795162198740731214157747879723466821121109378104985159577960693959832756247999399051146676616785998905589815031558506723173852764569226159347993658071623890660961660933776477254320749703729611932841925456653357951155712415023270957307408261795781631945058934003267059837171278247062019528651446408808394258755669038228566497458606855637843468879236034376675360909285488003828531154544099096818087355749124825144906822232110136102353951723104376539456564830371796573096041507769998533434688560936693985461236099291086264837785246868301279942089434000682291563566196229424713850828340891150660449796062368972206303757173321713516428587849045574759167705473400954281267585358776832629783073259755756567764621973395269653064210913863015541995017852199214412323382177898025750278377444540225887633385122685914891738078173817755190347058108565189534802199949040445065097303747135760610055930754242328015276331208934702269078138060239061737923649470096912128617702546443549354498791632606909868490854171109169761877574221608141179471837706390737923926585898055551051282784336328687200888615621784842043605650747319617199797724099114537120960565227599955066834484754907039081088520926553717662634984814707146907137797252296399408643245305741806847469534185583642908097502202162038232007908536507321752068651660786289030806533235539821939159925554323243967660525876783046773116005425496594941979417071011031531634669599992392618510971819033083049251708826530642509271719327813347943968050788799967317580241431067736221039407214987149120311359194239942339864253298892625550175547337378508748955413925844240196335017319885657403304161648573755605231790452382706323148587448724955783538086772572018830005978534709822841814075337047346458728410945308125077181611365279530294149934485987088567894549126317896294971308646525278820939871079512721696257891326632842671958158153544004319526860984369723360756937834712812812683860884971264076695616466898929798491738207373836581410607290043437479364117748083031588342757548105391957153505875168673142943521252058113240119796449982495830724621667029786396692368796003678684795125885792825225818979323687268011922228748447017678579396133091948071243668822304685974427630943201052758438096704759307815423523377566665103846367575347029754615964064927283767239202704142865942260898955713255966623884182444641154581179951433059201985067467330251568332049885315264923190516132647070698251087032064818219870174649627134685399052667340900957352693753975013724939786145447647571339921864323682540562866560658369476977074670468784549480882529591795932912176833377587078971261340438960278243003518739535099960155454113359179224911779167369829306762343054414458085088458462437081449183127262382726839100197427105171295578064996676530695901369489226206949108848262022864854841449374644012539528458022867328923430071944180282618896584190652088471079893248675323207515595742378529965768574547377601394159766003347250512431198496398240035324988447426446924395175100186821990137215047417100087044254002843785373869334436103343750098739724352456350824874071420732796429725129434212115510328106643613524656332541252219373579390115016755822946117127475493285569472335992297577581083525843865752186467864040365046001466000943128796373895240567079467093257443307925318284135729477357532249771687614350979562475145439884773082525862960124283604042078940505749242927081154935725672785929306608521279553287855023557386166137546611852982053676630445566305739245599951995574566385865430347267838820263589366829721002115995552472937154805971969707224438759807147958685859025381321352860538145361918500429287330884824989239425429382623202351088219852954238779471457159042948862692818643926878702547101268247746612894582048215827747921414339102872229616197808644018267393840915759087822007614314716477482088611218281223187318488343399451875661564930553560263814718256953932711266195733432024058436974249066429381917347377596345010830516875664249944824393829694590719110530208909808000604192119486952228306856034961340712800094896554909238129741191748137583336833650460798851818928814997406204329788435326357586726145426458117974772225252613934033866552157600006714227975096578449889219316290107351090523661410645327975340254155342521999929229585983559084903228485494406866237748390919050595163432290263133255831235650930163887112549593987473251822445255027750187058841747719344771939910498089597153315048150859474480503752863087322046499521185816757466289348850511986250192555265105329038373920838036402265132140870448434210263587061874082498590277270841422968752635275147929054422436865225982175888679269323875774817290718843572550507422664539336951492425954822808088064031769574862021757945231439045780750553912536252284376168517933369600921511077480235514209460208281079934126020766444869506181891110856139418020891614543772155408035047673256773645621821662942278749974077202189337839476588825317244770180637338252443809873930612043176842511644602292434124116849502986730422120300673005165089146259344541667004905062597029468219328221480075402966855643942141174562878687411679990960742061918479272241050220735922074072559321148453918219839807755012830812463976494060077651398764454104949482481149837875810264302244400538862591208876263359748786888000148547939406269571975840172224222989061488436376647315341935663959600691090119770380036831729094735712727748024261603765355665064810725789006217305346091175166133282862346203181453635594175379879503369264829855539647770511678879058962872103448964354458035998118094451661607940638917677479218642839354800655273662039536425077442482926675427898795180565292582863174587341136376129352096433704231412931615434032872310431455117314562588264048662126172512350349006439957475851993597555618566834298663215666235444158393203910044059711110448462831595889334602821827726347091557425836362630475149775348626749865283834163193131366666302841370922992352471599575828095179786878695862518601602986552132331212821825994950263628409085230774164248129546654765603729738874256557138461172751739642002285899559113334970070913306201356077379786289158114629491332308131853631127515135266737112254526462691312782269393306241321255828460966953855309552808649018866290778614687898449688865034510701966360291883507578697621867228736266620973907166886456919179845417937696502066225923160201837275806082737737726701931730643550556228511899694362633380311301704266209365668025994598548565219077518869632997558801829310856190609718809426185314803364932949097247050650090529074555355929567348571408297835772172479569081428786665976600521790021032812175796859248456623614319042198425239523300326592107959032509506263349349776249053432979960852625735509525040779619151907157888534729790976047209763643495491231364960710136372772910850458655798432754526000310498234767080230976605398217197852366110694384261495171261643235154029194516912913559543853030636008669053927734585318746405179086302477246581706799391247924998097165147841234278682269990512406546661723164383678930870114666242483234951699781131503394896005281001133902994202231368860487596993521309922826110037095302628687235998151739972538183110169130213698324836342391022158810546435101143353509280160189456488171905481789276386761043315094766376661425201294841486238585121259703296518501534562087294497566167820821976865682040964165455485740155491782953555797937399052998871272837926112835192759986815750357334973077019214280259497734397397755571996391500772635794973105802696467759983198440121004444796367983276334502880765080815523494541622025061931956738693005703265331714790098834479681943577237685768335778655104446873364050806496317866286818370023572018985066006971496313503906982411578228326156164576086731577670271151449736022411551878505044421198369576102664944252994001007843075498217976068373695490104112432824734244718224445687333987081146789016160151619130172331830591022925478991568201260818051959123214846224625505781011092809419002476576783388460549391032287916738777830420898292939799997925352403026890350336793773139406934529352146926204061842748175639423251221871600470017420503781986930052635959827900895344178013502525633003007171892459584119643817649436067602160150792850014163557038916157386968840076137536556019277506983598532191380435449543365145462891044844258891920443435133020858206707717133990472350945960532723260665007388798286384222844669863399337010342435909329241924304239821366602307267896765219464947280393420970102569564083291328355084960406102392602443922338026211698311585689003067456121278513557695800608115858449820555161932437374987941361943394098839784905358137261415701658187120628049735415490193611890428641175507781573696805711725117278853917871002318754693438354876643875228071930151802763685439770570366976549651995123353339478889946554018225989456206669657940849638224880404892911316145649309569172100734995416339686094682559773040526233388147234219897036497623108291645360996529589994149645546421286483942881177511995565268579339823423055683859265716373527351476498464872098388526070744730733049902678530977847795149282342494167597552128313565777453910748481999802146948256108530113187750616787450478001797010450225468621232929207078956181322250455886388918513658913224370894550912939252128460004166394864902312308798940315931776746146117667468076798715698010097966243054441269311646635024739923781513880549743085270950210819745505999173787461452202797815101818640554330434019595035476868923888656752721768123230021023395262081272182959596694312851015762697105198775085441525373890548700526266999905538755483184505134653652680909296780140514304892153407213196957856612045652834115465032930117027758552881105662376120588132619941050678475960338618804715886419789494948471376049901883612975963414015865495084393530081309111915786367256873827986304949318422162153588352386369154644970327876681708322286611541259288098507637795974499954827252245296508082483478053061947460246386793592216567166282639182988551484273900099526077155932599362810211108055765443927930117649842896854543828399918506161084092484624540483101557904029862565555311423882381711969887268982876237643349251745929444671001589721724050930302773278660728127129660871505839351721092231546976278025421758266322588802573131188462809028918151910134674695210923456031534685262016231495101803043291119265838604293493154459888203047859413442485128262308657033416856949540116658814320228220427006291299369913987793561316183627184922631612502053663236781683625867631868340237133398574208069855542994278699315642476194201683926795984565759662065080325282263888381193849713956222865558546173213819691071269481870238184746394657806435800968257906305134047830093509695419337312919603062318740968456979807795531153369043648176586855130107796295305892833114663053520128074773083169735274495318811912870882341295847197435203949030114477428532547080753466933726233130161412666632202286501221984183194690953139683842914931405046134030690302487723235289927722307405331985306459889196536094553520371250676501375590881756362646238380774371446510738483559096676436438165570409084622305714124416719918343651655240406365983918550364879713880558674724577899037071394676924677542067155738986195415323030071401298464120042712022309330507147117059234014526056486266107983873191326654119694875655446574258299446934638739208776197863395099778386494414176551733792786755094266372443851536832826443475607760413168711777090907040574649297930869779915275665584903411983314742081801014125699169263431423458873636294393998148113121871486751446356660281160355630181117700554748178269441894083173015428957672609307322905020943775611327382869431130499462184414607238455178334074358280346251772699715889230253520034510528972557775099122340841089775639132511710674068738834186973421681169245164747326031110575953072184858985294945234344143652857353259402466114869490192775371522154599531110570048969564607773096147683479111879988913392316265888179323949469332019697835736844284566141850318055457150173422927914399846736800882088098518401893464401787049126510779800472750175337975338904421897554457514947232396216580848622792841655875257708308342140068894537844455968879775643308584121479158350477523800465108502004127277096639012981984821601773726691095526987449679549090630897502960139596824699233433167337784310229117705401205701585096495370001247120105876359952212517526975799034759392867873962590925579446522597759968731295788318505395857937679313908341187019839857823585754664916051894103131307393028428111559252170989918744543552451247965950922319666723335444652063095680458456513238318852489638658832527150945137711463801613466611666654823408913213778183731672885618238006164322677895420687165681990892730000616203830366252967389444279690285119252667036592086139346731906928902590155594501317706078756230714425957804145798443975635820521973945778886748250155919036746897972766375810990664273290837177590736218586601578629867877197776388892867987239491416448613167601723577360518395946571741332355771907291441750225158127514367215076052575132905153178570589417297592747851227291870621732679954661165514657389538008087206736301245408494230882336220054751523061396227115870927924858480231531515369178358926494276398849407708838108768976651786870924462928373910168367731569635020050957252753561859656330737840442668814668032299509603321738106998809601144380009574764729667612773151425456956793284749985702116724390893430290013505897219406582949000172439228091053551677812100900737265648147909898307178616248548365852164775040460911101311243601547615244025434203553739916903456278882875774661777647770144701036580389678391971801101978206483688357543639073632684525560535331807049342264737620268008115087626839428935026831095283305255260271365526554386710788095888697966315674984390987917308078774191822920205271648300203221652679945003333651258667167916654625462290634901372906242544934831197108596144649502238721193911003416444993984185675451580921682870061743370312852205471770741007888069624954311445259246282485623793856026661558310226069362261156882167378911105675370527817206882059782052997186235607405777599431666555680409582035847135576431813127356513263874497206779520492322808035053834884318249818397281983444752284311251359946730610629784400625163679274494783655205697142097803182667990069608560103540378382829630982498926983175578214120070133391319763444298452368198635133758110238519123677017370384878391132614962884669128158172602673193510466800811420544942354855992405624335042244467444989089613043599258849809632760118148462109777965524409065321831524672850205388199340363290838115377714323466613261698071667067993552321820364059164342659655733176806336507756578201286463585939277075209494274796405179601072898536270547950466934862663006898101180774497228896582979062026344786698682985136494208995289422028927404519248894125699633506397517311726787099324839978868779637810501182106420359739730087849144605286169722183545839986680607298698599162358329611728936589054569264802590315448068150678858099504827318047020214085746121058674047045146371089928530567094724210796929030336061146544748993232400222784514847976210261546932301150917117389725348497466810763139141800129956164905514699276735192125538909369108365193540968449688971382918584331867569002452266867405242711376587130100575301427396262808099156337532626228445824830719353449298600235415711031966463623219294655798882467453897762768427986555122311814601008317171355981811935785780907160661105573368353347802116256952263120956938513399774134187832996608961034533685893996212811282299715115473154428018287834938941701479242211515921366914154208883971900967914978667309605697747697982824573449955751897828336269050384261762634987771947835602622025624564518957962194442928681413311779030664422777458643904087042438248044764003436799244844494229488719538807434691868858276198881293962360102099491677908939263609370896671613851111537775158596246514657596547279091465562590366978256350542647749467251292905176852774795014434293768209439084738871405345542186635468645987674747579831378179173487178198806475497548385981531602868104723988297532513736705295197781278345628796801328609167427934380908447245277507880649712731355263378274344705458241016343810376735610868650979936956747400846941648068344030273121361796827231606672179224046572590640952388749580978787741128000774655370283141837066423322724231796437014876078826347575281229486712532954014449708373351245151681171720615339567752814619341113100391778099200147629292057535816347797782709027489055475030792891286812119897919831701093363250618479077424025369680166782167011555464651314151793218309674875946532470959362232222137646802530001924964297870314927186509205053567613187347049463865441738526942690980904374251282864868592921783605407484500485777077917375216261978768546694888140834438183115117351198327896323872166259894841721208322226110007961832583444544916206647835750934916635499815187992800445297007629403974114313132482933366181010645818589929981327953450929093710607492310764507872414599610091901217127605127377402607968647597228573040494097890674028123472406369909157885577410977191838739047164134801439299194465685759831137813615536017970171184686098129659087698260353279072276857150016827539646317264292504457251449906783814253736639565801705321795346004854332678620335611988894126114506714256434320823113489704873573708156314089583924125874071157853519706719601912622947594921088802089896486953571663244785086336900821848791648552050033368034217328107250720206768798746331496965770706516113511144921067872862959471136231620157568934814650537167876790017981898223292389779925227457510494593939405781379842620050312402300984701463196847457874205656342299573632339797389999393633208649278649179713864512437294376031274879400077140151901344625799846870034212080496355230254629963434574261921322069336459190341132283681788186496640011902711053763846708173276351291345238653621623057501665748353872316016565219093122787636409759018806875686029270629808854753855258300204049092070903847793701771858253942552113023014662311553724908219423560949876367488965167114994421018852136045025500475312380738484892442036347924179724410474797681792160519581299553624518741159681478409230132216657262986034041544427653012580075105921314757211545887115774445434505285799450294803068059044511861109173154900713404155022677608754579511763308748967785680903108879682396037508245632974143088858800054183924316615042937118791374442266053653157971187143192149694432707797025469583303933016142511842206214029851676506817447307786277724814923421303591760494471628836153512501492819978268036797817135486677007825383353968392010741085638732427273956149128065982196685804760104893412830773391792608094942247714178421399607420711178775400627246235798703951812639856723138915273783405917766910347982821739882323147743395008772465372901967244797892003140871941942551417084422207171781526710270539478811549090530697418203485650397536218234161655506554145647921063148236834493560364758679119493775507076289045679530012463552398223820407443701013392024754674816442011174083322363983506136855775275972318526750038450761857044958352190544551302904994861914159972805460664394454747819721922733407404040141013269973016607974236360347692248315684892055974440100521926161862351554721064098940928986790528054615338329576280523508974695462000292582228307949259390977337470578064762168221729260856703521640168446219103686287921961441686107435682330382467631973775192139189768768114472393477956828262480152224742408397185494628108366677266570942786030189222012299153301110837875913614694244769544942232379692354966248986611231405531550903427109990900468918296533671138315597026197085045085285292825568154447243936684260360721436932986637461944503857985371909628032101865949398750543546360848585371237346394054705452140462362487242564820927914632427422300914216972377723739674297396529043647388787228263765658968462239135542333539740371842692674268861509076568583037563072660006198100318031299178763807491630894594993922491136507358261861505439072886337134424023206376424663394027117707136983263493114491963951676698770868794736410890638403976616179403523198450859771783317959320447752699717522354574823593445208753915792408164727874622143831044264950088011806904281669527395610631612705335070581135124015687854388438277049745116290504353432927085119441055989606435742917703800185674589697013809571576936219726095753329394850283867967348440225034749617441025606411477492589838245833239525841396359936980132676784237663348302497679652187904487725232690491488140341009098511907202512360285982009688715032607574910004987066985326194780688637716188137086655139842121650217025598438280291749292713139208045225298775952117968509112408600257353865976885810799296014753649942725536611881936779027038151891501574204386227228861610697999407626388264894852526971333594741420516438212353732120916642323950493924860935696684035209641444809784902443904667026123197538377666472380778268344802885524802537172793302064862825833641486110306050840032588796092790961465002991035148324595414117807799844747360295411061439742568987924358998658670673682844532771869952982441714722010739717659602770015606026130505861104528986151446701597546199275787010771669968819995277624940612924413487156438323255117913445569893044264408651200639977504831036927715061995729568062636020776651430972330219268148382211961154101869782564170954150697691077807114362081351540194330460916605233701935365899931772574124490401292565397979862181585388282655279220264694016495390499450747165200131564756420787845373921832590971149471986263970161765181922890242587402176641140329032876405300467303811377547901590710933742342628856689336100790274138682336391282639759085368986373075980091953181082917341969792526016668207047636600463525553687913536602657352464433348882648014004586134819920953269156292608110473579773577526931027564494077243082068318216396512030290881463315199242726374859597198121782801873061151801120942980105784621601928759006127861271430569562132368613141387324079563378357376371070379703503746026760487265821784502706222481582173716472398274724950352343959773403867460011755302734917002080429343964961286897917327579470266753018492081858645513335864185587486201709008945619046092338072545081645866283568899736350865625292791312812284255765673546110513672140313267941219511508426620703104151206189682344464535810459419170356653745399245340658177466434950692366731323643469914884572785821128556982742538765168508817736262715527811047691994584159915515485599473088171891804963526555270720207388450496905208928350607142330869708819452806775164652985026274818248368154812954233163219055540170167619488503444051844066028589008073860271546780879993218248763028462268726615894309083618087564154332908172722451089644893201900993020350605194612539508725840009644853484143284020951330321109872153835267406178010460079977393254383328694554372442869851585215227501556873326607457805742002098935133384610539193888757143361143092525379147710497508004492295245253640697371614881084204435628675304511784085833897901480921519915472908880690957731725266766779897276213688669783875200687062424287871227959320928304932405218881112643710329634769561256279608075383714712883620864987442271856177277004750865920170928004337432548641226613889528027769778876462011030343592351893022438369290044556591185292637532612034022664789325315646783922436423132081522213038836289047970043524959375823158878587545471901144102667359263042415692554004892919457300618090634316605769807562006065119792197012589388405998034605026618932954868672205787750703745236499983405357151797628064600532086322355395050532613076247472867665830443510546925859113437721174204535116538559581809268143294641655828369963465165107231925369448877670529760919397644744655513028604656244301352611808285488937357583940889000800228248767279056615962130676997085612601253067304431848854185313632057713043293236578699759106981213668680383642768634794273739354955849738263591019351382496871040877442962605330229297263138437331314467762542119456630043728002038762228875496449351761024756632883530386763405599716589194854105820552820056033647613409055721218207312051702746693573741517974856102013099495331846897729033758078608673667847658910821805251577302837126227678814344680385693513476513763892869502064473551349043713742801762160467951261528151696770887561566061500546954432562760006029980546441584311797564323922847890361782183961135334142817888022545312849850462000825754118506498465510481661206573682627812725510338296312593147429942412945642245816387094483106867165648269460788721700421240727167869343519390088569295802518354014059585399649341981185502871405571810356656535867477328726609743777009287253558182878538296937077922880523900940984314478070560425801892962925801728033712189425246944135826779068785197253242288639909635399172896966848780390517037435695919849918197487920926227897005929561392832548854548721453619984866829401654241289745550666514611988160522265235867866925581699643840591994826410963427070357320336157588111331895963316586063078915560800087032462880654774457362501770200209300505720658541674145540859605132217157226494132879680765591207340056856347144840191049782728852000395120910163793428446107956282245793412212901209133023155690496751023309342297012331617376849925404118897727567963084059201380316385591985429436388703500330406617096586464804262083500012533855098213668629054330135450144288861701891057566574932713635378286420264747466979852611183868716695976459264648200033987393588261525823780869286857271300022267365491307515691703484401002757885513600607137183138553659826096386912234624197215054386844047615040896307905825243712318219890276119065017560587936648504860886437510523227157353407250157948658848997928563462168540178755181926257738191410041263363475613955367095160628876474549372739973459048477053622061230734030865003007208149983905222845873207551910704832631475405756165759714949084501021908914514435133330797084081612744440460034245143451882241518313079655218092089383652236476162735327490992476437267806874328769937551253723143027690704417907309191413985974955991284255005223320165604820011132089611310631921690176141319822066275550334295757498992623598240354117486865841499583234536698448785254457937437406683872562777462566321685984602969565677386605403949530056377820237022053929259576284197572579682420853439309467580789362533652219067348660911999764904395483057453609006414976056791500009826903262282505231307351870743135359513929333969435328233500985348390757452998667324297740044634863293287411454444418885894348933463920922260674309639232495134409985881567899259845341786695025860589007644862697050144319889359057934221313075978943121814944049182712475697235123271197209903933955360809558196422252489687126109127958167813552806904885756306951896189833369679196642020859733189057702218466425854251066354708262706570759916915288904742114378094955314929381334590590618122443813286663082722425157563809325847431990841549524113047773134165690457245436406045821786421264398777290100648875020247487484746052574058154576040246749413017793054002482379050519914182903263961095389853569471651424611246615696323107642352832561551293256628467150613066089343335982256522649437812887108229446631303209839782799267825501089581019007962337687006698280903357137709877261455238741163742658436773628488520551903137668167544966036326022702242736888984551572582750613067475754116577639790966359119814997958846230626267992263638875371530371208248285213372771407265933192935007871679752630130280173118347594853478683765169224763398061860305916464612000963521042706065189135128256927031245231870632854965242619065510395861817699210511849645016682956589871768886508870979689444437115442290245756097465683242822482740264224048825406253467553510535917170898234331513289992949986937649998643593920531798892657661033247536198620956820521042539667491888280963218772929953242334664307791234328702360395684134793277382249906046728505745310991613720620454607889983815102277933469386944241692093294608363608813774526683177900338479663487193995429338616010154883742910259891040664293153988709827589166663130648762436494951324469474176344576711100336713924914851973264393314125462400864608209855028235805838235447231437850357999851797601640087178739821752184916239823229432573295232989449818649093253005967846671215229320411168030836793772489407973816616553628375690907298232196507047645254205407471712775749848549827458936843431926165288076367953084025324590499793644980760268791405440981762307598958227672237868661561896111336077214914567849685011714659956216738115309631716752681481241722542274224033889128557408204697252415703807821829099416083988275523564790212861712163326342299324747539712121331858712607202245475875505060180495585997583361864644275363797800624533324386463184583267251155076230603623756470982765252693905928810193183202911251328344693259944441845757334027766818891699639145306892667119278990807142783569571789630138765680844651346270078052215131018472660469129580375981786920909218726263180440318147652187970037881714645220227479026462308203922897653565237907375692857105635404857016388105451446194180793486765809443543380060431386847141672753140894269943085169206049634363934964601416791969767856884868507859019383028251464100368215462020742351857867281712682930497921727672532463446909268865876704986918419300170475178060457318866153619173210199367759497025129497040606801628702133186826244412530396103312051315267820455351409944710832343677358316082202271915468194908796033046593438075828658145731789432799347929781963943225444847747741664764348391765826322557806388015658519495170163242291857069497951681349827163582771087297959164532946187511029171430194697276958665468612032176582666441318983498254304613331294581714117029048575536274846575724566241979379564996952707251712967955043371200810250317026091120261076699854029113774765268230139988752046007138951740741925989175728412746237165127679771391080879194467183347579547413393776841704990212113870055984923352273130711105858989633248677627318110978378430591731266654355422006247249419272243456204204825411264644728841382275353665085077926674714815117534622714414147962530490277681692443792632061672567874094044339782807041809706806951199190404581027571139233309184101944209557694856842554772994050536535882782115586360344903990414612561687857067182091828154791356314029510355465110107467972335148199878042027949696755851407893665312437459604882782993176132594443589588966118670231685640986490589364345817161387054702885728020489283636314643242005347629590187646756616773865026644378285498358937548195281350429090288432064660313451891892287588572369585412476586714679691760075090508319365661519218406891474365106312738338215273021394694927686360254606248987436896373838412531995682962849949023287081745767874304914884318933242327197113112892414256897569785122725325663595522026783407099267734605603953145456784528410864039069756615629493311418419283386415429781315619056018590714156215166119777787076045548802220361331397507171020438871568009776713731355059717029327093470799932300901416637530885031683089311886748807940660476485127478676086532816302055188445287639519723398892245773628909662768014364681958383006263035195809051672765980314094727443455643098588072836148236667583183001377578710402198631381637970335586858890680163893676858418150687889022666886129584787877948677875424466593433480945488192752855291050433669562629922593185536902868186407097296928275892623114580523065106553168425458222928224876362976625381556570513677874665231603232776942426118056844047506272060053051512982906364535168533623147035163360489771028448165320447352926963334619845225873016074433182324009472627702858119523684576040963149744986481843859323118420687465450917183786655362121745462697951237558426989193502565198060971477650176015158299700354060011294033098811919692320427875814580345231092784178056077947847876834320490168686626323646832243953256138088302472935354359774932666742290664859652167673093832213612287359845488069265560189046071947862828878174419386226093938416345670927048278836663299909062935684784317330977256350889971114990245734524686388763293095254992664448290693055726146667090607682550795277104649367068196020827765311647914065797643415690314553443533720984213165718821366615951745722993716044818428588017081723329099673873610341571227298178950535424459434309098136610299962719267923678976768818312793233564548990172248250798774692522490852330858173538639949574082713609303627567297310215480801798980013276030353668496848320929268711987339183611409919736556528929224977309159400892668876033105596257044141013537334205291125574100251869889981901065934046843934506263620153599561695077693160970530146997253327025277330473502140321118357356009309623531858101133705284402693235297994306972281988394515774789447764109526994028754785277598751983829793441730486405805563153049251748524045384427761547782088439596710253901009547608605203641839978082350273524486116034179630083047023064674940032938236662884789544477302110156366902067377444064627050317345479165521957020451976306509827545880197423744834734832834313154611097816938101551984246575695795205012588899895466463337862305214830550170306367186349557752109534017227197255248417567009637917371506900369171812661878841738983198030685456499407587402300604123682913818442710170750744954908085442353076060932898278699744353550194648195175207335992521501253105949743042239829723186526806446115882966532888525511866897750173516639606779648056641704025467785941269273772423958313932738959227335426489395114225131404124945923947806690819535954162015306850545892374061531327948925617095148118859152567240850286519765673332974939792681223121112531995025239207348421183404513647467297330921944207409935722012478029565797489027428418429346501903652432875331601173188041037847233009136960067842509360390701111556815185567432993582076094538032348739906636176192484503938634984214137128477716195983019052992915860810482462195750927241891986011980999087964526684835993020790809496656445339755445405620247215213428662565759051473887227859718817177138501781316038765400915424189778365685309281116548761093080579169152199245551267341277625069501225694563923314920461731471918032081054697709442161507182564557379486928177756644168556590349553551228834211964846033666987895317816801459784339811984788979115160422312286511637202932924337734911093491997859428945760384686145042963473975608615760223592599036124822940524498820651643962265237247977740165544198793445472335092256844064963991062309993990973096366955217906922104406276366183257823960145451175484061076366895206379828194194380730453961082207936627409408913444203847170027579433239897310505219008268255835067073032238553536285116596637229872017572457615494603828756033508770293151480999240236371703315403139349592977370383376188046790038601740648905045542374965262503893726885633914536421904220105287880610097040936460142514913173313411815562785892466114888483652663761645750208993826572061785250743403852376622746431491147161270669116753306716562059744258204938605767083230155164527030562871874709256045114112186715698776451619301953295381319377980121648338092739331577127650945259311352777720500515088708186578625802384066566420985517955071534668596094688305655602294839899886529245565029287993642555689403064308000002818263470468007446186811997621150723971440708525059905948680899565737787797465248326384258304678269154419050583819378877907852475034718253790489445030376485680499118008740428516296476560440636079099565885981431058197595160215854364587465368612509850297238015121856598978277295644214979144192982440906018703650193506093019706334391217644180066700815744828339424814190075327862152704599269215734352791999572187416673884989835486423037836816055734435374020591249488667044396113018948395279847648039962909300962880102241092050777126259048718830091893406428645974074970700193729653149265824750519277227269486986761282749618273048847092209801948921420530006556933092245059531178800110162946377514682025928714164912157145006038109648574079779389250391104947211203563341031011535493369592073918762636071616330276081732114134418267972994799610718095405260002203713365602709670926814011359026398612527956596486436971019285005543044125272908152752639906480820471215986253905001919650376521791897690933353260867348192742958629295495673205113944422595530015545744045939618679355913472353786642518732224386402054502962897884810526676464994322506692845054903085746967169648351039268810670583807763054627736753968639109497990827579095577618522973546358338695195557016634371255405166585430416703946711142997915288650930668374015620690175584663751472832795626173266409168093752685256942542568323756300824088570418677377927833104705455427794088495088091886586400282304301455696289205793056069984356624844419469063577598111970219972905863395606313682756853600095709860984654802783989340814362158723399142973376100980459582798110940343665880193329742271410981281570407946979858536012308020731619939497234834955539270959238283103975803226547367382331090943105089267107056604742177707075273109064475128254265614282815147209320829621778090562965017256979442381483858177207908886164834764683077929711570016899823273169754946578156871022498318291290105017102973380825808674216604259608391816561689853595621857372375058977180370536510287354569101243548555497202656929596027509452216024207382289155488248797024606645389777555857599005648649061431860442401749726434288532418400832483341515193669862889095945783757589732097690460427069587682368462704805174263646472446948315649873607211680945251117707559162881129660315081025339243295656568922172057621963725052664787837485607497301194853085481003936335225207306521841233902563414710006199258783872863521787582287296205193080436770531525919186713845903025555429169415289162148537493808905478907127787783484744328831790723317650403896192888978693459676976701977517062952076562361885318209630011717903567802791416260759516301940735576294122004856284479194413387273937185156289145151687306493729300016204803886798742382891497868554729520248645092215706080399143632613864468346705213220517296051314729199754586663419147613623646367125337276155990781931094458604592470388014351040346254123955911448736594245339553153176119050797843796471938972855106244692423855386247672778797982074493484362933679094988521314031043944148847914046884593825800517672759963094719973316457766742612481855673997505836899517361218722929096992461854269943783322749494758728824517386584657298144406686536319781807219602564718105575658278023604509187285449628861982346536976654150015174256968878707589867119516422652183216633962770233432241427165854718341390568521640041652755241781568773914533640491476616405320964695521551992991282134463094199298160601592243531766631152793493437037154185867855993995187607436016820978061080651517517623553140357863755315553967400314785134299887806310512593595012118961788950757597774003037062867730770002976631016266908443964062135573874059526966894734861376211417759978374087039669521874623097021185243269819437211869592039076216452396542806071708967447211540936747847476750647901120608857258950942509536864156949590298242252490294045111788216760569784380451370770876568867105548845610110722303526076606857659019000076596428986950087529842661284017857790909721800682912979447465950383730522210965453667815269603391220472408012107450602457622966115221471062554432195796802659843890105900763021301103333557643828732722878371518757310901374922824394256620202024333136557595065819759994186647521271021228548019657297876969409502752295555829739563674973383938020988745375559078054916862049920036225790529270138586810951984634137486858839801950845054000839194964271402626923817172045711416812258001357036150839252757666008365784186511830049019111667999456793453990583767762375766690420431727877329451413214401545128624588130079329391466726590882111374716423897254748832434602466878088354796744381742851279461107252851010964911735002355253969730151492139000632253284704734445242802998688979993181095202029196281432302364478342133454208734716542942196150016851870509034537083692503017604491111431780146966499737686826534606250898983518809479727074955729419096429575324476846891728295576018994250818472229379286128558319209645239140308341824448863537283516881133268453719392377532150945563573159049557839041185503463546598210233087964402392414936955805476092604957600052436229336602097816922734744788518034476313094667673172270528917496319284767235714446502270429743723325758042977370761975027490106006522090899147084611469642579360860427364259065263341100911690426233697846643948250141407849249220381877234753903733182461451832663808529017752526494725077188509300817275852416204596508025146194351052358843713564386798200126634660099512722868107052137134390092613792048076384701495381554261497814201301202510453227921905254718678579440580864624802883153663111468006799497780334149725256387662317265805952926920607805020386772479667071585001611823400582047016472790598562021914119439691070817353611283642803839543430939898278238167972416588817000273420693182430574694284474048052063587987995044077388773872293059507659117779830636423322572522162930027634737384164875456715198413274011254633372874926166769702363291325653981257505545560605825802886826834831309687572529244595609187045243939868333779839510368457441974441960665045173997011296736011524388470914363865843800742808843132090575118179470774977113187686757604295573587992203670650384654256446317133845160970444122915944174147420337617385334672495601883518520839195218459839858088709564137901680441919861593056755690196130584923927268321460378573643444299676779894217958786598660404629438441120764217572777419362780100538389012102796822483760788102022007837167685028076938512768235552762208284465758027905043078176875752707867566329592100609136768292451031164852645436991079095272192792628378249842953382173693525974712054773024797883698684018248959717585293460880782286274521557944611868827489038059455383723503339967413407170291837734209755738462535250017804108239122489654951061717103713616374495806126075830106827334592922987326878886471229886700547463284736773504171417774659860526202974990951345840205906829034658908616396577859357203956497625706208776769442986162099409895606181325821179051407055167004166137835019578919665142235772395163668788817848284241998097694998750008594974350835653696596394922257137013399875971030792086440770863311136888648442248491545930981284273336411664997476740886575770405220520446674894388592885767989016289022744309987689136666697938637675482526859275870311095024644386045882501226336033736669588808580128572816235772566808887146360895302433780245249607362410565604057799854191650238457601297252172634755573559148352503233449519816638769490237894573131416503582336417404564027232184560637487298182085394273614159618569778836332109336384407604983089185871840357554982560745953642584498384813429269884022431999664420292036998763840456718018052858873131462578648872562739898986585224993246380869471686548333836524590741825083471485590316791979074604976273030373230716007339997222912741003805864656736233623938452233952501601526578219411398631172214563897624669461508871911554190008766811769308544427416437514027867453831810980071295250187082066374544050214866345146941513639200341449332809562087722182775509838584242740295312521053582841334480845736031149522093778807068104633439349795778257260866089629759095632368172942068789268458875263932382653708721749622715915690743954987732733739184834872652438848674975371016222954772419694629295709871937201354218276465038459459916152491930215234323870912841126261887238763566014423948674299585199955644017423182614230335967475386804365171108407509080614824625768469819972165669277887156154120120100972348350613720192874264033552347728155418725761508633324963741298409842932508823098660048600207802942379058071359242121616187560204298599519001137623960213989893860313839214542622873752408641467542507138233265097258836535442606462336931540551408472763607664744469543233468609890831835035752946955606706649419079749769547168954977448036228796984918778091339607883675560988661896295568333628999455601271244108297781577763348897240589195725124313381930649590637479962174744643607877411305147488675447193111865203821395567489271354527199044238701539485701609922609082884221778551791155103939078385819858055947659875462889016289704388149773158441989925659322074833624369817720753685211996163716945505668561520697111763026063530904002464505223924400332839193783554757213318046375307024788599595848008390518554421141857005226773316355263797535624811494686703697888469514718184497428927065574752857692169958859695908165143170227883004358870053771585938832501364959326437720745530183233130858178067729456011803892189887162825167584873805479602496371145389914237471624770803821580357617125443216067217537767227548586296617126298102662469432409192260100059046038360936985217970937865904086283481338650237583272165567029205170278911761685689379047980940338031052397170692553052652011430139381021346462518284639842625913866230331490105111912643662494290426837366558860896385491809801127399752120678027840138128621575969348789143309136083839168018651966562321251002073048855367823717847346835732030145230996771499378677095874345074073733393120004213397766387152696344355699597115948806228406949464084221254516145413764814543425573156851007423689818450192777252600272395812940303142121613284442858001278767489242005630884234419869455817946769854969673117971779900501098199676007361088206406003676409965693917260010186409401342649730695298180826283256302103642703278141468230490567053259178141051769359095661620048098159978688525078899003999997818541285241516815945828892579100744376205987728567953828041870224750040308446858522322125634375326735063933778508835396364273885302711646796397555822560751169043505795331339247284749125147246509817739613742817732032692761497361367255977180244741727897661490825900335432225120812050773926984524116644527323661598592479867009567646223907606476820247014862910253442143575624672118054418868511968798600929716047293914530457550623187172044477869327568474300006245604822887082870026212654008771032053886066444816317490105056427412772918499885520999928733929290193482929583616323347573945858789577631583969951215812729979391596070526254256017064186082037625391623198575162118101357521509755977763534527586384084932508967411465957801981604047466847416615993253680355106179821533212522343390934708817408066496463710267436689821645570845949120995286363337385940832254233804572271859748043309184422652800302808700934631166929118422059814317564632797499944433476879933348220904709748116843384264115197591195618424700721502187567751855011327227210862410176399764279019001926782914682491951744337132344224682299016360352702840243064890596040622821922847216996971827721027736402165874012680769769684033775372632047189913033669209742095145660935965206988215808871164680469118862265830103836002006320264698252659550917258557716766801488006928704525136435328388943162114542883600802734544706771778101108192862066861291323916749598601685469424153643061974566249345001190103892695708498896114450985940941189148987572982756793238703648726565823236724923099465188719528861742836705866101825260563687121052076311850250941568814891289590277479933480669248579976715606821003331536422807410329823532930591817997700281167809579955092739459220715189025197389304077132784937917491832230209700023456056026464683128689953154900352648555080583472664082709701861057314058178888901378168503291361032893334710431736315883468544066077618338678696606921874791621088305944095900312900007325698184278413396587501224298475615583108103964517033671208538534856382226437983526397028764974288045665487410865223562637228302011964034690338069012268391093131311225001406931421064804726795212372491059947778390571319475369332458872119905185312684630535905360315852598111654598646284897863567852644452426155198115611285656567029158695563485131555380002966156317918739867501553724336151646561252673644741314427170386724989038610158535870687523214919661849404662751690479229503589538701326583918758632397376736288499314297234631088754138464458616543114769051422731051371206236219588812948208118270109689978550785194341067609587189589828835831763476051498511001930267742255381769161319752213775876868884870387875926768043583741933431797942394270922363919486476104392304429012047712609552882793582888812118520830707239973387154109097460186984425553341178892448769212387152917751632783610061668518830788213940173230612326487415035754578757193112750322701617717134964135447726673223946476043395878553417773727970296669342218447728879501723024548566247631297348631745467705522696304670905566849712195382408507425504146562521530163785551493075097868479433849020596695491643288601820450598886790364210872153027396172284556011948583110727429001127366470165249357139880460758831932165214144434344076259191779465886761145689729266793386313354147446776712498212843789278288388404513935672927378702324961360504792835018156507878720168409104049379691567510117670704689935661843306696623416799667960938036859521619738036214730184436537808421682773374239537382689859298867551120760901903668814753435998085333649954967689770643091785065348338686553327221946946106939643553470181913392998731312586006334142866503901455590075058514628695767314895973485920794957980005011874012591739623670984040505351884791741253334779879038038470048387016508302486174833760761219038858970331151438910327325605315581627442851574087879411078740570548440189719798937108116461652653947878365699577308552258498116174422057121694737519295069333467512284517435223747194023525232125141072691359545806638312794916079951437911385518730671087802861463746123775954640033635503251063837188321509184915875579656128929494509001935236403945105239070655187944183332381667128260750812089992404847740966662300046603275141127968990544422090082458040781236289244200706060110678338808181953763188490865179881158489109398909129057129665212990248583968062686198175603838750917644229244456311691818426509941376965216631550930733587811899323794029928571680050167894529437843795893562378439182080714180749220248877082315160156882329625336352897246026834377639099663751942765448491039590389287994548100630263960312556192563742731832546356527970605924973161187557111849470689664200449175721394696168200537411427203599812442046254910654336051108140027399097299140265851036234437833966776556609947093379704161117918160730509429567875374208317336943257001115215880776767673076554837741159226843201289293710722421697261284053503459196933042752555574962451378435757932194714931357793587466768059005293770589132814015438130302922199421005278107673975555892172475120704964636933125198434908702158077535108311628368489250120314014369763674941391042388157899764018159268720852591439417999862897903524418597317216035283755545543721354905705674846368815965399153328771521031258723860175335751149367966229813726984993337255899885144719786096243450922386243973708485479130365292520715511289771115084081658058605007216662193472834251497865963240174172455188668472385284554327961131415127926153062027513096240886833555414664909479549826584333897617908654607998286438864132454976437816732192919708091481846649359548511154717093098086715065998318161420638147842983305113037746740336430309001996858304062574252216670222332100723669526629688302431694235583061138152113675962069228678860518012335171500260895730234716609226912383101465697360254893011031387150753654605406100282244163871440131566916309301003072918027232631483205856120139086299641464866203167207640691025713880635810114297928590140137957978790829281663940649115775951492289623375239541149245546031758363770810735831128652393468896870064379381614923664497559741415174506721925533890129704559311402541243989905566107490390492737407332276411075230723478312806899868834455086983768515933223898479830530911130069807940027291334888020442498911133868320931339564795202469977366288428077893081404336279840306285896971066555316055732059053197683892044977152843008903406680065964891154289299829715367561402479412024010300934493474738667417317901353191480256228504078253430175254681321819791382030393686211594071691072679765606195746432261612161547813045008183545772295083564871457532112322578334772614477909242657015778387087414960031972939094106312424645876462145450034213487529557779552419634132097660127106786129444722185151113517164397624275777110622064999504171542966723032857081331015068575245214421431670198620345657761277665725882802871157745344884362444151912641743344702922468844335892240578087168307094301596336159500828810624013377492158388121469928498794777673931209407119314256443647008352549709650276559467850823159776360056045847362922243385439160819480639591675122451062034925637543967732113553652865613189963977176344792884046834596480688150229559088686682454861114175984687369658020019053612114463850363698573257844058614593716375509317589547870575756338731353889952459592069639626630600587503322120231599967496219196783936816713415838757996980399521618400365112376721453062621132624654999773980839867849799896874800764379991509217621129210304526808108586131246247669815461313268289669800437752153308861290836858734145731014166980300102445913746625702185737921163461480396814898649399127257547231617678579044315709265204122267030621748221645068315247683671378657435469953860819925737406140203501739429086204936472001919986672955262025317412415495397872761249337331894518545187667460900458800359614054441208785105627162128974815339774962696200753757720978863887987566256432048477265225255326826844716594997996626606797325551661718967303919777984790465285044743340566355909691015150327367373147489270007612031200677987121074903975720649517851368487856458787184853918063860455321765944508720037389113071449115733891449549783287278824851104490897422692533810877509687322576419855157652147502374652866161415245725173737760656774293115242265177503732081584351523351955896682647038014737341009688354800791737911469179686916471715328182713061493023463348685509598387208206976847142420665865497348628773073850585027233832232291656995377748635960763400796522870783809224147900074489323221923064303289085171364744220120837872694661618233619598157548719851504202938721058755943774894971074809175219061027523090683449626379249942068694938654818636745494076726409715514945442210711425375223984735004833983939507854488963562417391020061493959684771817603988276181939621971785786654340830301108825457527267784219166705547987798171759551659781796417819088831305723534655363331950350784174533742907104451204598400015706262898125413883602840192602125200146447350471736017730571877739316519533447838343810963387649465378648467272550004858307869121307374205604850646718211974576982158358125968467980406259934293440239737451354769580431944609828959865859222024282968099955609436156323313958729216101732830817392850218762142884439485555424711186613732156765051762785124224380195298327654125664021476869541439379129765560639934521534145266768083938037536836161055482528401038030741127315572810432664188444504552045630773293557137311374981936886957351424883784416867902732571523745575601790500960771066330791264391226066001769571496123123388175928430688992710564297290976530764226869141367264560102217418800902793706968066922735249955533471746065120162255072649667247489580180429376328688366043876183077960530995766328344574813153789300536297424579628477791486607378806434193907380249328295209783791984709149821697282433155229719594326215835510130304947438648689575191336566891897286547762704966118790968381747084926961680637160924888845476167311758586800479457905855661228058152962541500177990862547546099891483454212353683787340925865403163983590278882278540030804731044022188187747842846969728339019523698306068828577981104082380394846003351373385565060741835160083947532247183138304770607219005371369556609346078932463336502389109026204846298560624155361050661719800182619981102074743919482002453026343550952831642217378212243799792818054144485482091053448791674454796023530156656756571260220392325503865862566951128169685290133993209106660657753841554668750008511646642709231988896884301670620136103167993833212329076280487875327436752128835833727039333068650816166380636573235439708159731972168318490326218891002233871977666227219423405103410986891530987525821651038856720020447759115952660850971699632877500466040008220744406419833624432887374480195285216699767149532621743227666518736770913973961996714488183258337995805166830064270990985780909012488173331102518459454641699001449624113792829113837861921567139434321255996290316474044869917591006344040397619196965692229274888035885054732126908190575295868514226288942996131326550362976844868102443126428059569060749967008752180134250792621331379263744951821809117283214313156287493272328556555216111997834208307747703635608673112398953565031814886721268210817005985918622324376185140657811953237314342561561541155859498714545163639746303598933248506094917854499015168273766952805021468945347791552129151515668568239618024808749690162053962112686356236104411935763465940724904310014987199293024598764861221450211383355598087494299686551571227304163680383077889722937444511206118330866548654336300731851640877824548395343135848999098253165994563263606968539571319327694762055194881947776945198470679906371286861722716191911542335216259708707775802663965201300816581016036578702101375083840809990155360476777922238932624340532485727133272398331603159793550389885092829856862817396780454981145872628767335412623387021885222687029227904522835462629857358554681253177956406732597532399023755914282738535432580102414864386077505607478111878977176117667114345525930155223978069928928277711599080358274421142254222872881488782745576269359426899449256475499956853836511980203677637749870565780023811500248066422111792599259040787469359353510174394709762796967266449157298365580019727654880405158316135648430617710178333238809130834204079567353476054311209557491672704530434790061346943295863134603974694370955994199961335269854166146116952483716408247133402195212398140207458902139194588743963769949941629570231790550924184974645022439803433460994133272292784082390838321439928804098267762004093481939184691450291401128272370504802255693481489626486421452673233708299863934889763910813437618982146662086823080207526847223754240764370245723166904616471978237721825451356639002136764889962154788618675552608038661470659861692455405465215986754403260654102343165628082147283733223159625171351053493401951552070019806534451006348896091077297034679111844812587930995155840589340495398186624987518541997457549354626087908115453460581630744040856758337928071030545512538413629658313047794098446984077957475448916935713872457154788263500373343975394876636566028184538464469569385721795515691524767680759713375315673602946068738157447141107235835824193298519276597574069848773531353307527288135552208040073440254607843977983993973744841743223244968027103439322914424458490518047487668164160824037125768724856428069450583870054230302654414664336388027920230422135569290314197953696060123669770546925484904544800682918350118037654615288999347641704201780366064715263442778145028779205260281045772594229489027261499780752774189709901507986956697612518124648112249859439208717833753342957784553897532056089245619575993087250793680074146293805384917839498037438736746537943226509110404255448215385415030339412563409011616824066809747778859461958906263505340845581203355053427985457989471666561769801025228844779083647192172687769313682039671117535174024696195175293321659403480736903883141360055691662821542036760005040900284409538223726301907165505315356240328835108924791037607908571476388557545388990690158669337814817837733674445065487816591242010692603447142198865673587871726986499053135625253568749902409554453307142516681775702700313534693784545188738591125939535842281248871528499995103802164882151074331963025756533562270097010529399778109457856977841868076516595698108857967925747343936029159435094821134951132356233104612796490291140052662643786744599649251120379714299040465900270056362891363195246725201203695998344806196503389948548857538826058940342740696550313109573046560097550276240742325626413738657394983300629351791494773134459551240666156575143340932956159657109868003216667110496707714358204477122662959846818828096946360698629947726733450803535292371753314275747970542394827353786131343998731544552174321494633245213515660469412747660223769247033411034520083535041805654858918044386500753529827831305721953940475789484784528621325455829238066205863906697462021697453038660262495039992262816234096288715148534484867338375166449558396700454070355914755399710656377088246964040918969063679260771280300241716797928556549645415754306243558542857396782903199734618283997101810568660275761851315656673542653861075719562249259414983146605443560748248226114215638181956389774427928608601294511852932055950595165527920228923924868301595304924609831813000904108616398973842195550654203694153930022615623685713769237240371713317178996655885447078788494029891846001823068759961840925029522442259424999596228307733677388446658080906768009254487413325874700746479428650372259469280758201445326096955200678804365989145081821734843223314152181777852291064721492295962596278546087124062179542899594534409834503727013825697026101563441776198025599304576409617851104641882537769929257238595694841148578633705145607326433558187089049477690212520248759862921176064668577227725435995759659350931888111114642893824322945745090411940996189030986531410173655047647790742744631557544505221568110479693636384464845279434839144072844183410124258202784282553488072895475115183032149297430879423187296334318063594329970265820286161092976797379140175705165419502321507887764130715425649893568558206769122049662248818039894321862131440783830804500792926038697934995418128696307141769519879048847248585505451943584350051633771100716074648340947747836500633112042540392709905457938323457855678672008777445219418412366157479703356569742670238036760932372017184636341517769154000939075311753429079600676557762844033557651212204619654168416825256996399887834578275509727606697530396842272604919333303519565317614640406413694903739761680186671782759063250071257551604158495983327012568256743287856057193641328325826810233632779125568876454016330359986154678555772364732417207975739656941052193215105294292603477523472222541446438153190318739099001740141523358810493733278093648735316524468005705193964438940723983805094105501151043149492065078977005028801839975472388935973385270352367310122319923624800777290032323221953660275824945245925178673517402911702883754811595308934576824346128917505042961339501546492722872069782497114162961939923886355981885878401783450706674499420819975332626674877624771180244941608974505561491858875521862321829689936883135495339762625254127801286024958291698731363271667817223555564452894754212707309574259165768637879779682891712116088861789523238731330483987252087891524387656345740075765048382096958441563046666851952546703009545190583263805134858098849400471262871967901672768079959383642207554284378774411287674632356486143831124616786864692145462261407323057079452580148411033048259816135438413751317751927454625632444686842339192265126897788090770226992879583716071569878632480859702496275364095702688156625929254610269937239255093374203451059805453860382093192329850844816485340396938082527128839651898986171857694279138140184568722550316504458307162277739300184308834336995401189158469582121415813890713767664181011247782467687805287809418025061984709814808997024924725455081671793986806253106159244113211120641822349808209841875267185457640147405290677446773593095778257307538470200154646024878792458150975383597660400563043114257178336777075661892487892806972791570290901594119413145689462108803601359302198766958033115962583457699732702238939506285350527554496273340899722858842439563133616067314196875017394406319107861727686109210826272977989079875054101367361697232219918622861743788723259172589345161533089623131677070305716101287904659163506101721553403921234141302518308841311315477643617485499079860874053605265571104029284940863090080233091853459882921358924300436292339042110932625145717166382025181359819520352438666437324992813578982301544422717290221081519477023652894700243122602782568955950474108266398159809089827751984919099669538904323104538346100778567552712530892210386747312297585185072952095482346821917398045408603624958719014501264413219686913629601941503532698464410398910525189001507389844284841271296992054129557719567689888726352528473514068554081251395268532708033363532837686473413972670292145921029817046753867199327801564703660294581973817889277284718462380489534209606417249065089749476056197489552561430213062478679775914441850143296551773703205896485228902816445812530750498309338698618240832000395001572081332655062836313985180166475185867682038259087349576987591500121492631766467703345109722777930215760356688886322667821185497569295496016247371892404261604806057013787178530575494552925797916403427516873487156041889629848383644793508576298606717409097294662597759918053401483236163996500111843052431722943774469625264072145318769801044332661315278951603491738732471410215516690630495053868415545937720278089270064230869812554261160959166910223781454517513521243155570646225666564767320339290941815552872670802829099550975620543474684561505583466660239375524722171101048720979152958517375640905905140757163646973889662156070421828032481929004763541243240723064154104242095073614598422957014625579409138020484238448350714178794304774436129176770234487267096878612579565752051538034980281557043936129928439069886690643046486627940690789051701716744725575591378068319586268622630410569062686552081167018545694377275215738240188960459522498056586643011627925080079708915403515619246118649649410543714649069611351460607754659185331241520924973031392706325936501492690447611884681074036294453914263425504792568138862459161142601644127748532643876531219388976451743902688208719386363342206314895814926528596588531766540646049211974275197075945827339411634046489681936983246999081335792181690677538196533118495404595902009423959548342794608603659248574233756626159164108317741458835297408957945502414750966961052307207738628030348303927721855834336357336951814510431007680269460114400335787992398852261713492016721082926870805194517676364607418439806369552427819523652332848791309925998182936965584320534165668755848467512050432342647014684471669710680980256419338297277558266979832394738276538133442168703866293714395858993467723461373524501218205936990915741415997775728316843213521223209467986957773991675924132898437000944369158264331621904809392803147469605936223249452241265762564411841877750152152997911298815939393271129299263788327618190043271905815892250793956685408220251428907873712488352865862038909414786765645659061381386210735450100868374734403563214975718087857893447770487598438375900765778860125648527052359999533659838488677780967723685859560879330357826098956865393381368660038533890447436541475549689927531108850382892477204990297338275053809311878239009899141982398003129593875902025142790681570334708699394161327807561847238493310509908196180191292503345359337225600013082736563538775610757544498354043596551615796843934897946452585263174869657227278055560888860771221596844630744338839057317548455362557171607129010341751050744241658659916408632384731075337206631349164763003904033469458780275603918010104183229191889322462001866387442860353556501952342302697136056102081364510960506618205404995514023687504843279172831663607738320344840894099784746236358601449193855541481197629322110522474690236254959448333572428427125351595872388127478611085247349068636627096710705282279375591971613654581907447597584664541113170274819891376824170977827634616203050881072104719763758546380902713441163346696345652215343169337131579396932582757175255430331230197639589899170108418831110855501443434033629100236091328949107717000719020439836072950996137167693735344853528906353122163651591176526796087509483677603874448317076420203246522979401767755087036026847526196706675074840101073621241229529681974777521652674983031608812887676102463858125206358622466613294074533027236228981557222558653331844034664107458420418861538391254223350484027297993038577217613573911655827921257574439886723838905238995568385155866703252414967628286337030886309430984227995733605560343996574744493349113600048596521651740040322500372906651890948432308391894481082355928129378513398627645694058402651287339758503294223185873993986662033372563238004040955128796831714177715920509443942600342028196543229969345932691527447837546156284882554206973870876962295994383463229444891992791733170192221847248538242255910185470853393534871313901539555144496519655916262701639947880996214943341777416185552333845859845330584796355836716416568551048410525715146927732597309193996878322879180065826424794619086382101253340408095969098999818957367119620034679009259024607496652679531292395057738176326682346219458748862298744479918424457748782919262402844506277074223296471443118468246515630130825747338447019129756863216123195393142309147483820528156572950635214817368115875137428479465104482955125923115618517142658613894776844192380937817130025034140738473046804879675169106004839450056183375248265465208875424474160075983881571214428747156657344239710720975585852298192061554731427915677021475553413711613738304553682390492139645151232819584787043606117532799113577459742524788635411583512385704455525369164283820283734584078425555585267000077141969315793760478683187757721294047483577223060957213645705377119365042380395420217886208179425904526978430210704429782234150711908029456832070677534841762351101972148971893257409558218479403119740623128651109503527236999085522838799190975587125692390947211119009927953496534680319638175321629862263883978888297063759898263116432573651723265647434180260732160573028907237648482910094346921934328301638032880639941010609504091809877799685070691341208344104524403316850630250712510783232412368641707118262728455212076783418838407346472230878468612498575395475254425096076786079785241033789553876014484822565616976593002095656559173207142128876866087928706581344307126735987690313908901282188918069357237147176631957278556007105829386777031983834743343608983216061914314519093913199186755631768944520813019434908766242417467197543835264738011107708428917508017405060807681808925882844407991228279349569289589081662056413109864648891132777486090238466592565858002146206755306691746934209413893609275910409027474995494884224733206754785851453069241998821979562265254534462001991913574252124235134683072148869183459131931354659996379161944407823668126099324854910533840469392348440512016435944312695555234405588494872867147733289210205008737520028323998938568989387666946210985504137334853791039900749971874791143598476947423001580503580413813834180890288036553917405977019339826864560757191560108036922545386224260527755890694100717099585809536043050149067013977206403039309027733916909649674778509768020686808516916280490273445516267300543347825968869523055595035075160097638634101412304934614490260314417653794085973632884141394271853822910296352628844750595927958386341104625533158335412750729017468141687540710064433804783699075493904471756398735600398501884292414662910493915562165393128272866180654768093563886167442048906828877170730976629922189180395338406946787930684863212107766925621536530764310352946488028476840473090063050654129472488501401976100888553821933487230606444867199810381066339523220242266508090970634195531965301747686688426159091577555021420131278695974006764201694816643124970021752300198669472620381421219293270553398241522809907334784385279354707138642069584886834708191195595082960461841576763037711806372939045567938253202680974966723680107052012354942354158793677529804151028020063210075356846223589908698453844100528743542083052974272671166448161053179234937568591810825975049204717219719537364436279870660123461411351393663922544668338938591114266924691693271652149495551216413793274694423941180215402919294284819186416653848408359717951581922932956095860461156068827552670125599304828611626798763121677232820938917554649149176052167172586712113901503410175025440555637211517736883568998128934024307802550700319772873504818800914384866296310907836241907755645654640738666921095655580258899036900547395852023225235059347879048620199428918547863206402543314509112150886592215541485467067428106449067698307190392877151721318210132681543797817767379784130457360516338618587246137976136379158170831608285691340871275410792170508108898599099560497606139126884973870999972026125766582913337841006618135583611459404546659503947010885159680376637228007857075570615908642787651269569291188037047907833965343560944153659281607135606678969671819434256662828481243917572443001976502459522889496361164298314926387472475450649461953168580309015771436508709474170237888281641148336669409817737079999229446889126067601450644967262875518843137469375764767342444222118754840827442205535234958813281119880801940618472993223558875943489624038755744081909608570342117240625711826948445566799591929429028519437593674888531056781868146039882397541483793485490383788050103964022227470771666047624591946753217900008984309022023313611075995713276971806330475462787744670212452884434053067676840765074617544326355447867489975507230789604345979751773725991052359296943639407875788500752830750575190777300730821933626209984161114937009375888787763393745847575081742447242447133189319202202076955749686386212906802704044584093313887941061909207671970829841076110937630342724748853868779005590151271316249277290093085020208740800467935636686036335682190377425650047792416276795369896017505368308749741529866463807483337975652315385812131361040037095354387012974638772858817950619230903894935206190260952907854329410024718448477847109750287934795013429969645185257396446846129107320486759366123546434936977996606023625890271357448945906320224998265673523725166410427726056660294058372798785720254728637094995168761793677097865335286340639831004351684373124344029091395000883181029956383501434180705784855076878664975976503189001624147526481690769296659508681745189050918285149087330902794466079201317253450838548211535231014164096733617460834131228646672278072948740435585688099115583181232782148977172983079710024416855529271489556593276346561829097838025477625184187749551190304087719974571967156307362351412138006103603088047271643675954288717321515624077203544332319382176217139195158712998709052618365810278712896404907807733539406241594076813673158376449919875674518752741957494939744473050222098788753721920869657602058522526643883757865480982551789783252017644252364943690823929621945201364673112241601754333282362235156548438686192703546755357718501441059700766699112997246411934471654517810113640101155114787949909418103418262584620675572141372593616746058265505245207617036398910394670311099115300742748734985299016238498318304276781551525582319815414036261372244381310972224641931367484552864170383999990549252212309304661761250051483802598038219697532337788858854204994161686084429620690288442084261397751447893603886915026468706142420163417207680605194874992998743869632604282568181006335095938868025248165043449764260610747912130445233879476024386360402853356875101642342973082581560060531156555970229954008653278514823723611665686735837268537823664711640312174663586000935194370750072054321649469284209843328035622926415051556886614298299527917799081089242305262529308855723586479658577638650150375933615562512268844644915323768383983685327013043180626414578903938382468375491904564193924178807450547269784163507372730815729283500988358733280325842885216059458533021882720079387568138483662547056462327739615851955361693787422148455322068960137344910734424596347334958072814809548582679268945707506532084168320360779651009939540224617897168755149084746751002061775207880274950515382912638993817075869573350370007442770975916198060656153850996504483719002761785086018068342265435097631083914013119359502582692737519965761131479078668009122346348633789389609197066508584222391681871053882475360398792007680846910022782090227690504985104474752045852585122189561042840332603871542603159192286382588265718457568077085810267272882018330874291741568764719218485948850048337959088344665542503846284342825951253199285801674476737520229549549626881445453602360167226338533622898930841069494531347559729654403684981737547266821785391134509929195716548720634587742395210269421971314876858557074284435443695433903203576870661072058947851663930003596377484572610765374431357049686488021461899052033611785029197034569670899795175265829491255808847222743657088044553095986065460721287352284368993552452394578538246849876800075683135902160103344952889884873446163885369398158122626834827739007459518803095683049997837197465707606081261385214689239590424013050736947727308638354310489674323918464292803284762882100302135866148500071532664220029072921259347105348601213306257014116310097798886738231779210366316972492900736117167827380374361480624031731656788921792186261221087699160718873376953829648887358967920494638299539474736797689663517373681931435577276050496235373576282217621000871548966039064013990176753953362538145499761221130428279415954452824966512476099539107392395679143103135133509686740290194916577657769879490030708279068533401837431214711424993784535758579719372768064543315738987617652245421751196603901399502932127080790587582986897324528178872475634780921268170346509059740338946988168608447857804183183773009712816499420923736196024971691894763797902349254942358322857272996161580205800709242846608347094559150878133489914418103222881634651090651033346673808573005976026760354991223883697244254166374791449511735059503682571361310413081180292099240670914922292159891198472691038430275515334309176999859225962462170375618391150570632488183425613133139887249277556764419045743589170001672221495345867028510440554843856321782956165646180342690147189909333569359401329526649297510511842615748866578148375177921903627428957358467190585125069435629932934069265808838178759073831383202134050463228056613422379753657734334379762192758367512275166859220868867813099125011011767618939377400525525346948127702157628363513596537097469017090919869992282453688673396302158740282716770196855321126024971343580596343246564239489846084946504959325588156476512278863248039599015190463178539533879235051872799333315088255617004904499157665014861879261016194813243168777096480969027448442097265941009440650281284858903885442560402053236659878167258193305617388944475569502720299921534361694367085910345696025552000142776839130583399574135784885877317188510335076690342360011666428254835161274247980015822155529728189287094156405890154735120893980626298962001028621517482745685554536255303768307777891795955158030714994166450931382315756045763079084985460437203874352853888208898779451547957645808109993370350936138378531349843636896936810712611691882298163389861304314012420846586926160689208533477821876198920182902325990019282323960925902451716385227699759625693786561657528631551610836479187244362365689460148368930244352836676919815250580631744183687248075377655520070813599002738352624598995389336919566004131777475324002375901751069780177060587547610454284160186914757563530805433444009552796462240915359374082836000044104292110798518965854942028309618793806884260871030121759734968895994841036840366569563647858805980453449743433863841993821653322554564590618002838985508118317744810661037022141257221513264841578180569096772374341749749158289253236673576335570047651589702282136649108187510435902848833570530567936547018700639467046371201260592504772455079308123973325116044430455452479759720333381941479904777465057638679591797978250851657786378898334655010044871499942187128098204365462698812627241896773416761102762331205954986790142061095514821513175876914326274269045964796777061599511043202374795865209555151135565925615162013633869386383859683209102479522082691068099873027025206194451800483603695455851453699417995290940088110307486547035695834949899482901517239646455545790332758280010029861690008409120211578471871766526595759732950634850859924307465637254808777052298705819412082703049460242551727867997336768851810753797976162949583216915520234150135000055923951320587169023401529647009701859090672858845126539980360146225674173742685388443000981238246153658739905577055378037253878229075188225379539919294120537546020829546869733565225837494821250562521450498612966828591266801512533159030684756986369809081671647775768026780726142604239099071766438947243672334791876958730377420320634505198782908993140683317321283604196715153596046984878064865014611451381386345774491679234255986555292230472289223178521664031582551373583431244070296849935557053760766549003279643405308411490718711064622400693833119546293684852456744867210823018465316939259828124258306134247235127560531980803535424010239740038730733382364291850907524030347427547529023031146723741199982248797308252196140786452428260572047048638828160042338005788735808261515767730142798202915888219960463797701579433726800572497994147072305041850032679010821082716205631806516511615464080139917139279744448816594582557379624642965712496413743673667311573464592236881176870488643604255114513546223390792524227309864506357709823938987342527028582434180242110226399447657932082113261827881590648087867826108779400997685276627943993660302384784499942050167868829983961383508153517757978853156765384135463821197794677043692654396827778266804782232618468932380105983948717897123148368844331758944963703355137386738221460791812091391160642460932418576703630285819151961287401062770487146326480035993126108749337597633842942528454236220640255697980812600331780881877420273123967464954224526136139194408839856829949469138674930943543305389552397540360722587587749985195448919538500316262458449484340396140665826245185456361253387840256960404554534989904776640609215603916592606036608127495237925683583659233648548730601840038851163620522162075512973180432028772908199738448961879040475877751791285478442354093431090287580325809664642025630814386910017411704896612971641097636071549163975063448298845268948743796281050377186773774531100702322714091886942494511940593021641453465919392122792418883368438673620132945001562848989258430398228007713970708589256572541615220418750514983069284626407143197181755819968365223328266245511479266614704259136519023055407474296594031138475294814940733806840456157132703049794753090011650085427987351839762191495446530226690167179885466316967381687194127992700467811496748788580356429503668150110660842284143084773202028561242658601231236240677212387374574520445689469833699070658244750574935448118231811334937586302946030189906724074254500285824826195821008783093199644720187286721829170283392402096020215887186559677434753917727161590963206253869270084895065552732974293837228056279401837172028781474103711304967600367673650613858351747767870151936442996662500532793672692305006157484798375145994860419279978704782440216930219014652270583847423930938115230021901247424148132807382393975756824026979273987233103181570125017768461980323238442602431559617767440394188442716201643069353842596170753359408513989699439314019583562413049293958564546082134735320896115724610317171001264010398190663415963623245892189295158172503743761360245726800267409896454806746567641218040326096562241794076720193255809593370627586333338805896945177427350427297030306115701325192349179642858872924175829204962880856925012303153935082841218780835685133232049008770209331859536338923001271844576753231972290795855544408786962770144890148195545359453788692159933918344913832309683163754479101712750927455358858112096167493278573101703213204341498196499116074632063667771302603939092950599617924747602158690282438833091174365802549006109577637333357338193970793759949267274435304593350739223255195902153629974425589680456958129962308814527986511744687008566521064375139770268933836044928888307042722105941457909609526699459361977176419805591877295488291869868194121624449576089183765677157340140901265207087822739805975871501276919129542938373001343996637181720318041100624071725333075702813974078763363663208724690211779960905929130006741364302225018602421436601255328629536526456682321222077845631604284901997374940500593892724013543927650138699815511910609311973121404535355041924977266100355083829102249617739301414577655657063134127910534148558201946488644449433961379851251452159179308748236309418645931590983181301339959982044494854374976090940067594714619072484883855025486684925038021054591686321141890432098152342489621096218353240448307874037899641226720585962059127464299940929683071865530741271321063296630336615210736742787066301643743725968651124438134024348840836649714661150870918287426262861752016063432050029598461116492944862494603781595205787366018512127484609535615309691809809005484787547304022385163831944484742386013400514784319306260193780256789273280032690555746297765173407962440477871608131850875065126801091828160157150223980622682895802723449765958076964186832499037989051192220720193488825803675551133675009485555394919178766397827695704421332629034281656818831941041085147848157365979147505739701863294368609871600816133331200706411386270796964547924740521741031486886188563170564796855181433594885301569519398231455437931862264662610103265998936317989851973208252266600232708059670796073773378426394427301339263787322708221721111718013914874004438324822554269435113259915915947710926327314665376160902769987525559143285187358980803684432692486697897989020042714146381759433671842757871132898819947530527211020641319959140363122479035440776897600019353754065747992890705110855024252844866310463073068951786751257320961067375166482706671579054176263407103802226153110622951173211551748383791454061689692973483955984313789344449903667756253126821717706622117271282070925427053874714246816296877659187416728755178920664348154965192169646579819284732020513303114326917003438913837266172803813558622466394382431190063014127809158492071855665565684143627006398198554459974245868509212479000849149047381101325447663433015589249581216336997788041034421508383926977434913167229415666839481655669225235625262403160058946729018632109881267996536838544875123543893983491811440351005220956894680218748813668604548138414695750296666328453452367946258040844699846049184787460399218826550659082758801240863124573499670735400882547038043025255524747543568454292461647843874377291830865604462255025961263551205645793686903516782459976878010507382416631290784474615451777140915130913844112498674563459940467409577116766392044819660055525873101932547634061414468672495472624656271271406151697221974263010506346512362931679214787216240483134585572536285721977532855267403189463087758562169541790193985089351171953394950198787245961436975184407586006632459205898260081037918244106801923582256053149856834719519190413688193766315162557308473412795652041978251558824695848365685587146933066023585124215735361684326114528870275212549855515210085242464024483699600237864660375130720564523969484508076841856510579469761011896182287451351444285142414340851016646240412036610367914505977371792329123660655234504092344907594961078855988647335330362272873952290580406991124351794314368580609704592584302733416490827092724104618025825004968828048107490041009256255459660748501762576232839424980157597719145036915577279313439828543025980700532282863231855888525488667103096028252738782838838143471220197163850456807739705019944244099205648251571977506401648239073614975898185801610097256687597178363737629970726099289497297895015047278684026354706625456569799852261354655725862802348494681236408482127453128012245719966519600797761707710846880049808804230686134270288610264394397771198742427482810603432134491357100184800380776741045931957011131886774311004350742508837721177384192880107202668689506239221367843197051724372867747316434728351562299595617599713712395006932896614400535831122959910517007214348228777301938919842984068093284266021537713163938432348399031660165741667773567225151536561332726365495736951904527643552323481760549315335076211241590093394436755172059202128260585920604212624499755414255899108856111546845611078174084562536016382274724905486731552828549726184115130199656553325328473932070287941044580673213661252111141461021575559132899045572336428343932714205964361634315860418905693513499003248751056927840140888600725163961427349165931803844274058506930293533172214956035734169210855328882549142944224120467775628310000089942936856856215914148331597551302130434996722936787073152140494957232422508303055260939875287726031605804358212112912133637470704306383464703745739393552146629582888801058759313589307604633545146913621896999809943895937217063054348013698457041696711959738517791195601699219122463120035586305623165488187331573645946334741711854859080191858467088261561304953593391287622729128960927328378646925873260384290168021540610904878762557478854150765356124562008112847842811409459848271390346687375569282057107579016101042361050430841466189207823076272409250212032038422945497078701461655128059217184212191938322970284888177331757862951451502635655195178613683854011387160099449725802562669857028756354237742674542610950818874863603589043285567198220522083937142350194658565307528042036770251248586037105531966610520407605609417501483527675731710722036165118723860006231130041045346818951513903700302772264865079285399410809824783761714280398797789728497505944268619499874665762349207936246069071862726908735307443467041086561917587245398696630075337095535988796418845783756030378861590538425987524110059310693224341061664855977935953255311549667403759999162784198465562351424555610579037437046021637167960134471041557059773129607987012817609561034530880030312929251760327580709713665337970929459120194077582344035847455693328524535006973015890301023591091028055466815069002742841780768960519270953960196673421361286868047040861293993814637389881273253181765135560970957103121180654224414381246338573042842171706555440224051237657704009906308049205748514255414233652379456420620223690662483734815828782294224250902540313770368701628546467689742156255637144607579826936840088133620563935742408982836340709195366805820655236951740822091595439560300823532669291499349932082911574526643626198815976855115450768676588063685983313198009998374119410421388424689643719454282569252438162091494769618055636392099948312135544314687342619871318147136861612511610010315244056057311352503935995146037173281905171117412835650989725747242226496462139867860452522410168605505579039565776493470811991661527650993175331205989779481791653998969948816615125829839450102381688872038383110011786142627513081141464347806988271733470317542364492975314768960493077351932158499285698705857832440151631260744851889855655205210797262978866350456168364884092494469543307575562179045480438778483669656227016957091281735488643804077267193072611499564954831961389821552951063211312279207168924037344583224001563911704586442183913989830277649579919383581552238717973656134282539229427621531680968318816180803549011424815215266682593542453282237226609900065133408809256182727446911950382392995479123902084405801300489608919652547737509816340001906732473694286091840760569485314294214549263991306363009455685041595612960727084836157857787800600593562626076687400796679870094943769793153583987751516976593590423932955844532672183892177539343903725108192620240575372985355967054317818038037235882271194503802199249285830102194165147379448877929740312626567382960204696803523186754945966907848839045757481799752126162157829423945923906965442467801764760142146026565167133876900919429987272342223736853922472831719618320240205973036940405837960531458625177182145551947816546230824411727741598146493193917677913590950306081021235964800013370614065989111409414872042183413582164641131877474973437789191962757773654358218926787136012792310639214096154836712075787525513595412326532078159698012330838643710091714414784024044959163513240480190943638849841880158227626032200507668517119157307257303552504740628524486454368943090228114128410161809692840007987159580654839662742558644756453766502121088424373623977232086867536475587103462148008686482654462879305805530805976826498059565235485571328917423364525504221779688471558582195199264337770343953653421510962710375570174272525953300382031266142143102013032850800681500821635855318214730097116868092770843364820192691078505385951092908341392991333746822060452555596034979175099304544728922139123856155750990118690131184340848839051998072504846168995671359022915087263802910726722215152124431148738354513976590829217347082619030266876486868383437732033362011543642426157444454070940445488423332325069502642656117390674200688739450674445706588250309800680683859582696487921190889556756867032759109692494002960616884345270234936445734448459341588840151794637901455249606238406066901478720905830594842387051089099310402187315955280739101824568566310419177166409092816071520150166929970049799111783465009975249254711176250318890194854219706199771251260880441676224763911423567362196147833731954680746987310785112194620652663227667147687243699205227838860667015070285652210972721770214968379893388405627830858034840138293663828996950247382703917881104902357820509181070870317138838577180032810666475485690962796665618290458930669981412785806056723900446282346167777423267546231169698448442419482225929508935054515856767539021958674345473935556177893626927922548960536543583802571294737220180969566668748163105139284121623691496487547803654438619877335194632092843117396069455438177885143137079708269048973544184945524613085664065131559887942253170119827414424145743021400496662103331549280419737861941425121149339175113615869352166685879237189177103431449944464876608557091061158983945950827680921002858662799117912480783362458937773210455808982689895718740429868721203510953445213560940899677566302054744704258843367017332262589110201703065158381436234953005582424828101022481689021079616426255159003713930861669242232197237679122102254458196336796512273732428715742441736500062733706272178925333203354832013842085664256166103633417531243370585262982661572913993516388381104226010845846743241556244336116604631550229520104985554718189069912405583862726077599788209522786983200431711930357625518175259541403610600761990315055305526594670029946445357566614894788769612869810333817151283266131040080713543712280575900889006800868394077609432944742857679633568712225538342819274183518648201872227524585105766036524053213857245504636485544738197117516312114190410238018226188413255906621019254249781961429127181660764822375952329081011761467464455849355520552420675033687325259377791553610299952223996477083370512758417872562396914076275927032189206119727123252293858966424402692352628151766766949236279566648945506614632009119277523296581248095530302621386430031512353307390532279590682124350034758371527310068657912430400185624559179654133309733825358707462175299129060201641860863527735396144588067342858648973557094006887730112619734895800398087292497745086175970488033152624477967173939440759661388980831265999811762822663429181855109258393088452409255991082096232128777819299512663756027891336936485364020371840421562794341089545537491958647341840542968182248718061244615553504310387407028721977377964306364819715939779099338327267091637868993110352241818750454122299591720953306414293954628993921561127597868518229338103033962396889911750851221620904591367624103532105657137727597044461088204984421389343556926734385163185640034560541388041835002386869810535120948283651313285560096446887882844102296294434008850461640271346988399671552755296130433030054332364527071209877141891718330709929020539785524890798585124495485687893287825928028598460112902622629189474968797251690428183595413119558915113423348825986375763829207389512474144175367140695988580524306632900465779479599686473972863759607168279109076798421529791568425331838154248211322866305049494414611728493314381527235146118939755920789819158543448261410180677321768641963732864061141393651998421729949189835892661794658958103827310917481616606981253814511546198830228907783851115255328336016303798887219667647809516635093869989342818288280900447187913558449196032207474975437460798751454739269518258117960425333388492166652422756865100976754156108452397105750441909935738371657550622784541709696286194763597431045914126506014663785932118615976508300561957489199162234569629189666609343783740419322270542429731747532221704715274970204456389110893147117806016951546372454371858206549386199375415656757016553190017365759284864609840878860109004776054218746549579591032784113426567820369079680604269837626107995471595880562064368428994870120707808457910299468573659506418262987084683470760689360602896672034729360014294869781494946594454754334236251054529905226811331961676506664851214030249831121822870682283125215113788845513702861987442704972397575808487630693166555249593231676375912834179504501385257679502804529570516397252268407465990216638336058423026965964277105472885667220742112879966433261741973170546898799621607663887492999919572971676329918658779602482848627642993742044988913789310359121765902283910369099947970178161504478970491613371244516745496515225696747681129158313145475306338842288450905484485332820662375273040959478175993988226714491034097596974625816346797193565450982933154361768207005956427131699446753716405951719920165539409638321418881616217803549539381820007809000598794327955248120281238893369426947321740281628438631859824638863888090830657210748862946027488188786984812331952825663508817176498158170669884537331812484271529872065215439365300072099265070924146808163678039249653105330771430994032837641554398636628001399258920318156755005593388199846316050624532758647499758920358973772571583599564363393412540806293412750100265103390979076922496535990764143364362365534903597523265252562359098416611009501792922412879832152371987119583607478768540316921859475151720797664087479598619950722068245311519051981788644314061793742695906263753756248332214839354347256877888562739314777429659081222252546502246388180489842965052557618838656102905298148220607587313018945376599059016615783686390286361788708114822620681813362656810057470744318228900814596422195512464572258817489711562539065696286057299787673437476868249773446109879799845680798106026838531051464134721158749497403645270817959936869311961581357644685557878131738046745758114718391491574743334736097043888587311676969930163800600172698212291415509851467370938839302556153570309193306292627322616878803078010397375174450838781600145521126245249472059273388909977191686912549100041821952682847848563124780645164414387978471842113417869074718015393078355670350221676756628758900316730720887195638735123073774916863621821801383192159568421237414569163431054308733268061669607129610121042098730280987182600961696597736465607703637476607929244485472947911647968854751664915821352209550711021797458513123526827349427488653105849110223806621827800257348522602045320053048247778824543244545333593061911659930817087350453132149887618442169899722626246059437916082540886863319941190363369325320617389654651567449113431271263672639705815029024012965418392551221570992133736570181486894464624550910495720620164022898082207645132365709240908236636817796685824732862757966822656804050066545679590567469849675607838622811710801789200873483223376288348314010660373346827495213561431279192362631658310065016909182398016425404915197632150864287176462547760815567193604167982502237987543492970300376837723513181018742390377496592487074736967459180743190000243568025373668877602903739754946721545000659143824951788625627172605211411150964504522885546534481287004429420340462309579398287534094327199141299216138448595419346650951614091183247170392475682086456970599773762266578024395890009106099047491935685567582458420312888863755164947326547268120699340084156151124113410508257067501946786270390651934740174406990793222316288641387087301270746565171624607550145167134196341117541886729193236938134361818729975512896548126327676587273185600098300417548323643626017750373680404587060535819679602194859731300585466361172476190815340153923401923709868954998160003002768169537043559323374846610987240118764145795917906565212215016757011554519306649984414514671281717071805037043038164525216241405585230557466669356327477188498610405851442216755849765341698283702481539457444976140665636244377563892224199119331259265449760333981497631282199750668350006360775182578410599097934095414969397620396840052176121203208691379638575352313799124846721702220322899581838910012660632816940807985492729771704758134594655820081860927119101612297328692913121492637440989938312821078902161526038533207680604562173775707914815434803166171699215641414966158181040875762557226894502840446614640651557364292770713588938803549382274726183395095069169419912971046661207106603337416544911061034645739725888022191731314920780377587110865210727705030762256461816832701843001966713654016417066351929064204100375954236130955524146608058746563164908269612551939454161835306901832230369168150256077784638381208137925356258167301774325801068531643554713540487998543001874262121322513301911415198984195292992042722469974657872321211864037508102120007149169712499608456433571965576352156210944127673508691825482451691250567268249747373994329457974455639410307017120082666303981927321454479626789607065196376601662097755188101143530407842931413991077730440966406772769956746619867744531056844649292282459620079834945305276324355239414247664869441045353575181068588307817791805895869287006831125898682279007261795606038630801450713983247476231765401977493704660860155948495017483146699705476862167086131925065236535296282920676279737818130178744482989736265458174647433805549692003694385511366974354315548285535275557410549705913544342313256722089811557176608736489115534963285678671213950295769648388381218099147144834026316710711360045511989463492915360450121298482349248162148167209416600129080410576555046708576529655711401060420304158640840715792708965887924289991636645196042485592842137768786679069557627284715648336837984177448559087492585550441544894939223463149406085573843770406959693188999053611318274985113132167112032236226272339491068567151424696293996902384606746200619974969333908847124456406138292638979503469644813291334340820421473419408418868019396142559799962074436997325862866795406857817883448237916985832382172438469206410864807762869147195489551127844954569882697497619928294941900374167583595665483605979879655563175230924195641759004948692059991215380222409882825126710117249109159798994325774815473726906096837070827574053586641984210849957974949328305067511858388690364308407349106323930303903996105134922314889822756029978225777588473690062697178927185206566809698559879735545277487043061327062322665709328866817829909429569108821281617485945631188124696847547328123553082639262999423642692404015898313375049936201550194466393237671543878104730379649210073118291029609551843649696168513762554360159847606063596701752746043867531613866665806304943326576868512438239730980334657841351180682473558538997364041438310199487897625473590944657269469247527688452241697239884155441758718914507241099634979754924185446822496043476717046503441073997785712094831724192392588411053260125930206188468829139480996373475405837878427154659644299683661189480210475308731457293100204626068794340718170206181894788629220359817905110097412125950181716653230550777353169439683637273205333179032310874531583506909272558124144128928192716059018804424586659568310607966472291126449506005012460845233347488747351416696792199831128782365135859404252568710280461394961302956854121889925845798992436620790859574663654914727926105454257452357322462023826292077594261562819890861114055320027775951641217826147620374617209620187416373347772962521578338832859451046278804927828110561669440464695811175766898744857273938116882902983652388876016777748631321204900909024525271147947567215273530872438278228035097974174927759789439833366350794207611729839205962311338306740083130186585588915403955899939633956352055405481022162564141863469858599490951380623628184222453259749964914336342707106168046893837328931894003353051844193605431017737429332387585879116378211655331700325093594978562746886996102887773045372028820137070984052872080951762414420406730531496733289464188148875145615639376341401675173497502928648121133568289469891845669130737933282378175761883170738247664465664023762616374162846251781884025541670643396854051546107852643753039591502529185481406655432101168962704661023822013276882376855704107487519386955153692937396835483922753034018777944410823322487852994982542519215282610956562273459825562503418200688387381227472471540499380673426621624155114867359620045412022632359738408854742814723284295207590546865980781423231500120349510241971498383155904695069840868377657423099566359942107895976775098766907081894717661795786239495553357172796462339606783455670011990334456784895640039078866836496174576256212605567853015538543113120003565233425896167403361910412090786122074765845566366706085490325292144438813213811276526522630246360284307997354753874142679044489455547155730740817239560055873947107035885564993967742999913764540393681660934061597998076305249949948177585931010233287517147056979715519470268133993839916057707279188409963077001850534013688310225922817273330187780543625846309681627090379786322526865572972811462934578211474468466293430040533453116223464600372932970107963903847532107446785952990121999817202904000521739244676091657504250332985067040959586597467326551338291710931439503845547113228360785701758255432213035972808706840312270293970975515346642601939360651942090005248596216499916192917634151374547958300828119795267348603893892934676859728895671000651063024098671010661358650284597573596915884295064671755165301803308852353005100434699333362670714468250500232754068586831429269449710807078902210367005707090968396353466845873287359809673048330407640343803377491051394137163769887849296681186120379516999264718426724827557430367695348212076170824047145694740254354236234091434666599356369108518592897657072648396854192018598861364384088167373871684990478029767881669061346808945472452543771490727811299363837670674426682296497001536329979232253833025301287807758036988431043992242938241924498232356485720183767966201512259140941039696922602840817272815786804574780328861334012705576836738643791175813062127721241665326743331629312802162301838568119549773672145762617904112744829030811286091024775554630249143698730158739743263321843553081310326522699302415824259038489873145667589548498320207470893040446435769906234187681742556956520626623031288965623482965741250130667271295989417660444295320124873427050003898146154675601378829037313352293452752185752828836391745851832621612760176131297874131855792381967615627511190741791675912655224971848315006045593318339944922521693245426980282805952371936870428766982918783836566689877154098448601449410206681959263581050305504579573640028416601031519019335163493660871466390748150985861249443740171936450466053869539984903530210050638812325363814775540341465113778738087924790266141848251942052249609692522498731775943331730623905479118824811902666302534598534274470405453314727038930569073046538116607789559015642951114718701844949917731635064279959673751439143794347443652830623001761047463799346158269799634311815694187369781858241958056790553759482181310313643745816144435968051648979935808204645420788923685676992540131742368891386759262565036339969587877570654502531475440827327411230264426389847781430984515005240088652164167856225655254956772990653540210626382577729096613789011394496937382476548696662585647384066762693939459725143688053356667644509234237467458151017585574337196153148655816845476046537762057964017418484922998655931959632266199997632110484748022325534915582657898362990183925896631677260036660270635489839270006412367931684061833190098052389890187474042271602110881960728847194259026417775423332555007659452378768330745087518887426486851803656430990805695982305532781384799530471549953768265181150480500759690251163235621426505981499310074563028075157292731307142294650934249068829123020050955652565275938751936901033107094419744132325587123057287438669976842211112041130067842442095689778011022420453791284148899763888349000395814825960142780267616063508038512157072744047140302096944962050602488513185683389163948137807816311495060022952854893363333564082706891250451829942183347075721044524517822755552660491935196084563340270864830730346678344721149471842139403933944571819280184061912251632556488781419491613463222420141075544075910264632759963300780363048613380657511792904743696714221223991965743907256195312116409880916602502347366321872513804756950182845433364714383711568654165679199655276410198270558558329972640553500295937738678928357629296366170120973030959988691661842422940646425684898966572683160794025159321768536463709114525077656847358396125003715499042047152516249892179696106077160133350241307147600073454751244673334903188151859919564438753484235720272956531908877154839572198823093272784420397268561672642116474934651079410772403626864304185424189829489805176342055384820610136016110649580398306995705051413025658404936461763235687812818550947326015085709652501158090269657066030901385217794502899440941473909816182664145368761544305288106429774880188243453250705185196307077721562434047767066245921625379981173297934664423206580131556860639146604907199334649986282324792943657646022236142717188349691730670560919032565508068394568898313063193354633623606594341750623136176059367915673290195955266323280058386037614315189768606928888912304913110099900131583767102971995259938699225087393062271184589718194338358433363614824189247906877192111353129201712156973227185419671740806500274574653386746919293008896951269299485675031571627329791419468219426661883449928147038050448296690831582479864409801170923456440290497012181065393740688178785745381100246567214484608637467327913076789062545448023643672377755011565957227178590554927479188448244128065905885475596884453497208781036495252128937186088647096023945028311620832897790234619637813612915654629330518513759601540155817357331985217928022483753063984831961069437129071016217521041286174322353376915368056575220652287893579714374540689324934933815470732916911117297662850228445640592103601077389518830601546870875523378649291911626835893526303306872725826073919833044382250276359733712450891623015225555209345009585538594305828181061504409984673180619564773299663942041601375483122994264789130138230487353976222055169708546356082972700829442105665672350455492518605609312038316887015863410347706370577803124282381922525913494931304357537875763335541068611869582651075520775030458107171892814927404878809852777691390989697843479002725274507911752325048602978252551896059030120439553775665535091061807884508928718255871382392015148118943255820382796158636056890891352467443433668361697665782562381620878626160217849897445201244036006003078135298274645779645757993300881576376819811877563346678991817786640405157571601787170648801015160753301026719760500315387353404668348311154912842474323437019808504518593330217602144435088868084030056455478926451617616303698364348690390922747438955773025672630343025359681861548824183398490909037921200767293063111618853433966923970128024780756033391727258026587118122176017706709093598250458514614559145903979649820078812684666588309165330195970852153643291738700358355019004759640198240372773913755947598116106834463030181354130221174948137520130820307567519604350885175324351173812593618985178178932747994366880442236255045730837490946852388207152111274033050739080822222901874662771253033175291141634624045157804266993020946587041140212821057417518887492033509774821493151352273207927340869115453790624500987108606129427103369016487968596663698909755073911500296811422720527973335548193214353509651215698964114647126109669086826298290377602660023708986635101666791989956179241287496913816711013184890654447463024524942390673717734011178553841921359390101842297967542910268385302211487843404097764445205034747561394813646208894007052313051482461615236456834817958807449228167224445597437384048483930882867221682839906062705417817200269015326992439101615902400793862862538121127207724922176825482913559254713977622132854804887589815196236801607679108728023082081949446871107404645343214766153068316886282220400455105549310103181486969579778935541806144041172444234051179706571709438268579031398251472136149832431493376263854788322280245938559378999618506002072171559223862705873329216135503546614919750824581451649353028083078002166341771460728205631401925294114147051465101350360433130386362083899787310109574519895765957873607823024312483038657725694798559349959299494297239214560874233314673747480368265103830790905522236151328457935334594948047133871347254070130778846880416914139467308078287882116381210455492800214307082104867286538067397360937733675556831733053230648521937775210869237087268299533100633368553095451732604191854750956606013231940391460958682025857067156149646523444435804909968626656478530264259703720955094971004741856978547208338095460335906018944936101034428557406862774307745239835225912175448194593143961271114939038583556407841687771063795067072785516992348295465976075272877007108403781704400047053943043154690244408902294564612348481077136388964315637917516493356739971709407313818015923835801083880837062885912898204562642459803855922219658592957346591682706337480294452676626078195131883218496049070634534442457254148033122314287967814990899964095063468425313878244572319384950768355410210223055884791137101572984342821240615903812443112975350925841810713103221166248870526808777473918461408476837845461940856074437970729113506535536254958988755530024080284415441070798442681617095389856306713347930894072832561697017623472489341523928648172834616067660547011334284320595925020601701285926502197597293377713375601896575389701069346224488733150318774526314174098021509285767946285562620268082546203101654632471410270612495476038456502307938877637699722028524242976703323481981928367354497871372659540757569908602196938368629274901264812799340347183688568680534770614355394189442233852641372260268568490564183627093792554122938989167517967552021718375932644732217354123780976357037253882724408140102891526816582126286110871266825235221510895229555562093906668950609885378989489104497384805026807838919467159904968010231880210876779634494678160882558504919675935661693287623581966298281726828829778516972260461319419924622838674432654983820417765885777485577469201913061327848479368200422300135723465578271184307957048294441049294494391246390348585046756488562475617089797177969307139746098588856645286241125753136695562855392341399470524748924679001390647994338437690730205301499088464242494783604600980708866509740491317965455308379023685395863194841061328414399187346852251021845306393258684681016308931467485044740621577785368727902713094355791295250151474351945017170689647125122704759118701391363895802499198006550622713108167014841452848649592593000271446507780231663929340999424100629767530615424322748098302657151285862193940744946397082079429374796513559524797382311202146731395575667961595028505560507322637179743032211860213711044539105310146365645884524210695240544299135484881874462055285363567684625319378800061525427431531465684577157894708043900027479598204531429155226932329853944505060724662433005172804850223164050517208692890411662983447333371214398356458801087402032600558769988681681470898228859695676076115685994884652737067798048393879273889073540418238410189121107183747742447020392776192715030130573606932203042415798320181836476212320557006295971997169251941119783590204198022432237048472356527193190930341533202197416615086207777706115178833802709546704219421091347820172324964014445970036972019596951806699132294282816605519510189594070673731998010675889426263879826909097882076182795386925849033514120740120172512086457659638117410971214231827132884110760713673324032507706186754707769784684238518730770624374143034864167264328294840619335374375349646072314205015248375403749813262413541080819288585155874038761471466446833809808407656911769554593216745688451860476986325241768987154745573880186777691537599104020981664708750615826192432771247522658251125665608869943686689697958135464068100137606995297835991072823705875327111305727619602595622817420317347101907789994576457089788632186209537318377046322754808303336407644384825824492472201605053245873414540366212146558738506394023304254680346189395467577808990005652713741875538455739736874763015313712060232761234058063067568693791802016539094772874895558873211027701621677153367444667797339537180665662758449604151544357747451546210321701963540262192008294791504760857529011239963333347334503881918602156545838187878090785399714279950678638949529363388096254043937969420242585422476429536204008897972074368167189147486063211501987023761659275180834505569116821827118141508259600028786872217193658264917831807095606161872668262969341270229757384477818129232539726460502456538819470499962553534153384981423096899168619170361012214080046516460433367874338624886114263028879990706032465229993947684687128759632662376054355041573577123426594296722348839003329621155143175124580768899801982352799745019335399393588776755492855992219998103626963326877461955145372163097490307767569238185647253163984175419376362159320481893907170289338391405999305993439735420924782544221177176348937186621544883664924245575288088396683139807296319027269077281056402229380232242831361189449486843226017295552765599536209065821747742717927732228296234391526348239718843830702051255842534464732930542098820413887465331555972388955803934785147828004900926388790222171050277575582969715518854704810334567668556110730533231547955332623156376335743896085209374659782854865168980244462739787531250744859947860456554649190682474374291817305052622832426606919658211177991707112984017334686933264823080822713910687526712268009214301148666664825818651171611921935279314235499716041413212891747248269263813585953178762021475416070321388316042791115442544054315658865346067500959189643451274067560892853241466346489144539445423667712389463269677662348127824161436710788930536554722055170801623129133736650188672508968112849255090565250556371087564722512959564473817416405181486669225015258851931720677438173879351400771069621807423763549059807906201380222180380643856362941505619149311720237278886721149639932811429265492069066020127092726377415132096122510660038299962255122888319060157765067169180406731491153091353306830351779764725218715831708490810677134570045999907443805775410791634910289706340985089049840754931384026782230575892636468785588723769602232705466955335169927349931863173943815103933482236503650105822361865923760272665580136315304988319119834176979848343412975434295867369935571885576070397030205498378065796268897531252298772537495067222550147875372735779602266296100348473838283987353597230345952591004276594853244412525777742030840850936710830453520400995954884859341763476347292101729295974657901867152717788213601201351492554925249348983437977985574662071967143501296951662419657637827304275963443134485922435153285758893356920625863280785129139165279459117300673844379585084938576996460169325059070608092170369326532154113839677160905661881240023024881971177298224999065119253353570917734708341325146275674671946523860441170986520978331647045477261995584947772720718583237593399484219727720413011841913954241069282765296402843033124956496852508365306412003196303098779433937544257800395913388357086776759007013215296318677337724148739405420865470602561968579407362251674023357035138027640703361352370560898265116961532982428171670106047218729753643482439277183783689277301958149402820468948581054639679635692543885936649118650981663920218015054844481157116456032690875864085064319351403075903072674654580465718767085364442882949625222533241922402533389328622211576515164636061413154164294957463888811885406910377958441850297553264516370779061813993005178406723581447608591310010811718426627932044867924479449739655722503057449963478820739997221981670432797980660827169984408311521720325561335573270240258382527330990024367551301707588566561231908756503300497133987321766180006532258128035055118890004567588069989290253399776985845916747827437335238495038803644146564950496752662535909805240954483176955632345516029166302232474476799644480714109389588603580031526314417412251379323721716875689816335459455302441631112630400902899302214613655316291992595452617382900647506050548611102485530827282907393166700745432449145131679504162096459813409679371588034452125189550770462213078928890223080628430024775247416707223559507764087605535182556089152170755666557420539840713712266421930520574745346076795802104016695673414188209725593904551806540031831965818215413873268808466624024768982310015478302305917839330657678603761745201706498103145354131437807464420469085210236488886013236948573173103216379081327503270215522000382324553445291191898084078280373827038026799323303774249087556726767801449112250838106088632993069345678522852683131660509493719650170075549267122550638259440534481725077446461946337515324576650733594456721429536653116084907783259783308494616165061195260511570862492989415045273832244144482387496301992038093187979156479406647609866548254780129799659385538451966346418892347596757375451120069488863977154566185042947221568192647482047063797361533090273691205060215964388319693348329756425799058548222545659345911391084632228617941632391775028126411638298432917297284400504671939467074097942577766022333732904041202147677614690968680114789537525713350935903737925304249281166123512262512740565757552352989730480027369421215885689279212176829221419131718850631202669703660491741554059913091389173099642122846894232569803443961401887109513117403406007231308226373364168869920968986049377847235104197623664759686447771426649075601779523518629997373357631633058892897881291840795287516835375609588773746457512332298094660706949392812124987428205485585892557096358519494042349139148839561486033074446365372656860912279714107994566548377846669090821768606828801479081676594598572916628585021828107662399818028878663348957767564883670410891174173228720583826495676299714762581934721014549526311010905385970945430330176395805563342111125638811431890925244356471151864222155313870015482249770752688294251265651802049759194680482150196185990457483685587892174154010579167764346119342487033293705599894050045898875638807845075747112070939973886684262803594143089321048693061825315521537469829611258367493908690514658862704616422515924270762997345689580144223491446043234416097334700718561586146719083772001114607648290087591271908029367693636654142871550018426213195424202085409637552011380021748477673442217814725418156167936012492366469471358691347847088441318738348156996778074530427080249409184282929855883509529756765183420456132904188668725793288504194088029963201821209714131297102543749874762384248832283376105229596866354755511318411235799406362904503793557978106648362929961514395222045418862563893651548513562727646521706458273271379458010680654722605604241406922863445909729967143544445713174109833922176601117678698494872743699701931255184630557811607647279154839045537986356421354418745646808613419271790609459521894429273015231901483274152836400970277634535796630836869433750328543944061552326508544949691967386439046351548013786256164229554626540848682579050719564355822144943523309531377123073294089335801654595517251382391629419529240330107752406648824931887910420468609783556157705653347338373063379944835220122299485258811382720051572415053304543134896479877319897897382946571340577922473274931239720934405801521545463244740847882252006728466170063152831036595119803718032242584846681411653891528430323645493972497742042045119825158708763961864792373766234923862311832923906047771386656546925793805401969349409498841799326647196362459577790658669241145239992698875187256327235875467358720309973190081210599828574692075745436345263187124679920078392408054167662085887459161470187104517225911204158343988382142766899992533293992930110779397635689508189193300097285130018905701478089696686179743051018209097258793702378787675723797566338024690535483659425443868023684120002461588730930750791985221170234313847804634044542895907257376064792954798057610773066893939125346502661688161514275396263899177029483303105062721398436503596970920523870818115691545487519471850807750557466120150039453909885430476495006384523853455049638833547754281260239038739510175633373637038785619083647577286587876231481135703260926882236241275737762158445157794919978868078848384456945171179495869192448407253149766278083019394791072948802948678583305916867661869499036472720972647526781873410298601656880540217595915588430618949987792805048923110604732009278350935646218229546279876883767311726565286336023085318042987283606957362581040317932274890044750939605232179299410454962769505210756661274392247205454474006221825965565948547436838034999221968084486042226169002143570824788500116982155752099228474432346172214960560736398006096166140227101743265835387197829629237148423958210727675799531936575173407125307852743759303577941135653878461465122723957038288648995768836133837581193906290914652496305495646676503595652012076128238746574129005467404375111604591656616415615779735085591956770289353788645783024350661753290713544444308909080081737962284811497518301169485590197084377448965381666776798611985906404728938042670818673813913557375088980750359392859259231931176526232258445539316516554426048821074827414808911465703957672779018447611452515605372674856232378228848255620929203499410258258595365192524771745009489083056500546705139648522973811012600230779700009179673526580385240009297661473612922432877782072117340331078420518247391608266865519265989934925302308351378580563789779776533411740029718189208054117183353837556332489231327539223626994540415763096613486767692302307592849363193156087059605431179175833580394133950230382960111085678486847475709375931116192065908928300500649327866798067395281139130571910435332732501415365851516624438010534501420611237835034572248455699350918292596848208754752826983576995903506408384604355418840393590643054862545438771110917142453305337466034741672716428097688062656600319902520535563697326122183523825796167292259436895381741035673120969509265942081936686140010706576987754378538750654841315175886121285993374204798229107206604586072908678862023431573906533898543140098239605138206901488220371408544222401335087468693450470421332776797365353991440450312017321226473298232749736488440888794804744748166109151065816903853714026498411874371025217477002140869747460040426490181280345247931968393344856594364467177221850816644829509356594424197815573949611662136411487112664537364222867457092156313873218424249643671256177209168732289283876488421970397828268601665287712612602046500028682333647972114217350083038673912927180468247483279982307908994800352439941050031851305774783340589296897497852190290633335344081300266687468198766144229031179957006057817133440836777404959153227189306136608467249503521433633993164665272526131690191250672045807732271328917897126760258513194937190645158636884404872597250067142875862009242813025296345330574336028832299547537427499276095972480704373785490751944939511774831077019662613006969682135740676278009840519740329595596142520981931092474599208915378518591845951938327710566087030977007494370670210181723265852183367978377795020815472077842551977636699799815373103732291663420750193921616349671353080845850303247901120160961220806222006911737374816433763159949148733586628644108339593835975227364106451932473472045493900683685506029885843420336713086751591131672200261708478349181709594116647771356359443804152005565277245772457925777770925312335502627979011666165976933761474373998093708700399031626373910846675800489193197667458182527583892594121255786893191961884888491280109458981309267558518570447476349270815666706119403655231940263598356786603252428594791754065748404446629386940718628928319581367311304965491759522916904450279296141319532525232175085687763416451420758757859560848357724975815509591083464189450963547216159798801846859126408120895929571793832411968949725806559519274925639761976531359755253760121130527861927121087751323696032851771911219050604170875968954988830153075076246713487030066818694771205705948159542804598973146863199619490442663848323994264958777155632152851437824721630739473106548455825987330531193121063224064586168810764300704423654216848197740286668630925287012749646663593236437466215410414651164663290155326703528604247423588595780757271983545841408802202303094979326825476248799854894528253417546086312812570952846150832205740983631080982962247313041262586795120924234173848486983825902918403717265967367551300875817389469054806241802154529158971695487250068255669947189991878257176140345412794953349137244567522270894874722887566647411169806674931295628790116002730716728791543324713093991900882933767444053014085684407612597287094424919674381334302335737569954162599571407623300035625190359317754575167832574076504794811703529590770875280244277007584158978621459480135508083624768307287919712459309464980450233169751671129162656641023716270395636389280176188353730597083835871865383398952749262728724879450797152970707745044822529343494041442843823233899003558654797765210466759393658007657471610726270017527735140323843454956753784674146935537894156604802684956965594165185179220321895229547488665704505420349316751730095879126267898613717757592264518688393399021368884980561626056388838614331531470617687104775894949451515153315825468506025339413857770132085075422220389319897629998020800272582661417122325394618377874843031525410497148894110801927064238800345681964380989028835885734112659288211668250409191968878640311211277100561721670288600316520547737083827575006852500978073501863125788347611500936766512452568476097742373130689656596401663607286917963133278640885372047640811469266741767100165677687754577912431578827740824462835766509062012992365319740815612668596144802598818849496400489522799994388341227790315849281772222059400948739046786561558334183817745562147394205799283099247536009835164173629334226970707825278195014602954371255250601507578237538580367560983720108299209225121349627034380657646234492361739776620294725356979603045282734835813310854696139551353534349360700650525221676802289260271821622733221505881958068185443591893571824094843553166872257664507386252808373901705242701907658744148524328243761143208386492962020308521325444920597044168074531915253076371075037232850741866324936289822293539977204309034174582399232359470845107757004648044660583851413943567697252140408629401219978258240705880307373755496857633595943917354922875352134222236132794702916908243307692845070976042814110871038734343570553895784427713545376263318662022082401568468272412766776714423763562232475793463738725602666892756189503177665561004064568472714113952803369949681447896129598186791558849907861995881469554240328686832762127300949686880943468828861284717594744718410261289895604743561936847220515838656797893272406519631151050978392403163828713911162510101017847534514407474121908222383299015013143916659432595212333756833273853436727145006156130432217077032756659218658339958432263739080474031431227253366523829315318145019115438659332143408405008165981801931066431902115035687971223787905437160179331667770463099588697526876963734244637333045200181726886479660744898109002879401072512570654448880499511919736475461351555998554081880872233210706084857651929488677527135140937956268634894899258458802480035612195845523226666226440881684552951824477557058701574584542872446432339240312899000564897185295180734589191984539122882465503461727300729568021700815565928398770320888175802687302519123846312007530338228259460574510986753866651744125833808641820172268982836544591754993239102040859821224175932161830220325091093180822540969243941680146682451726946546259164264510629931083371938437867233441519744908708381201431731177191975727777943590652595840722455581267203599787384575629391320967488316216533308699117918863205201528857866697018653376199030093791168382519926831203026598164603900637426835085894730548914026399863942029105033443743684680558065710326264286651268346157900557339448161616303875546514021187885721211572852182154054372704095285083067879201839539382311045851599012934473410549715892049454637044019574014747759449139794069188238537274557585097905190981688170501608162780695468418656529708726408143811453648959295893801914672920784318833717187670994736195517559067393170651005017024921065082548267334104928076553054318036273635275363568891369945545096525621139799986333000556512956238096098504888723221016767570233827467103109486660121127671765342421089063744763744671751963872078449120235016979757980081019518974882545263995729579873466652022137480762560104735173322954951580439098236141742263393238124595920482236143366835718897422476578323075938425952654847338674029548582106019960185166984475598463733121267235250830370146758566109266641635836726210070335005335190014647285458492188760033176099227808626164970063604874090098623822220756566907460031678241527533241985929543618366715381189973164610104073079527324253227658472971660479784192874549002365315986688864397811650239773431474718326872861530311440647242512693875897799776652822400120724378326573849951594377108253757140206632204314426481082836623285760356859793432531412497416274031051063733905455667857510409505978214086351621113806717647026536608673980513181496385964603776152108113732195273794531767470017862632858483922576048291938683453553999243180140458124972316627826208841861167157464182300325383229523787348737206790449150132818394302234787709446953344240809389491789433854050947126671395075320028736631305158738286155953416113114465806614174122240313056501718359359784130673776082173549507211326825748120517280726515073018054237636624388272186258639335589909846174017798681293265404911171520944678197854011374905170221810297974439677887846406751276026983795035599457887428799442929536444116073067560923364211630104337596151954016767849162876721646473413500741311609891535051648173986153205829304544591222159305421759569867542705640501728952488020335058754651525725663066437546876301296890697911595238113208581938581793473026581954417564470145818076906416129395714597637043704692108508128861531967697846114975171814861521523939820570938208349400944521950429843867005915167103300696674799611902027884767707770750118627183958250049558526134935409319718685351697524728405257710984589859776513361658671337700103861093908806835693393033018108591105355848888650490355265171740319778537677914518953133846200436218686480358542659538543943609286679379361567816657409591342606474857179863749108670376232267387555088388855924629852034053217429035321473921246119598261258299324070660712423973958963909110732025172772026013383534436138783647826533242854523161246578146491310319600263273013747764892735691996938969905464447345256056818267496230932057095936763305871998782079362893102042029811303812985136784184624018694225302454672524017763709556239225905012756561866933453270036076628739366092837784221196087619652903733354896293484386853286405012130114932804149726990847321552579755999498902750588716471737553247164467330774787336192840642660875051109242612120761780736168175552046499759162433224472528531179089430699232076254369944298054644418702870989633598481279500741336678195571213646174331950831066084608466168971661525249513647940246641866489115014642717003715092363579636548214367869160125453950903230433784144267575531506772009548391703656856940114194982208261363121664460003363384697050928611717413730737674003567166294602863087047524556782042874119289573473119813655607713434097152086175572155454086140687686614514918226976830529241135708145972861417234384793048752248583950609803539018949634753589060240695981616873204837224631054691956234702585908985476539899368179524985433807153386896597750504144132093138659085814826327740840575163694145814412581155884928212566189720443163510620672162958838283830371465216871507109861715625184202644285693516787180319467302242237742471055628380598075380607254756313266299235758032829022051919040640431970446846553949091270546969374089115040428151146770033857568152995393125792562748020784637512324742925260896370413298942773772800817580842580662479638686222831494941098687952286710146612476445911620192862961059712653293193272913828530453998047425876061545420079100393454507973175895958775376929365599166303924099052070904988553374310543355543544412360748451944796752007582278245843837112985414873280070009616935686950464347786657663453952057741105040351289355748583602256104975781536447540755384826982546743917169369234321788687836300815866188269912333860073011208770976893507793778829602078500573729555792320289437297475114913963769772478381502301683117139872700858043968125909778494779130572433840531768679174250988817800094289938896922881960931598673946721024970297832309618436888892707535536659322460285975731404419837174212148763311194365977419357888506575636287162819773391190845244950732519213345437715300819803827976797156430764370828959643372786464893496471108291986230748699323149919747550430287287538452919976097484955295279384866958497215193595640190321973743888055420771458711551593411818249125543367246305239340069240038208439171377690050695983307271662243553377813815448628218168032333933763564885896234220962612503955597410008166520997346171216789542349600858361757066751946890569984869015033369707969347235511405357703792382887054210980479149851547357760352138445333227781209689276869448256235666825600323240648600869314865981353718387232323534573446281665957273422268949884459655324828846427917150454863481296597683089723177430636188628258724968564825379577183199884447388370293129222546854583061775968489057436767130543726889396929641239007543078838655769806705921819641469661612485852372431227735934528457350948438532285539244862154678283309855540913137234302521273189875059778542367981699147233439085135022998173215523551453206461551775162822760693738143780564139241519757937001588545963800932639977082606247748815442384696985044167293697148483078129436083549099832371729959054059017445113047730676167338964065826412215749251552784563738775593906930863152926429732756290117445837830208077169321282938311390225387976189213262685129074899414903143653026085318838167396831687919280187265240005930186468756011075135424044162784799337761252712554888644780219800977992043975463636187710926756143641048323698675942456963140427993447335358743894513533889731175614067564711122699063525851405159374031684433925575345029147712411025000321314819921260076352458830570795323292975334008737269968217739289183204353114030729805417630458233736793319938875210054909181857419575816844446473501422836797023583155355843483808486257353808739170294346347129328068055437012533353337947495082045715277669551024860288070890416250905869404668153258583291854825040278171509744638792187267219176971793744873905669318899835081655926744648549865552032458337536350312001890247188038268964690751741325708756603998474275909661404507015587941688422483154140896759510801420236043052017286502508503367999020340272136675668724143151323555747669543975208170020318084428377319249023441908481788689769177562695675917618568961047403240707436556039031162313762125834565746618287408026521115111327608918350171720114475281580206581210205157743184798015176425177524421614500539634225810315904430845346843071378995451275915653180025465917634256226765147289510940689874189969716484428027131399326362959560850457497328431263499556178637732717933250492647725540859446216649148553834136314188770575117568271751180292164713799718770908151104698943079284249240392350421216060387261397005606928708666934841205558344142821914994048491366740910747755594222705454024365849230280840795132345412522232106692156067002819869744806477185418738971348145665109158384335741090269337731938935613299760279324909832793969494647460148339706177582677562370499242527963581913839561740530531416642897285207139819836981389578709072355874456143196990621000297697710736179560337927338227168040038478903081802865548885416993929513214686115687203740890451735048711570824700646934924798284996064556790317948221634798186392695022071656720311724413128260130379769048856376219013890641168995932079120775022902950160780527435778634184172042654915652110108242769629634377913654017857305310572150530972697543456256016419864732628981588091694606927243343254130374232217441063480448627802965092281322327765949550947919496191233585330122428226593156116542122998960265372808101813327755890053002433051680198232458934356452421037866778621875894975241949533578619907752695290283612326422034256992213425499945851369899618048738881877400662674264843804843686677470575982952918364025831376602008629799633646035562535440196503710698351209220290047608784799868463697743905089555794490369832264949167655783987254320184439398004219783192517421047420484683757574581868432839441855805979171531958900698602700455357867406145526542197513325176709536157785532001514352548791577263861636552143711847456988960053366888552969807388754218045539775516183211686813679105960190794764736256317042705627381452229658285277916972317085488089955641756055743960535346597919970183385030670812339070132417239039756702996479344220826077597481851776426913631070078655144840684208827288506899285822130608052519967479246036272017499947470705213114105494832074369382357646286257336497648315995551081851275882602294779840901538085440558117512830721163548709098679468252236162516201053764391023456994059103027975464335274914298361901077725883828757870687953314867331560159054284968640971590581070662998304513604563953908123201163005013262173830411042162730152929283735916951190809752810093599971218733338416180588325961728557733571276314816924398408489339690265621951878376535358962581216590615417456060643037178045760803501929676103103180414138316010694412785348292806083940525448178525179445650450198330027144092281662331702682337399519629238123462258927144960040489015242288340012517847762485965265376522249368659275370378537937365241374564332578959864582678123151299638781662081816340138355087323619374958756605941817732760379927228375068074660428808631672031650950479266799728989250575498701456494001665624670947466132084170075891742851971571901774323401698985830752595480586421346134104632385052144130794321950808712924438734548777111240698767571923585630326635974026639728027569924162835990109676533863580887825750117781460518934997895829373144501153453509799181899965684132988778807357981086395108042222286308153191814373863120151223695936750688686950331507009105902093951023003358095743903975950208708524998260589816302723821537701582245520673075184911317621191284639106377611839020296739977201035190558018024599512246954610404828911533017365050113630007983831007370726766343546524934926966941015905499616267083925047390178818224599722332984678773133599690544426207211761121552598647417983096525690420089452143562871489572170549023450348970657140204064872545683469497153820906716584025811939169935268483004534021335959028207836375800038719340093526002181586272217982955904518376464953135445617675633084968268619601312669001465848052932229444504762638162255276481907404276819352561824545110187206948222563250369086488541755080543486681480605996000091582985528853489479622577512531799131555747918848833533062882557359790792816703707716817693723934262576078473445033750711729088117166514699301421804647676369361560595882463345672146343506086597424696463821121919839319048949057334624042608498499936611004371983962042598682675114713685499826085424304634370419566763718490084623096748489797543469405114501743780605125776274670538406797657618407564734726209210359239132453574969287195969728308646443641416876224922871978697112844740348372150496383255475438825745792468572151647841695875573967027842597063913722655415461656227805749556681928236519671157326157492326491928595387148576892201113226506740015103940488870360455352454988861218896287486293009002917635952384938569306229247750820071195272649889741907565521990476347417380381875569465703041182053123765737627802562216001987532058407636447720296448380838914068715425197294350095945397560215824002998483217997528958642071215978061526950088345329212443589255751468047446869962187708298508437830173474912884644561619280279833096274358375303874801876196413734481430410399649472237211088246592598520845369124980556444439665533979713330812121410794876095575571320663646263482700438420827033567856720979175798586734422291160286193412669562932217451526888376480213042429024050905015639972946254324101774193920787377847224638333240630966456192675064216720851531896248790205499061796935417822354824091290411943499568480383944337233491897606233864835373802518837413457795905031344555604305152613746869399255398149471228996621732950597451741863600293113637311069778131871810696145843276095683661160944043027489317925847144052985392736355374252077382183429926161290617672848398332075841026520872096380766354307996348809741874777804507885285100121462530927850591339021509722438136016449188347595755066649117682842708274494572466901464737314141279060223744119069029899225538178928714945594139995785682644641738260779188219028575926987521411188802114916025138822370164109137294814350640755388905790664973188582302686850956752221482602058800714607615569902107337471959054488025263491888455789448440369624781872371621137778070577451504013554632499202459736906850035821048811893079029217370094291252855565774223925969436125105870530107122306870155071432334330441990407030963785721974897155640037400711663409854376675077848143783491562084995233517536010263799561486124587706375652756061268633505634652735931587660996384041079083067139409722565000721556294206096995334227932021930003917717300037531122775285126027878218543610966697090863077927755309231542915622866814833442781050985077015403790487876621076127062575761234771601145693701472266916699818031007760620442344787563573601048013788643375342517450629061082876660292761038619944637999800758684161885649876345635700668104103294515059019835539058133942264594765478321804139580122921934760552310887927174515126611408388955322559125412074320012826643214299944715082735202810386505450543846223071726328506854327713529432689982275681075450801709429709511140474462553921978022900990271538136661672992362597483496993831389632931743983314522438197435877326485893041454014430911208756890388038590237838797204957468031496752036857766552108076680000205669341216583765627184518617985388988332803278639004233867299672413633234622855514974298167595596948138794530120394435945761120987626190398523360213450394881309386642212031713178837223815475778467873642778448896499691874763660355415429363883301074182252409371496414972104057668704421427977194395162901583005711728789094352715282474825567155139410540958917741663330139504817518661935237995444404583856829759993332109138930474250825139166425350241547068610282566325301198823546327304194437894995125789594320546698955895139836013057597002922342953862246312921830790754339221662070223801490259285851700995518165550647824944019390882823394638737825676652604400931533598963174131671029637911430398026306364821830967747174743834451478519388710448161334961595756555991525378800048448961611419699591261578479043022818470832379314832344399354357644805213470037193862488226187332529236153297131145891973935979117389812154486294153465324731473316863712707973825870659728161532663999869502286273207698531978624231158389969853806268886328379442414023212569202760366473474228688283656276907798595479407324888723408989951826133623616457890479891262588470501191194733858242532176861617429527768498456770942177771621158551053930808929480685836755440291528517143095936712548794708183376839055461677905297548058447604049835324993453441992717305371151923180444113696224229186960357237321898583222144620919445267142871049413837529798079733753445050724547973335512684786873123670100420864507563409755210568253194644770109025423752162606756120891708538959335260124140713819748319803379514294791293246167260574699309074809039751119181473457406593755445700168930933507750129230350306214209177154052888851746088471635765411937611912707725916842729539031409314101326303491998227658245694261113042059448446758946274627368289909873365541875437346346531083815521171296610210876839144810586571109090146896378882307552047685809547093729181668458539126955802484034973252887088647624894355472961184175804034894814754419362745864832592695226104095122793745146969925391056180471106891676863521473439530719740558937894454242856332141093246241002865918042864286075959152982482722845905304083183767674823376157757194544808677184499435414653437849463850822164322914778702318587096299301464002852011766474138983359888760809842383067904748243641942672038291899303003584328901562560470220233570375415585703054585224977707913940183634500351649756913546166439013087323218918121716552449485072432578912428162354787538262417975033586005042130555230864028516572538661832917412167543005894201572326485620669855135563314396253010834394804724167379085982464042060491066538035941670527345825122937881291973911919978203008799175758473129133485913917203652435066787352829330683710668853240802639128407689871214246400905506966353260369529659422453027324142066310183626342507126323115016899838642170137280289182286443954973510281655329743656316442477773081642142359113942991060428840845519807873681300189454960626054766907870972333835799113709185858361762437541033871123398808350708051203402076829418374077445450408369300502604798113972993620125986468038849234161570910794574052545258163575808516760527956833283547071868393019471046921138666547062558373610460706868680264834838317547172399914622360468188187158517585724338112890250814138889641069039474309510086728794994489435090524984974576052756832057512877563691500579063917521004878013884656171996321870143083742134386821149617819692055965133579256685473792941559949554958968656185975843236231935660976511456683237210599717796161699970844893306836483432241745413231739440163123121418900352345426381970000941017522798278707533179851080344988047613178559646431384452890552722324005876360200275976332064720996195637047995773698227889657448011282247967800919131968336306212097655064569571905572428948686851885162450747501364002982326593376820415523991527273097470117966922954041671446351996047319409777022199400924542546623582902611793925261670099251549330228229373304350304995367929940881210967522474914785971952661526759119763199653887403457425601298741657745233697353884071490421037891735315449610476949886650936617704227993064901620381217495276151577144608307578041048531125586745058108058573956407889059101337400344722292229997255923804230058614970555977637932152001005786801340089815073147604146342007106153866956393142781626369921540367520229791187230052018685711834026968592810775805922854726718881739957209620198812859823771252921568861995371951829406050486596486237723165901458243867339202526257668163696312854772544834582868915215962991468970366696542627639025899189358239449307990648169048173936179245535464197276275332555339906156393482494868677386885439583830800576691260882825811129481678653437452757594090197788842720137896783184086498852031752855036700491362039552783903745226047455196563295568399541059477882374118324475455012234061521235348156411818154594139052045855684471436331228946412058490547684795112793908428152703380396003534541855899620968704039360917131401656936127403849970667746773869304672394128851566261597539650767170612830661147235593883648043567214796427844276015592873896797073283988412796186937387380369163534383334798123352752138504387995998907346938802531513302006624977997072906462048489847877188075851530081810798546669183505815980273943155664760788504627978566289790907116261151536259234926915203011572863232649450406437234671941438955649509212157672486649207965985580765292488375291109212775288772574721691287666470456381542035266707468347850979955110417095117595073198947486399266117792685053753109410127987224429050960581296201876702440457657467942458376515424755770379966228124777737240821547396046627433737321517824378490034085135713137525663319503219441499358437397320526236275830048763087129660691928803374380239742378613738148182807865743857470929315131167225952876796024878701713246686520345413261542717907543522883415222270662390597505781770921590508590075870348733175164585005517797864278587559485468483117482034087426051537501661326827037739273844967805877583727542409190728471289603136192355060506015655194908285006552899671412016809410436939678756917988568544914226472288892393300351687243326304783563836581068913790014173807420755318685638039707940806200776124741796803686624701318101405310061545316073973377039154761015000641891018407032172382613936701875976705486189535150502211457067371885621379070892156577935418834844809365600481683084228480091487812969863241922188140764956460840832123512760815642328132293488867863791121214756178057711331802610565612046763838393763346573109707332522722456414051994266060651376200153020298783623895230666213231815042448240976966777840405337444138258328151068658389199582503062298774924786937645542277922366039839051253826799173717093018617316320476878899111238783076548167947652349252363187170828589630895536150659115330396111842129025351563884438912005290363132775671694373393230931430744592879650040775459244481914735308331292001090462503914875177741452149766162311448042226631853930885364728182702942401979876731267398639050659099594817210742771512824703308227017841442355655468350414087488353224116116697098283003195797451059696423618152942467677826153127593394990784326306626372329530667906694178489731945683964962738488825030275374450758941392952558948126750104876265462347009720132660050492678652349612040782551784255290837487504056374079913494671680820596984151825947557836180061837333081250761095156690404969895639359607349538648410083730215549478124950055845052514454041657665605388265842685732414611465538309940450281211576640097251772377695992528519776127229404735216286880128521161486845410132821083617898407200748964478469276190620881835273461011310601086735387707002546590689154738686031326335796558667660551476981333470851967574589558451219230701507399689454767409147626946830501487820114075772552016474371338046724660293345800453638823950049591316534549385393635785612813333204828032902553442236664006379075294780308866948438422130512270384313578306641509741558363440256853851140875649696054372630816217291752017496562436321375330599768434903374929500287434612831838662327176209356146022546975560412664992830495777687131422645792620442118834911546140000564362703860126750000395553605336035457584297855952553197576461877251618495447310556272377812789179404511154293354620072216587777969317808342317761810047562932006003644310443392868479630782010234844527180330310655610516386512300773932953333153172236166967291228637751406780907414508889812320689617443039228870015785893430750039377594060135289127422472695235116513884681674748907675495894593031291457911832927972537378031300607904888881694717366924072769707852304814393153255472246056934969284092571495808095294428446525851666461110971820491097453691306288036451763824193134241625431149218734777271700260025745851447902326284191124349470074965903031113428640787882387884397538980935154201811955392822934822018642264024697856938711957036640476699941918867441921196178640689248224153723568789248132889279265871865700785972790008528654777602244027227894086024827301302127045463246031267392482349169195735662544905340977169830928464444033884937685668189451021171364495553115626152186933873241520496572245888540283064500240821888400123417537601133858105726705800136704935472214957440729440340231554941538635225557603270396335937179508287265361089582546967104099853929233875703215923198338667723656167620210646028632386909073892428090615889257408960596653906532908211839932157331114864236020208223952238477910721204809609330391248735766501950126981789131849816867601670928962754480251376499099680362125275802320190238230475355487649784681417128425569017971646403411947515247554880048094491726180087414114090236152632629259993827181787777317996411531316323989079764249868900266016895838567393304361973954896268664255451249407497150040075574149626871713587615583111355932645121457539906358798549456644902978499120762017699518955512629239867665544886631869147636044436738806565128310980141310847061306013294057674452529755365687456689065841420872450349590623971233041246052166638727101435818162942393334210336238008023701676537644211877461204370187915900323897752942146000078504171655693883322589671374369260732583002299000559617525657146163974905121454716271829674349074859346064137312794026385875918700816142340050793885591219318934244025719457100016799125645448315917035979367159843316395284449932326240462770161538076868928066722702286554131498620494147759056807990771038352470589790928081559997844966738109712602076452526054122193162714577898514539234724023219178113274565084603702519779693719192992817000648937743573162330288930424189816084166340677806601062231738245591063420854435298372053358878582490501917347432615047991064919969061613361241334131138911079586919128871197148176937016149876939023036530142320980605749888032654585813896606102085213417074105061257066200404808213110675494764104767595316729052922722586449091230080508878812369369872163971464350528304502239667299356676471770536979033105053774839051649896116789412597239503018692634933989331417061883807960916410409460662407996193258319103006504498851757904384696563166480751161318879391165279751672880300797749006998163039173987277006649833226449874068361415739214440613116768751437514990047920285457130312663284764434450228364543823153805829972280847241975199982624011793540016707519822819764539982049287159353964870899623713727705747305570866430065221733142154626092890639359604354068768992546682418396117067799846989241528917877777297664389031171209094870836675217620743674968403930730895341222805017585120034536258312062417424952577059475865289327851574598967985513729578765493160141985939484799430761528337340801646035832690075567299528760784749683016378383642932934310651287828470681110480789107633470952338379381734033567203627474586078953434304325244745850624817585404947835410117462866426009697735701401336043489008723215567545095623782935667638367562723219656765759739383581019632586886003712503700612052025398574089184416594032610997087909552554760340427937750386621046727877398661096415979300733358191657150808588955689458001212375114430017608053572582079475941095470157264302751997363476350022651365211315065281022940493471825157906380225192761203938611444495988526904521372853606302747149907704754949128175033497428742702836395202462552693875826765659880294169744581670500265726296555084766453506796085545853811845047464743343952179458586523949951677505755788527095919339898587352778355070533677128754386522544175102022597467321178386290888518297426288726063772703354738856266016564757219351654275346633763458159423903692717503046407951081140752032293680380267477189366734560802307135956613736074162694137299742735666556787929772542224163511672048848479659334775491910196979035825067307033173307833859401336587051186428348581796951084560440312348471529005368881241280244697749330818631165519762769286142243716045140035424688759166456133137271739413490337310095677850033594086691120280807023833419916999701180975183990001328869499579908676911656075949341419165799384613999781056936249599151118143613693084299722633369033654761246389829128771433878821437217589851317112480860866817939844833870244467193672467275797327433377116221670302092098813447571507695573645948760339023945280682258067562497856573786565063051348980970651062062197833357260677254200706632248753023959738541144006645020312749794897659603670951446581286852851169924280439995386855600559299111944481758181780304386049879727512926072073014538900276479936193621377370878329272561965717146830874261564125468024910162911141218583472067874536585110185743053400873862757569667107917229098211012951687094314471725668123554679271714522500508250832888258923123693538537736099741637594717159996921097892068476488251431699742503768509217255235331748635148352824450380643432059946134936495835810253316135450354141958800869679270293260981823764963938154336467750566598408452388396909681416352594186362452241827926290723722978948876078115388891211222608590472697286507493259850604113166993967712032325423300869460662973836217486054485168724227636088919772700209805804440324182072102033663352415682639225508626414198386652545850570901929202523603571249184568280668006808095296063268641174314992533722464694709163648441544413825274385055918241678118587189347556389016433513066157458668692271581022850170001217638986012247900027819218823638708001856353328763809420811018101576994398994223180090459245871899605786997720419562418706676602284139122459002943851063210195099355097340364060000604188574776782433826465509201288613094276727648296150417069130520027081289952380914330212744939626700632526248980497799855853334979787486152578119932769440754747026641182082634286823246399544147333549008080185549804905200745637498340826829896179182363982192706383388066304666248423864313254336031451758818790348356862155383472840713024630100922957087700694230923054706551178349801030459890020918943178328588290052661390010005173309715541263939759433609581710508154013659876113377441698008808880836419452334309832814191788571255968314676252303610224040232495581326946651281354112620206428001313792882444043171725641119348813471002963438337076406735746299374672978996297025851158020904788716100274129358186493341713926674882456820440328126878719624848119379790359027354028251596944658299831516918338298545433966289411589673247101621611155304536260077661769496530195462853561285415492280899656153651933579318579784793291843893847098333633942828276189493730284783280893176027424657244398405836302770570563269027545089739457855690421766086740002629435054980845134265560477719693112379113703179587276289092755852456543061252861314687726341186021453942166377507391002529904887628916109161600587366867805578286523274705341899667646604180731952958224305495033350475254536990759912265222023535668929040026461089814898195784883984925789453167346908972230510844745726157629116103088759729962385400541374149147616566213375085998882066831713313666168342343707921984186727389533300403828713879964693711887395266948440686718386445959619653583785525639405932607469359859735593628401905354768556936430930278136760486001546320275015908403253889525313503492955470758989905882105144811585937431542341981002577411840884158171372788718796911769972745464794574868106132804292809975295838421954093871040495668192358303076588005961009011529258802182737443564616734779483708811312406250592710218128434195158443618886452460403059053543484682833957012257510855388987055215073681248665501095324924054545717221297585966498161488765703510873253585278416720106040428232194319296302796760074794953915808682348656511632303715436428188512679982363579818959172254561863369931542334722570034060059713354384780198547905847431580408908863945014621148338958010470209861821895105133419578877579843595940918293130818079587000516504412069688193171476622227277723908855644853705731497066531598745389403428023517111355442215798956316380018691221510762396530407272979627459405512066910492359749648700881952283525704919139971297500974671975761822313853937168957949465711000358616280618734822067006439392436135334316138698916951245710157306108617947773853162335109605926047010653738715733649778093152384129549158340095526369384873473566297868947403599008167456646590581204400894421443155283412090255427143470725421564887782281191014214650988835602148944728812953750683459471542572073679002431425188739602649882622629720004557294522690857975832699211134898561165847288440632165557822992886017064009395305033422962265496518959243741732742925560370201094930256890112969327407120572551240132417760955717238452739109823216531225595377132232584814543344883270154582172615998104528875536028365169241810813086418232398333591269387760615374926668183468909355023344613483198365914289760442048487548100968465606227807557423806624003482862471037797239199938114413716199473174318045835830242739600231384028649106927055271749194044246898099465734938372960759149241994695852428305567503949018778553280809824964196600242029560478572807638442802458115785384845922884385372087188078479915685022725067832380092621467479600283539398816342231274869660675954525778688826210351711866695455742489145745832645188638742543361694674695815845468107357531417274826635495551272481548348647437206321889913446385533685885363910953089761011288131804926110259648888203778695998385248703046005570227476922214186149472653348372827716832024292840896288907710522222402198828318708704036322399430479996905917003888185428294732320335799819317366166812975809272145481308627009437368815024974378462719206748765190653667026308671920516741923675464779089523091054564137366210762749611011789734003207429846526083087605098216435080688090528572875615626755504472758513522728651807626594576122374175092779601369524846863802956593101286261814380156728333369382916466910998466907198039397364168091036404474070577228550932638721905233820603722393492144535696790016735357397989963317091540991601256460176404251251761750891167936468833899891400965332355228800161656821832110233201609462693651661134942013668850674285877805348515196771783130172838936244287440948870385337714961125553882315478439027766276715962691048629136315647169473649169982024003187020690426814482408473420441839999430787795238167358421148272432308763329670735376799464116712458988530985990212802583621778571782219427937795321058574221785447906293538745724883602548205936086280278131398342991020449799674749709297934402384813249915523765396338408789267272579070327323809603652374585042375639337707699698882722118689855421590668484074032469126968107837250955136307537221609119017909995108231857486438646453178493914086774832930225868146322167466655794828575462930769631650550334384103687216954807906344892040283869582155267353530983401935800558124380849224356289665782944055556059796070153593832802080362104563678921094141558889580823570798094011801692327922192234528650289138672285194195610189900933757181013337207692210912598304002226552821572115480140125563802841897555977329807959229315492135921010737274496227768672183650461304783909808659648103403564753909832832703301642649436439966836807213629679631681266387956693411300103083329559364664483698194710436867360704908095961411589896077467082937139662900781491895020340208627283102172490464007624575754418663024498762519220540460970677034461381570475377158448692142286175123823203586841518918350970813006865464273882276904370772931649111188206553424693506182601387189492135468248133674402834214290487336860183277654855908061289126997040987738785941302296158626197196756670524984838888902982324287371761133194289400226437569244739223813678717013735162320496460822245029298576451564984352420882993043067595100661256448663082890763456521798290335880313487615868434136055922596401139653327527514973581687954842933437576695857181911974620916763217986629650890159347339499141716036602242301166240716435052538326108205971591198239318777757414780722743845086430905703238391730321413664270516337672097464244109543810398766322986438999763815354598358550086627707642883709892508508244704246637200468847328507859457816207067573701125550939879520719580865003294528514007914111137134861948382231693842939345547979095768413828144415355498864850950459169476341117177348277743531483412955273193969678313204715602749370415979936871378446960491246876927642666438765175065479340356591347610396721906213081936034220633816074291397531354658595650559470142012658849022518146946524162766007296982790772295865001066832325323923182152760819758303081595877833182739977984044698749047523520542687911084176094386496318314492519405451024514446201346714918170643721686525812576566045588627424612487306571193235999602282070898257892112808876095124690013504009144470237746258673190834274319105497735702097305539139041125343302607002117723350587189340082647690754858851393323042387800303976079650563706400445139854818850565651584848125748401990319319144735477837871793683574762831660947604292264884823248728973073208913673687109295412096549541841628488224431189898504410857330303577878132190410496103912807074852750442172931499350315935662953244212179188715593877365537599721989025618905262730576323096216154242060693308372588438167016621059892319849292437969945189363153201390378937127527438655244780095352668112297709936882667486804949984156276349425551678988423287903613680028755258510953980264515383229170565391804364736918371675834456886416200628130559748189026347813305482047256800387859039903573127041222919504174341368574664924801424692573806060977028097147829838481131798510818177345361453450270011315579207147573417908368001360808897603470833121697073928801884578055168965685056686756011903875774372851991934903442612688843289169073613682668117283228904044762088769457647086762213476198488872726309625467662891851865336251100766644391273006941778443922558612406844070452963636941247073402560518658378592013567148717591496733498154422662530248718136593953018504186394233099858880850550710036188448486490357850279755029733325115390684836156641953822264186306637285026159115780858783833711657842830454912691180238359684328587512371979113881117058522218199190246873383447784967796101117883519888480152531215089082391502510050929479413323762768418993662463707643185542245533102254512691743055160747947675040664278667641804446460680893784006761217456900926560754268035981185557209445465367967262635301716422618789934422168394982153097338976106921954602947943447985946618616963699114907428747552737453596581624992115846584717000707365219015619846526774410804829782572264770304552874341932730602050761065859430870956038601319775607648714159368530443030468956716989211654727933051584593230628520947914909985750119261156605877236263908887526707949273254550525039136446316537631818089103429209511286096963653822076439209993279428965370096744983484549385769863869537624888580042553267625046082002794275689059115170481877690635036887345371557566302415964163444811205507858912378779178570541401411801462533452615031813548605851524444082627820730755258336485199630665191236803720196677658855795534208776233503080928405904540531411627722794396782384685344569194626757245060040560805136676939231188051824717282080660487162036708890215009485689090622565774334354128716881770745313079094537249746552419566787221874364756519592696029551463146367231693641818511723497344873430241118965101655810435081130835766062890877807294473305734435831440650814842491334638985212462463129280517082943847323096523071080399569063720814278993761187306528594557634098592630201012920852000323120125123367796759636666662035835616366233541939054387912554850610760230052309887049449847529819607952706291428501875441855069475710794253334054519927965353407653559614145800349366682538259423461951956387321405441001507110297416941608819462400469403086668532085982687058470548223896799755228027003535128067121614844739969518459866759895653739013739030732301079586490430366587086172163077995871435297302335113420625495139944338366816380509982506475717678070365385328459320652024442527375493638379364972498941657233846443373064945018461617193171560131133794736149064968831625408862012711926542863994855924651441837514170365990676030907921677038825288603841370086608152675350073667861991379347431259077335425343204547479632519400159275895338284421834791028085757013202749601375613134427168471112376709252447822846689686647567391810306089171548449920249353826034846333785937064336817099303750812848754300576331660023841005537208236854447663396152101391573259315968967855696811942257280465558742681798619233796717082581366383041355555049929517407801399072052229336711342084529607751131865481968938623901900830519183437497844563931736197457360849614348174986825491753743619610899761755440732004194034604461626486012170691866797965624034203163504953029367163576846803867783339449637980194836760048475064893094586491165671904189622134210446480644170630203510874449836026623308224174700923034238963842116607526318764754885569929382129358847470442211499417100497494988812397761264759213286356718187024301807030067659259326862781989009611133175646121134465154707993810431185006474290646955862909610454786586822226728868449945052744517084457980167728029182410111573919044931509261197016233509920184038131178563452948085299127407702411900251153606563046204634408090753502096916131574446371427552181870090303193311599389627405644553330343129670668538334319766753998829955782610822786320061031276639514833653889238179888695068210298533646305554947067422334869252449170425468897094888390112732504124155778268520619900621381736010979904204207465479802779802638380642157963775277488354447782144798977584093177897876692791690527092763451972261887772958303546087023446906273811033463597180110422988077520347165533206637448526172895718860513338082859128320618004082908442649200716773303776871441366778427706970478322778057852694450948068909243905570154521206434406794893307959870121679818561074653581654792984742331696882905105826912398649232110652030004326003303774222406129900531352287831503223237465324194563964445060577011459978005349015407138004521150089888177803497384101328581453611449368638724366892700190318829714189551761345382717771147690278916263372402780464339917347380914336585400978397596004178666889178879106447784252703125790897381856263536583371427616234832918544408791166216465201797247464286510482958434594854538530112272603734463199287419423357289585622464346704829404747738480475825264239235057108618036869980286403382787135402068825430763291890646589847657477573429435035230772305818474560182634521702987627639859562798268033087951817091120102450216152099031240646867806996643857464614667777310751570566837078998778101313745760721873049836794778411836941483692330737794629526445858074514759695126327149574619624955591976583360074914695779451437646881583369358926315111229011147312595804327232544235510797825290367153078008191855224156639485572352782016246237922975459305305155428662632860152707840694155370081253451489005198645221615418497780173650907823080180613206658163102020895987860177011775517060347994785244882451703117213898792478172904767245713681570336823731697145236804935924873372663475458519826843885869134756671356049837317172486802184079143634722232552317941160192161023992314478742596214992835752277898042297109808260669427772081119835970313339043895442714444284720970783590486654805032871302397871724766068179754867841440148468462198820992834455468863639205889276006147406685610268711474638681185238279721263307292772020039627824129522890443945072771306474146803024215310773964502525840830492659760162026348871556784315259073798636477352769932091038187801799793069260935667690771843400353957805611827093769080100351336892842664160735713944012722315757722357096991915210362438983557992482003431675153633110899817312902232203955609446462326046604657165224770494204886819955904899332042781191391020234154752665272038411568983443718157623115926479329073458450824450645583014505890930028254948882858903314997353975050435026587359042271734651926471904479476572704572213585009972566265961517527598399491100864763700705951964451842066672751740490737646392151644395518841544023993994318776526453903224066277074976295502511664467660051495026351621764666903257918128825857059297871256207657951985153277424814719561704386897419773694905621760021535135126220322130248371777561286777982894188302283350176470685658075197434623414288359794083622813264087805106420646227314950842650176899913161106716850802380378808860798333579720203967979377873652596069200506032426353583428408074260364531963060964237334757135077380203876068578031094027027564153778926934620878311752059544678303476059351836037462215967519504246840036146835224049741176100632500653338372604971363877993485999424587367578348262446059254129862219555110036374955670070219969201895588473484726821391843937131580393132698874084668352247288567901762826883492695512162581363069738972085491196383660734376453579132001137980739903899397381180083606449048537209542513513356425809243277277439106742866706392870970789161510450858965154529897876294726602323537358899620871209993466618684309266614924670338544095739760184219656156026100366033294682908393664448355650757710450752017495154784730111509442566964372663333184138689608873674761503440805186181409099300956156121748612991973514969278624544251783235256066511361754034317932689736754645061296726292742689293087880010119100440285580154706546431005012282731441089447879293115560546116626466669754773246163247391277599458564603531550895261491590034101601196205117502023462298316595562841716649929308013047622096284428232969306055866415164970962618235372776729839152229748481371625102799085283666402526375823351035472443879889737390554007074117364826210282422411353160579006175900044112795483134402443053921684861363651657663242482950827916721913767316223489178837860045996982116570268680429622151587711936249189207232399550100282360323023726781258484905499300312838408881515985383482680142105244998151347732432249303708470608723736239735954147036153758809819409692230156693315985481922529331212844010415302570775760623906761222508563042611298143081430342572334285070277323185344564836763516714787080161922867898580936731209596128609303792778229660541967829963299545405028774532936878212375927910652412198381131163237804390699195288953222948387159304513802298622738678951418234372140823369886505927656150777022640098502458944903501909896499223201672457650438684924881692197832169867150427156413275045041782211618048933947801768386642234068290729034175197932530601139507892962095393634424230233708545573262138545714834603582004827704428959971105629455997955385490460303534063704382290422210244073246076008441528641320242255756130615542303793249303147018125886870948387163227285364504786626813846668014070468350476371835855122000676948264835054005885427750723382112311269572831202105990506221215011841141239587561653809930330393472027803955985867081546831147118824138913706017190334477436244996608994247248166471005058904789378437135979233440588742892886490375005703510391228380873855081679594178213127683603943124384072945750677056640564817417265720368942089267079059843077092396275286233919023971731322703470590039264525162248796137952928928035529794887550368033631363211854756763082122511963848025439518834797651670070702651811587732384671703654235532419306991154222127134862473110051898620306432363397311657514951208095025645537474331503045115164156085746614404328584036156158837931026794464390789665613993786396768351740910925283772598411808105752634861781795496750836573255220753013913227954784918534802392404585902132729187843947547214361900799363081517305009503572574816931570375293052377954698514802614248521903900889650002238092785057077783613331867018951245156269698554454108885117657927427872191334331479470668480349950504420910370826999568462975849003234834580229506507752189528407580443818128093783708158791453979168000600232201817523792856035070579498137541853472250277804464057452868946474261986633092722176857456543787978849332118821104158976041191652816568868682452614496165477381321397040925835947072902274441476809763998423174312666194991935784068764233332497112496892018399426116451480068750510195132717980912219846650152652903764425949381169484353900462417657880878979292957970521206861812106028478844224222457050461115735646409757184031879680361639397392502081075054902007451824543006662657471132365485274594133865365185821620146058942315297612832207874614338049265702241462604074872488737923880260337006096854063310873531207759332222718305543319669834943495226622583697911348631265618179082598197376681236466106498405219519238709337791042619209073609015495081473260036964414002761679152231450503905800073055377098623292944624952634076524002607330264723589070199571692854267821262232557783765850393208933923337263491262603197405353111547537144433767829385043152551803001404205017078725371599997809065753785726501371028259497140050013746931010442858301062292943071292236067080231997376449502270002602247822637017123840602396296850582068497343729379565350878727675355097034811796842476886932948003106010179443296062349412697409903679327534368269191384166579684356722048677226745314601128023056385136590142129877233285926235065932606464587043677139993809970633312357143825665191798875076500155134997933142726754932757552698394800125991771386343983043014916804434677626576740243139545887790540563078622860344851108852579893599688211191521816550394979568871760381512937097541149879700087057149615893137991782359996055616325514528047005193752870847162739842044029266122560130547012224669023590232318875898693366274113071782062624456947309666860058782085438239321933230755001446398739168662979149043290580074613097626331887172369169949610530325869843677817646774935956295482222754070172509989139208777518151039516503822140523415351509543764336464476819557196870660565429920561025593747135648417256407237428544017290739705321416195692717779607868217566652694111862583009994239625646600655961639339296361283654779366802402212397115637946980186006790031298980765075010904009724119848470265371145873405860567964962249877177273199241813739234484496826093595594781584015619093931576100271512867508646168238330068514981487471083131868520413226420758034631015024153278607718901337884721255032546387001369781389234210034101178911788857636497052219573350458755397713698524216100452032996734091458516042923173771250103813160848598834241416263577555126869769303252390381784537607948461676046355249289931810796827228778573282880663113081472281582776307274373633557340771236822845276774686455287582103214584143483740631142528102531399634176903251983472064944512900541537531390879536044387522738426243325763786645859825812629175819247514895638137610752435542309477448594030623344753345947356636101301093778924712691109311659142649488426487719841898999408743522745529743080494377020193586706019486845882674939052289123948333933165997898997919152486382696333994930086015009375802241619162027407061657692337975996660974987069867686047359086937788990645731399175998532550715283793950015136136695917048221876807763623048461669533021360710551713140091444635894310505192446251499296286643193173878753361539616645138997010681933602819707402833217958987620999217021487068442510614021803080644754646460576226381005876657424882153631342246551366935760956444833334134382967353036983970588555466155397267022691222246254300988173194066506052713016012298477184377410404012265550781526907194178473137811806077427117359159036543239655084767131292991900939126250838401592851453445217578854389497098589517376248412688680300172269916111746081821530123962376892009723964584298820194113245102844684007000900146514595645301958271563875727544071872130375095893067244518175351378929442423322509115304187737869948901145420367046034752749230127479989984238874732190999333966747947856439568445285743091295404196316485832993285217975261972796554312293420459058206154828864531599957391756305175574903237085598402722557247766419482738608691354482695598399140540594580463952814179389728862888277106390607393413769972937435920554444122781760762206197104885685145649761703790684883375067734426845622144395672178083998064804261677801306160531351874371565197503644555016406199425254319725987862795598161556357105236999319541410984583391488006046814044702171913143064781429251470341769497747867238517932318264397400925491246810928426739650238722089299977780185224406604691158794687065203887918824563270158118996095795736553078235012514097261594946118417999232112933649754740236611042674565465892658365709388327502285510509368264659068776468966414955329919487661563945910220338586543177529817179855318184824927138137690930634167898472037570559347295660854762895870029053326935920442878833710209250782327328846045219817921114269559665539194829632869574916067706194986937101790483908646896004048477164392758253419302076560268327143748098068317862841960498376295911096793931718808184752378388401174944919736892141089152339431529372837041487110988615633621701194139704493106893907328088030153757165023583809509083212700183875288188253860501191664535392534923398635845535267598850672299920354936321050653011489899504676645229299112463232003367119250042162758483629558037032824286615576832748230298357825268875668320444006819426029239691146975292380541382310117102306649117799112312019424463820603418980398486815559688353426670191033623971094082547080426133924714337273392646377139156638242543785572173425069514985967245180757720373170960421600831940857573829482786298737228557615642611820212479149190409581608464065615611798765631154461997514633682359365717984672227815257769968765881851607229300648125116461374252511864719569028651925860325771837105749376838102157114320510814303778691747082424000819153988016439499048703383964052503681870037734570514896239697598706854592798961284384270251006652772208975633731134233830279369978003678117930270373863180741817613165035700111760841034662004563153344926944450278001736371367457650081026763122304261117123377755424915635156206248764460436235734954069099694774638492951511563702361047124783196468187830436142630773766571954258146524888891771636756810446637161001466782050561243839995261297865156726618011703593681110153898814740387143883803096862900881279679393480206615963161225274262940815925340110266706794725624480868744395284373522081072343273672990304407925476418902319711570420817747276210392935656955437424094559684925616041816576658405938668687389557790471570715259684157897904407729077659892497203345866082819544084537304013185637715874453054531435366023784821511892232822884728573265682237071954878403669749570991578872150407604433736139052657665780165959469581457085250025248984198792485069585612135218407653086264683352712512430523352227298536988493207962765620312767419100680091461650236568158863816381946626551597394744307481214478125112031795258270626172342356456595202474265862053597261511021294777318161452879179690899001925556537815895221038729766614656348841996292251177612500447841998191805651797078284298425136502323316248224786974281459895592233494328256416969566118417539756795784282127407405237182472247184631917532091989146545777025540322301853980245814253155429383613740020865491747872694573379308076474664323187096286488480904495737999960397726745018453663609313156856093159322768339172539574089450629064197785258050421243909329127394322082927436897314153024436659718570134554028757800114655309447625348561972161916171376876029625821625997421523889966645168741011528060011505607509545648596945692687112039651825990220810893438368630086926774390109744120772499704019735602575007218597462336472623450243427780845616446094771466905503146672072819364078469744523225686082719215686544227900929441584293955051993591248916713046242556204003754776627254452265967932553432007145835588228942033575179540775269656033586447767269031368029402628054841228560555305906139660599356519762777232066207653302331533185423031330600910722276162243333046483250944596486972115421109146337170776610159322291504665527146178362972346417052080418922745258187409654909109040836061307213055202250119272355259510813789075768288261288197651356784311546292068017739697011608648477471191872823700402881454864309926337135814486755511840516587921772863346637252974942294032908312755502136331966587222389637782931193595620742560311819773919077342255374432527336175322496699275317114151337817149881076410020038265565996979339711842063606326849295385150018808151139358598482814722464536976843588047347493271995616587996711176460341087917909322253904745401073553395885987602068008240926497670375611322061396536385781355605933631372172954754493661442511600452647650978850296598149419397867676951753554473311226367061757226500319917814676280081549303672774334256044987741541519518538260509468487931032009000472088906249121502938291879695074265044973793808915649780840590803550112112448694022883429988143876036020180002377450648660807016577185723653122308988366376020917081021907939554975480275901310085950722910416268711297861881358865616657529906718855541833611360564320015236886966736309661117747115250177925880222900268947788443527065286097283449435826595714494546611282231628346479263052838178087242565733121822738994738182638972035337728290449348509812835093191067604876057632199453446808080027052990400120463829740463780927955955224717701273094220292936677052059771593940757961134759579540904878502689912194751873358613989407589221350512429024305130036702886985524463715379370058865812780393003011476355087214269784938924530125400421680227984126408145445975742412614474388048789590813634473147803666274979633667032971731793442966159771536968965788115329672492452093552657466456594521627801300203300519530701996552279050289350210197119846050040018937289194878361294551946649832262413028649336207672271197174875565069109564632106559420597593040326748501458179291008956015599792573210094426265014734376700367695395244441252840411637955241298208871407479641120181551252089764498065582399226782434747810674025454456473761853259761819281647333472678487779326658100932631055939037268212626578552567680877101990361314842525074986412049502878852232550818509408409952033633317346206591589014781405383559241745005751176742694740543309670381417256211180131944075446226496882627306222798132691409060233540559993009830508415146689289857629278138166494954644429746743616671073401450455681459094579256756044422888518526577130214422766014427925873858578572528985445604179538103714598762937918603516983721588829355329218136233932277818286531151448963505020157767746440474520456957826963758644359756121438206901296027162090873317442673514247982579550309140669819816309611332596728923448732351451876508470180917354582330752267264746070981116345403069263534224979747669140227147939439412638483458435797856594561291021676865349863766510181195057238133664758682912555651270823909902975177243531045356436230577126487400287780465277678910067524854115813960878419670459502094850323258719365981618729112565764567306723888322119460533848847933967537438782141329330821004129602348269040223455893141714837836984266990898298152263934125316304923579987398503621964812696708166174323332114778095552792150259991167822014419110485697875932747495518755421200628574000271326062093884423165219718212217053942181299157216755563779460037264505260812914831700479064605799504911899732291443677596019160515507097799872671070948315945362782682045451280246331489364893495194063474647303696734555899328213872792521772019100006714654905439855654232788677026041497887046450672424367827440073666515946549429085699635977899720897688043266344552916298950808734734799025039138060577728593629144832255125614679975420025319735722005782131064234190893900739442304231291501417799729012610532542801506817709461334468091031326757770658274798461002387358636969040774291374752438740057460268113461361995015433569783826000031005428321160330004965117281443075343646458244112476558604831125214292190208942646148013328750852392512388478092846136977739501546039701998680622818439083535415563051660783731002334357550264370792563335116857372080857204901374144899631559831956344739341026534924760414339646786554444585558527567957045897992652360805818431118979733496378737516698234626671291973584110428749506988770851123287154525512063955159275226084650922436451622656482224805292769119000546250090245624563565645785593408017863313855614728503732508638459558940576937976160628229303297669593970584509687731601290389062754214745859404136120799488967982170930623888969905391733891002281122162981975144631330270529912943612435527187849831991719897853878014836499876735160444713523340541738474084004925165984145617298502529880709071114715544003579789741325811158645824117019246057328875523940560958311188478185425306865203414678746369304338335197150020577585591236879429758485050952905718424570117601760632272691156778154663878480927244798200947256704406653080274956744045734539661992285961881466834006439571936174820093608016019320162375752375082559747233156627765351105459626525967311413339088281677938079853990949585356816634022069285443476557576679669399552312570441603029853501147422203665094404574355084926125546778234055494155733973354030882336652816390732117668467030609204880811417060306895425755859565772716359512357322688252779751376127430729900179700631347840637441760400693687775608680562731160979811075577566960869041123122192743804696288182321530081714507384716419290123986269641264833746221961676512011127799235222573651722006737122095978186781705997444776415631617795267503109830576611576319529702522533691276718813409981972774019444773249757718365360110007651286518237707044510312910758003215344153743142288177687205389939082833290502039330652728527065441945233588019484322242813549727682826251573449050965663823287836547126300617125345802261531589634524052591578582710061865681755038423359556581545771557469509346737945382816814482977184822212767809547426836386527512653389355609827121834938480289835945984497792142269180459698177893373692079258810861855192509579810444203026008040867094340026281497738759950945240506056439252068131616136947149542726618101048644464238083255276974535498606231642291139059768621112373881076054477504979881419941928504585519309214919563377695413089602069454210746072556445072940173676271576103056138760338650961747842323627111278471442665300247672122086283689939423871455365123064810718386855796015605073012730018506192712701569395458531571358260795482070126191251303965302209093011612000085536093848264852377471047427959565108683706904068785535195764022990636705513790402628945686670471532504801077116874392052985880795241829838119586122911881313043995710945043008905236885774405102444654681564095779058601396840732188092099000872895943766066750091260184152691961702388621748230395802531923903186638179181870710655148977551487596310649049525516896871490881535283202912168505137921418116173050905225126095806524165821680342941438629388476004971671248148226432653124696769218682568243461236729080322614485476505773793009044556024069999576432038350293152598305151010250751514066728277845095768339780236896678795054761684341041321780126834171560007152553187863128663303544305642830573419427006843512579882889398089050499545272009860625294032136372622694340243898303517599535840122548686688566591680170363928629193561187406789600134094210362908952626591030245088841943404533669656960779947649501997102821638563489492802590078133840744423332621782832455379093013521407293076167719129821644865122524273575945796217371820400625877994961166696837382563117425696544893276983168614836765802807618923043415239037778282089593536988568974403282258064074554716489564990276633149221335574547018735043715961737044644834425691640323750013641726139952278020187831176000440444895855813363630726065343670997155698148769608863197333483600015139704616048197366397371017105426304780490319011693080885625742430052772318500981242695542010092771580627954517002965903639272079730221959032127962426783279640306856675544232050924207134018268922650286913205524712811895640531856044441013172974851286640294599172239997211594818691554672426127766581566095475589422604530462746053601812056571558351441659809803924270804577400925961994806820190197047350892683932040896519246562958508645570229045796693566709577843993700742889862012942498983015838351523201152058452995794232740944724562362146382484193460881378922569345342217859560060094028455878159709711844783296107729739028424055475719343715187994301552939418966476453884843404420439790911572195774256687944271342519246057444484714199693391197997276790820230256579702689984931809399338759122138932122844089875265572653211190519021936599387824072727647340648614986504268803354384492409311849402880857554241056346523931669047850628932468730980652065034247605841725667500410065476763678111981066539947980995543521304430905663312863186052222039372566275077326449989236393364145025189599708799152455701034895513662159143172289202939301884024853999345450176149437839747868621974033615336464246730184885170511742353919720802250916050931465859240625499676733344450342868315152279990143042762030006655351707483190830618032047643118456077449791472228032215453930624515405100300974337046419589987663268292277506206106591018472762281949821177003345880497835276782248072258805581683404878296349764552997800640950052771284247075172817526158136641297288509748188458876274293595715593423547237751801594716338416270803438439423972657661201730550064619828256288115780549463282857428057866240807680381402820814074685186829350795291026620364098747565360496813334858638290887709955136628535137940822157664954589289768367828728913076511313571250791920899153543273444032424126470590743364081879958269404433187255732506976427579617932613892958612200167087083728687885444698604566703358668127734766597046396306664522923771796907238862884835473998485481537802830461869427883399353085981149095473039619179093002996845095253806270150983696692990642922436185399606095360858204586735894964655848492217395559137252346870043019537883953383276414436129423801760308453974258078862982999564271449879774687277440251233259160372476411147758844552347402708929368771113889364792920807421727264528487138411488288996544585751102639752277347002828258766992596169641657386471913920234544607535589072242019819958498557608277120850589014461176487412585747942707025358997325890749164966181074077713245305377328054330491053571528659310702564740451808045433635492699557007300826807013243278823462411421492654558542551479631154108586891179793230946609728463214927167764799949922422285083815703487030742573555411669153608556821123243874459864589810360140732972864004425389459379739681776814331260273472548225410756295948099401909459962060000249113491525307019813422434193145655682826676585487179795859034482041828198357025264124653270514055327376708432138643591235579116970009896879864366467940465779948536759905337394448811454972243794773224942450116398014382481725708372604627949813180345652526676545634108776388838322168614926271531406626693021068115959139086340214763487575202875339860709424678814804542669927679381221741590049444479381705499888362481032508986960706837335185390824369460823181057614382999900199375679707357095287608597736851178860529243537184119895533853153535716647242647022310762699923832372732434952313157149212486504200317055636715646939281077470567116615877463840801036411678883674613935491722675851838363855495593729249381104930752533082959177369359185880345595997035401540809331591000400923583971397881845566996923375464451166807185721276638013556403420578120764227451408740703564722702237731308292596947133739676461377103558579029628709983105332288683700462953773768991419711150524575284416826700175100274379674701111164157878058338627334953536707192640594628778264201941773662459748823832685327902764426010952688955529239726996860200374378161406914892647029314612019586002163473837322827622210235815250039674205385421389297593121541615093748714963091349378890592585874419189478896376733567557608215160125771219637057755281852931707168145047032901705238637553582757485739895205495224367850048486527582668161612350860192972008987840183085557211167768337485687353076951633409887426407295814344801936382776316363810833878092312922221774381893124354741979835698808043349763452769006907980300306873572832483384871673839086028710469036576228916076670731289231759786841425410303543945716160079145409041920142682916227564188480922482636119912411574599659365998857608704310639304533431542803235883678616982555561438773105877587815779672169119953374731236764799851525905460969407460371754062865946957591674146797521061015124597064760979970915492297551740378105814714628839859965093330625161413595434773903762035929213000399125582469887872382065624141524832631998988045201615430737676476538312376126057302195778060742625707837385727028657600452375187553705440529685985611481163555998449081809642301337990040436721091671814366614532718686276825558380890405783700364273798057389290925633749972701044821968904678208579002367458392774492050052827681973914822762825903131523720212875076852658889135360579868956184981098215215801071784119971131219630754052473934816489219919458627588511320574350680035764407434751086988039501856055860330600698106894661193592523153872502612080803033853452576505253972598369841673573513373034190917523992345099640550735217670588121700573165862859653111810667342236293754760995088263917605635793489640975030179999444751292581037752022963031564467601170344960629185045385383240636281297335841609975455481378430488953777672821576196079813693439850423363393620196451590301032470635841245270880859165696885708851996206214966223034284824548419797450846786995268067726072885621844565007784533705605568268579616254590553448786628121960120396208900575466840691129671212929776606603768926615534242768746005167060362767384332570604016027262424448492372582119979551051990614061588236783993118045793630257347230565478376766956862200668917925990850112462068258782089023247705336421925764902339981933148450035877224708872108355220147270501219568812642162559417317361959718543465386389141015740448931169253411829890417378136307065608003235186633331778093287085963239694278174807449272988762716969890161267905253860854723358441811696277583009402356336092397470610991157665068643355619820740818464322005386993364277867969700747370938285957603513839864063357575027011385525787013263856882405040366530597061317157152411341942570442848106024425575185105433317882906687389734417666685036962893695759378802710557673592629747619240725430165055079854421152403455173544503615993758740479113083291907191908553873588315864515960897478487559266566138332113717595982663892370577952930614817853558865000532654575594709710363857603091612006117580269211509161380497022641212893517083045484041464008127335946166091175595993538147079459599684453558573009269415006215801559604661850351754330222496716281719450755800221162767842153146908363103100969791567365913162577279292784640865608085091647995191634598088479064768447242957194244636106434482410620005747325265056232267155203701927200217828462155213859430240794079507916964143104441969510700108506602979700207418841510299867063594912996181023285414215306058540337326338905811646910698827872594496895926299952820905312159262432616866181190537897268587652694338953660736734763593284459344459624548083516671165586167751961544580498871421560612081286736268743669170765761786705585130447209628225984176454797017441594118881562651316713054899123428210671167890691959859859236930877114490904442023180391537599460891711641925835332154588545700705531157849328518165435551161932680403057859048170201417073133610026077631862310069899349133832493837112638074848494057094708293461818048882347724770993015570637844912069784592133258262542331747330550585173353884648756573547144021594961343269134947612879820835329501612289716225913174057465720537006480157333573481696989618346971664907009129890699486765476637544928790670486370975241421920760472711608345823131923271504115081311224770606728145850819074444523362526734378722363971477517598099162936351703839605766339616379802052208332166279249263012865130960872744646065156809358987263470905172553860390730217353577760732326487102721196607100241643359364845394985067643800185302552129851850240514331692680376116887050317526507917249435530458027063510462201526203077285038085449332614435797325868981146475667554522852314569850152767724959271996024749402145648990792080568692833115049129882754122074239796543540878179983023011925067473903723908320345064472065387759749726110830324246643608257506142348457319605161310692838754916669408363374514107954674058530857341004199839471901360604292730874361473513586638366490121892411640522294835101616878584422891860892043631278850826781382958211503002120291088169636576542508276123597436167081215380182096954485996244878024994251684368337337571163587086677967214561707832609601378465453675260182620023402771033053913135774032480397444313684736328956311140425412499071859049555401391223252671760081759563622100102188293058339266483178606015522829236973869050123462878400251889865084924454977903483307461304100828391255499546329034049391897419431391568832642505048346857059600935435009858856630700583004037796351660857641307963763485839298771427432070720489764527152357368171046684306619063087088129940179409900152988858513495269240929506360074188699251027310424492182979518278509344842435706347091996904980060945726943285896452111849792396759949581774977315594446546920979526037257198975984729561288215026739684920564039400326564554309207142505237899772830204136686292110674691716543094586060745193412761792389270904262768192849159248547656528944281931172407901851919144585009773437562673992435425012013591354035911806834887971956264344073860009181878102570174659490463805372578804072849127271776405095050447742665235986276517212930818650115606280471103851303459753040771947143640733848109061792856908381437063733994357637388959177318110683632379486620778372556383687678079808056802388744989999736670850565948628775478795733665229739297142925515814441601052596417802245524977819874921513401873220771174802378899100756366611024866833104876322373004896208235765769905680738372708920379562440970125155031413859389959212773716681408258265619986427054202796621619068380015538959183127177082936658612984953259237212782465344820859129214632420309905752931822306286630160209127199645450837404743467004706083864802200402713576686873997095384000250531123636187270635220183957357294874303264303407403868413278900527051831585305684427329762610081056148464652482167610607069318231721917142617750706645436986797186593756048746934234034605794274183827283443541500980026130757723217321559016936396990629521294020195248002925103945032104947724221906541756811399842551283828130423722586604196417690342237765770816318349929347568419834523768527519110789495812694422008956011969696170573101868919893245406339161674816252275345720128348387034304551158690296924982281927762019047676230275929057601162284687218929894621436250752315683654716090566404525969503895199606070418548212504392939242908763679981563170133937335134430820864600885350147996152663313337027125221398736261162568326100568389268222440115592510133494187618556853998270931477919825888429722539938952328151530221727087823158261520177352337161441294086289357216029632084439592607560208370616194811788840372786463330260866243702901588382682658590946020308592228954793779953831154170330443161372746952770100478847489858049025371249141366064134059393141442177983768414847642934935107449198971201485202120223623643917633772117470489049176993331037213919210262565225937435780403755818801529301729710266095708600604694199903444474402834838297700349122934223234929892204180991379558877850990774109208238378772749839394620155926887663168767926725289556778086406965179909343989558482093257723940377498929790064369633503599136209469949671531291982745132508770564743614521364673512482807403100085452226752104903444156618469056041720938819943310840825254933762590926468082042204955269148104289806963231505476057571227953509187665241306422159742090121917774244375082250902955642772751030484261790782949591371111552430448722793427187219014285902767912810281954238055610527742748293235792550764507233840114033293420493820704540450683861542323818379817223223042669424558164226513974530917765788902750365182738858290766224902868818173767596723898184846051269812723600022526175871989444023808015416690780418891531524951543342689403493668033778847066615460860910849343603572233063831581890082738430317437716180299646208388845174413427349216290011239650365086449925082133711352260497491254229789915653317992815127226094859226678427596144347571818621576137433862850648267951175340392893445333367489794447691609460573086016690677355339160944607813907395537029645681552245642308323047179368284113929473632150174577784707172030068220191913058238139383096750901102418411444532943681444277990094797068964173576523865991187378785046904798115134734566036646468023127592654980711991866689358392210535608093125826940587065312005226007681785772838963987367269976705704081788121464720556898440336307796376171120841381698745689651252978974901644044017013674155797587715910107333076707486084516419314930413440256011032314616527974964796812438463694944779899615870593473359154246055203236886434989679552132944049477833017863650760924017964778878608159290970247540668720044307237900612810197600577760231876446786147057649131768369586411686069103899469836232996550129812797312907980245415013599236464506518848134869992546838793230663903338628103564641374591098695036323485358307776489974419024423825350097638657662664677125578067152870411140219784332602805930767168400026049518300677234451141222968384916042734353699424435129537415625233489174555689975503416783751184608806439491439811497336746435097028870726504498350213008306628014900330942748955002968227297102699528064403713860267354419284087583963924199941456905110059849144438504565469070397669758236894401236049996075145472550078379917787329856483811372790531986459630246715487356633451418715445973013466518845205801890591586231468912260257436181794576580893698097200695545261788861493316987268137183751126168284370934698724110022800900526963073457259377843454730629799662305654793643034239234390206838694107481136518936249026210387378544195415376933535935664062731248457137459309926683561985726906499104801988655216247652452617393967970677909856552993867509001109407034826975787994629343643166562689656936880364269551037410249347447238396831903216305359585112358907142277697947772297852765194865925637471453954990737215962918969356429827704588892732925245771952518204149015633551417779976101223613262448696636704669762612961623525229835421868778132906901149037171299047542184186651788020691677478014331777388828398000336300769655892126861726526076888476712326957176450696217254173209246653772672047012617467886588663781368673160378671228122904584441949561017702202015166221633029027788911757374324368427569930841837781742649010010696236512536639000242612225238310228266610009920090034574179234095678278920481508639641076454068107127202804927870554544193544020530014090466575445483482752155086027472136516984150773957863931106570386681759547550336018015113862602306592710698692181274668964014215205945320736055784563840303266832824071841357780420230339383158835408274719625309828897321505311631429925018620396382225984250379226242595420783321046224590518729721705411363116643854702846224525038720161641942054941488655615475137009727625174291245006406144573043319528456056784044158191474330374037117877016628786773248611371002729354478270874549695622466267180654982180346577753047622826151169730915476910948704110412011069525823029008426383747815170631135976563292115032743390818054382535452950853630374257403238183554167988460098295954201251489504638528482588193325720912708204488559263201154679271365012197714686326778976437788932165848831298444770020155019998203442506629486306588816135595716109995308032469087063348708774107085940409119496724273246088633942148707397597780111805928512955481921137280274964432845119440609307308181909110529962533260394387762451859980332922840889533215497498692537317690508671391908551790793042045005331352827476715738319621443187453924823594885160230990935452820347685292227660184430310647919163111185921266178925768207387687241968623143799278986488611500376524669820202466366063721442145205216172960924621911158693723250488109857153764791984811200985918397008350365411722046960999121159026555995684140497329392831714349233721179296953726952368965323468152270583275569779299266649980512226735928288773955174585477726399455110157300645706616357179696100413689437514882886322913944752909379552228062503550280145307659329063717624299528306402717361930847843543357951527891369374677223922517689183389629176163883859001565885164282938140932058118790669449117332775383429677135105575447003225790213775410310926805095644735387929348956665925049610696976688419856004379677324134416663391666366874148272322414598832834199697470828630015468933371700265369572145501757608442106686764025530105792137960390528128633480052178806561313842264252470787041180551588762804369625532726604737618081361203383600004566107967190640976579690007895310118181686715808498041289498709970390595713340636196012264831991306861653619134965188758701372066841738590921138746747690073502138167614158567942129775737398544604491007114902233651367011607823746825001929120544255657606568110416159196227812142986656930508091428742418660373757642883405487487762395100083013821490376085232571266758010465532085962946903444134481794732914211326587824532229260238911285520702120818936691503194380277789156012509588430835172212943348084635802895436926933552580740501634096603516553514079671736605400232175992559803016709753398113968722418808018517780265720026911236393999863876959244700959007152894689424762734027425528004985279191314174201005843403584825370918414858922316877440757495712099763314878835756578108658440842584515256631710073322104268186621595560722241284064725896496716063435512338762302468645994418773301722389846428194539583474462054127005205378147480089164167064408719644651239429020456850171598522092633746623329069898517232978709936191173622685816766758079326641761848470456355524981412623289825525900879446159478132085650924634470366835385479345528492723640444638868552248902107057628542838691331375655288002044698351062672351265938897886291609101016287435359650718457920092839512023893143399422881202584400380440239673366589623835456864605471348605255676926499781018999620506857497334534474864371214954788715312549150008479148447980693024778115864181146188528882929910611418447035467947569802852311184036000779314840182003897926049120934778198481960083220976189869718688615416280080083991220721074948611523400483634414270918438127760932425652587469172578175376584482582192404842313395470425756057962176436552333419764946454157342077409065764449701373225904686465481198669790468734263535037963622582675134084382053965349225914920069293695413141667423173346807954611039345979167472622861300611580408606556520710882545008762760041152607690835491368147677511280981769828437270505122232399016071210265511923941549299711486463822182893045471739599005856260254065446269150098911773874073005992507485939571209132244720917781485724934786877425319932405109313546759494302545821952762951633830902279420497997182237418539619891454481324969234543205416033686669078701488015192894736473871261448452649557604245116117697711884600889088958105239655648540254861017535887012234018299694940367459660191324134761375010371186730894153317470237862491100745074268709203787115711653846950486246919983175289968719692821478446080359191976210926348857218859188269143590991595555251960808796046962260025834751123296579411628506077510169607492777845853597563137025540923370850021740481004385448832199001310018762980387542945712569679312910882917406910652746898615322424144164290933449509808522508883272973900593498597584156979434937858505279638757123757888352522496580145549253373947855139964235593923965927604948025733715704968947348994426896493753623720076701573301611392111112785473886993317733701599974310227343890550516538411593849366776069631624063944793685048284396379610906589579228994115462537638615224587652733468466744188827874766569474312160834312692774692520785606767273457895107157235236250708862981949686020262341031907903895804208672222415036118618932435617326267525450826802266612296084731580484142520485298708074314421830513117056850729743389065170822391038022210695869031302222674706915753049410017021890704750839703404548822754426927111036090276856517685400764917003442203056168716503962324637442798665563462623406866608333819198088320254649066992746961238102541779741625652466469623653852079464171677157610590210005289515965854419193396632618874361732135579962964471032625385319812656495633889696812628575004801208698523214336223963466215841609524936844044955451215370467488199233582444429882144256454917904683443164295468520861225093947408309973132368136454855721850286868152057775604496799988349521820868915579090230472796288881883054951225975773756271149084477659401379434239377733720940913769906790101723029699532183385361350197225795399071694894134320282884462502380163799266933746225298682181279256686561805982348277437398152144241138832760281860541029968881232818714289532253393301340455916143299626859082980465510614386426309588125518099441882263092084242798828063342380627573351949086968891356174901423620332337254600017326478603750305112925280798335640060010027667139694055426198538594518738580567874615191796959268625604233586542202958380920502422141068174260879438619140594595360384830369771666137639542098600430949815811027381021810182496264275432363462609401573933046350453246595336747163703092817059794447443361593883037851876383136614827178550928312356732511388682168845918510208419649565121059298270261462891697214503497184093381507944780544279996041742164885819378122059091119197487548259076878491041944027979210178176456661145814146454098461968837744465634066613131059601806740225579169482470238824309160896326781459846391597799106456809763475651121294800572278069742474006712219919461525277066351475238952071167180975474143429364497772326614224500557956818351040146583263310556192850444568520380803353472174708060356846073327764090060566420356970170854651467991262518251419137716299236961644807474878311835409122092185025353514662083584162299534288982750560757343317277749946708753163171751642934370629330237900094736247826680837268163614260577177346645673900933261848398846079618579795575292919931487198796331461767416000269308272629538790063819581472954104930239876384350074911883989939518528235559544055688670841589439469867715008161356894581346497825329381988102630451016803029724228004239597545138408283172957143680339621616715185471070018057229634767294203960234766888040206582658229477207941985182199277198420299504488831413811371738288450524608954932963954227510841172085239927751834226264746062333100597049450972834827154189598342389405328857489418134711018956473110026447702804205841969537539007581194078326852082071023027754528112626384958548696420723361702246666783566696430626657097652655107257166986637821812009470828756875885944543105884014331912015533361798832762518375175760105412828796908829850350776460933633539427568534255301219218937781341382108116656977938740805555894418400731212377285732583696027004267811092000146182606379729847037545768138684959111073275132041933228554217693056418749251110360999780372748217114386483652589197610787734441603810054694395483183479980211009481403403235665291142633197456791524227379366420266829251351433993808348374989437795937215611218707127481555723235872912546627521904545123359233471641291379049380629339740244306814792379514092964027270412877817562198321048161014354006895113061081361815510921811005815062446565648326648183076395275330507871117232739503248403284472363455559424642997939721232519770741595767344004699418191762018580572671376152054122765185825305755327401033782446544760383070312485490413094166026380727644712088122550890320729887008633258760935577044700588902435466771025288066663081791155331919215531768240987273581008295062185213189393382756944596775967141990855580714349435758788018229338409528732080742416080640397608465198839486121661138679120478604498765024699537055907573651470356763048967976385351888147006997511304261343038478127106779576516069199411165659898449473850005228412977652229330528991487906144755720914667029919088129057421416353592314825733340573335740496885160523005472512000361821999879113667334705731291379329269323508589900746682045441841042188677844501243145790026485415667823618297772529519653466787571661824109732689530368808476926261992964588971397515163781957164816917245694763384090650161911594372251040488243659316720345729411631591947437922635223825615141081840321892453503944815733361275815675776838330715488829683287843962583517956703342112317759367219325421620074037542213286850986153985498588431744973548187297204755525591326214978246571397331917139627372273761221261123742355032714132629565464071594609499463676487519756177941676037972779757011309037938885423960191294267664483978732035061621649311076809552207619658968710208370782646091402713606581449544434342325423793590385438834797640062419146623233536449832517055175440859623572623513393096237197737729998795254309772369115363935235522573792737462414497785961768844727453690711625894114813370915320052418086585025190736323804787037523603209803597687948780163747663782487511255204274624226486774240385838805150684916352961206247742881843492583667243577855225699704514626400170927248567446393526777049782955043847892455140855148519263013664184610879374471666881555483950181094495882718585571087739540010692741643427612292561361926906733440036431517932692635180871692587492267746904160379653390495402677627818962197237659466571547867850444044671693521910543317769508966638218723922465599548668686878403105533478787376781076015316676000031804241924727476034270967707331821464335385533503762998073391846173485056525497882037039305902887555888501063566157701845329273755647528473004553062136847772197498695272278967497111325142385230597368695538843237512011541071501663301601856554961025945352895063758253038923104586000395954417530818758042650555433527641467143233148318810603642900296832883047623667415942491211879148075258879701830428518436724100678477784495862047450485757834555640275718311691312036327309168199385652316428158956910111194700620468308666642836330452737778178980365333282137494502717264682992988402986124338885303756751756790739025836173563414193825107647546991549474270091484906696464898418385900861627082069242776201576949456945334675127306738437602208425185406370201281115051979633936317188450015271997089753708817233247257642320831648295075724814077714411043461047192573854621906515395366572949164615371634088781399509548948831902798370945765264842895579921253251031602242434578040567481720618301705913006667820011963349944590529889028066116718553537429913951842486688304412769067315195196438592268037570217099185359420732718549078146505822601231403724002287714743748527980294586350759255842231546153153878698006551838382232602083391550283008898707232456682724732772755122644438445352311399719882324206475448510220420524081320927321748563489918585498701411434099841513307838914326678001592466121644201594089855092379121671614179409308640007337660438019654357082181558427004822585020921187453923044901308757233091469705024226526795896032817103442688486964400039735536179570321190735869030286332760629126497674637752384990953506647319661638041348730683996675412384711340492756615589219600574303307485030624756309088930988782657448390301700593022875173813819219434642815240958130493312360098648064636720276557277426130432726424402710477113749933672176584146718914306140690039500746059358882988259700521356130660722844712937269347278686051997696592359551909447236335256285302961978779334143225057373493925597357385059248866616205835101385015141938039107001516740851767810501856486267754141066221968126089601969584520467190125498687712434026859211805250061655186619666658558375198488063150244701304749438124657057902640393244539053229044114834239781574835753595906656520500305870515436816806060803680113103565941389752018503115426805221984527109088645890944012629384442055949475945187625013870957052098954999778865401617316395924980627777181692525855694168135746890097315085203011631734548015715281506887977101863034949786060756896085368095330567350506191968277766004477848994351588125171027386389836871576727423044889288679457242345329976803248415795316805202419695237056252752522545147070245361861180492798704844709036489623608396637323057918548765290601220374752923994053659133843217892561376405482927914828382263606620832056109630823111897206686075204062451440365168281777397042934898030312171195991185567299234507542986537384084601865335213930291313724336070402028197562308781825119188041098592348286435261965746667890349431065091689971992805428198440818875277870986248063090925368983081658675774594614398205485249461503987487535775006319201005675592415815333849935194459112832079321526437795924090459549557955098011110578271222821907564229365660402952816485914707845339922788173010535027490485070269968761432409811532801602540825399006784002292628085633608536863509720881897459322055260708817702808868000271785165627560461435887199776601595189517040919671652788342365546321469926834693148382655311227706131870133363185191890947031997931506755768632674459222575600707023744918908522025187761604549230594397784132874832919991015120769985606447963966333910432617094338306258851927157028850636102726062576048165459407483302604421727276682266661055540057614883694374906097107171535127783115780112308432110007523813201135883073712557806831579225445635509027959372963713019876479950004584108895325374368861575742788506778056655061797442987101746973461338407944518803925370547968602215808674624317096452997617520070863581068585764964431219038501155261407755805837657294611297672901317951299252721180886337893201735939965205305761808680803742857190564316044554421096648296275731406576349133032024404476805485915181910463275398028137630124282713194563469226103105165280035970326139022257080789333922006374556776465798883624776829524969545138798364396011574054197678230041863738340759013323828337893507195226381908837135736130566325347467420820839421270843187777079799273427951592336066908644561803147110910367686934298849875300345686368884524070967407202242474855515440508650320759029382459809320405617269246349674124282256033277238331690608737954070820594403822543874323636061163995303292381861408759473187307943855401378282110989270164956960940864500228520644180125585429783927022175939668634346467699512451226903628005525662162633861548578288400661010824734244947850761731909437250318630943786669880860906668772770712286875400930345917404412848541873124467081353398190022627767054099518476731448859614184972322515468675656230530020047630709063285206649270045964801434583883104163919242211840066946423767349942747800032437873068506299472182187142088414194377764398018755062563843054106510643337673062797542994613408395059645979564828531457759754264983796410124845842697818116227630726675477547513765149892467207780475374768271659792893704475914705539744507486185376153917344059253341925664299028575788665810990183614367281316630452928412460308179732648006991761282514465705804568837838693142933102141954455042277418653141797025119743358047250945645809424120053708395347975040740017788450273822356536608884710835072354212016371715247128837676248137718878510295254561680918816341225388735898476186801772629489372519429422623571888439804653914109865366243160457492363853221396609625086840181061714602536672499311776419305310654936726610678995745219245304967434456599809259079102957528732360231786417553511656734871570304950444211215371908388113517782268638161392511718972915902384654073192722977615353695484116712609958688495736374165242883839893017547096349157609783930756311927462432314094982558451747896481043545006115051686369038781821324600563935794116723314364347638271377033731527603629081199848008287816270373180932464359004584548621398386628819231818284000366438078785320871516769228298358339295565070050516718838686974154444089127624325309125793126981048063511650004885368424912801902548095895080519174199614829657252830895803780155416940799346924160563627474241927844702793145103379595999800842130017517959255965542972102073520331397240953607382614302664781862754666845711450942674650636313642220411192359472619190606915605951409612287208922695807033290706528143146431990310040641578763563788114395577533382875957475497236899998781185927808794958090207478241359477023180742491107186496527032178991390014456542667427662338856750346586572482085188684428445492367056101793295653887749357664087562923597960319897534045478967073622983262589493616622031678043338544901290136730879182462077881700585492201298251086384595840824240012728857921995592487826782937173542169570370051138075319582470983741749094843999198429582516532303422476034332755546879773508699922609787089632534846665934739175863525817385512717794728025488947814323817457828808418148839863705106184481677012810522925692044044426262800830893279862119470657674175601052402889014096934295187993115398640915005047835644063171409262248349179095241765312543782047853754024958598427640006299152246932341809154757130295818025239812722408695096296571674182662511296800280436805176714721166546962779018120569568392166014008040066117955329556149466253182983109245115208336933025360887985359004041932497393959440448214039175029371900419548432476750178047486235534503304884716031939558260854281010133481700572942389206813212826312633181833000879412798788950180839366698427638194906402188600571247291002343073635344601500926279288595866290750446842162654508451383062779182985276331554688402311900745622934805284525840016423065713655246928732484465103303060974664589212753609659374374709266123281391370547573927892345960963810007935888044876178612535150569577832909817144182674894689783815121082155838530506761666999612237914152555001546562981193630546476417558132605810268340219121556370811338150763525929461110507768468828283374784085511598474343766385713183090670785639113117759846071616760480147373169019079805721486604663659729899843639059730596761185770905983882624584383675777398300264841525380645675131309936420842946568401131774146517326704769242758663046082183550693470617269254657969969034677755910188361856809055679178647163511859296362988938689576727892570109108204011884981281739208940621028291579603329906200838028175640956595655802886631306190384788234624385730407883733458699955015078157046030617471156096414874163065969657552036272064793981370117648034499992202079528227987227726589196648018729903832217334885221140207197331330422340231999503988002536178374125344835391371041386654436876289362836146307576363053364004203103508644983503160057557078554950395646709147455011563592609799351332596215650819722509222204636192886184030976476288660845923597209129796510570584020728656405982772860360514086967224275940356736123923185381609702652980056889246218396615564864775736406780172265802097645884778553461682710601810928780173135446137609271472373543912248369249833510112483159260584476409589721597949916004796602260415413976423165326888212569497697185280443560543246480825244710183685233403431064300340374100259456936321846182374122457669965613718219916721657779827861101315802299233506686350540918698642198927756191115383426644523893595105082911267196981632027253169567436264380929088825723752774070389028460127386748871857340182812004713229680341941515618385402240759390646527953649810012372840066303789914791854290403454290030915004528018858859027961151076711682621511048002065496068972430630099096687869101860967488581283232325447949271953922371565770339077288586302319218523177652636039657089965859463013611708423164839512525225069460120056634912279490128262490442197687399048434735615584287868238977946366984967503188856357850023589606195819289356803768853928864824168529027766727623620249941595797601747146386730946885253430552009173257373526217502328658233844381266684545438597569018812895884703357345816247276719889676562015840245652120668370170893904405360954594372514518432140850877378854070573267655228808452784692125983380780521720135984778808322972254633088009016548366902104316421508856586080028676394362589371097347619793722029775122225034503579194611966001759130362516202015751484695714898736309787533437545613906109416123888758682822653852389394704461757248508816469554902139522032681406109679803029803157643314552598484319965058057413438548543089936252377958045640695327308706390852886501018715540276090871044283898209994587877788041297750849349059107041298305454782399909997047535094010166720206223895171997605507417859475733139527078946577140385571329665895160263785182204292786394103177624438920223086659895294172746463372728027264707938218090739504225105283204168112734336573687287651724148240374855025527812405442677215288731333430411770419291496177080617684481793502223641569878518693546812780777760333308618417904089035842098030077325404929993481453969396539709064827877426219144525774723518277355474043868895358523409867750319593982118163289944295632452908449878822351101626583117707960408472291264458285422439636740135742155100502325331806692555701166808647728911743059234862168617534565145507555615619169307429447039048258896851786683676380827110131325614300502725423279843137423098274190779247517046659763274713930747884731191600653308561777841032743052385080171608265703249215604326494740705790895079962141762853227732701837349508345767673721789399101672086460793101662282370644261229513660683153309927714096411018239657056389501381275815013554172376018501008420895189428355094228942571175259155219928469599236637684088409479544030177094822941528844457648305002475401135048736304643738430303801845207654808019328142202396651247537257287295921018863392638975232932469860555630456291919501627308795547895814137408941716276476128583321203837415474806237780159508358398016385654465922067664281085184607606781304638378001872536683209975491188417441260405341049476388693234843353637128321197228144280125453839586824789330372157222828627454194151325059267072335304719662556804439612764609315022801136901047329893367847078836151063418897897207134869264814103685120391235032657008260470743948194941971742014327082307346276470974962298519873394656073075875019578382058162865186063921661154908805642273848749491212890897421591771292831030260272235538389510213542533194445067190521065343524276142641121303799132358712067804115065730261814363685019932045815217313119043971769449869612663297701807479628337128099055467146840371514148406169208898768598885572086335605807329882634348843099583366861929950421925092505048505056073581935222172525810030357991999273925179554838672422819520828796000095930963475375695207488193327680969947857090220452684219478097335834814167934021548186300155638199557934307804213443334802060350312993455808694021784801830118697273612216637088416769897546222684521975894596080192835046527411915455429520754227952616886774530072046935578524330250778738726932397034872953532788857658785454009744417024264487818548675536563258640897653247479936366905422709923063632318126821291957831481277501873108773981497912808009049833305492698906149280327603818648800243940603218127672452417557063710688580657420342057673967346298817915562169607699714467375062547050363969786542685461171147199313643120058902630162277896478438647297772492201816831364752022122697111335675916277996479584925339027073614072910040419371860818163871974403329485502233597945917204142587129760000358907047458482557482925094383119164537059883043304564250603274651477180181714252487406941871830649080851168674308073104559254170970372185750196307509533833336672951361132214952633256794498623809519950192712433088097368491541198808892444637865429456214094752648893246744227696726185980324216331415648648051262516051012540735142211634585885413608880110260117195091348459454580096300564213043718555025783954558476102546039864446609407449723581296494741484466256877681696766997853278002128637588522818877447898504239187414676911999636673495557838087714897652162459968468849560445644314494567678060434891077466811415080556818093813346729773309483952784608771165323552336536136891144522391553804998527060441571424797786433443442771915930366419285631983908015891622939743388272314217162762816077566675495030813959279848846587951151838176357864389222991015099482928890188973007200612569930724829626510145804780107587872135636105732224446655929034911144221238512500923420293015500946165322015170474999057869538428955675567518424725906927764855376954320947849241053135154580459846752221416847230075650955119957502408803849567219920302283781128571814453513855987284828567416297118078271828224244260837659446527941513266278058481093676464286018858986078891746973532601779540633292416854001742923982619004402017226759554841129915422296947303496022368964300582969915383544696499540714753119737036130910432054682826589608308039607219425064534306839304233295002167892999423595009153344385173891991883681647945394252982349937890228087447710314690670078639422298848033042866760805072522832855051952379365699441709021882119345408841182218740710569123647223170484043499883942870835536285828269232668069546967155727340459556592686541713522171875733996506574189979244949629350567129554759331158981874423114305056633056655259877473935010280660543370004399183897463309918888823052867283678265078420152978123857415884521773827100667390857365285072850357317484648314386921709745424816782564137895319350546066041658396078412380008926558323203224542381038753576185014064381831085617501965903294171020959724105999915700921734351422905365041508485922716861228103844844901894674738726089218191888442215671746072152574127357336927062552585243034177389373606579803875110768779713560055456176264909934090040504028185769797665186599099560233295526948867675771305007211060123875010652720946266454108282350741414967461671348014833092158926374241935230328655472145908140458420439528870153664443735931691724900757555615703047138980790427686491288652311456572752336643148307429683090008769042702875175532151521761437663063178586840979840081079273381420285960246849275181104007936420561719487848481812931323508222096322971297011928106920289201615206284022969097380816891914227691234033212849994397778950361517726030816633021830896724291816587473422929133524600129632592273452951223870531436560652072082903483501105309626093168498214900360454230425768183550958871826418038340910789564037304859315269062506133922673412950646799646343923809074992625900639455624940854817667613664708580092055398907697474697641281815399613292504087208229958977099931306824444478534983927758749811369826498017022298482803499030010420418213727105056691885450807159306067838127229030576749751043643204258174022249912241902293279205988005666332933198957722884588701745280084685347096064514827915133356185585819123058402931065996388937321892852960269612681853765374376211156429809403418688248762823467175899210249015294220582565187390803491515536881818798939923646720414190321571501953166308606536384295431042680099568599421975015189424674625453153605019394957170440825103880093387397529074068516973566355448921359597285408801528004786092190370447332052259681991328890734605966441497314859318773208080944459825756383838527604787730103081467562479673633389960232587306604879896659659834554331432240159849153973956483494511926633313505151534475080483912550474653811267612502224298290735286567066204018050542509115193509070941101323164450514621400674714925289665040635641016731303850108542385237867983788144399104101559564709796115039174329240434194174148997868308892887689778568894163542272364217366924627642571629402446580164336968071838774211253103609010686084333889586080537835590194372776526326923652288227842715401057592092275947074104196758463537130243184192854845695395591691175835745695045483410608543473871311098269962026174939627913448461547188163630923490659473968011273910730494922953603611139556794671731600976546081301966185014109971136676407411089469988464014119347051929825385483653142214404982133465425319625588559621923571513036688256721680018862761864909175978558812042084554065178423822046179053032803561519567858395722141786632862132273132003161445796603412867441083825063632114859486420288784978051592094351944721589241373683250420720280454626202895113047101944728714399436370568412314723380455617525754799380235055772802553358658851473282756844939746647930998360417539128010023220325408314556170484356908275159361527519578410433703194650888711354902956875650828596765449283245650873790335672723474320155121057717029017901323646224188473527594969271110469625805353155958385234145225496673189898191623456033934390544476965229673432933721392978008655265286222780061410228398089661141765492386296963878830138507870563678849342417928037897176418603936858309725857948463900170889990218132306895443326425760851283624881980194124245346523539935570888254177305912427194401122910021582213240325767819827693973672683332748000112129391072408786841906017583973564461513693085479887535409151846049036619980891209841502497906208241657076521236359728013880139857652573797001569195856717895822704697631295594730779833398976202650488067802371209095049949193723707527916312851757183876910386611307874351544201974709519687138331593814299290277154273086587953003573602888485807854345776079423928666825896828583318709084847162845723176766612824542935871253162972117430265903377589432169328349040001546287886368293047656483163769683632716909624034311845175272098984059238238377379264131217121171168333317185834139718683557979682851366707465273859670343019709663696831039519809342219123651607710398389849988523595578876751618359601937999782127537109391088438166405441381211667203076164372297743778457008900001147229286082277447703027446763173225494505569282221883690193417939745082471178398382256860984356413138640826712786275000977647830333365709392325956228890393063959675761393101141696414581281441887867808897870896198242627494978547963193109204971532207561632680443176151273486632314596543425650968685176777026718014310524073200271370710793160859109826946406188457819273940096951985190845516563454243730741999235984236426496104800621625388511259422975018500559289610040001156674437838558401714076912311669111425675233263649054703337617051572471467644636459972269744856027280225848403835116517892211207797194654004398942214863423645989405959853783636832171228873177180503824403955572186247196970420929672201395063791329708580846343428439690436304766904799738035346303869227935346250501045442852052372199001681568044870915242848089026087304643391860830425265906565065141752861571755303919346916163349389547439995780086378484167014581863357803192349070185002246055340088936655580484771369837999277649320953332622841877533376717744337734982840061170741641417306625258023403396098153061367982567371250938908826493363139612882855147558913269334787687473929656084275935511332267646869477722850415816842580540521853607287329807850638911280522941232767568001805924505983348110955980359056845775532934017050234234629097842626836826086798574242193764491136182414269800204784024532212219061900447948499736303610578896574000473035495237781927131905770635625257234767759529895368133324840460782563163680647368064430482564643186224218922750294334422043618224875711262260783099164707994174990916327137829103753512272576546352963137161440684716150700396388980229511383981719924849743915208089938254867148023030100609600830019845195037114895177992182104102077392144583002183225531599650323840258597297155056896804369008843379483405256424258434929886856097814095738161332852863662517955413082349719337879173492420553396970009235849879231334550421488361078253009186501649458637215949900544426393031266056385651506694901585158325314737947994667456491628034189610576884322334010958664683615940401264348220462180174328445485917657944428668656553588587611714576494209699565952828961881536341646741276203405248220515438526725342133474109650306883428051999096707284256973837585784158483797786598901575914050821021563381679440966253271381023793831717033854596776778366056805879323449112131046868179790984850205479780373080428227189116051491584033320165002763684368886710203084335897220627057445493444713037539916845897076831224816026504491932389223034564549417291576158887267452906968820274151479566570538136589259644745666412788312891886667762728690747474623136575131728833571610670198381681467650103183428864238218429403990029204847094877107768871010331319078584680899288100899520990343545524571859308543813343908737133626381955713442984375037281543787019126861310600934109471273252538550405688150857436021645042956615045562033126505223151621253379951887646343141367702644875897348935232239747197628668987484605840644711945601076162066058642996319750015084946794894128739458760428463994894722117764079193091637844442541002800668676690329200665982574612964248373515366115108568793765361834801075027916518394061665525200139006474712883170069659610703133333650085434094061070785092031624469718512760371344021805227786116115323039570439705969632649373474228485127679142852686523145752977338942426738239048449453480189938170656659834344241992209353295995639655809621045783549885500499838646483050339863493510324587361573022413227509169387921426080988845470326487375764153188233153052934697266147634748312174132675584130822036781476781890282535170734986543227087430055784625525552668156776189484657834098707526826248880040954068681988620558725315668214254004149611431236472126131980021626163328720964483593449480355390958013105509115890155828794318948699020166869043331897952122247127660670072818705585752606682384560874515712125525812230507800525485623939186281002279221358001808323934799584654230968706672925781235631233248331257361334259365559882004421740794415023269944698857293368798740136152975337409279656729306834085988174943105330140744432807457773193068965869159910320663913402056084642400454202732899403870858624870716278392542523467322247222088883816620170769609686526548284220197806969515400004456225083001515002497303175423125206568078612527461873273561708355869071392313877062663955219242884378831766368917349118993170008422596953347389337170125979749979386824295524233974894421400864447992031124817857056904420209090854612492615301259805780022299305930418842511451090454648610215923841872336206174269605404251296425718856401003375706563744783104355945245333545242605779508469514976866089104085572769724312506025397179294956781451011482718822861863092214392075330420509328784197918893542900472905473824647361685172896608869159061971418319348948683181913720681603679642332672310628386153941524502550059461818883276855388705481234365339660426636094659456039537128568198046890384941352784855936551854159210271732176450277585162459562926409853902745813442604286932430122656126922585846533787276080919035539632197291343406536504512905177329934977533498562900008265710670175000521348828566350631619240205821493554933635091290069206162589879788485185852057953759274125265510535503537826000233639031098707913001650070358661729300115963476582709097151493150338177686953433231857175348007193268432354474401734878794456311579958382901131412013070145047936237044834576762365945066743663331112320393268339716581408968995518212803961935724325562794124106477920213317271825894226207730037054604859343229015581675946615437454424022808573273401865742183410134862865443927722836054501193384003247653725136318164112330402162565522826165679906147998732185179277469220708910477522921658264327785435586632908425333102007942292472138336781646984025199721901348926644708603613237909522194803665305771903099937001040406547524637318325868717383371613510614665484550420575931671292769759062354966238592863337728520420592835247934278091295838102930759404498426711135184333145455972049025367028501767316848197827272956798437263061508354229020824673410933180951690057143760400539618892594408743882804302125961142251916304520464961964294223472944213931446322455078609761191766429813678421609232126439653618676091494278234073262717239362915934798102364082558968558996407225204338306263449886271816378539635026084127239213713548525321314821112828658812834840203245979912485929538766348116364257796552166390253260547899045819093557078427666904586758894311981764668725615738431337852261364292114941033869498543986892727890648122117774041624366741379106267464247567962232163441200441421092983146384562224571211061343092679752526598636059441924429461964621713965036305845979935208096883699571776877931887691278719878304546927464805731910148368003124534054714057351236922167776559953428339795509284283455574262199528180567933479259218331802701661562402611479036656506900417986731455819945124886319135377266017822374991784133554378668696628590167800799460862023916088885399194411111477281884155591027166238689610160941860819974824983115594580211559870364050551354610119713259413120281533969261075498576918002063912148308802025498197762879439974073814053110264321674218090654920727081534889933303933986954369981787075784850937625823317327170079739557371917347858836336092920013322085546820520661080721308601193285074587563710789719568402900677841241806816390054321612996681555521213876455276776442491008076876213349840746776293899249998827180790550792120770564452150283248207622825693102653931642105605490856576025066287099950010235001316629050545647996917014988444773719799580923085660856825630530952642095804682601696924691848208785082997108953653336460389542365841196489008242512825399316352480393081885549591517685689190422864586366547670855264663623540516919287963075025340566050837162417566882266904016373804143164556753954994636866512000932848500685544680583568110348024122451460836159355255222370873213816585274767350776824374586035188931132983181209476258716902583685912101622483131981651380686762736481696262687743013385241586050408155652457966199083108926750145850290946469691428676459410514287124226723439771152427908376809637248047602500701529151489222488622241487104945687373564263863118369369136131729249068293834661426650261600713621083642605051645392021940823278991340308020301310858083803022716306774800501406661565049220316771997293707094113677413033836501246106100348428809752440055350779153443172861200047231342346782966746032194513147525320009919146301799027340539602102249085683389677336011861535116554700402266926462392117036785390325244010978510569168357663470951776418999141091542359955557107463218204641822217414960853876437235425630241283091827558961507502257640125822161247109158655400720607030238515216402805344418848580385750146977532171115597671377948007403678852682980717276890371493715772728292078556682372559370209727175890997201960258406405408725297745423683471948416168583973646686039556935602314243354867543169600203641163745228919946085839835372843492738312539461161268875243535222797168751627513959341123934371450799915872782426286643750853251298798929529187577534658390513371789986825526524440102317443251905120553365668366420105698693582372198852738098589518394437964605679015661633366510760827837906200921617289016973261446895908846323505937264628151770296663736651503673005499310877202068255203998546811795977823656507655835721458472800403485620107857240758972254768425782511357491940504254226206346811320138512303367369891263898998166063461063244526325557429519800769186291727850021457069224116291187861112968798331885004832529550296776060059024199762546246764783528025111437545554232834421062106476128466582347969075010424479239599081474552743023573793637145779548651751537284113375179643899066983557724176465293407109834895747776224959742163849919745151650170646047243082074742826701021002298345828811035250679547632280883349645401084721193065271364921640581871818967018294516590321372166501955376736599745272681171506815515936705284062946201834270320806235247029808365668295304737781742009677446135526301291658649149860229918018578004012802369187949189557383379291504158806898032479808182251947201307759178523547092349698255673178802373878302852169786837561447883153622059970114560901555545597354623155516488113471273969080677459811175149716061599095030574055738292453617558973434836436186061987442035245825189277607727645742881056445038323238959440973662031985925864593886431124082378916662710953659100459640528833886809085735252889404362670955568670960218540262074867563049443019656502863988868814393968607065932763300292343372676555813262334248550000282163476186303589886293009178393885091865138105655284835473853763862598993572031913943222361848236258444999277470375646420780028933853604081068090010012831924615933896846077887881122831567694858713548761165844325522144427983558022466099857154378604043006755067391697802801058846733734686361471908035890673921725774896757815847088588643157937201202609469618269008165262591340404427643339420517579370120273654688570281164681747021010069934332091226237810184149276115421708784871295553501587286326308613416498316640650924464874886232933895296257676928547309973459620483039253335395213211748095350660841209062509783702279598242349807521749363208988226003091634535644916181476975340963101182622595654002269261571002160817122911799322489057634710796668353012878296783334887594619162488510305869828876484053833768646511818233165452966866806437450402625475030610481339805363866839695368052728202592499008234533260251109018026449054797093989398518339158082563182884863848494866585995063017168823195556553436051677888457769039692396473190457057803644814272382373784740463901966480713750835554432417542115204054333878604878835397020084500109509561222193833381718279613283483990772597540720409355830784241771259086675725080259025187051964139307784765649122358129179867891300606996897335288379657747791851880499622788283333674943981477998808733784724772938731925212671686854687340288430034575479879290190713778537478758546624817635846720836481067011510654390627565088081743897459756410933481838711503137291985185867421939597361372331293755422295967273275465266397847272526172945448159491483883465148826110881170650679120630125448653362381138924240352606813012097207241759667563024683562827482969296343452545639466742049587748517901405626987746359294882980351545112039449144675813624014574465024670525276219007235444216915996836449613886521369449488842689486128134098136634535910874594077710809744766566055947899890376757387318519183233725273057063064760779629327929005905721544240911874493116814437375830123598797293492445612780871588647025858832291393165151000691454231955670312693063644469046307909963951347894900020282352080074144111549282275606387636653228069298285216514639494975378787822631231590686906854355857514819895405807693066020372670901308400405527403586669947006512701379156596363998537764997495228722125841081315311514736246566834441268364281907571034438830290443841784741748335127100763917936562164335347890457371101777907416663426757181036827299824547952608981939667443281164170362210905412384463938306297712639370707256877594398272506180419620083549944616695433291299306598581485160179900461618076943859785146070384832226296234883937262385935945885318569599613112283451297733795768004903284476082105843645490082796555055679352298956764560395779357184153904038629953149522156641836364495408237596192497032406388185980087717746595494275456681678709503376197495928443388680494647869462973679774152339727505461686176624108058185858727995288920081091529453149823534384530305435588109083400429382625778968742986127473424959860707015793888888814079716457493262250823712578389400240493552390671419991220760288672091957855220994251115780988206319627366313401247663304462477011107860802694445142739320985440089847466622559222991716284336253904086638298152302553439509082168710545681900996966151818853335385576207841142129858398596059005312053074228780489739862452719972173601682875266427290315475774567209842736758191491461374962719458552728002762546414714136657568691441093431337541099145512970646388705153016608765388724974218903723152766755698687847826292657263096594743488910456498171331849144097009205626645686601921271203613673296612122156922518103800036150660632389689797765052125231347646272309270313390779726066011978304182859646829446814628021996234375047983156702649172320445318611583870102439336180946931293389542904324479074898679825346043009720311913282879703358360820076592890358261451929207531067757492229615745083103126640850460927832694169400123323691593862303667484382097508184088377983968769207066867480872156464645356484191037825090749325030863084700960433073328678464136664389627422214498818952924898768889763198274163899223006035472103168648356207644508091235075452945733309589408387549241280950766648920258215053240657788976007045346837202558626478275507926943708061559505118998065957227993759647468667010058793797003954901769303377560410073535425469241677424143457810722873878445487895800302755773645607811302051319967460108902871256575175777953608598308236455426192354718850205701452280166651666642800767756052814250846656075977302879156238164618117399568515663793992488995238804994818765420981471118764441665766411532581187373492076040760977633846648528856541407057467192527096325365935035763980452028140665349759080430748833017738227649221421602128755722671072744851863992817322189581356638841069318272133335015689901321791290943440492764940592121094329573705084802023544221816059178797015380479041714164834826538318365306492636759339002577671365926359745882009668084401577664681106525854782360565584301090325997250275722938266490478575397515450799341757789508782309222249265799388176119892535545362951244837272725656918980470162195048199172570269946039285397105165801435873074218168996274917677812768920454191724376451595184423395270180454677630606705869944260807915355602506294310739114744339814795508660639351497638706227265086041243946289268402863730227714503438599436873935038389728716065812315288104067787489605603451148656313432284325999191049583799979341339152920630844258154329141634866150323053749156113543460063846044953035332596306607202271473878848061632433448916597359428380975780765883934939624341159074564811581061567872350330520287608148602625596693176184048045811442470668549247645458705726975716776927338710575610146936383148554824670981893640105607443017474271838020286512642270586173153872561481646575469843322231935988030320147256453427078873763659178680951591849813915997757491088140645650886401008383214063478955059869876194530678660555432153441500099691954745641571580893280828967188770306850338777487476123071760065170576815442526263211451879097101937731666565235801126054261956556046486832773791185807393911815834073640946567213327791340379949559491318661658560716010598723027815444885707396665119672227133246553932870840322663291736210473081103606457604368536626005754167583929703113153289758590443934828356265262712291898310641967340234979369162007738400091331868765598253829921132135325371304311142062400670061295081562180298011195846624387664362017211357271241175053931287963009609436052333302716326886848870180957556977553427198485813936626172020009008484122449096661617891619725492050987215332050168268994516235101627934021181226306637816863420069942647510894685399019331624857321312934365654905668381300845889363112184200649462979379101619357494456335934048323839027546095328179521054508560351747031068801627192799669030897885156739437050283728389665364200792340511659984188044288684607410825152101453108449324758811390046470471752324607177349871467817423079323347700513783258531905131904943880316628700853946233930547799335924792490219426016622625234189202055641598864501786968488038825836388945573995174810940419399152926952173269560101635786379169705366044501156033849893377919587717331896857937926517805474338525689603730377813114372397347312072683690911033446487811556382748153653394896456453498990580537254752500479392029499268850874418494827813549617510358638262717771140405476122855534472867010107830610448654800826106133020479364791033821554769847874700320819384974512781895664050933112447338324081918752743709465984618944731595460865927296651047106007376058733362911594934228404950733923195655163239341928187173595050221634706566948958452270929075044431481491812541991719422158577891614754479305634499629600059624594148963285203046836583443759381123828247740451372078710323646162946917008166692934311435799153281246916502354719043987465226823295986688794668897535646705350180884337040712075821332927833645177259046710587223484460845706768467555882332095829640138655713760656277191448904712204994441602329846211485404679729915147284550425201876390065072794634253152731572300705874045781137206586861687674087512482148490051740576011109552058779060020560776330057919993106527914861735835336070572191117355606440208169188075165687431098841785048736281337520512157263172413529286147349659488026708125683346001122573687515301356805121534717050653074529009430522365870626631252347758899705278343476069918717889140752699925597853037254549748173626837970762826630705359593742307229151473276956140105505190455686348844165188450166855101547572286672860981065579023457737251024235877385789433755576564232477380848539090367051561842218462665473907675645495428383222704464027684926992086658843950677584355665097662560115401935044860160486970970887812714767327566075740640897235127406908283365152120116883726302009680907725393609785941916834819980421518984289424693417078353353956596724603445375509596985895427222879881641420210227215692826077526797366178242003146443892053054856379709059449998328080239417743994001717510435549313196294327950923361979388460469950316239261989099738635317273427033118337359238146475166062695512891880327419775439159232721432936688332148440735860249177906731226164717726334850906823115478209438049892320728570665310073030983419746553576002216920855930073519992300177435718813175449891118774602112409213286008060356382037418979399500708911463692425326523470436722393472277547024121864879447919624512943308797114920269074196845584520309865686788912806231903020965210759902968705082232439852659849163116383371626189603663797435174482866072205370047450741703700845535304181424257248004448712912394065841192412318777222779596227186424667356150637241119064858787005808720006103457553168032166536075655191907411505683975887806123566389194267218211106022109552870310353618657495762430850172334157767405034470432824124677306299087241096355370605183952291803095010629461722752893981764937234738895227013409975466739771198634895911152758151081704524860437401283240958803369255164911149194127463665264356932376097291843975665224976505526858968799957089344703668371764524331666401407615048695381027112469274384503150754540234601397402539904835408427883380094996119981110580282221270865968384222544241988787442730987700026868697281830086846608617407363997534764655922699536955023495569321871432494269452333363563798445366182983311371655087151599109701209108868238601613504615283140085104268606268858745575263859782014093562657950090389196076880182010449145935414737820809843371164859314483037661583208534322418201721127741417671004096352871375349029752526273179033714119327474922257273457644460797458183022347313699277942597092353611808953099641888746278710508837020210973307930066103713908713249854337792433359639046337911439023268363152561902232780759502429679437222228797099985311528164563246241081538373330586299806204322981060754246659822295882500118096791978121732117315629160511943232575144672745156379405445906617534029375154007418144792267820766159360923998598872158721917689481457289895566846453148470426942665247881296711033277484364970100355510249588302792174193638579550850776074631480364767386751562259888863435794156359968035553774093784133175536044164800310754580195913386096322379073849678350738697824601600715071327062799052791128108045791259904910736693755719091600926562941342511195796016642102450100476545105674700753714730631505235473209693511822920059925170057149579538583751337069900421886720272747165981695938689987048203810408687415320810111188480628378130203987979516958277575609874295098446743758563371854989470303506397917948220274187506799359522792328511415802943018737259007857021811603080975070029981202299807608064392278642386661249368191648321873469286216811718402416187484037306071495346624003471248239431928310209697708510165800997659042921849391450000504761905021317583912866108407982714074161587004631474776392597717518687057889662002945396007749554935799958424435526870996131163755340152757738822705607180943543387119282462180270493394552457622866011229655570798491857532475589638574345913865005206839525029602202859521285122125682563352342916959899947246694687188986857063891620057199388989987897770953433885157361602274798616529015950744725446572144246289858568344269967063818473656534374972865719797841677588790554926334033377175979271390782109203302148279412757783995722012449672862664523296336986801561034985926312529909529974296663253969970220805126449212518861263098243010920476108844878738757691014783570751014364040516857297876105433796578274175002139651337854379555820748229612886139504976906817910278038390853262736516305665424298634390696241324494660539856282608606580946344558249501795358491394717199855756181616544662330225014080624434325188612585218126537610861580551349772047252767076853844967125913260027340342765559065200518649743993774734548374385482023287946382506567854523217034636710608972452976834981842279604249839892916391431590606220131707164946531735683812862984716023479489746925948211463683453627971492890419195477282156846859904118016311217152927813324010023425101512028240977789012501032081829688174759297848228355013283182958844328125663640879057436653079013352757248239677816073301297674721854471768467189352111821056218491085687263289444696865092446546876833186942181688583936188457587915430421693808757843574736498398761055410680607515712685944054000191505874142410808183546228408000564854175496087020588845251622507302616122214667981117999008437431142153950726735232526928838967639983101560189938432185403775161327935813816345300160295082080518342031873961658023571438347137043019449889883929785885205078676630289565500438818509850831081823641918308991408847604033452671843764860567151266243123966283230264478937202254213136376782737718822677755345278139080543958744285259590982087302769421184299415037530524031148541725966722985023358494948452599493649997887996015306380029831337024976290978996395323178901973114563192955355786935565609309199450940264096673799066750395996355536093852060422100515529980041695955687119812255114879371518740497849617500812970620838387040645909674514857817432027692340261911084991663067612096068646378045366228833435628188034242753982003299908738798472467316490984487962551190465195189739329485089498984401506351627140551238591950657439208579354107162474603623967962551508280734990627879989595255915047445933838102794088795097834624885477819342603119269145322406182558648944532550911204114390246753651420466182514258145551911037290234683974741844970035779933327860972103963340424780436730632251094941188116483361751956083356105723732865154702747754312883106207737501906307058407916651012226125627012414615955565011986927765753563595577851490345580775763440062076960927308166988846704919429886001994219223527007951977164548502179212802777621047681744703332143962181034400733943083294032798141354100409233206993730042759177127331706627537615366598648707055955441768402214167308600670960313151857659830278852191784989255852230912262889062206967877217835846384582508368008677875544448596213560522351211486856747988292646876026261238192413525611229659766092006416337265144391006719097038160423679817811538071940562910398122516059727677583198176127976809520436189327562774159266648655199637647180694044767483387050427544291193753378766158716367325068559614695898856573896316889720712229736568236111660638779662659816666777583953974548131795948450167282318353704183298388239639980966833208938876934412297156614297749553910141521097580690722637569727829486503592272405826574828390196598112130020177383072756225778832791990322128096093380019217628829898632741753660463335723682722563755230842971449951834820306753398046451382362401750090188032376560529060449477037560276585577537457856367304492694529718796857589250408626010970079609329150557602216250137739075837174055310746220241489459116104412373234721994156812680108889929989735445733109763329307784696784663523200053770269382565044734405627712538000359997690766162982758222214471798883256790323658502287855123717282315140183520073669552327608587941119078767663094291946888960022448428322192994700421351390932611595377681135324811330556204748851477802540792302497160564114734819075355777522114898108979004649723848622757634640492029017421085643830591530697735548868056664908788359226453627269546801612494495731370982058578898272668999942697793197591668502976213229047586260860505914330558378740719320757981869114064917524325057813133391808434320637882524738710749159342208294547518022393369683516435504810668653273834209996584051652053972969179522852243249067556253932430330272133123574154467903924686296535890492303330627266322660566452118058937240451919644590436090720753546334365161742460317248383225790393534006374757288392244160246973199004034413265592394194386303909985032115205624204185357179882050751028474091743086239688459847882567901737561670206703552225535103969884325831818857788924161968384813878598276973442929826937144735070202580444091818240735667171132511468691497781104990412995289843224720428345988460584518845280998580777767942810570087436359787886897484689363412791523432529532994247740022074480763494472229704351057186488178717744140235950327873659120666539108170872527718394254229540759278008443598687082139268275281591918932439107059284644901332859347046823068649940819756830967571972860012331950945504727719324178595242106354705539464876129766114538572008277028822859271460035452404205940705785180770256968691008362314984977034345996250949015909706220939417662995282438628317024539679190446642434718979687776860168928081234480281397900755765064136421239345894287497257463839761141897226781350027708837806013175540584615644061872104999452980981877365346779868097235621594611653098529904446560334380140969978080540727891805742635666193819148578597381259808203275934662163292320941728782451421353263405500904817937944646422152222715431471934503550926275039604103559792258590838664993966493933695227696455080547997511676708509523995905343889956696890593973534929821988709164508733074012099108518995202669532647884084198336163791348123755138407814055183635617010762765970813530373732567319595830329216304540027374390503896226664779917973897371739985829207903867379882376398152879506977690917308044516487910186773348709874920684182483400034720912456674868686273434979359153132183876315450991361156429701567070072760747072144204993980683881755797004339385573816070757227121966893053425607832411871904595098302572146508033563323372699327501943815595255993197915100021603597976973206481398096008844689077931467946381693813484975165445059533749274532008097815894948233516484928645989546849742376910324577442254921076900995445886939976857689857058740958843121353328708744343324686949756447774274640794042976821367595895335716907678684624362527286823971292858758534549468157511436230176820369896268634177751699956025496065251953947654451469889512806125162060477766545253255449942286694060765560568348158905723579332090536483027926104985087784864706049105033277574211788121574436144309586552219784436725330836118221131174788652272356449001470052710629339872785746098485241824866847024397586201933208365459714530398854221968004808923564104212188763955957745410569884469363432187653936273748569479046739036766326607368294183217303057763457353567244824114773307015245284712146462643709280360817667509114814957132076874714768363502931375384394416915208219640404685972746552247253836479809357437256159730171471908107884564558627076892526673455168759690732073716234380041980869888430993225703652129730411450494442187505380494739512279448977670015512069281202510925568964803719333436978905437311458820084245390271435421488384011736223087759361533318391960540474570145372163389292023716844855539483965187377415088162199082470853474964936450495656416767110660946623748319534621295400299460769828925155710873041949775519813216904902026614491784278184862936413422925246167097978547282683056230496353402264338188720739662444243664042731027337238772492238896877992396685513463965204260517093231530387492896458651155808911498524597695613043413041834556517322198600322618753531731243656881209903978981740256653280692570788776211031251676816759737799563189793271403085885735917833622098593652802572048166317542668695051136309715498020368323709350727520657878242225093472911594458774610701080636574628897913523943710886817916607384381100900650563676401176917096042378374156391387614965167993706922038750786446525159180177323099474901449445030888629069325938087705433093626365180415873223159911358853193181519603675565897937180551155068824853677295725307044925772204270437677511378298734554136966707676266408616094303694951485593061451326164317811699207314946091404487947938877253733450550074776653397817297724402509323569355850547380005669873528919514422333743831705099962773567494171441183039182157818875534934031878058364153428088191428039628881175344060080750920116783244853656393121032305479931534068785619147209300371598554004403521044507511789378356848990880920922865560789716846029538480576687082254811432855349214318756571559172186565007662073873065112614443189360147091571475928425508777307192922683301905698717657716742894787692387182714026695836037603150112693124620139453376910898597739217259102933907138846536084177400693202639143190428820566918035801555848352970528195990568371557003303074981214308019521723861905100638995852979572890595871554027249171095025599080084941217157313460834612538226151394519402967843469612822624109151615092845868166456926789890661716955934871990126984920511605940850945263006065525304435245976246436631710743100672562070898243160496692472685179731209398904595206832586184591805059949531516264323486205138689117967125154517637322650238484825657724840973231965208117045854868038975784652730918925521451815831111740725214635925114094891000843325830839235667534893995673647413893081925967969623705232946027355384352462868633846104241850199869537786080958096121266193179315281363616117567809767670981349315348388168001518403898942189463583515930617596287343511667543890287676620059907342868586817055971155068960829976466272666622952279847395398166258224699565828459951589847430233792675568814550555686948342371069365848569454699949262571755167836363777322784272471430107707635499620131004605260087026981745177149404880516403451302906521734606241439039436795050836979537501471536822313197961120433169492816630910299474058912772904940452256161615651320102989497360624285964980955078256224310020610645508266261096136546190585834891413736940706158857403459746831015673967999391160844538193271105607420274482055224298676351899768846578605014953472945062966141395729656586928137502423730198366759649252074185987545821165356730764508628979354582423825358874354994381613292196540644137186368074030592202160001691896011332351012579717035415135140296531534725627485916859343635862021969237857877583661862453911207577768173370421014773632812019884318149604426240096478463487404382050848028280125713209541451532197411950643497359956268398053578048763106864327251764672281181729796992678311763533501800537538790510194328419189889892116020971392249740537082014726842943136696920267477523696344480288117174860426041996011379671976948107351329702604457179616129231889716193969044369428703570816273413575479211052265366406656913162645017007413977654928960467895859074550292317450133583315758213162587758915621853274267927494567697661577769299855233853636442015948210016668367281237784698882155651611977848050923852947686399288024818357631745466280787424460849326782967356061584200844858946255591517535603923076611926209678363806392925698988161177430463284871711194065607242085706867723064573857001758690150170597566085158668010620949035480105065294585150524957003987997927123166726440525377555575028195749518030680755657653853418115577261668716654255047094414302898767985561064181844945106843006418380683455785364814667076493521500932279203376737808141215220633618066786897478808747908827096419728755016538691067009577886678196284811338843937165735642368289121656564548742205195183302034554411037852561202456370921114724656993207360550958341608522179085349131192950564988982962067523106594551038987459102314114041531380410774631229755416169056728872148059725825947700936947138230838840967577453038465465877811992151700028829926743308292502533366276565116375560697160580451571047900408976337463155213362839717017228853045204940649502156596738002981214210312023949646184939058076964320235245209018393495099261463636034846621681084196675003126978150425928000072650464229882646455585429939356600647455229976992186404656143363581447700643769173266663843136768370651562950858405670979943648201381752837321929440015625703318729635358662598042194585923171238905952197930590621401434559468350474613320392080166804785909523940725773710643216543206600504829476866766151042729738938980901300283124745378806665675115569278425680161033889777062319503972035158193080256252822697209203437244558437337540709333835625295541941311526675102223209959064227136424170131129212459522285159987917199443470928415569501338995729964032257597991049906652426023223066061973581462622347493966196439485336066328587134322155308893340715022864962351661384584018982364528927725462507638388424652208732994134078104380964730343143128841689683979432888876682142541605507550007648777153327120237666132812780631553127511779968033217194453716679152203585177029154876463068886563516769306787819755898293474273419837036244846851993115164185286010276202173079627234650327673855434326582232520341836936006277226403358815421640540120554193082816756188393080151554672191852893275551954085329703952507828001197563173834851239144530665013895819226956844959842864541252555006210462788065789009645580087442619002799863842555720755550115027599050157127069292499224525791665122569199410280210110008067045103792678582640298000989283247657498310798954471443975229657328756931312832629814178076616984826267146353934070379229584652250853523712010588179404291209732214208411989674943950167261143837313252973604125746499483470268059974837092148001048981013663871583675141293919590144760678574602636006269168630854436697191762598681893439793285576750610711868709123589563068023647483114082162437708235395133447274017174697654840919732050197770074409072018323215533239761337429353791219916846600385587401973410406920481355404482058795230417656856392946678022813673239387594279575139620240595382783275325831594294550271994616976852317990441304196172897676915941400673514295882786926533442434101151125774907985022702337490219752245603576516403671089509812691415967836041738926293751155948179049328871891434922952530315660695725580531516118415342962939008250341271059939168130470599521056181370083486451228844504146348116896894518013596362591956135992937242152569737973272472907756253161807332549379321646486930291249469290359430027005547863526606359212462589169851272694429602063399258403361578630222182886107299718767656292984854082419428118544014681129716189877450086309999047329671674074987722559492304540314098985213290910144068329562351943748222804717958844848043660408883446917335887265291408748492849291470767201553165761289344660392950836808929215523057151102955228125157453705426582502596246627869855968504206921739143091153459557728758325094500481574742953946738835508751012831069775958350073685299694083799857087171544223439979694275687455623156772518917365037900397325436157297315691513148402040985747661263206082947186609997101845020697847643717342013150983682370889644874696153993319011865739790813740937325835560168141386508193011403011947727029849256822963493278951623783421086983553561904051906304164969997249659296711204286344936694755015832653656392547005701287511083414412301114195575982084075518421156424573577170816130194726054742678512295510369254873089893317085155330596923713131074474784193013037222400423808029941465673272496361185499510749267395046097821531431390171661962169615151321637853651416638730550705653786305430159869169210039368566585625819651517154411559761406610665902659977321854434733110113249827465967891507060924645433775662875026980787427319775434921973917134118606442338776257812361204454588035918574716041584231071067374585795729825019667621601768532033661605591910041631655194971272374932306548612172469553669006904607740591396897797874287216639925999353577099156581927322493615006370586545585469625672621586219958512360810128097104256956014486393081318641301343972574100350961119275332976713345520050262725274279520310334375090083158119113232538095667393059103876042514796189052024464091505784841737582239226696807082256743091573239661588061624394183527568162589885109261988417781854371883579359176323675872181583230523824158357306181908514442434351123051522551650158585727052324799012005016356977694331883561736790084000389607787237293147587276962959627097291294019540325810637435495793059765275969939976898801068370076086421692858200254430744269220577316979131683943495574627440521241335267521871945451921661203382369388040911912147674228733829071188542686267684261711694997495249995465979806082107187799979449132099584687322680131229890859214661610060581532928879490233756825474763617457635406521313752108746615914871190448185869574255577737683759175323072552676695628724162709689202583840413802329217542231837792823214856445467211174474177014784047159281249741924990377970666636489624439464485436642545816968124328995333648382091290707189531784550444763095070785719796059514515510974099488633628116676337860850929427141692537618881308339435402277920555573293821802622867292025388165750358480775681959019165481093575879457486336488031825820801764186819652976416886290517309543513686187763148922471698146719164292850651521859358595830463739063841941215867094446708518722901102794878130410557868620981784879334742536465527923219940753760513450072882929271801717483867050949747330927577223334227016403599990355470826421723496800987818981746213556825361757310694761936914376238548765988334183525738197873694685540444448266362745184759674461091524799095453903132400348466209397384777797613180080853781743014304129738173446429856326860607714629893181290836042329067522190248661812258552736215495024078096558302445776298145203769558272759756703805481626638598229195412932510416605121705182465921278225764912339601929123381326665781365522544467457509701119394663409954962566603122553633911315776595975789569723215562063327158805300397912802936912180586720079177980991101136882144643881244119931033268126032467365442118673081917659664133032850764265078438568027784280276750856611878797252441837280884459262725032718743679019809662967385784212309192049221749860264256985580205049484712778431961660050014131253875496773417279622569849608005556254261039579194352725601402023922605613565433861993305714371227790025385844871913544345432486957429647085731055698036026273299260794910297257858688582053053441007776326745645543208478414359387311434601590955537402564632694882200108653035019812851513130727217668856345067254361279094564842712187274650356124854260114454563827127768695213959340843319844273451658251232274272779760626099407461895018325549929430554279971189879700401431280274378006475774745442265370807479476080464235576945784619797011671957341123840142417177770520461314575284380305739231335876434950427915943875540552024376482213316366086904672404898153480757944071189527065579369577112213685863034206627727602229956822975182715382414148748480274181430622851667127762404862372253552682232054797983443209667750629741544397259340658043955853562863446514200446839670162401464073488929327535105571893461539913715553115004692358293142988592974141644985491319205941122643721266725115926258282740169424573853584991052944185995464866659610799387190802465724516222958522560575967825360468171570362610208594784857011775430717663174757551778198209280756944796191135966492608424100491908041287135324661309680964631146050245205336432307605279141113661609568472497259881579718882044208003906026927168775920947385154185203749981443441399483500186538648113174639442843410504546676614920857870128727807906754979051143937136452215474309480669375641499880292925849354194723350712715973591450928904277037967241903995105393356223293994368815472812040260476246551410363136303411294119657803714079097560614082184836051316245349782705616859974043516292765828334796645608076404381094147165974368739846452522135739272694725720494283840598905907132199133254505095639046004129518256023573736987743579961821951508579684295199512280779418237013697279706051679988790011121568473100320987140126981021013606968255462252868414275460544536736195247075491240715598619343471294955203179863380097548802992550175772475061009817456550590161884053852502326195682012422235845895980481905527224126222096520359227383020562511500521454834981861336730912438865495824028807630762177117562316795427370573669772728896513533167929971875496235624717728714570647897292178051094029860556167611625269716683076097215051757201063509105630269925469142242083536887272705434807410220635805676380151770989627298437235342199988276557734489289108283071395048336950772541260412693670632709678021299904093136234836877779051869858426028065331221094004615491077902948430856569756444552138463849408956506636993287115178923377304714114469270101401513959789667428334096208434786445543569213521991835467560281801396570940384938425599870301974368477949593715864281292587736275738257662237963880204190328369365996400451499257057390794240238256446550121538694967877114608564620100048875953790204950000348275161448628134334543264247358074089784378357199884537210372582844962558073322610269551130006690081894087782235728874937600405245685763147038247067876312816886773620172353033260757153068225522787232054486074791240870792438203520797870402628284802015888724215249311183797454075353594513290598810465943460558062735044729361518235764400647921451403568941638704869282295281437357621046295298010170508055086250170629101429590047812296049838880915473644220723604848147181591762911402085521484898627032262986163401230643511431636487898815830932184610323148150470678973069220034945823009222150583907426473043856871948423353906816597135119001462368364900055349812932062247646150481272079930879913250410428214009068762208820357225545954662154814856886973146554316801880768571356790107721726413050178984742322455666652774333331769071358111147538696252205768858092490418629377912042259802345491770964315830108826780847540795097649449169997755480133006871024171166755921311348575105132538101137057038537330574128248790140281207187715672636182627321788667368184534558856921923913620573835808281196703748258848160118007091576500280627363993764739696786998295111090315275387506428417260454168784541731511879490211450070354334646077025491755411754781463504724581810957439102987536608495114774967881322837119494170263912474095096441680857796656668264694254062034815057844418767638300227121634946584414727978920988757895217310375728287784628710987891874033764944184176597465370231387401565661658282066549615269769809918355158183858438883282200714382461732829291961932861956506902848695094022639628095636119261136599469273324965116559225164185400384295898863971474072828536388070646797214699866095359392933367833009563390228268935012782226306478471892622776234617125961366254242380039791744208277368927999443906067023402598821061076622830973635199562126736310890748422347200044526930275362517946656260493791764504920285465295688740471457600329215925574925219252567223297694204551841705362151929677116983221990998371172687532984440273639287503121163150380210282575586145031144318520536257037786937386074340391670994766168124540421046382021400660205355130902181188011078270569885221791988969558600334431238657490676852487967742371210479888372703606507172420188826201980882078167534438732883486979100593557943543590584737744932469444987454825756183558881300986361923019833039464516414052956321838074643261342191393749636112895478341036879394938954755379196575576758474163455046653044429387418574187413148090228813050724082627172947749280084949956859866045865853653652300108902817715988087065625724030454032263708354609595665380219386075700376208898577126585684202750442735225628931034867391574331845981036485232513241735510026550353502303125221445907010500776337337127476896786264417158020846328958363118484034374797798768087717445310770720656855243436583009802314371518745059409584971722907571763971313869950221102914692092821600780908386619938695869874261536202204902570723796462310100024623199671739142762857845815828787705756983935808061740815497343190955461700088079059369550061870900883164983343633493343300971784076067252371130184282981105138834856632383238553285823258650986430348387596889555157649644855475490030111521129525299415412610528691400816664811009409063675974486837077742405395018091561360049374383916522495043127044909915154645559166672026816301917886073789323781435423547709087727112222752130440279983751454331025282118690220548202790029669060388798837901968134064685028612838940917017931986539950807786793774342466192836193354919882317375530505334395204675516179893316520343126738082948820612122040734250835676573558758655729796325013904002947010027855589526594669340990806611113072022342713954841926947387319618393722514936830967505040932306104138125753321288409634612969052399047430272828145712811625155473000040116699574065878487517113609757910864286423019904539023734807415584943139850353993268379570692303252235804172287360881579231346933868095058868853701562642247365216027079852453050446612445617707215515839268914330010600199898708296626741686577680214939658725889775211521324260089631345160084785661328206050757104117032799543347716834254196233417300573578621797506591656695633174357155932366847081860689750722306545368091553816936926900263045410781729558588368296147842279862485970928513924209088522806336192947730837154758834533359202364101688711344758900096245384533950190785600021452224056469033306276677715933458016296571171909248970317377334779476903018704073546308988375435367618613064743690623328657651151835971607031355190651357025215934264979729427869879629410969774400987832373519430904299474015222934356693482341259325198240432741691819059946580410466782373494186771087414435720877341268631850109821194493148080580837587920652821159379025234840534700598248820361973667822488872673396507654725799479305886169444022686279029653493223576587927837267557457071304961342800517521025522837888202137921271676920859106469196803176260661779869492064250567328143235599282871537029975889978468605286690311069356991102302781959411717806609206461357114957899733980274161641470402256903294060550379501103939853360097510946746690646405434761319080844171564006490894013255506744298513619330830869842040416813529717373088532341428562927154480883578612830852591215929174349275547707504209470202523399602100827138782641882041147845814929070266748584206104155420533488500427937936059102324835153024616274262078380990357737112944687862117823959842522442377970548512698121814701851314166151774013170981392900759238871986833926014776446436244498102193318320166871796542474828841097429567594938867570297921015964218821468844977346500882716035921789487148425871843078909494101957851319138538532081500523899328643601603671422695159230376375813886275805201945697279068894388747742778197864991549596976205614118179235402308390676560682189513477642362607639762406286864371691750782633953166999904542433367167139610541399495680463247749434320722922880633425165783584557894883992807795300195787249001182522102759652114726264310148820467865197520402395008659981653219365700828606901353393014161038925082180310139344796706890160003633849445755205401503114131599108531613498147923678665880360448692207187336103694640923245029499312529920569644941791301851685342938593970659283761243113123693390568955100979570246003122538100036975986805569900604658692593075322127922280327421276051175724942612620485117208408370924982051240357067626706975753410060984566594475013572879985753950499610699500334336054035231954787703659736949719237209383407155594552157061931460058567332272606212459387067058582126127787055774595687591378097964372278330936614348812415803656874601617365156314439714388863260901938973340501305587547642513425334029723011075080127906109246838731934021048806844103851280914418042920199657338060402182529798278747039162429996020084408228568937985456451389644932226316184819497302203642141416923411443760402787132969316219542389328536924021923351438027733890253969140615218050402258363607498063585824501239662037726746429955998599818303961135043836582407498833314066320293305501166391250903248223547707181328662566408552576860516899711227140628474289402016219795034993017515763898209312733552160198156999371677248395067327285941698226482743768039219824400973641628268229949617459131373049566843054383140205786346680360004878736635044542988107320534784900669946012382106954250375161100790651107332621626199720739135855492012298454552906292805330375392419988280312142296300734336162760562009798278796038265663748916571506041271973938131297622563962528649454909585888022125529897152490272678499240531402075753140246452017045234278385663256603140525992756699666105736464040624642407607377610993402851890882762500840510927489305102483048920609167340353213772250599442385160739964382526854580820563751146726943092724325136172925321280905538286306050859703931087631088257706567430074115827793370467779380958774197635565674732355151919988349042131911326312934885031938841552390284151495696465214708343877213692369320808768233715522175220203899124638462161511862699619797943807764564968679486670342775495940383384447479868268912606973053099430914174422915774648761352010576211387082144503378572728964744558363273363870656883013681317892189375633983206266635949092320332441566499641436649926485267038312361761912856532605649932234076043326381120610930428125567990318605121735781292736099397821909491168558903290604214767663468326239964371860616829002538325062470691492665226638271283958992807521826545517416495684111715776230397656440461639569121714078458807554376990965513060139971399290598427302646694599977195637079202233142718911130506010920502737168504470145782440954325866231205558716498230709025698287808442526910720112843406527726981573453348229779317071733407143227068572886244715357298186983365395815565338001946805461539841376798960183977218578162838981201790076469767483971256274587134456460481648515634039500108152084417194344279271983297355863826188867180891530315172323720661066930618026410451672412873340337462123150584210564438638150393407976531970687621080282413752976036324638537937081653189301383470849556860519494719947378452710253884946389887959228925930478311453409209222857916713268221865817821592360432547996179482742341626773970288564628833199501089707273515429538082631800766298120910914659555341030692301055273146861821077755407729465272991958781008790120386986448144913438558622068792727551358452918627354877848438475355016551485681959908248363661199814085249999484854063632336785046601024372566727706286249768658729533113815460741000379220785613152376807347831654069454030239065846510721110341225237730230682959546994302367123154810353211570223792869639191987467408545005600940115185735346419498058424223772898876430129644030646979113481427366613440006208079265636821324777082117521010033507639109717623358790041519909173838049570815295879751592378563326751365702387446627127174539901593968847538315565422296378461860438387378801169990221717580575645315432828893895671512501188118410931157591178350550176927579494534842008247580701964635415727498226554256798597187444944313519575075539533627338079001352575686211660767199293412009115018796283673106181498547041588028112123621922957391599013425589983646767713023894102181419886063391126144771099873987952944328398251728508905476257697038243079261312360785045063109806046904862222155085323745656913616489532824438213947494051351176516217235087489736769367652820493415246167112271549075073289770144555025890800061309385636134521984358746736404632080820925827164434867758009545788782246100697968733637456816661601308996323749407653779580527497896660514132105342386351663610303708251267993465959498910804418138169958917579329985230261369422583119905339689604147263758188279990578045415173374418845501831862228444003989132549874208069339296544935843093053243138360275330414878707159454771773922854188939988208690377952003712113016099097229488876455227971778786915622262937851943580653719369632085945919073420850485404265178822787466127753481993271703758939407954976586512467793404641857387838988228916538219389214942646557180683607736167799300574542099584973332136923784183432580257750007877159853921664041662176535068770736803734515189338949182634047951259777174249894542878357916075776618402099856653677394398973654101331868042684428630469634955700181853321406759170876690509305343299874224789544653117052706200617659230154054466083354106509663227964586741085559906408282681154454089090414155512384173445463830765847096314640314994250595366105104908918296542251154285486235447051239133063494097726791286185943530182780546609657627197570370059280510973386269304799182107723311993223113196398954182641849237547566403360294436592669256257609977491251216590641474934494124035824221771304421426625616764162420466073749640322839985485308055602252747247942350232891084749154287097970632544686044580096144044033521395372493424762000947225839444471017884233827318407246140244347135700846068334077308784770812513146757335536530665292391796986247699660997800532443392705249091477108117008968894623632636023633234311655004347383009590710893030339147939817556621987044959886042288521733095880348889963526821631047183616699436680418016686332131041648258776608435030681254065356905289891838808299073498033993397773784076477557570722809735106951005755383699532257510556375377934028286865309753940816883675008117680157075813566179911296245348430738343809687692270265863649692397008803126367094453858051194857571634260515841345386895870480981966786812112870318522585020921402341850868602440824197577416988725271335606886668313356374549006709906406275677353228046052219993480321772410997915423284106492898777784001510702194935744773265094390922069629014564103423482464049579614792742757084144587876718793027634156131363254890977867274303300111187168300371432238380884664599419050581908111843393303579512687925644245937154982799534857716148216416541027148504955897536223599863247157292807205679741736850871178084147937393620839823423995494194500389374323322725337567266213234374795017863620847701859885415361986238918754628396182495503663284658076520450086701523819867910003046182064754842550289508374152349712405034288134054768325466201823680725190020426792526794828481245925293113513525091833537113115936245175283985297813491536358344679522499322943702156170702466173732172500880528066212939665577007118345054271963373116834718522547077426923997586338003630712716461224196051637628425162576002292789593828992351242172093097189193607536308923448505762317161995362266212972141831375288221785136373098894902213081989648659466036248846685729572562845052554164887045311111583642235841728024595707023976865627382801378904008883925431399435410807110569165360280979599781351192406534997165650178491079377028901218124268604734875649746487085811388038103521456262315987279007016506286591263939683727948829371322908800051129156198846496822183094810905461847315741990445463697032939305284973580163063517072364531127056016413666290027166402400419847928124196830696145678475175298466469126660612770128697548227876499201020317123397305916995696999966610616097207038647427403180779603748275904769196054032652820691232668184738061213246615035306580515111174224465382915893466370949188716638730381189906341358406689886653683415556725465924960245194389736166960373441189432203138026021312688275005842693290540198443436415812164842760138142901584458376201309079559214377620101668963721561285421860773892659175049088592255668738297587014563609244789402866637388560702419946856482507591178833299133565916310199777868688661193095081342991431919007480666999051864526661378817493444035488055786983135640698796492140106780924741503696710349730863840255015027056263355381916426454578457250882826804746766113183354995329635268165505473865024947745213070258719614859513421549531925152888640277899147535999420591444304109482452576709266328697019691999193180362708118679373293795722508239274386166370287560969223305780295532513955905510480276435636652286987928455724130255923446457280083894863751040000704482926569627811278008727102028098495199565807407483540252751202744949997633738417744471699459385560780892937560794260448254555098413767019305461230989074128087727613885542659320888083100221569714113415416256181279378487783547646620445866836701290331968308946207240468614061868108469204355576318776265328097798917710789801724802063249954933398730875460424928470225410548468215779934002535822856663298356405159983291921648651487241577135592736600595744814504478366158347884644212663184242120784296469096717012752252781041573429487883022524848256112919256601521056032280161924620781633686413395076916578849714688615950553675489710782315378495607324196794128755709094570199008103265533639234248325244782978707003461579542468091829104435357455917331964688151468927966295970637560130780260020572989465722812834153414852040762540985785650524185832407980654955606469914607884317334956187038731751991806068967555817193801109405056276664706083017054360122849870691967843452631220215171250948931046798583231419218360758782481681010528558385212592450604915640831231773104933893799503834292732209009067103777097854166550223131776297137053125113037768301805348889476796406962326004113456529213504281091064343942264925131440982182110625836403003346915895341352334771836045926756118597628836077181174558809165761354776269661122559477724156261161929465273622365267585787580156757713843238445474609674897689984847472964748951017930337352528666562547782405583972953542794216171834646992726648881062076866636788879083466900200929867920033324855509261439368201834885785043771741070139330229690629434544429560729146569817037362509380283657072034415088774000245083546373324076107562819322068172632821899061928802412323934010777959958714945812172317159147596995674416106995478032904862999037546633515395075118174292191116821110383317362164931589253807279167883212868346830411111194412244946915582492283587276951935906524499926088426029273757179793827924640970317485236808957586716721693616290483673700662602284551874881784689760929428561695878072837508011915496597177208355025225984433348620404935564409656268319950710179987279094498753246282480344941701705221406273686609085173993068086853222105117778607727118618617773625913370253111519481639094434262925580134815299100100594788495683969513858035989865823912509195850705705212925328611109345819605572590945904287234387745380889704176944776281085299917681654993319444016249231349560401250829604765118602656643967035991536307334250686370102939642073037573628917055302586792833264474716098537630333258320585845803280382704502103112938834036422531151604531349731011425482617460687758678886071448024071267103432955227328758267129579273562804103835693223932126165863652238018998340915987649791029697319274207814363558599923877647188717449030220259036431299990371115045846640783026500521436542317960219543107473889542532741387288617951727317924463100454803840443115478307112436070334902957004829736155127533418272718582297696020979903496665004972014418554764169800806420013145469994190154532927431049574404916058584103601884508851562033195175067244667999453552351190919572056080068166046762847902462515835084762506173305134537133215938650070035409294207372639333983116364281226953531907404281991790804342956490123099536456132816807684684125527712307078761737715672435002942086340804716943147423626681735521446094826122022562233366249991152530765183925327644068471666078690540092397973610415706096679452149936979028059208214432027844491514860158102017521281568568949492235752858306733002060160376058480347621094640040436203528966289736569640564145052855966587358218091242478808289828958014961321725825642678896837463567255228536954937917730146542738371171040131814545087898774575833605574543022492126065898206689376641422274516987752330318412901456999903526738966078806925123450799919353787199942542629262159879409748670754711348300527790079086136382891669677795601825910679167132969442992382888065282978572397062527218360482648426914824736987490648169202110233914990691824950983685984067604235871865090728294458715970000911694598204297216561178928365314534802434743353355932386181804108285086291613839322494976255451217482027003916629317878940612546975803846044346371043875374365455830957441086513149218173848594489637930711631978714931993371019937617652957460300914912785942776072282255001853975018495064547607250771244530159845870032331500239567916307196062797086306787796707164082444442021185409182647819832498163392566768540449989274218915590531937859409065870388954988305746665935301191039031451044723635997495033628952746411420099932026645991758316886186541967318824123806602404637737287137837521476100211494781778941243667607854004820156848412482942891451082273986451396485189673941823918640268213965639587411779377654977938835695541628830319240600222825947294613268913977473135622476876250338350807644864889734780287119242259612738783328164031177192443076052547240289387050624220687885585760151866806981157974271547618204897666643486921328831281745514048238103545591558197556412195514930465190976361065142681415500278623363220590165785139438804897911924624671995451893262722663666916224227275653473487050290453326756174272494769615148717817158336266476054691478049274441005880077251477562243650869651712637182394704296004314779784217288065730195569968547953861341465553249376668831802945849872742210263828122596066888235151707230978894103149702285895016994096195201217531883719099242286567488784121671303990012982631753317185042384134544325206086809224337982806899956347581224243539163693026973023174771349560424857368747584968037381138291993885964219303120120606956719834732366173748157999940186140091172945734881687188780083086757755331481911087222524140326236802386404754686885668633188212277388122604372219093033029347262692424615929106936121476687666106992230171143447242660274172204814910185744623275868071190004510730156433762533850122940209951123611482857327376621394688117870426917625173363509035073300373511570396959746800950253137621034170245242779391693053465405036416387921043161207871707432342029592516692489004868330629537158662876760909124886784533124129342627550304587711558675352140760360532501345154947070802425839385968313049380747100647713512510450249592760516086401741213854381253421945980953152614196396972120959506072685878864226653457812908671712188863495251163087645138872234751440616740443140267191119275655022725234420976613669468409058809588222055839129015942364515616205382104016543468577006939635723570602848421073029766516686004017092946564964398574333572921478478720270911617943282411587271108576734281621097908651940750275987745727523174417660565048199339688234844474202831306544747071378257625894179186266792817495765273775310969900822046988688069456322523906095576897950480591201521844822161736697406231496956864388728292381398972137209027564902872266838447524765895898900350317719141492985843122861816506753899682448604844781812821682438634242466382777434524560873686940072764618104865532168790805988073060694012947867205941652732733042590355652230781789125652686076482541307173361431525782553792989268461550666599764338937365686985345473401733593629970523981859998908113767139237316832147161633359423537703152165493953075438004973134572807607579209957476316311039204976721311456895859865716258578234817378915395557555164517068174760076566524708833652244667927625951850804142369030522055216659021494454200092946561689324909374886132515260917415230796510251576094814277139190499293520143130274631806021067176900622199181852116270555512364199480548499614016317378429209880090065702067419265779501434467180023027549525616753514077953560211449690524916485685725874358851020873609010775512439226983312283016686341392400728168802965017967979250993328444386091161269904423772037111048436952208255072828693496742259179087232150037848570850572271538090569139190550357698845434634595840006195788349764127916586468993748720614928642343462626386304690948312774621597688956956488769342517170604100340314832822727992446665831528671025317259511994133905636491965168648967621873827114179610682748605459704965331121627707936069935725115252413461993363135711554840371182531762710493590633518815659374583954563775271116035118965695579326205763205353964400493612827318828330477986032610741435606427422939491011137191164630074537541088236641621919889433155396101672158885570062796189146397721496685306795104889079032927883690946991187189606695717140170047024290548874622369226106579001543849974808743354754736772886745519931141466866900023184585550744625376724631914420776202781734207050522055371429846905287945384900824116231229433356801286103462210918761621886013803435331017848187982257720616015486419840184229935387136171389418930023896010223977313035682711436332356816164375539042299175739123814794876546550901201251566686643722331041453435281173499285173649335933690027905987214987821873984766678241192507280801897015583795224022292478441052192089734875697929450567024127241836131031716542532234316716344686719268715451884895273603076632347755102168575959710997308208515697894594475887432820331609769520804168243510793262593302533457215109354969504093738971101236860303185930466469438013757092508860315894914003324268629631709794332119937110384866458721234426015814492967798598209233461532088996158665295739166913688774062828090791690285380889000583695148662072086585839833749741767774638260784836559476154679208696478824342392923253300782300681130797677527957509195887853393597438422230261201044753339281994923229719833465721853138575807729776803627254244209397650404870354390421808727973952502115689142315490180252504506479442922955523812309075676500451351955224413117490154175899281021917102840513613764164823129387919772400911743653726107477183881921748678110650562097147245547040906014365777967565892239723346750832084581507763199450119369752311757874815588783805188570086332727198208814347181402082570803606424620932754830819577232209222483987255709904007694730844201073493319482250131563446620876286775305065816563435041366092485565891843794583405550357469111478384300368645569660172338775995085835585834296888928957722150848564848209804246914099408593959462403078550637768105783859008876605524934260409311200359439577925158599463047166325529906856780028255158810388913523368673492007799577959402799734953555050101950746225217710646434336512826219854967946492026143122095792724319847690283680799472832267885776777732304815502522934288878901934044936662358438317037907389446242769967342493932036453514554790759535878585641130221281354085162289648405307672993753118985407916402982448301846119996159998428032915870595756554450847263435526169980613479011011979759527195238705759568421411892870774784589049333779007205196621752993026907827877953018240353590212683697959732535262677185043022231879020625343371406868609094060817523126945077248623932329085688130631704430727005015400047109790729505006866782687638787576529969769632666878221193823614676581947412347139172051625671854158900643387373999716641288491052817203391547728587557438806092555918393173614500619207404634250508797661382418718197992914267409637033975907519515635902469839430770149268485612521393917921701063413912461589831011982196493463700107960000308565694631608066788578965181253567755537201930012930620476633700794942713831047909461236844544841750341911152516324745106468022720781406740932102156924523206131305858020706272278108831421520296913798516391407209493916105889874344892919811518488357866401934857727361906688193575251699355033039461068548020300716319416536866589541562806480200339730672876350703812820858554537381452976681403990415419914469449260688781416349882259633362470124592733019859863634703167655497896093225290836870987237113379341999358941913126731903331454252420329173601302773300288706740916675747015951699313347276413581196589857896605037172719090775706019499949483940623919000599212736215724531152973047666019669549621836325952220594281733353361042429470839702157553626409874976944652830741060595724348400323056294695835479273935333965022831067010267499235988498800902424993595295720315045551364923146995045965083300089466440231157342285326489818541861675847565749542993871936767600430051127053197204080679455582713799008306768493150126836067897663848091959669854480823814461665699958107839501733491621187038905398078460628421648507575693982548297571738843438308532169544866295057399727606544822938394757473144205299125765476238941102998894508720814330507248150952237053202628917591747674396936324843299034363716587070639812931900073922965149848465410178179572725529257533262560129404437638568320420152348462910013656154451093291223000562975384515252366055519370732360750422177708412468635682039407258869999091342974730740357385608189665485733144574679982272274100056299740755947719074443275255960337600507836024666528264011334790261699690181148931976759156262720687126110108666892144637954927263978920678314307004024962208810858616636166988272161549462028702665696483749436483595269979599783658954184608905699906423234320997267374568314975109283609147184460235562458719940815625217944179662286833191715104220682004365881374147009832723575232057444334730761927166615001917985951196396961270498036717524370717158410959709029317946597365992654959294841211252457941066047868770393465146457077826804352622018767725245630083250216291885634978106393649771741950893099852487793931086933544621742325375858148542476175981506752997632658506995718272572396082909113475867009947652837187017788558858493713986819033189803593994375329430275324470788394057721091350641121077253931445060880767246128762193260855209053391181973030083884883019987414935019849646013671882937212465032497668216053411063462806057622971616684248731792012613832179763447478311384903962232483420818368891264256411884288183288473418159190173652741302465891491822882318315733557384816310986097918525592496219554260867404665344652055254408793117473123825846825598835403131386261200704660573461770030569793042370686935917034607807636920758366180269668472384651888919341623356505414135754823042834662537579070073611701509666331712335725278239955866975989194368152661718319396882369957905098970075987023837771172112818010572789394302423532831834528361128477422439812589566684835969820007237374003372635764288370708592313539320102858867251260684265715918854372601772652020549433341386526811573428053428683357217284308054108568953111523328835444557648603657723262399893836050200172204089345007966351870118104709986294887732876604618614136881690682203634964812856885107239795601401543130324038585821655018340998000713693453921641681189351073909311001334501938711842941915649788039029905087771949103058010230536875674036482511594606405200796844177337144875631861172415891724039846779044428265314129338554001238919868496719321122928675628550186524100663984263377397345900291435501037756033151162028427395462404379617170232580358526670999191487324566568186322486338547320889344798334908160524320484455915148312564062943086769984509686785053272837995097617381821889803104733918892952449751021607942642301217550482358062234784569963349853377123637095499121143887038640374232963396889047228395100843613545006264073684359173218046465761931666706405611613748019744312903955636216613292685418128655027742790973739943281351033853291855053676551422197253247109408675378360830137304459703880426829285589378285606170524520476842300414101778915150994535482384830902407526065920900828372551340942105941493650048213203198680248386102193951361626724972932796040671155040194373577132661177460805873862207939735688804397084679431527732534576905439862083958720023033826411840703353512629290983374499558795546433930478776576487563280964886350118155384368760451637172348086327936578906761747797891603871407247770157944177524737362641678153534340660152008622205754798075353771262552056580799759968720106007314269325550093290388103403069954666825530491290798581872253299680662913803555124065155115251851611910786325571960127051849252470191973049813282019847587645082962253292551156895078544692903348469928349127548955117171913403542624593600751862923825788034044224039979758852523063545741016616825973835307889154248540741666445154002219015191861905010727531030494941369790037948011585105658879759207250878243591407233286767187456198218742725110281266206332106028856333324729204289363966286591311370541524666715464383397608491651576098145893533038417598983842323365474735981741518796638760440014622570139953694997484254075060419520481987901036034678377663265074200719383953812649584539777513417230997608438212298292711503644015319669301711377491400116710830680226882753533926896164484303288416504504069592672027491284701674619965402504191269892209059751196723912931034167852589287622939576136848019096860588777253142293017353930946608334299342715836267756829954759177899257038393450836523098438990604670868743778243808089948731244297398298699016667206987625523921505795915833276089365837328459470013394345898365401645094957454728325773268306483557276365249246792470661278160548890704484795151091956960889355550541658849550598839401237160175963351852510127198864466581916609137750882742969970081083978840010496147387845786223504552313682364242632909531989957539496673697748884080680492392431661771908645672446233745018717820221724335670425676803053356169192482962909355026816423960269185117317896621375168862272363377001863519751531609756562172263223287556161796626916384953669013510025463326925664683187335393624777093934443453616224121351477525284727471013186796054001059418660268431935906552514520130981765501034498226690546290356499307319106633726442374100497733760812330083591579522615000480611886438360878959128363953322561304156008179281103128205012212383309067581059864490860740718694813006836329744317579356322036997259258835601892966357205747328056305702993571753096176590910853131316032570320429546742957880252747429796919905028069684156125263261675484372350744896825988287669304252551608936822721521283951938804061611490931601124634678893907063453656993249771138655264615419151342972557368177004661743720972423184788140880466910137501796303560004168262649457668768445624290211443758075236696520928727064145581121287473665002524606266878394560454899495100804424931207143317725167047736364256913375538265060066173457481565876849323074318308445152970836924291476174813580884623658734264734582949437304806108119029490693563079342729980869835489131373638683337454971112866702962934708951999006595681571761652901217923066795060157223814681251132121725338465118234760073894793679637184855082531105057282768077977189668996672234386059623480060159442393166132024441394189978444902658717032863542218018390566165716361596306966113724665164104019611783425824225668852156977963407494851281881853689458402472508276693374827744932750894142415214064611885294125766611873754396685158092209738443784115989690452343185687662571921415734475065734048264215270166607737511729911729707220615415754901760670254908292286397353107394319426181547004079481989005199891357819859704929317208201880279046130049142952336681584835376886803155668381493255921815312800793420073731132325593827689626804804126283339034314002493106956328083236898144183956176980241033364291864551100442157891054978941836737839926461673626459431372523976120111009850259566647083368962707838670020650837193936087569438652257207772330363514191482251596571653154556343848743873934955946247082538457851393566974411361240956189107614696099070030411597399647160000758681277752264499801754686317042620468613658213660882579457598003058311886295059496362864145313768885059564293363573356905729841220798216741053404452052644629262739903719944858959288601847130575276899812487745335002298175619211873047752564474793723248566242025976492714324768904720078131166380187983859287263365415962111443670498840656527730210938432259402122655024707194584009551851486644001014821369769838560538347371995130068701324012978553996814435306213745555489393773314090954503006174668835441945322542942225318045247382045734931302197866526973623366757037359188012019918460320686359183257159013821530410579863089640256575235365364716566787127034528095203794702302752611750611473008863612101707123084109782720521826390535683129010817327930061341397511093962325853903491721951263821104509025887442711030875368190161426512678649203326222519747923136818625369162544674773497038925113625821632785110374025165665140265530717719380453399490858584806989038741236453280890783254411640779043634277128795802016228942420687098413375057431258888457303264393450298014812309349557174748147535562601714713757974565613099593281477993124148602610883857522273228654861526106962125847192276310407535336128499552981744935916852144975770524465239126465766043813905100698025203639450151429769832376008815773793423110878816175115509789888003857858660579623411491849901734940875700259916379475623642747384833433507090503957944846895127179509122795337892324065235329818944205116361449769290580984610246821738997977405476158259714765331710512028607176757052894901959517238462159415895755253528410481766992846621533345694711388679762195413873338755088233065011885940260119174970693918070990234037665907486285962386301520607459944209403769821433298715764946627834796241163961783056857000751213451054693373765324921104609511172898572270308315000143003842669279513467252008560882558859652855557048300180078878688933944301711253795966033886808351024273798439460224178783508112671121070168424184589429833031104475713998671802242756209388578748058518752087698693091887629134846147797093240524341869947296202221980714284153545367389984643120638218657293532768189292671717148034259497972277695501555234167989099832284559916384307390852669737102203707764358598498418454899442119484649810998553604522654790854804776391786363883404675840924375012762355258044285240674737769808195131558029979158667072975516749493263075493008377542015390032213774394701880415233125500745852430981538987951457796254129288171580654350149937729005440135379359283557782236362304901737119283362512468192642002692437636507988729256135411754692995804390906158134703063291584246177743324839637094553302591795914301730002198636618532273009678200871187838616189505877738861588462383639461429266004907215366356008564634917348930932819502051181037684881023826812471792781594569884336514174418564255445056564312759225463790899763271321640426689937035625947716454620890134911070855340988016000157566323885819761649627347211562098766630812723079497248021733405527721524772108512840108608852345041878492672842909309325573460226855997361148252032599670108743895935660459875568826447335655261241597410173271715362894243242334906717856150409884862038333659686311514559078713384289871668809895760910164234478261181750437206356331413061141888164051376139129502289683488741621672776697447985854120314162886370944667684486835110904751725527509766823130320297601441607839570559035865937933493327831869247410236201641228138131505861267018845760606116915467220058310004353061237196971534010340238377499815450105984209452237978388961649689312901783612344652011548023686308315238544211341199275449007675171436397425864281501824669961643281698704263133176904971169521739272070677366244833864963531265838077326779503573198082937533423812436525460577676661848422215736752579740728138647650000937300333765048214309185487276460796214825592679627184874737880229701683429583138184281278648180849793501635858351922394799123020577346678843001418329871014201656213839588014454735853435921252820569397163202487121953719860025505100880791692885645769392031476825919539031407981940026085997938753928221887494708946010923518196391722759889883590336922899969885081526160735866122956958709139889900549337710838779577494840899701643690344414427665994578324464604838075408074053251733746699156630150236494286958206132545814419877340388679875214587313816570886856625026412331602366892786473555751972368339324951403855496326734356974129260381795616283674009611975826335511012366341329413125639425999737397785193526639547871159414969788208225730375587099888582896054964385803413480308205629116440409641991959097995204028725877548547478814467220369432165403522340164157626401880422491502100841127496682851246503497704940831399941650227004537055883744081070703228782947085832970268172940860214839561914948357055658566289597142386163968583181460248504493597996241471087617005226965019007584687471808031658207939205371722166845266604851010589811381628758499342340010787212417482092069826357116150836107256345316733039695106938599598943490747291527918213122204294810797912341452921162694250510176906213462701466330624600942417490277347229740857982457097888198754226432384845629689665210502236983394309384956918560472507347932342229616435320756730031556266465834943891858758633470154100498784187523450775294185154243004655145591667506169966600821134835074237847363808296075361603982906133007403578846006799324200669482988429216522998416774162156925027694345022310773762298638602004163932816277288038106504763632084697710106282689176898213218640874987125179424932521165077615017176578772401379736628261754838533695873446554228976673730789082726980260983214383071830203211162823574783062106099156335631648446331586644008698752254994471840066088029199785229197148814256350133761012193060192569866967479195821821975157553457104281308670842609612226330056643286212024308972212591200624356709742823266824833786876630943725032192310001023826452806083101784648680375388496923301027304357172258369014620418171131969174816957753613425233441226704287017274910152630837081169657421984458616028353790041799553784420263131563634029733663615556334835861072856689549455610947906151823238021838840014336517731067272921850628923083614228483504763641870063848949578036806415144442386013896160028733642754613505945876468962481577667529626871306202499984809148574458558116682393056873589644381271454230060889869263482662366235723851989610891251586823737913221279006458100334493845226166291483037278642538258699282230150398463714564459078064949218162655284622546643199457444115415154548089731118852001814120668973762216355652611419375419481353439259507779039388308512639828040743043244433599190197101909235514035758420814409411061687897304170603706579673551080838378471720024233481601639534087138241421549116656199780934540469173637994511586126357276475802406289969296895029940199424023560694351897761904095998818043755879527770498731358586022527724684382299023894203676487444371990248105786276043253104503085279517473433576572742423372485559040857185097798121144822271320688676177057889011451854284796307180016580436657845562298508790609373175864691677285064500073170236798982910545446949893442071232438020902599220806800030632948367605354549697886969932554655926390850938372676797278014312550184979651687563523311759063933204532130022979048788696475561378807756650609686495855305345523597536731149274868274945865573087479741300457042330181994171364580601155854882790297933516175550676623221526599770800455273264859968250584659262363782014130414655638946388721465234376228558913211912962221484987868209680893075032501056791687075602994102485248317333133863441583527118057577179857908702741346920671627588264043291343314408975495494056320863007020561687865787525048345851786387143703019228881922925934041281163613244441405472632658123919630153820445933318272343270835842915709705043316606061865623589562047452805792584521901627689931841239627914891843222277969243404188891878542466978897895075953925247342275700073942852332386900332597095419030662260709277958920435147854056465702479352317191249852431420637506858288397655570696123970623595152809112537832223518941138222549456857218553642870926568976653675870977186842847031349177567378439538655278296056897850779643806141908094242266676945274537670063478106389799885088403738164650572240030732186453464739244950455301241025091172820606339434329190368715013605720137205509537406848401080625988527646140843058074061410316293213856159721627650248550797956608045519135554579113184208928761545055372638202120197432680359442964415197421439842514721454348553577766203197619192260550573294264567469537054516750514100380106958984644404964425359509758049068469420920466075172275653430561521147318075840232506482003434497898758325116611582024315449370767068308231105168124658063835636619740189619551596079834929213376709641503003580667874838836148782914315612278297705584058150072624365433081122434831600886258138795812809523851301863741708646140383904646203204616407201840709835300052429215554063547275883313925698150324216537174341579119966273176274389286550294452315992907461787486296147770437390741663341942654976768732860156485491460850281570192620425545999338459585353054520878768705065210178454026301742573669685331525612923557061258438699768615140964285291226409846016925471556672977532429702858741837543464963449507588396108419521306468594606612254225943902805419576496664217001085122823453079609007305775291725306842827078647690495529194201108583390324027295595042846942612746821410700175713796056743678916571706647777131232608227635428643010216221882489644064748269727207657233939561010949260969976173248839784310547967774253106568567970301241547268225159837462645779940371232918262068382838270910619766698425959691108222594675718261199944111267479688118841665067303333838246054043692039335211636816746313113239151322939424203525139636142573378313484810334374673229957521139037488870657812205210867729956444107908251249817350941267639647330090152110862796415261601105339081659007939806195679485325462057366290505756093528718858529797728590054895438454094990919970241386054319179383959942351982456050600326390365450342157016867619957571395719454793199584621603705204752196051226092626772089774684448658777738643534931167703260369170253967360647201460263550426153073372881908348922122387648336954606673075007836851915528122006750109828274964186088954609323664802307718933804509368633062822901244550320203547271061011223838309625998112752909248371110715301488515053146948069308674141562868958551571726764949966811476541318434234400057691206209405510760755799412802580638287142108110505104384850218998072743457259523216496313122848733711528830254707877276746937391823863633560517264829218762590255892107221596530686281900768837565388177159744335179008340325162094797663558898670686336056500705659792263612317831908478749905274532398618887941374354142312480886982444901184056501977617536134994729036744709041773267922225251889065215862366084731734987430715523834039361706574977238267111280898109061317666066689729084324871196021097804521823733046208588457816736754207087968287508414276909688065505158378823531967606831671487920575065691825908257433175912576198511947482087030927305558058673623055977171766564678090077125346689847125947884709397264624496270812884419467547763572055106125014839859728148825802327349828051539492575015152100397860020757448904669228592469444651855992998892521581978020330286273224533267169475652521529926246823797295473994869951015912088264451630902336130828418913844910789925724679905240592545549361073017603926104524817416113969654740996145427696920102386642197590442055531310988934064385950302007735717550214562667746483987856970025076332305106533441823666273157425400395469804323671893196605110712784392559840544562581177798976646285988932979732520296060887011341328447228989824614533684434402760971838675217487778054459718042230945281050423783366362151238131536747388936146509711410064268760706394193536225441433458852994270321475124990634890617299376456445483424644295041007030108503980068554772363081845291662371761232176885068801488307535481970426539974560351997595051296608276877873017419357720167632204644501030912378057003771356127593877011499174499022534250816299123719175031626471663986825258686325078063269801066025340620614318974057201695734670051500960355016054243018453932602826453136477318607771042592340437075302677010853389985501069487095861725767408175146697055404538927016569597924013239452347402770088419594862126511355927262837843730915311489385325120476503129384997592566518115838068439228682480330738251437482247725391492987961139605132912874608815868676714160221111129305833672510304942541016266880304612454358736261824518765266370204625147000607576467494995140318167518407427772779554939971657150970650411308749750981779834756523536051138586783625457386078609842609402037779428152544492402485535382597645474843587182199465220362478963183218544294418217603988034913964643591834571640461945708594818702743995472329546999497727656037283445597858270133222350746195566255733732992009161407630369524531695447405752570311057843067393585650792029542408674495936600015542695695346572324097929152833190692993271553589651472976298880743631084320447543546888493303388277580031507987390145555803473968259266276639850707841754748176444523998715699658125522653979956603994312016961330547798546894150879375526815491406508423702382304830433172400635169239890237945423788504634183027767556722595587626039529533836080592014355403901100110489411810546155088067582731639406795871509552158212053996821895154642822255083941409355245752461002777210637377868736093197319089192131125520294283065049314906588101702430621298468899425628793536987938401768790654661429815556752227384300792723309403432706356095986615195041801500297204705325137517416262964090626474340069156415438870814750772009057964368456723338037732087532892777078147341618136338394889450280527728428524360954573187239645792469596034858804494603212242112161712479122727735726784165734603429598315938070567732903989842564814372678809512640057174029967945588539854119461782390489705392676642184008569668281884886536121054232468808688601425810820532188416897611252487608305546085112574034406351541320716995016587664424239503593254601220069104683188984776371737937450245313573252230818784914619681446494639148149045093733071106987287403907677861347199247957410965586173967602834010750341211016124530393708626038109354862714289304528294228244932464965351053388508366472364666591692556140180307764933800987596210633784210909129761920659846098529355025780424665418680702097526152818350518580946520929735148554194710134485011474817242215554874570643433197229655867851014065160333304844157182264390490681437631522016931588321620579504049401686594275869368917850695641004410801239041806711052379201493431634723446122693516191236999094306195963637222761348558099671883883590333797478663642024308042790106086715019465703824489314470384640068383711960763842711514279078943072901759094457264471212602621049120270313711979019906579298770362905586509709449437162759795867981956044760125999886718113876912652019600066217641000942399559402199211652627359024215822690036936849019752418646462542227493465337301950045208976093820126977809404059607694123174598223828138991339005859578574151634123810820587433926544337526015631359529837396957120793474881370105495013634613751082593413015243679115419103560617759008633787259282427356461122381990442691822400486261114088380785948149930960319820840093047953421219265118999045932923173107963865585095577727756550815678482235473590886470548886788639749482713540813432678049062352039550378286219314501089854022587019335544320885432878157848350993689194429737522446135289859290749214510021070650793565022114558034072774280451856342949805872118583629718649613783704610035650231727325829509233015179724791738388412773895928395615011551760056146032922721865834159401426160552033592286214263951562133658392729780686790244476734383326851367783808766587113049734745423877722886659685116099427262552750849220135732298059648438361347994065485165709058943176645230385548132082329007387862755299815565917599160948632727729716202069472617820315659923972400206446491528590827000598933050786135182296598979494173493556460185033452070171694896099544596874401257820892307639702662190070835082411636194821828988624833854756988168142712899075995892591762585716354557679916259577737035450075710863773945906944659678829372352880461960290771173671486604708961464585942471056084215542257342483951298941648261827053579963387711552427368973322874143366483910207604873396153343517792492694157267463058649616747646609577206871048538275865553467342086331530696851984117452874173788019214196683467328540718430276199206662991710383171211410883754133746484692191652472273229787606453559634500323634894481955192372171496744603960505912697142458534524683206631149160805805816337012611483897973991232712489719988975851378644943506813157098704448550605388948768463722598039564869866965543441122632685954466026909818204989101656436077514050969942537984883840741625544791791293131221254694769981417568537727143035403861174805408050090867531460123203917882943798300036987272946635566702160322339285494868128626866869049404450884424471920777076144236390617229131414638485671865664546806552833477929038433706178883239029141707305952145257447780044508910196048387715775534024530294709202252223902475615163523795972221277322464366668933292561708832025230489788249374566359200313017961896708105948153618998672418965778567556529417750606879118980319903248886253304765375095649350731451195815122502529632860329839442452410414120588834112218402951725824048104485937089530325124878422571629078119491696807038888992559798880473353247457644920798082252291507458054104628967261036098229883535399062538678455976603811273415099480906242581279355800005392716321964556990512546530336556638983317957044720864572710981048254509711997842496103675629083735150326979365721347688091248613448064255823630530297323511519650366886925543149421434437139570700904178836081438720144915953706777136696080011546685925212622386684743581200463950768731499138058653056965677623838338482548840312838629077489090279538587972878829942801935798395336146865452777079562799388021615105016162905242879046421853764854967938743758456624746748398833276399055640379112469537999679392093725663646493184709354775296705834918223427604550184993321737283241572221834020798686775092502414393952582082458718523341057487504610385689465532551697136886122329878478666678282872657400451133647788281220414925579360887325201965762444013431030988302845387419806782397715994801908277841621816924777133360478972676985162331554391787394289033712876840150400569259469228565380363433683068953950392670706695604381278421365406014688870302247147691161724202657894245420796980752699605671984157461841276458987168515075294950626095539789666134575697566551421460837874615926923692216270711719765336897643584586819860260351233501833035253105845212993467451973202675934658015651360975584292317128534430258800043069563149705545742650071373146475880381386240978553623604635829165968297769532779934081976216013491332810842456160793095235595749971757551752673619688137011015947948380673399144451658961679983035314187480522702681809646492105621484287763726990689316457259231495924834947317242677428854788364202763030127134053548214445867910781765504385625490919257776003619184610598805948917344910006529431407052217023571157361434923421859591322039423629160237203587052455055705929113334965231310339366185528100916408267900808777945357603003915055879718155271005125830733702096602938105650679630037766560711543764905585642809585232444691995978959011885415502028708614591914286597061510160700206670858569652070940247700585170000343333870621189389475848757226832093364057103656236808916401667496155876346938886655370662292483428440564470787321146316522922386085388392606368017647591656500297545500819402125887168066403818796074268680777163060682446894493525337719131634863607472967537998841560389920471375938468571875033226254165749084878283457628418878780567035937801477163940357153002591274893548943983455166851195684106261923026433629060544955515954379656304713069244677286004187398178910471172029530388611287968470922537733615530615585239319531613774254965449417980776172335371433450017258449575336292952774967489830951418888069880276424029594301876575372511276774838938549791263681474510312461676271700496915059309624914777968318117851087684059831368356170289795000250787983819417801637411602089568766623880690255054708884249370902877351348907955581699545294562033620160588316873918963967284991046001606908111873753327519630163237057594494223346706715150042365648029119938209600427693263789603501657314340078826357109868853627283509876324339739489818705828462545928359207604193174295207304737421054971168675363682514081985148612429197355615370535776819764315478411644296036423439951452315217283126923959173135790222888011565056348137773253538372774279296656852427445315258292114010615379423628823371114571329081940835885983880248276593987092166569278534413762914100626712159224051471725200810162178131282269422227572370105436418085639835317892013453700873465864260954695491346484313593462224197965322032229560469792642001956024390187577116869271143333433925359562016335474916795243287699438118489595637237267432568864133084549132137728782400977526220706694992974745031768016632981089152719832646266555518787630977179442706336104747030369835780858601627544384225737098775736597136048545625117759602421418258968354968810970240291875032564818715414586003227357461010251261188026202473707097227000387410452779596181507804900200188669347850330359565854399444784140418695576403371847641746040924690828156226529410377269999536373858981698006815210718077408276900926796735214080467058060581411314295310934140597114178134430546184780727129430234287738244391900661030426807064992989327865787036050438981636714349161807493250478335299726108803157128794273039975615802278132789344076346166894813138020040001499215547054447954075092382743558788491137848445357135518739059863402373111783015974148156482860034059438987787221778628162192720413537389344483188329890219208489800758195677513338182427696094649397964330261247544994207774832789133876822881209117913929970988199457196802133793861012110353417211679117999432171148646345891585765867544907059170894512101811200758065851376375779836314414916067951317761274142094583820430754823008159582901099775726643498758141446438726003677265783794355574318205555239300018012723645956780691237843073536878252815637286855017831560228975037158979857354141872724957415944700239080353905292442274178017950456501832193947548740747179628010477827575010373182890208843593100792817016026593591578310389033429724930840992152109392456144414099481838202568963372990622158258502373190863144576108900081298006679724609155080072161772932780957571615742704573293198257758178147706498619164450975645212226535533151282472746581361622192118478825528430596757879820985206517180411444714791334823670928330053512652549290449067277137815228357543754730556241292619780906358537802372486453470262536475947459391940865371697785882315510516363793863878286749440907615003743415678186229663343735296785453756281886303399891264966953840520463280328832783075139917829846762054351478765483012580156770529946392853423734226496413960611722712906687057293371585449584015216904903078242821107367838946436656172575981672533978449605246231069648161786010506635079154542334770928397162512689893639821426678400753658819273752691392439712891626097037325482303384182799558678427369416966252981262641745163374107648915438927204587167836215464123675435289895892849827203208059993411064503566496399643179546579132713623042489727006084380012636646022006622950242485992474731580072994520022454311894787130890047868155176962803279049830612136020149697086604893404040260347546311239456096984195047978530260904542519172631013252470600271515140218316939285444595649294757838860282472940662746406512337449817979898751912919747555616130845171669859375228151857622964202125623494786360744270919374005042317876603165105188904058003025062864318501071524946946005266161651426667456420139807619600476858326422363194548459289635995106786683834851544273260521201382745791539259754503610944300921444866285511057623913728054849023689941648673400283734182092863511657329348186775291710525685980662157578267988187046784415959799159731551710152171244123218824139204846701005799220049635615803464965058132693023743506240353745313799151484115173929286415726032791341880696427410796464401197754975286736287529383290391099215166699409642622133627715391463046820425646844994855546226848712904774361222738953221130287936416595514224613176458098223713967238051998393818616840201918640756403590729857841316806048074627928529802276232775575982802916044230585251703614585076470328822530105243806289347375908943782337363028631116699439779451373581389705067057797765118451902193808360929400921925250843548261089321429314635912652196876232046617502527403572161635902173954798348959034750062308641826394765437962386943852641741843881434798819474819771811762018577547667117528723534659056951715488681743785759347717175020636109862212851515335688086198637875620929159367066671812154990022843108725759893586879381254648348176598884070020419131486200694056719612696988436074169901628822259166816841471453372291377250646167228749426395937237886905908699869040213974926625826210248782146440390301347194303636342424333732691895172892558069201799741369852850248731594573501771588302127893203327489517968541587314942635150869130453813957753103894567882158002356210421875878790809814797386676471399023152804353589744392239206401208245674643484218213597693239712112289374912829937132289730833496118861939561812490899721879183044794876517224721807797136842932736457998553156089850557994742040973345283404130348854040713577384584153760969624744990451636494762813711706665896428488047679344477538676603894756209205302229811805319116552081443698284669069377718108601213704207292258715788802864568639441170567883264207732997841263339263730388196993231046123050791160336287424761562255520565662693952529639607856020524284166080040049235130396603523409663294667235740460088711631585196778533485486886236658992199566560228186394107593535805853357987443666906939902336837480355525254507216520585546117859920916625216296111136374785180478875625902068945871548628990467613427496997549592578653224317554647008098044842272551033797773397018518316613129934262354435497814536933782596914280564009458059565057139511058852140940364682138974998330388447633943369702193122962690432879465293670236650883196562005747830346645739238978577240883989694422137514228846435921130242403670547189038478497410630255850164662752047235869048847944616978668072397292575794881154798175269870617450744984169552187761328263549329332824067958097238503781591294469705225589470210204231736765137763772658610302480297191347781028140304478401387594747120525402463178127722652115438656201488383630934612583351200198372609118156986465315254264317409709036190837874572196312005009830980558423187094553114135477716522587102645388541371628765906190183801326090956652192643441257733983493763636523595647199914181042061758748786014829205054824150965292922106478783172846700849005743843505793687812689734283638771310973109078433294669238941715251719165596059713456519842596190940298489345619923527190066448158274676730709268045795606239971143761793966697514183814461676332851106954457788505086014309013846361419954178931294149625621611865892125436354211717820613962554893382829439644836505903991072637899674992594972594649315233930946034082029541844387623986702263657709577287769482910983116866930216143840792592468687308192104766164708188394608035857499860699498094231712192016320563012869113702596966455860083059088434514268232600721699105677113555751205039533521604335575789306726818719095946413523435586995694474236724026438806870315625724993276036153765119246297618377371693358899159905302777844963493935291868215464381670296809738918265358980583110384304800438862715690914700596416323082077634701127919296349606244828025980909704877420714136535919318744166426920888978484552698387254464720613870319416222598662185730243572072724761117269267094535406654592796127962698291368335344680591650123679693536080640223979170939904187436783030556597144904123767030716301524386312058329063103026711285094667389288754858838005540739843279055599458120009652530782708190673782438762554091799382791795088501864098391301515479493011548919077340887609473981021024556927941777640468764794626853904582050415780033335353197731985595224317663572053470431371658571605061841294269590172632929917629612738871051050209173522473550549605547563296333402970617126940151763885870989661047986653712773639648113220548269953457921508277676657153379663000000658327513189573452348775020570349247266239692433321299415904835203563179465360056073385934367985828794673604091682468393821628160422667824712558157619077485363952677058369625891440968484850322089191881607343628688526496207056234092416424067083297518825331016090894021561232860548982251535694190486569406102968533466199087998122122700703344113472212020309100299184517857648883243086511314431350600793063342755638700081750312761314746720225302243970874508239064177882873161073291072537923704484006830935057140362512878751715541594948532690999298343850361749648418229805921446978282063951027567245114796539842766765611325449035971475589284426429280467257580664718656508080987535038504423898777473185271897508670156407600526354567215252156721714047839502665103019089045119323721853138910685184266470248735341791052058094843023612586526469842138630170506220019482883335791927924632327183727441747031824532096724541283064230127746686711725559041548394295324047484088237937554232662447575605017667076966862374059753455915942502578123920218190437758000130856890046875526690593446899057109419025634595145638839593222876190285913846621668709277123028817977796767218312996904222283124899002944528258408193568338837057927573979041947576737751784736782786865308363703758269505446153084382827436350207463350640563153628805001807204841486628878247554038245418490690692605399544649644509780857681068336378848286304488173816511107856087116797434686922605955578483697718987119190191587953948803085438143393444154651528366833919562337442604675840003355788405891768346274501808213288325140494107222666437012948198430693577634637588218995806092069432208646239716263901390790879667937101322485028243895636446122652022252671082684351238450863470131978480152900301988127801723619117945498295873992208220155841183797997178916593329032726256594439878175955939592466510170604696357173389506891751692918002326901990985275574035270968376912088256556819081052930732861190595332695280431339271808746796671442059517025956682341383262415374948291594414378713271133244799801936770319692616619831041482877479977801537075968011253404964337329291492901749088734160197007608704384049665655350104492500590258907824861329522866696234863950061506800767702903289761596117473686831858766756754230782655157226144672332685205545408234174921322853925722914944389363752496528231730660774193137443341287727130713134404047198992086577903957294259782974418424915009096613760534122064163514169830917288151370592311264053118561650341942189299521301174245719322164818637952141686173635769100413518500316632044060893787885794560478219911365737759179923964912841672477511121315600662949127051909217118604011770953046635763060349092856673505092491407198699388137198813860684307082168154531357225803665980907197409021685547733037021686349079849611547494644867383431320984682211313256356877309633267270701446855197864866923236436827893336763208504423814888908689954325847012690238915371025036378659036794028182739465003675356672680739439712319344687713632513135245290228334353040172075021663135640024376672903229322262031038220474340693016308337085710129358008734733796431093507358501072969954555186782309964940985745320745024335849504578946146330248811176804672224037965014844354906162994177083815499676135644747226809645310128306234349593852439049833948421098734880859672355207235621639952089030694700234279671691136177624904608665472161011516977162260803226159889071741341862648349907678774748722355874598787326848850354347464290094850745559408737050227475321535269270105329028360992671511346517827967596680859720429265498746985671609912126398044903603193517875806086880021819369539076158816397287794896441591354977152105221410722226409948866313268067084540012184945535640560444082527041765138688717086205849112637910187306965163496841990611771950636648334921755754187567170860091463859511440720544969486251890151545014316608959428771847710987487529310705767276159697905969669824589101250801008550426231395435074420587519347316972555026265014191961235099812106756157630375976887323713943771920114331352776503451395708367214449258295144815362090121038153455734148763124037367662708743459152488165390128624200656090472382564583608049011723002833825054861473880118284203698557381633453295063182972288401395260281478836184095972516560142349603014048292112500624572025492397518477284671477643188302235465831892097297010893976158660411866147078122937612691901012576184258786690524913025513144328391083125564202751983500836418829628058788760168193729687916799436107595253880678463606755741008412768879602277980487243256628100891206261651821096977888087843613303086092712302643404059547874487467673592501685587633088264123121316534454724389001562632332072327842605747974924485247476709322879769917741230329683987971668026642547650841533698549447886915505928059071337752393606735781553446984792745826990451063710900265976979702562207026407753444207630592085398799044578641380886454301294864905151997045152695204463967742515304270585177102424382252068838379200310655291325867119362061162832855214412918395602475098264476006692082592071485109131911307802736693971176052888983147245921462775361255186271262440842068382760031695456393306771281651377351425381886904648762743004230544543249431132118548626034418068081844016360512797667879424316879140095969930925697770260754965515557480171381780532242327009560922050722490523324040621301228138035887763012345016715902780979421653535687571812960355130782244564625653391458748914540247180526883964479551042829655124315909244672608352508285574515631698765980084432422627053761267085301664734090581913526088238152305942508498773084347730705687843782562369491042593845064238921325777151466028897794953380228167564251423023352829340138289690092322109329436093789171917923360110429373185310378300075749363014768722258300332929653989824451029867439884731103280038570297174314728506611563471894851615099117761756644610241949482060034181231455781704946475812976243571382339396950306899305758626899292065439485267006955320048702946669716725843035823253208182334310105171624241745781935368675863588602746018440277339445703944338426158434798734749340160181200565325070655442045076825725108007438216060170500526465001379532899273752040219500392109142011645968317858383364100990402463641490529915771290731034549727460227727120338477557851476348203442281350720194374072757293863133647429097519980993335148204671258982467528838282002210637298607596182900911851795825362712454079870033807836280485986276223562060066918259817188876202769673124919226984442537762520260763058277822572480456122618839123574981707386393122233241804738993453799801199017570690753486947436515552228232717760673216928438412691729538570713264382460954451763913316543535859167484581169435076412797230175932704421034113951481886048949372443964268213618550453066446213746295429270517415994042625799201828753627792215566645350850638287955781451830793384532334054025901003824226839388673252522166616907350293723493518424706541594904583045525757324062303463187261836412812808307733429483942936400030150859058393000118834887542343947987903891035231714590140987056446775651332297393245018249558017318341531886271539347744607000371780112065168725566160959264460749321803343330014796373190851086364173035289446166855981645758288529088907837284159769264331359706270618505386416323271085648656417686185933115698479791125923526874887037244987008634461774792657004095372705791997170637903173506154879501157269148358097836635349154429509952862557263616755454575280677707811997230849706267270831539463691262144914889795133294251287037368690951105601987576027172261804687529469373331459808179465270708323034676481291102359605501808496800327485652896463670591182133300080731061921305582265318307284258761484375564759453551762490573498646936485702347225101882313637708953200445165880709089934496920016790354014170166664693739897247343959009127977982092424360745083298155860625945453022675573206582836436433098592152844410004643112956169622745567165204897699900313387843943029664300876630611806172128213256547264109169571555698834007376072844925872578481418029246250788396647163988186623361240347014307085421567054226504232192072116427263083249495511486386917092539270151670196343153564563787661552389008220599396369593398286451194721582266552231042668316326673724119738084371436972834369537994836209566772487573454797377288666119247326409709036824327075734311101585909584435944794339145122563890761487481834828693028626719601301523111161421090743645748949079620020476205811152440321830434862913827336961372837921385849681543346277043682085526307984640937932278438876551070214269840903325685929088633261996142959970286402901486625053036210518401350586721726011616687300957270374943861368404893304593469040330947381992123163377091107714474493633671547685131104365014374007357049911766852863834303981306725110916244951306559820568048115716677942145963331842753805234698452386456215094936109835420953515969670781191315211268326978595756384371362570439907084093780203210388019192668783394433154492276641269303849164047737540594318020990548052587773234085702341696861596969880122502646828948905314910917339158960605996425961101616864896821585636535992172690492968228761077016632971505964256358533116367994920426609046109677834133741507140829227270778035541603123836362985278843898651490741897019593042323731887556944270293517659343594015748423418819087374577017615834207664453140907648302748955921642561491993538000512206482701015121562484160299487641354612159953386490861218269647693153559916482793811297220640563632764695139178054850256861648409602353161395686569885211880929881814036052779072458860472134202626152033113626230204385650181318875917768495342494253364964692872813114989565619380440785314945580734039297306268751142916980294634401115500197874681636585872810053934211167774610218694425178245835992892052463856327343294123746294063886077304842719286394274687877707647406662800778228521253368607863391677765242342438564870062852169343860638133967821476508201815343186098510652681419775284194657385548956955044458134342884495827205614297268497301618252943987735708882367529329938616627452972030555485219648644476135560490606103869815960823703024537598186416745645193257237569495993758969417351826723364740002744874069843604649697801372039239470142301267555533141094035613602252172279608192364692618935022110797866167137297986900736544100246700031641574123353021022484267657442776071419117262496879205420131557861464850360693384300693077369075432944991514723357635850697527976211635080436978578611893777890717216114982802174199892944267548864378792715668797257937779722256529830960908561907441567891399311535737527710048634215028260644449873773911783812199325720050791258026665675479357668998899966034625176807891569734547571545455042170061733765498092206687887592231782397062782819905355905449355108530103579966919554391130299683069634607842355976265306674191819669322589186087560993559406138034284203438285619088705511809112593679518778148879138364953699849513464112452170944093217203261596592250664023462110357336952053821628034228036981675061986288931867066712173477659931494938049573440011727509314123592955486953286123602390588591206432786725469411570678269970590040459164535747431036008511923360000630640011150557102740937651749447615675500144476643919405994789724719620787279209365077311604505613839847384106632436367702054969323383667501699336526874446698469419411082504116426309135223421398128075357862630388060973475504270857305064938929465348696034112080900109385767871560666729881018870899117084643843510105243341066536924494129423601939494948966890170522135953732525161884845553931889436678844834325139325585332468437724137759105953410581132379398167441050473790655116756830320161920649286261990064404000306308712048775346515831913276835351855836360285931266651672163554920584452682052718812682079563894216222935037608298672589120622761187391572589189757362458083802582541675310622832926206171235858371617243508767191467445847820038673811335351389307744007879350056788419186192302414563274845140535784248542843493174645702620636100421312791319984330504033253703146479808049527276590780577527180418971280196250704694789134420216418679880629471509811595820842893592261386529288353264833561771242705199886296415993688114274197943067779686197367687873101884851457479568163157020656745643132079379645079023649369883977859488111569871534217824535231864938035091306524100020560275190001246545856634356428541896764690747107062054961844028042032435289753302978377401871870723064505816271349523132058492360879423683205137779574883301962331007993824844947549594013650939255139214882633772194700990060596270987144224766103256714782470923672795225583780396811416977787636627567785095136939926751348501179053080543846610452600645103722214394405920540717619523076612789617822242719893556144567172586439525936631670283471171415164942035974757775675069590076771672617710607495215162374998806092512043915909881594299811344311305933036852636176019096152527450012248580280062599336712354972502808399225463552157069233161281149191161874489966940352682079407501541941375668782478768020240939423614311878116679492721971751160119839651166455291486828063875405788665875504022079824286350104380317171318171337060662859837739851861984118771342584987750563487925987249917185244464276022513221220096941895843004591059588076311331990563751171314006462225239013602835879236857652426437671328941894039011245654464630082196251171879898486444642852937272365280145156131048799163840785483754194577255025388817343110434957286224892510578342177039661778347166187241230856783262499477392563081812731958299904015624521541974233003958435072507317779874594289768828047782663837864424629383944838398927034897530749689262034744622264463550476441354262570885393602749841534088394574212950544922681994480832355755683629698092012365068194396664200323522873606919071126662944921317890153254982370073452135955598620981316423789610079081111366572542930907144032164770415450348842239853818601846079901831723938509700355567169114662455551700329161181451235105273934241493608977776571099022858026863224450632846169183719146506187479566788047143719968897883878542967190445677362184988200956530676703779933117325244612255641625242160513795035663916916518677805131087958675950317164012170858925360426048202989435745978747822757734997831140194251814334975851006963764782998110275139067987218667448190338244844370771096341852841576619788511305314843255591892772285541654428518175414111193222054423130532625366820951811386936079561245859224201744128943254827962883864341167658871860572630509696733650898077147356567340769474306799576062824494493047601207723989898212237622687633432943576631615871199793190808952534374489927537553698512503205262308814149140132670519323939429796590609943147293575341431916564415549780572227872765983072069688900342647561673667302672018948655897924199839234403961036738789155604795806341510752581738618597901476925935824234146880731417843796193591149212677944502343660682236958204701193166090068911359023185391775834723193815366879353683814522737450530380421765258630826429725320505199862052565309576289243272992034083407104578978716873366343002535151396815369598539870154093422337717423474876645967634222701688370444141222521640506926586164673980038643725117862356717234855687764673331875013420314163522505233340053794740559797134576296924047793200841622801293883272200864571817750846910283819519310739982027866086595881694264290376033353595495728054152738538799068147927347335019316495345180081619295553128662890357972789624127218111446932077921394284452414213135558185807688596545850037854946547310142781318224407459621259696252142933723880413667788506189164122290969850281819209680262595618118163175437361852667279717596563159752597003140062229859259207228395215790556267073026897697142795251084937257287091576334737081022770410219859970552109609194463191207648839030073221368159513796299566244243119868045884793649804900179483618346238542991742444681309652992483733592269947744744693660392982527353160537348894009159382983505435036411573527051399572772849497638386015654249185969867236885831135358853688651706098735819554119744206638132201911036196884248502355147719352035742785369792771871645635968103643606042283180737601406440031419859792419642084122391861647502529645994185433297603489451292111026181068770853777984044849418483292952390661824747102519892133812840455751176660763210368590203095389680638419743887371352363227979836080774887199169501095558178462313248579614012277712098080589380501137735429396858053015587530169237958813389251193049512583901039276483704062825239543278494802175553243918940092726455230350144709805388908265557247199654363428950450796063310708781806500772770701556784128564838969680676966026145134584768426480933589643533866586843667604130168028569769104554658916498856639506259339991786509724017612323618328583626785083889984685817784069423837429743909612189001506554431088761618854760322592249681666397233101816360922210191281627685937574075117923811042885616465853066926780535065254859777203915311430528089374047591778102492216347709366148866566964262326755633885473059484624467853150101900032395900607731366580674030980500362606404951120796144363888627192477389015804321262034485054932530622075134649383677291009919790706355185513986779600243410098072249318554273375590041545340906578976955376656456745264050647459274325790686353897694262072918838169954325119599919180793569919818030349234827437619133549659470282550457969836570365826290197354710739260528109075592964144312978760436053697597499741931579665844755626224461007700612736410750530666363509424175068084475226662523397759246214430177801027767929941837183958862048131726789749047145379452258479566179962080064370647977854830576469295975187568123074167032377559705046557509021777481491646958053542835564779701080667369925966573370378207721950352810012589608573802899723803939970304522852372883841889059148637262846385122254614545339230864216584727829443543134346466729922784471956619909931140520144200536650146241245869420148625245835042569465423628099605244505236285447162555808816093190642058485662387260576232424715447353795988060809851740147198656086504835347628390308406621487004775744754055575696484422402792020911782208510336851076301478395057171730795745298989116724933616241207712447190547642538178140569095103527231536063917138987032097954189100800592780523855316328814696443111644865246549311056064135537735065090397653336441660725170278988028057274403747064688363405615026145405385210660430623661379451208711627346650341522293083321658929178511573128385090073740713690489056229728410842966727362835793188704848695616524887910012193853725573526311435130637343774759536333030265864805848886543787293937811174557552146252727773258302781406271811594582815025428096998633543369766438717109946469437754800107771389820460145668554513361421232444841980793445272079989825521773864941554189454935540740989275578007109013247555947390939337276239186579096409377723217265234405349930444966180519120636127414269485470765223051859026524003751320082524567466774196918433137175372557111307420438750940398126756005987189886001430877363005880309928194276155180435441553213940190400807174717129372635030568670694731873781631069088599168751697140878823637017641772637567634228161273207160477079973023461760672619051180659427862147061836043788768050691061541047135462533698103504283999469227440300647204871445540209813578536376835709576984675162423023315656380589734010396642821478476583701424969742720649035313251004604671801637621778219171505128600475090758856137601340432757135846315117031860579347314050091148055387333130064459329192360550955357418532342335755653466505482654288859463379686865050689710903207070532875550916729208037294688973075418502072829332164167396978211388705119588148525491745475729386729134242016042051838520401563166265297927671034019884240135850806501486765294026789628272570718909640894833798090411464035423056499649893810066990753712648219308804191629288174472563357684421228334028667503212992549587950721327787448773303607508794763408984670817825577352665952904293397534574844743165872333889222482203768992569943929398736963273004188654273679072376826219078895815216570976872810096004990053743364677033361866477201077929827138659883486406490095687801364537188850879966531296890760758148332770133971959159674732966916162109131743952837229014412581532959133484369163024779411205141576904600642814301687078810662796187272028825277575794311291038131095889698890019593299083070415911703453255248098945347775649052988155516177087446055284255628995375532757068909868254072687038904306469528787751437995977407443038548009564162319564905932593308716953624798262736000492447574325087578062466828971767668473502275838398728291648177645844121637106994401799009865040151802518855837420487516257874281805956408813461242774022413957219283376080739450727813221732535176527278116885729209453418321821243110214826602667092285825084712975798285117706230195254743219698407869669592223285398468502402370411532136243081594101388249374883177358702175432016336373380666290510981554506390773388627774004232021387562670166720482550614872896116250500192608779640084281202450672407300936932465915132879623507543980736855936851409989053343047975242091621742888492052853678682068488568588911051606551799366303347302381595524185032200125354818838379028631147602223022104639982542042274741805900100160418829151685768815163887970839928176350416824782122040533893268163523836018130322046189724189205644685093091229535771387636934433384083657517590851010392809257308038446429341248745223392570782818324088408648217367531215119587798652087230010571753105834269480906625957062634483150346274272239387354982897155792778648384384708278281123305873029280455368210844607882965028287983955634288767942214465898907851829669699485901106843738205618081009318353320041138072276452456951799281710327650679827918930377609990798026410219899473774643974064932433572459631405781865311498595917926797428786705287717017147843824384855232624922353773841500798722764486682285985470859364304956374355888852605795790889768991764499113480092531536598962480017422680384094364544469512080920675015199299434219638140857229793978906564802562745297354949377499072302745223800490221251063924228789386579017738853910111713533354341189328703481655784712898286162065942136683466524783947144817568689212777745404667450581380884834741039469631366403718245151673247896775205774632324149102888073225745434720883680678498690585063639852753551443784657236502440813009497316151975369330701023700451196565216583594099630663151515869489530674496786732893680759589569067065536606185323379727316233976356626373398259001314497716441298074266618984891573091634668652470823742264528231876324346364956671484940861763674426147466816626477469546317609167213896484649253086275610633105241092360073332629464779334417368620699795170553955836421919858991243358332652933532210790775060547785489964998940725942465938884016359152242846933518259257917685195445969365773211561634108223083471941444146458597845414059749690000029532978907354412861090668983262926017436545069424928992178792060425290078745459775600005490982963549258810449460233014569855012338947217122370808783482450758515899336239174032311397962442941464693695195820384153666463945278548052313122865610479350508095190875164030049811676291615517120561910870083036042737042407105398364760025783706752577132927642867277090412714815672445448792335940980958875740971484758400263046602560859713080873929859325956442316004553910143099510341339708636324869776651493743716380060885807342327500330210390572082405395218579479944581814353608324248991112875864877441695856339125644392212041051241588553941039449661739237734060918052136655829038958689220654815863548959726892078494246628080121161089574334815088753454445721628336871652608493886039198379990432065453182981511034331578336565946313475802349322128262563751949257229255584947188531127786256994236329134375397681339296652424911608323060143241116037609851712480809811957355314784253855267248551570949778345947606715978153394626234059164511470596646174249002860938146508746027316759263790963684808696028632300811013464028261630835773446956756744930813750684829055664977091072338711623539583277668902923149733900356961921933102868759469438192274217960035093545502188629522646413005654390147616269937699840638299180445359704389289675885912132553040637959352595160289959765918756063782536411194553517521831034404375571780485424650770524144885486848059915422707703829733056210708927260172707248619330581361724991425183502960093484988523625180698762650823768948072697038194796281966150136711628522891908663742088084133691561353349960755734179164425349131581049744033628953838908881469705076275897849284647650682866327973392490831149912783319722482193499645061403101782648601915410972561682094122984023580796821227833028166941389779579476135635102653973940173206715669366538892273125552999601474672515821613327140303619385167258465854863509002920798920415198038167484710950457755981439163131983372483441786966217944154207598758003616105209508688109393728109594208980236799829808031953378756358467531316960417730682299911668057297732641684767640311804545109377801466604421982296771233794355280824450310236557881128096111700591769939449365618553133813536740888153471311322082743145784303414664466585462980704535609338864571963687705226094407529484377864854856204375150902620853709879681825442279446154152649877392915088821852107733615713012424979381817260263024951791422222503437462903861045503268073498802662978601938170364602736474894828848005980425106523133394578567032043644336013058699020173831838023756322032227722480257838294248645326925131986583314436862861451177162427033399738830723290721682199044564530317317883350324951436072118796335054147457289934615353269497803301561193868668682186667074580845134098282959426935817268831090630592083652714840971954201508308505354112547476619389416391153129561411945477444089230863911732757374026934921542596018850356429006450609530530231925361857553692343950801226951919588144487552512755001870437690789819124576357689719420828592719563271274029653736762580245531919284375750810814035459767662281586753970995924239737332343965378225744511737510952509872334685278918592184684980971646565712066022201176979649415220548318971956840489414555993224625310013853812925716511099690058159924559160764709446062449445264453444218990605682791544121847624815043343293077508604301732840440403873357414122387077267291092280562112296961673482555767165732146885672321305871796929840371246464509420908459280130526341444528838111410485427605834279301422394438109975581150565158413605242302351841734306049186025451764634013205449839122975886823814602285085813390643569239293585302479620327492063049225893200552491449111620650482900304286231123954499085073315269252484175673697540619113559734130482565869802504190381161565410778687958974036285005201765515814308344365307008912208540289875800163076949383034582226767351610447598993672566538048063402194038971638244979544727140885568011947771052253042173719494963623321097472762492489347824497389173371552658745722097298477134371122583226256417985698521613912276895592825679779280494304411012826811646321788846392284723733811223127181848561073275359571974466469915986051145821433467346380140235995767808329887072916076064831266979294730046302168711886418921567326281119438617576055652031881589952055193541505309753714460793917677248937430463181363537758068063479349442117041403122337738389343900140905711934425641245579275468493535811946375948178561292271899071588016651347806457460930025569175261081089422618230521857266307613901534666471454521735438713278419907919503065079953302176674977671905356516313351097580953932162773674492567582810506706543859162056368834552842625687283877026229530615814119858139153783382928577714372563876064841330630218582156484686450274199032670550824757760726759309116588363438584394534442965045974526724565498458355597959652468785908214919239954549659951155543870527329639148855978633391732739235685827271768410768797304840154348743784388283845044381735919093299940362680993455282544569219988060745622125617411803027578081268918815070136822604848234680462774486683883987317947590895304208083192192708943317259818610680118142127553688180556978968875537073806257352664724598152901386980318244499557827277326610226830297378271308991391848116463929965611542035302364961980683405176543471371272467520904507264340095942630520435566249501381233906786755444473416499514218367599858664336473742781128020990681491998899491880743416014722651561232493913919927451634588779996019734149529795217891351118986947858790017320989926238863723500104790217670835239430217163835859495146015885027748268567553152322633934788866746604475064350133065780059268611985688161746254538839483688945847793739477294644684152272244706164695606001520353733229343554414074381120294626167811332909975767777859582194414620502709380296912822218772772428881410401656262782878105401191229560606870360909887780227071350152192038536006585474599575945076512421288831484880762141709104978684601531343163566220096807371210745417779137664422902727540977716822691453472667756080765784650136111225651778854532549935014487797263813332233052171197625604909211424412782576070577160859351027846055959199774497048328687476216496709928251944135627118438409497881987486598800853234870559487278859605506113179954911775833179422641012605051645540396269655061241535545134616962638600591061547203936673155814071071587345731685904537510866971099386081906830402236604570208512602428025518670955601314969095408261428844582628075102783812507094195869551292551730851380451798773214228934295470162736336984218757509817380838746797189697808700514072404019048208101367816520868795363870633759050006489599185769553574212506739632409013542972819206953493914606735164223327556115680903719770430397412661371578893476226514069689064218625896210774667056357737801179279027077313448460475442573863931894269334506645706645433697307938063621936065318997459637402183292703297547757378760225886382375661874629785922458854634189074117553000084562198689997308916108996165222345866863876557826094723130274993633218544186452894758322222431099595718224035317734459481388429877893309574807941421070328225531116244708075830041145306402332374211981059370190264270012662625207854073598590941735124717965843223371762229075044429404673752940124767803888724792183167530919211502566129208686889836416321110159954404749816597342836749304195238104937585406302037748534066436274999100794465411188600383831990951225959646696746320399159436212633185677589192306539900940514511569000685159290904114260476074789721992767549882129560231531172772430300002006032271053373281158894191272736974268337825209053079016021058348154452476520401047446758226521262421347624777071430258043687433270186210111986498657366227048157361834486840895871760522449591231360364311335959075449903112375525176318264524710788625570418556098473237374792911772304332570602740164452699829110948702074824088178406994189124575669094327178424572584797120976334792975447248967593215329473554445411270132293613914747260719622560241830947843828150727759836560424785077088536015520606760650787319326509837920435189650427860561442740061613412707900002851850381507706982728621016924683017738061669967602147727398647044910132474928983260581488006023859698138390643561841730947299178952185175788782504678313487023245293174237486313039671573650989999557856023080884399815982578296372366248866431964924439261459715359910395838611300212964743078072316608400298483934942455434869899562862399754805895407948541439764738566905322307760531319603530516106520694485472867982264112266907086148650597733890764204860338584154467589258575009815307598917265509750968830252842825803142311679510442302453340508186737582576090105746786278928207567891815601947468687422866411513426431001428283348308750194016244822377261705804496047184526051389245705736944566366380585765248578511946020602110924831324932101219663724604871281623461510845071322083150504162060529219202991094133539331042519998532091064131868629518893372514582021123036135199985050454821493407640775646666410914947485273929454064577842715016662654025751229485147382310250499688601708913935488159358865524924433262139253524337622348095388060492004346151668529419224512917082370994135349956027134752589149534975566436256611116002699950101157257554780340558828188723832072683143505251649201862363298128965845419294142557408506523592384418991854443828361644745820847108462477068346297699581571272019560563845686291991658063162286767461063858109329869453062572703733299162050796940147026207134788856110271191050505761266507352591988889331266237723853283146215947443475543604858568468053636239351147693149723550985867000843111438618225476966188458203912461107350748600489120758619150907898447162014350357658267767398061926246196821386206200847420160685231818555973428773748759082607510515062633391466220465070198632171100270388531833441983270292275938460696613060789200749558611471366425752576829476855517236165919121427665922620471294769487563522058678475022807556066936673954955242751652114984438863242585827428177578457067860517958457881345868194018474736587435176744045446756498531861848680877742759003759877522775111417818956212000398816191988121577630754733961675102915954412960954908117318122111079054255209356274496477015981935169444544060605083461398582365123257401551441309183891519221967953601608316272302767392279237422340044812056065258372997105700482271990165474003018233623266771628604124150449993214560573565809862945368574510065908891413421787023972174090014063611021312541212107988743244012071094009227518227600526614938129561305459643030786079939316512794326812278464826184683001717528989276997888112128483175330605923887847804811366600729986693755831000915045183947529542765806963267769044280899225154083395525920495295766471159477392761613825793316902189755810871015763564008577347050383816098824687358092754030806707118130758296719020334678489271347986346168591510347061425544967523361070696077192780756294725632292610849662574019504681803252531148034905220722524948632228873349587092242556949965922268929989003246261478688495494483845159132056677698716126910453093082303160762320323279611876366257053487902617760052062876695978497836362047925666664156699592977441724178612649908051867083673069377176558718031419004484063317613619427497811361672706095207142967723478944841455222519834380779892516828466896945812863421446428250286434639070300289121694231814615584886777813457088889974415176048463965144997453964054254315765430534929783797262973586756155233883701573732757906606095326309637534177377689223585804345449221776091949989505784415322875429061379097400287439172940758356994044225904276456902514019251032647598401046116085162648493179748553195143165542955080889009191031613882898409063619154250175854247157559744945554069633445505552661369592566064190009584970396511803773410623455437184808529012099174519939928603103493450324096998422953636250784749418972787807591667651469113339065473726234624212257852953270302848284461167072044638974761048026072805801346424909034551988501493677994928230663102486049365054330007225716390926207942440345586367033938611824807907086032148642983452449823676664235445352243915460128570606138569818835657656321458122948374203287427161769638930270887558750413831854799141958866472557540798495474760210936467519040786808570645254883782525399657788783773037376822234486733614793431618449054569981150299328462347145538614370891147389213731359112732675497308229546749911993948246456917094793335269473038758445126118957586424918968485052084442227206463066822874880726570219796666450286691253974196094395874180979840885099103486687548807732247687553726940361139161725306542734215862689102730995541866606458879475691688592523760529776818275152413421849592805936437016882197902377859509091109636515074875063422881104250341559598603074019595217951663990438690349825542617651423352769806857376762988813581593866729293253764164009715594884628361627014165961015181455394983263238091960346591722640770078206046812177366730973236248558844009117253611692960695349395005520541336624244888000070618161661273372835424265057532398896177197993860018386208666310251480802214162865330536786974789577757804660379249328270196676712904650374111054724467237439020233816076157880901746128854505186160226317852210054906558818245196863211462507053861297705610324723695149492434466377305364350582822089891828218595726581572422874229092781059164712087591055481464276204633612957926574090367296970527416584037385537418686130190405786517481622761435030302335707282474811087538470338989415682208057409021207073204616885970356660341202887127922897746970310230200325947498278720790388086603277198735427065175345340033822560617256735003901484349856357884202251132349274773498057044458084332736125375528553151860052575888244303631115869609551211960050407488892920243954548788284913508374257950691859170044088020491309506360224051273124978365551712323531454452520895664018713708665439013295930495918461581748451285371970725184106924541052799399118974203729885983674028071157757987425486688315567737733330017686499755472045112629812074410941148285782873412017951307371340729475814896519781967881918804974512299380747381383070272266829916759474957448077814593049617483470124844630763391168301643586172890749308834614021125335593238479309084220796323031585419619488404801237541614552330649143869604462223746743650833548188232551510037960375626790205283984326458888564752549708956406546877984329862691378922878380240488027202467071543029601737664427878745195639505065168682545414291100711018465371384292001007914198735627448579978356462061307416391476337928357197650147714552693655323815928073217840367682854630477172844337261566259943119627896385137146544659679649095165007148178128769032845280829045374051106892886537657125943661680963637726733538354594736766932713326591354100150976135245132281245317831661945449093028442770339194923440871563340970472507970175310738765522650373109426837010571797509651863001977780076478530176184672572696657411389353524222053838222090828237118267641049564858787382290662545877651688136356674785750628390714555152264089194690946953904266197360411832344685923165310165434097428648369801789938810913731885962769190437633546499806490115950380576443179851224228157483359227057736311735831783819017684824555243246703468082087965462896257703371775923951604407453626130924685628433203407900327351889811590142249879477226454865948184931072884565022994979198379574264290290329691686285241593953534425362947708873001786060235225317073937257351539643777748837272257222664125485553120477466705014483681987543325097576873179567750894658503184480403772163951091738300441469954218424353511829393086302136049382928513131164812494213571384441284876836045052576823696219610937151684840433566141459135678413800754178046106620415185555430286186315475259405760758994935141045614688272140863913443376879290386483877094485192214528047725253587733264494232757763799187082234310252182846636065126933469073632743030925949004637626683752995365042651044789270568794839287039911014712963138868160809454988656116920419141693353682637716811430658762719124278524287831610021235761954875069731624212194265710680037011864961290170299874698063289666405391544810390582815300106135078947396323422502907036222214707465280498028738397407407756786944359487504330610579922583707929207156613847391736410507665801966235688214369578627331521464082322394110326242502780270296698453267431026209300424706003447727050727253240249041921537646865240724392829662325782529671684627021242075730215097154567822704993404879651628692131424607208385485059002917337619749763711148103921918578022559503910571342370546421758453329118503922200236907652133376984435125642446317910261541586402237211042012816009921531504890395148448142112277826857544159516931860570941419322008656609408523095518869820893424107134670666449071940251835388252100537111598256861393861598297995813752805517427370671624739953730579468915573559047668153702470817092650308701235597377855921445933938397414740462396550984434706107196691145416331137904436254643287492303615247755310027740213255956806260964862580303267608268251369259465659357062452851261480822435369696455978174447558110186844008312372466486999157091610906592129241608532570611175312719027326364203647619751201555668781237089266922723963644753559672097344326516129610002492067507645346495109486618344077120791075031053744336431949041500488418888592918370371961420488316720685859892060300556523359790817163828013479177473483446909278102960438411429563053107042856882928949337340522057066758461493235435470739148761216649076488227849630881485525899299247180857290744023330104293263321556576005755404865224031238114206567787130294787432653280390432138478383536660271749259489937663670167404455318103389724082182839897095415936883115925689707868579530554257147430285116336455862740662035747020547590819708853962551437777039755926445031134233637253290390617084164592311498072952117849032830883536604265710617890099184312407687774216540618474298855629593474901502792300089218037382574333763664984653918539108738029129740862510308090496558564916483042163816596378405886533585699744679312524815569279997072463593211267825204849626895583843750329069877874107269197963049609866251162675659027911117684698167719876046003323540019410455731971967014832669026148363383368262027619715757362694332915215154304810915704846237404704674452411615565375368864861657227662960453027856065047385037790302749282793892599318727355734868375674743319443100092871100040970285706451162626819208039410640454642767664999115862649282909838688857504818898733900715354694863271282121186125153082837777583593208199852662250572637913985909611699611260189842583982682019188453928946741406267008164635408554508496253599163885341752758393900150402121675214635961812991631569910563624726706169634622676737539744550634586339030133819536357357807407854057570140988873726074430197276568738557555787964990234639041238914464880885604334436015556866765893549790697518244748205867775012089143273283052082787569165343776561222193333810005790567849933785486270900157111045105598525348597420305231881424035148661832446309268276572923503648870399219389840231434270361380844355971321134480920018843484898352520546875436088338706436390560265160216837587709458546821862039985931104700530209658724898821401227548275551582180828585313366456920528239093866140316277954819373729499485692470017575314889422602911031592079915151485338902520279876795184246056324631414830890823447677115740888988959949024166935594842219672731606337457648707975842479599133984244411278987594509479664888120037129165102608583122279452405925381719401940435276878281900611949392033315216592904364061658010887228195765356555617643035538397988604038279694724392335114429992195178895047434960875003203877868306210519922562429195006964744044183869211074285186903292965956705323586544408110859794471949989806020623769390155026678608817554894818677740032245593741859921364421253966829498938760585748325188921227891974572052529676169484771072602362961045205850036048817663841542742906584356911759221759155814751516671334543102719882550654905457315493203214142752409268467399702141763929595647209125791279446656698839334703653519798293662823309615277798724410421793600179799689262921677581253785816442109369588036777167680690417369159671823950776520454854353447582563005337373868373602632005895181518013210792592007531416214345439949055097501313530291030557445279225987110183891494401736277207139646339496229649955966897202849953698557227312119818291580606599107989681247910170154641581903782108809434916800120022697569488739346531527071097751921523054599068884394644865183210881182278442504983128923289725685309769269021938298391983329165755088624706009714008789508047887076683992555060169247532788182246139929978756459063921814234778860022621139098345139923108208485547480796129460040980924592246967517390383443799243401625079244423638499267319534313730064133519230194555036055790697323383647283125482046082720358555159121206689748848970032064865758648426409489683170824650562935365908397537881484980716678529540891544130434779611562683576889239069075062725263848112104341814886753143078048116051281635577813422743934104669075044317056366789437324841140601264528081483618779810102053692402254334142777650439152688316521915774772586816713979956468396991322898277172176406820849514449056947626337826943590586896772121573124855398598424873448007684710775268889218953358553483889687763390801856112123940582740907353151590125304425750991278547822195304079985165578510329345477210109414051411396774579889113677566260887537242343062328755196423956928447778679817786855637143701580458021893392662429810490313196360555787445025623552653670675630391823549709569581153423883384512433220025022175591800578520023029610256782131705747740143908092481593873501449306583985658458639483458579342615731530917598642156493579166895414571264948821327504590208684255045932437962524326654360064093054337648741727900778374601781836121910166711069384628947143529529390813557052974255313649800240087871186466162847177666188832239233567444743406263875032476753105406581370338831241612848868996944776347536165450855505695671113872728752915546212785347013047276743206582886745111750321709216785137754239191944897101540886830509906018695072742071793158700078971633011310892022562536046342816385651275057027904057967383954235311939399204249919340220581314975247984826066134327741682489078497653476257623947073652610452346367708012414538596938059800674390813057407327537314876917614484399547300925855501007123898649212201822343598475350320713461001024043096195036395692741851770893466999048018749937686780698804792341747975983022733815290934228578132261074972048940541123147455899623724126617348881131567830954835658112107774791487061968753488743613978442077069037771273492914774277311982099110028857399946183927788676596999281735930528358676202211091018655932425891985222672556478849145237514551706265021586577458020264378898899672032989477471988698315974196409330935446495886828036278080818487403504837222306121592208768385086407895620585977413812049430012142652571422836797984523405504902958428050928230971826363553398669787078385316489122051760858135787097834201002785881537819087966813806926235008678165719274582453713206819530594887975266058194659844754978949254947144339782544439467098703498405678160702600819832604596906441903637204371361192147361572168603480476354305358807567003540150807476794382280811963165436988840261791587936441567859465092224579202358914093921030348057175714336692455054106515024845004622891018306306418283202512818473641619952086892920867356787273912919759352335987856628095242719688531607322981562533288992249130898257572793457643313216026606100319973724669469807571414607396313494170872462468991437752485991054742908624190151364367313699949028375234899423052789521338841423303021679390565811410022188103334347953016114544517027331484231210057331446534604766301119522928254679514043625495869163688292020139540768514468315595821484608455653369214764445174942234558341472930682169329462021970828949305336323687742942959533652664503435331050658433450345989244727277748650935513491035900356517925342917093950757580744763760536849638803106123143125344129779846516834550725436502612287562195661775640726443553212690644922706681873301443968563773059534483386228603312366760206183986972380500471956471254589448458644226574761966957506645174149655443677174357289129273647098261902854150099831083137029209738626600058056591044108131216242161989058596875299063072288556475194882140028041550288538180906420880624538325166213928177551901504958422161085134879582814610293390885278798539858258295213684327284985808775462369722601890934966893758845887017441175013850483463327816145266975991925693536985698270876737124737936039370213447296731372132514237689768328028590301843425480878853939634173077478979514855288102393970934056582461223375462318680813480554399849300335129795215733645466142736407882635056946508267579336675251965607844515508807191269686903586348383724939039785284720557475945949365607315892868303297791617745028435866140627416496450223017018164118604397650813922019340959287282999332421283061604704959352079086853848483474409908840467664906774283771318482408816470735080024495456765587634294219939723066588540617191393064413945581899160597807428312180071812170819542938158055255783036693862502120238057972627030663330107775622327338359920184040641757571408297660502419658054074665256284637358308558534529175095625585952567039070086121289298643577687331790217261808676240748944076827719424121463553702302353654823995539621036008403966483157638447787358637868517261988963675452153111396270662720381526766604960313465783001229253950651144552535566347529409186739639933652886075845283051968693647213815611842097753588879032222100985641175152096943707101197385140682516991659772282519333431412990263407139721324719659818536248223852597434093876201777570363115673877377790257738050154832237620356464186506280378050843088695375639132975539925237284305550311722944751237396260626037809103922602703841116045255014423174964629180319038928335616657731297642241726049348830221395114742697148341102238947030963507632140151528281748048772007801706354487307205362924038537236276682024530962917345738642979816866717959430702196795977725736374584948091670345076390997353230661735766484285330224383582109216952240382877324665987077563811897180160566965277503101249345000087394167518532549943302240177369475494855461741848581970252658832885270446082874174540509548163631983578744758060700687564042056727598042922395384438719353867285277763139238772028396448287912296903627682444704227972564397304380402923350360223268417620218160935667851136027971946959449828968764762850364746624145033114538333312640151992916224665796658737108126187198651325113134096606608527342304779170844457629382970530073611528762676190866724480778988951645030794365147211116441572939616805639600145122175842256483423056414372536520591694839778656869621635306631395956289114795324680649195202715436369125943178620358283189768055411932449821536000435558588903631498513939503869313336749426561875665316102298196973274846159226828038812772423814528229606849172270930929885725036506706265465808830028870702948330144106232740348274713617195830556598843854096206653928821151907338020441467446414075735679063919863268016188134001929009343316451222334815079292723247220906941250895341791331296780494025538146298437331068941504618939539647793803471119162375564698874972540974843068402069144560125295503534917219565247200474826228292469628951820053327107744295355607124856605685610842750434309667689334667947776163144372285315228435755849200516655701796233874570987708379311693072149019615865578334435649414566118336552257659454152859282838728448163233555717922423835727609692989121771657217207162672616797349259367315509424826155789104398818843012911308305624491921570944124428980860570025486508541328937072475698852243130791469224178380269964977352287716774139139884235594325393658358564691707580457041279393711888655522057498610296442818142654444798077310170972279277918331515866686105738371705479573420993839568521659805572247391463763706852350856505806398049919753274235550196166745304967903753678672849586882204030868608646759044547048455923711624314847256477386251467193068887235257462329228753956408303000188610389350856614642603903630939564781967846180076410830017011573114978119065696006954869389794814258259441241604214212358376425123961545109932039825808843800217907353646051560661016042367709466041146771264934770537050792253693873266256302963373457844197238044423957009310662591948431722261463168339089575965037781595872008422657616927808432537001289562388965310274727016707789327985994112022326630769768541338569734831207735570364447309538906949882539826276880381110305919509835270337396670190382947391230092680581936530851433183481363590425102918153593691654068370976893475422628590315582160095425855157104453115733321954684859940071209783475814883517955133859388028432047042571083166133908885116606661394429059169997382521227303757183178373071139285889117477672071022367689768580499810146778747767388523492959701167016655602929594196302044377245929421643579567459015297476305752347167882604757303934858566098361375657228581854326404285658928912158338464286920691134862630910083407101865025756583692289351239982345323525330853027493160278809185457720770032456479276178325217574009826574765155488467606280787867687692002050181681049049842191729625708554145402096676441382803578802251959807336792200782329417367370268952616293694394706448047660675247405587581276199945720669113604693413310951049606428846522858579336558880430158190082144671294649072762356445978841159918516233404860299775606748832673157861505779128158334689376092455144717807795879702968244159511106233039288006018624556118428276144051530095815068923879572135280444880569396352224333282654007151710523676730579249905673403895202933484313937194275933141609244722673885244668078886209238192775756978924993881859668788203338436949706479472213439676895447569227133227604781069363920440785275439690288476290813365032966727087031489942136785838547914476746834559697589622500218987651033465329635395815894338605874160520313728816288774584048052400472599163050739417310947205344373642578096924701021479145796590888216828645552656677899454125762439135649669117101084153441772155129013671504807823088700828933966374192547973282468763350507421174418803340118566964933339281101628316188622724624869669383432936687119209180839084822748138402644817263117125531240843065175330699825962795227743918812314830371378075693750201318081479764315671687570141546228787368988919867187186382620994457578233993627444412433956076735836057962536135585148418044636784003020774920594031826054570368675735548794335770445247727526713247867315362081475659656837138797156992050574271728551142317802115149980652877696777786196601386119703533965191272985682261256910502256510609155750499748900730838623056632175618759226079408380880258948750061491563923174832856746011156728121115340318325183627319126838147920956140502225763867894928810082132575131854427236459431604881607908082605141035505613201584730002054366476488677101632740899063202324234292794843093541074848424094683291289102759788010420708259561227680679849412873272443455267093582406987692133032962919049715363512574647592099282827594775175953413228027197036914328292040229361028293996491325095351401216266735963655048944539521140749315253415211102939471596280365391610427923825799857032498378815160135289330284404032826662399812176579649804609921494322878140771326732614293825179375761610468403107556312591802607438439534824202375715436843695070109808561938440993133215543678159928911765616599589897761066863957073242118030289740124688405290028781374138185422506495278289330687278338961739580922866316973860322677182920400712477754759638318934753065907191314674569688251529134438626393701942322218806050280445990844783292451277215571975873325186038820913024005889798483169513994840584207844645342088183527445985872514270690573138905631990881893966753689892483727027936855588596038920685241830357165302665480135218088124526460085942359209926803626155458689151726826981694268671936776333658484960851083947360631596051297058093856975785697705286024452569283218758657193425590530855112777165653098396975002268075062859103304666867362653892176636673774185678408603682535316973398325123688406305293558411869690032674012279004641103587735488719162546309602589057589201309969385001102571436658601517922883170459282384673539038014310577518177925507038700534413224019183511574483624736645483012294104856088645009111709840523258579032435232202981176663112320027284940413057063177173287626648704025968263015992994727557719616138210050599294761407077898425735106499643865357481963200872164691441980845422114582899451211535139297757613321832589344151047816059371517536859194897982505853849005932677642165947933323129281292865585763194473808605314483142367411773846119154248382963438826600389832066286535599409148481894683791389761148020121228027814899022317241735688921839306012239251965183114711159725731235759380864960706434638892457291654142612941934137418791695895590749246956988702029132971601189903091307345546856620892612332715061840015896009668214502866421724374084237464240119756278870058425560017252655792262855086312042862826527904139819194196238370413548841782601735568440691767058050346712630938788944528946581610170587692256876045928742431089186123585468128160381258115928228231941549497555584887593793497563852824700659777502157830699154326303166800238833392183362631557638815504144149287041102924438606569808698641083240960929624215995382001750714167505136196175734796254628709151870265164051207318255692440856026145265188284974886262390555272028140129009603049361253958253546130392726493056338990204283800741918206755510362281015099041671374109525281041425485797772228637673264649057961384534114663161260657591754886643856488075212933882725445446668572835489344023287244461084616262172700107381803576595365223921515836964744323116706505286595966433087160698928102295790352105131821870679371763696250321091107170916041344504153689738895164292524159522822556489762436604901106903829510803608100335180043238431046103160940523142074835029496892149612352943602057671576315841038094872269294600316362902604393118525720154233480669976129853883431449068752949148029085770589594450245511273999096267297126576439511343845263175432456398573926456315862794719629326749368193740013522649940310963049665138527757728469552393383616569580421735996363651165061519253313585193510788124833928383918113506095028704843480993897948744831446979171715363808645252618578687357722612589728060156675531782921424319363719214235093505910827198993395356794437345914335768912816454018208845559481370526313662984878878815744118872064088913364120171729997712512076841223836139196097238520173863734897767150650425548636403117074359491628540347714709219358643975118970532566527255713448567974970549361932567599964545816401849153833955092592803432390078755600132977359055959815127725655505715537179019923407301690472371586127262103735764592815560638681862206717751526304913542562884687210961860333185724405745282277438226160408752908841873917453960247551971644537683859698885934219371679777938298610122184845206483217395441811668820400892023615863895514837783675638833919470081459719026184805903160735449625415770067153862619523186334909942847831770624252537214366915662668745840793302375596176276932742571383728734614201184111576750313293855229500294513586049375567112603743614664302035694014749710217735991139358027544707954859764006075375511612393805645171339221460754269873215877924051902018194637080907832383883931917717543351066719885464506790652042507193092217962434750451320397234514098108839526799250731369880661253150766446870334102066580373713543196486694196502102176836128995670663316716486261412339598715204768858438410277296179448476492294896344454639129194728358991710440280187126188339856138781053002485495947531549339660241847396246395873902643060140386254767120980967288022395221211895832723999655228643198904714968378570274392737778285688539261669845769781422113112729257973151482580015486933708545297206220676398339428923134746403345887566257465490241504720109678063885215576309077564127510403238457855054220912045575929701726915992926643996901451809588841217971570732130606181241938011081856248231767474168481491845141447542070336026502307978277487011564555915813468848034296848060188335846757508984328094365557649023369903618395345398336753595640611779868373201638271004661107885786443048175616158654809959116950592725717518095004475251130234349679638741054351811810156482867105233014535483276599628894228319548239725052576931971217748260632143869669009341042689098541109638383420870344708678370326855517314556274503949487714991553663325286388974102763210855263686235261338035637501984145427008232066984039044010468166034754962556855502530216758796563961780757753822550877310706560277569688868783636755174171156919443052050961706095454821626145855115207114313607913487793198709408429163397917165030256978822033449090710823815474665972804843963119309500300718632329810713488438787020921361916843999257374773671721491209979700693568007868246042890480623346120707024529181175174117304710750220494890913869317846667793811150649865930980874242173260106001663317502087563777806525532686215222306397877866234664761157595467964496866181330329151500921929492660055365791608994791410151505372898288252628119930049212604433036945783483307458567457075693683608132582759887145289152390400428472576415777885079237359177516376736759946592230847962865395097782497775089372074626485213019291798338918791493719428925537503661422072349486788465879331615091718037867191463079569026759466836995172767069104338757481582632244460464142923842412725196781338071727761516466432908425577960016072944385884290200852339874111736313289090045019576446863695105323833237659989672126196916982588675722791674047311112248478688004825850468956587777541307018505644136361395827636579886015357907568027908628847049577792788758857267518213384714697556109546771105922715476226840401699177414195432136515582253219233892211777706305283377979138958386971293283844487448218930486980259155106954207717150508602817813039189865796590559974365816076209406217433645563739919754903885593894984113093027887607790317524217908882368147424680218284025297123119031810560814105057499164260423229275717881712953560159478229780388688145195368937848832624591824993694031080100800162810854269721470751612349401644670435385684033649301982241164465300611131368422861721533347894533020892895438443935849165135223730243168067716860525629245505233702565146917805835147585838290266614792705304684199867339033537019010102577083152463581238040540890062284312610719876169049930858189599367149243089437297002776276442597041717396170843785928150375398008620094995168758622300598301749974847892650547224538112622960673738053233543085310234662231074116187456578657148759728427271659537708236343693264144027213847188974828937864700087186683001306627632020482078900295964115656109665628160018474009673065256813282663021762654677459939160443156710366684796944189810883617775500507110717974774876174731976488229833182527472797080952158355637223494631443125675970103620936497122815408355507075378626190849033287230351432185805078756454587946968515065351442919960614012929610284201841605614151489057935406687386045237992877605872803910323839462910994198822048470031368564465674412864403105518756555707822579447166711265191164336310303946882159379358859049532061018139258768940392711138918746130755571721089995561776981655441879250333943003225518083147356577201345327120288721168006485548853677591143448276482574553218245819477187083197086400083576389943302892843005308469538348144178878758798194062327017677160642172219577088277632173059936049330140250263020266852752876117685833697831470110134413099750928603537260854735373203309724710980580712290755902598407733981198870043575680324931369451506456594074103739140203203152192131058158897628390703036005297729051856052835133904620238253203602070221064906874508439694283656805848158336885725253753393236064618818085562198715501245286097476015319936754656562348402870920320801408477085400972424461245932093700052761735727650824944119717716224226572544948014174228142067406200206172874313684707280384086364508259943403727226373306783587198249573101547982618983272817685297624005314755440235056382685178370331859549586608816017507205465856317001528574180526040195179874102843756927581536531556115707723869337356419082553803795423405236796990919847337987541377317276330159158017318416299017112336880933030924624719949011736144503870771354023429749301948053324891313590821273955099436744349309974712410397002140172471977572982788592064202142992136512631431473582543745215203026425936319254214181013014794555969313788697134648525545585921187980086580169288203322055364652509195895488987049401508295145131108537363652708643101249769736409591838144698769862314510238310684744060392307686908371386566420166932023336398780257048193549796503233771157392314441107641749646147435279181352945240911129359593270352190793921741390646239102569856506265892463939020213994599495039111353696503645718096358746687720024094821138086554850430466672895856563984558179855397895157070099552576498239156581912535005820248853882903431612904784658423370709281947162851095012578591875991543793487996631605673409230320754513179357214150378780615576006116876564170274744046807165816750048682351466442149346974670685803141457708788817579568951290015989695059439912073093955328291558266378917827647682051628972970295164785652933243560598125135141351583747007874874870041153349119694339358255026604107993008216243177152545478347696220142374963280245212062379671763904926103619134605204533244561109025019854009735580957568624198798806889702280143938188981940647031738620782605854706620766156581319716638809765734844858823565475899558677805956897701455579121939182485204910945566252531039139595290313842088071209252867992411642508645818165550017655151938204002733365791572363701173833278310175048628093558810200516983221607203705078799311031167448103349329772234563147813412782438123882278603480767553944941085554218762070510138948490577894410781161966623771475186125382107270270255755608728978049354813863019923700730859339061498207091272112858237115916586206893353158164480913150192698665197392976903828463837481968465846448046637064841157896681189093916974326029997457726406088167593988130093575321790428393725293582613620875804411215553215864647314296042618975523879237620290620069265073638450755182499747099834894779413520140639668801318273508265947918539806094867520416684688795686666750014884626435901476595037278681950380380909565084624820049131611717301456841923804917163527947438550433564273642214289959136978338252446299561828380765352324782856362151579440157787671176496315125056278478827787706124131663289605646300745658368322421581222914983291947743751796771120915674584037862471262245255554373896933550972914395017459770993405785049501645786716274739391357708845535358033551919096755824254934542787903001341876625481524564244649678336639625394556898550285204208874972184118427555793440156450750483203035055090989309410501040655280345208437980672470823298877048561578315827658329240438281014900040433044483760317812572004011781625630171517114552224922866839235190907906619327531424863742154171565945065749373201986531090808344564111056719874734854314898433653102231935525539145366582337052885313366892186600096176510526711526694162865053985313212998475259741484484232429783592864280156436385888021904625188505738085408654291972423653262626480684252992827990120363212827190318475156689619902858737562957404547454930768334571723037560822710037531411426155992522377278538195311409758894893035080079954558422513450479460131147677023244896266030386274091295927185871646329645103872974923166449039298889642229515269374352366811522972994074968678154424139471831388530251723712761269153811345536367336776601501289957833040290198719848499145557818784441777595948421636780180165256078574047160103732511271478467900270037731146145425929700392099627109906191216622623384791799116818050374957800150404913265706428655827833219173555947196325137777393522696814336740978604968987275075719613004681560880875476088268258343998306406316069808846205201853306648400444055472227948909829808891245496472408981827327413529071093946615114361072461623339035063973158728650744879502702697423792385615959626310291627490096686246408533311660671725369329814135012676268751019742219509098004602684980093267516139677792104467911424794772214556567680161585224305556080960211129321405045881980406569012987963866147938661651654374467004665207905654832622665843289267486223126496273680164124704577882709103325117665135209070820818851415770275263765307407851312281559407861420620569854587141119179687620568199695407131818264705033503639029947890052376638760960092080708756690824974726969864672706172931741949456490265001391776649221364491000004828540370542571320365712725845776783029221674999558260117190000059222008955172861418254642981285297872579519150436621483538657823507411874492244702127887103121118373058684625657979863018234978049958722525473185840700870458452068561320482479717112267505902776798970492249685389950380359190746975709485972133945825760489232867850545551508706685543153692829767231159273958584976097559176585874814087536567124336641387378249876545151381520146146187656453206202357484543822363304052194292813390561221599069236480994340845250588130280816417294144440480286320910700012112745064592089452891982243523677987595446335464305242665009249644348994253081126210001621844201026936546731824940006672648020383974738916881158333512596977269857256302894547978124711835976486378682692985354430522323394569580313674039579204818631590288477849194199577484490354238802760058389391425137803009130456400078012017104368549103441780536678329102359309892884472731672141513311331918938432837445359711572513374712814087484736282366877871026434108625826481528723171799513100787838038342193447831744998420295547567263888135687203897867426480471354746143097250547482861342078610928594190353492460589591188598265251335386742138460411763219687941767355932366485327523781638900560465033226866205465605085766540860795042831203780402371838210467387479584042205667170664535574149293580469941297593824461639971283523994346440294218531912282483552109536897684997999380462678969342547165200715769231155545682005366522820579520628744149087157338691493852402906991449607303052915189183350127682564162944864882923093216842423550826619862759495655337338262817260443265638712963105528679385828872475535774686216653497307038900917083204624963154175807009330683965579783471148078990322511787667789701131943482912504392201944950700922128467579695503406342931464664522331159746204460418204686452320333149313183097760369005834371455330317893876145124438933202435924425673351510682578265522896945872167538708134885332103606093908306850509760232079895639237132220103590486586454978158541569084064197756846711700482327949785369677114164670011036339597890497567906349235597150194778266780764372043900673378082741973013476836176975714949556453968401142518400913401853117027410484703745543688724094439250729332005036316385772686544832679534265220638307292106776058279638926661986478007272309284819041088154072837272313185565065253689287716219772687674217873028271927746754473270183922732982021766089319575578080763234981080829669902231974716092564250527505443730382086227470762505934409123526051351786054468259565348330465070136346672012852930939035171041285860927939631301945293167906601300802233051562377537836479487943706067573678900999750494832133417569974762879744466812321239379221781983279060043627950619586777336229273300325885483275326603283390286395655947837769247903001365998419223089646002112729701796228176158796045332964646721835703623199042350511615025548858421881292510574757366855880062755182387531057858673278165500172503923159884900012112387307957494350546938605401609234953643213663068772930622217314985019947112072869023641403223976768768558222727390103307945954883853417791470357054288752270398322028215771689328178578601582233533375671985075934737967315715391699761381428070979851396720808059605836861355120308924200968558007696840679107041607375912406069349895597753578913485754953768813340701916497777349918049996772997378662493888927284406813940416979928477141669432502822400166989788412995113073435230713684489882506021571737866617307350776586931672909791180050688934763320782057847787386673254342416732085096968057900151458651709869647909365592280671966547740334450998632316393270191301638867941597602985320620354372633389043502564846968145785411821618515923738437470732645019432201433930642434257926221577830103502808569894213502231748188569486233643800544401769381901303515110226555745807243722742325185325470904754277149415508915129947921391964098388297513561805601786518052290993530029350131959930429582166500681777165273713500330306805512142639800019963222938474927508626755921855978363449164563504548967339848556576517433127773481640852782282557843893681736259045065009723550521739223951095685865432871852389874901878118306936395968301175577808755275299733076832799642345654209741060292679181240678838338134386273345096800248690862959956089721599082811755264371522477870597670009149358943056321517098210459335860993106837853391075913749647970825572601988981980438806594912177896404071229708749820523323789688271161224137465989078478413531976616677983437144303929974743419715193193474702077027398241102996170525663847604862963121040788143581889395268255724376490059279070471036595833137127674121270576368844853729619373698218404074652306572977989641813907429909418350170093383342765647012812054085995113004187464179467780851497421584141572768388223213389336614170174482838568097165460540290357863304294497512191632551528497369352910314126429641428841914192615133006782897175498361812785165909635589460190844698547209969169423368400740720791719136863178811924620079608297857700136927848117544526715184691447260566082015155944787959544821492163165644478935860242757789089986022083292751097831701076835014206574547112191007653698449972631332441738092372441585774861970296683240523889003192663416686567793919143067344908509905975467547386535175741034910894658496717982696723659210358728382853148860032964279306979723962988916035805445049858603494974260857235093290618455223568824662545105085932419317735753296531635183600190038098672870199853903941193831824102830419597419080517077140406931923663359445030272746797127547607074380603962284429700209141924237761355933828588521901961820207051165005857003089750311216484485971571591381168354721220878747391810807660713061837849750733045580695862453518616905755754795865082689957521787079611019692047063536326691209512862255252732215008364909972565909558222851425122093549814221627285854309588797027780791101143778863311685024409338876628302480459321202090339715280711850666754420921719898755292886933554062098985974278245110327391798014569729545357336948646231179115790569048545876757658758475153705608008209056611979023957145376300295792765946466690568069163022239041353653377067083388458124422217818527286182564091296050406865546900370396656969225114506562267711264263564331755966444364368354063413168329142325692269460297538522320322036793267254537516140481997172496497123548393610163645079712817814721237124653084318948514373319367752267605321463663445633237478099694887529952469660692012194382386436999137971934376014716028019226372688286110322847616874879522429530907867072188767935540498110560316586838182042285910869401493366204356160508281974379020704687211650482770776505327092436520163361204034613069323395615540824590094179646254482629030748805020564642795679673023348931468875001976973125467495744049617473169313542924765728274434159089810976994519369795532971549518188170265480401347600604685021083586983930651839389347340276698434400811309987627014701864789988775683237489311209773848220454432106589643992085591512502177902453704532849411420030915645026161106236169885525767140869160717668986819504314383657525559401026259212914236692150929884642346758410845790792915726783636875206478854271727037854885481991827371218195981065519934294740801615448291892770912930237080814452931604562259231854656264788395105548632850815495441830995904154886604432200557215728862089654980105384361795899654937845468615709432388426252192805456317419317605091950017020858835209599992288919079828094959839346956623238231088401490591229732457494198607367592518811467245293721580325898315417331014534998947843483050075130573054289802086489768292547788181891739849448641468060690568543247801449216818313653070313840435254322305785415664430951590861677776376788628649365539071524726269135413851428505268508331137267608733316841297131307415172782603294031726434232947914323699948195509857119040634392668450374929971354421515753945478808890066531854854768946150467960476884502985698819017628255602678960652214348088553070451362413338295090828265956851016207570405141686798900039278397364067430398238515692394841575831044030380435591596154221776856162925414991579961758306078664988896048913213848696138292639455308609815851934772115938520431649711993093658940703627976130680846292719860158496841743439314969702501872535894436776120343231294396589299692879740159778083469024861855467667981838595295615980058560253737521347084596760390972088503783047502204317854445601902605192749847084859166316002624764664626584503725090893766426957350570915909170811857661567497083790676605559722403718498690012262577733861276604759269930039976095324203184498584290630503810180443150725886543821818479098729365718898006363711180215592943301700315188307709745384676141440571103841467152432765245696852344855040580938860296761613695288401593847217123248399639292051126585693885167776953890102694776554103416039485202046919392527380273171933639317249025993171996512264939380056115398983216241521348175506176065087153215662114558738487104544311651536874652168977340982370668639505172352675229268843389563057501685457365251066336047041233956957274362025662271658528352919547860243689400715072066576608046464082247581116523099350787469407744573906096501788624602244952833681311677276690633675061510909487467936401014941914172637368839095656979700029712760902853352431226788725145667241316426392124822166415138720050631884031589632091099878926233092740858577108422023655179970673844460532137025177639033791163159484928838028691315905560171415662723104861250970745195740759258270392219991329123654406766422693333571809379632786695482847390552291718261459858073975893173608187931306721575077088115321004334783544659366274647292774167862180896835368791817311880369003375689823753165112771912042007998624879227885058839210867089210009308655100795946654004639262084681352361927922627407323651932933784729783251157777170534726508478829539437129341015540394528506742139276536292707790369125301477328865648769603219023322013929055697482726149542405197857003458787269265821988150135524981059195008597695912917803942896079612941138938947243151229046442174536678922899297281584921229337047156275490319604951242735448619295293591989446546939621045248768781473101987927965280387791486764325538738287216409708179657245783844709480648899361392389389153227112551051114518019635736645484791948678345898949833840616372621897513184632799158232368138229905662867601596421441165488400706657784252959189716352724511691293574977500311168275554582532484887022967495828838561263216601971632548362138411010130600506894185183604741862274317200022017288424213641676368022421761313552703770887996747260186071525349345783266397021986853395645156332763355960329063646717847385137994942627731581582022326745914027858471503022630998114131245358307201604741407891299216001027752089798738086152868691276698610061266177406111257781926543664745773012624621716637272194063804611156568489771541404997647507490949859958590994140756898615138423979209580070477334292331635327010466305389235966425755490351893089124735459877980558322370481735147568451252401741553205490142678877556998922418395610086384968709591199097688398073293358524062986139976634454694882958400999666331495913002559097388311510132745678100853008014229250724340506690241847871652114791558351244256795030811166034042822308546956463006315418172269055909703769462028511028265501852509933923667330185866932623980448775734737314352433573842747488185828277896232175916728058697443259902044589037008940613761283175216349791892079970518762666207291724121675658551394105399332782143092137757274916229938769371464738104543249993115393105657806520406923249147336957792549100073284915790333771891631196772158352940622292028542901260882176860599772492409363906613887825949252357221160624280776091638383789538462152018595137219403530937367996192730352276366378138515470965647266532103250727012304434120838460364941681584981207429299468748010042716344092132349227479166589671391370516617180980903908120656947670671697175353453394656001855865631861597471237993884510750367620946173065338942528526282774631918447875347573260521262637555793576014472988436971201845665924250503967957643893193625604699670862424571522523872297622069674480567399805631292285289093269799213797903326498506394303018459152124128603723261659079493694733923739751979895948460325948023072115607562387736621063161476953773121495539884365493764131012780450054103051856335836568494901723556636750292275471363982189680405633227860430139190575253561594753743803680886116415453220572573921339985982159333806911234419873145990161892212915255855736913674072097248474233896634828988209919985796132135144679158117371903712340016867253335414828283509832394828349515260886942116877897991259530190259439414957882822912943374016717217717587809439648885816061040959847809643553756974278236754108185064579775629701240001027003048195083859213550485763354192987327136033467321741912912759970160374834665285049923482247090120699648345464489903253321707567107174127693848017553398952420806507707700291179157743130439398277146080834553437203945630763872519233762763698732394735142648297830498344668249244180268363464693934484269752716953934064699780486367170307674971313766442205043744474985285371575540012897535542333411841539164027066906930893534901041127934402493435341498009441559019306558365039375691594166319160576672127800903239361642349791471878757514241423466837827387912521207251216283038887355654786991556904047702679973395585830303394717711628064213431965727308073067870811093685439093745165956947313666740764376371159393558272037494716391277325914623028915141970767566163238765737193460523054520367746280486141998273311486799325059485972023870122304234094211841411077104238207814110469505081850064189650833859924694396769694247903270770455877824806011757484334775583573136764082819954095222053110581529444278464703465482942217605152548418940161032473941132604797304301408596649565814829475428676388092761594208951284794419042770767583606030902115829382115725922606662581076547053352652357335261849845204506826395833512174024979911552585791034502654813674684550112977163023536236920620263142072940605075603628790730630324305748685332569117823576179278783065485355248756945324515610335711417501114196684856767703599914441590270834704277581142974665209454653046538543404439379383060213560509610057124541642157635861202219312567557914427561724504124397615393906236327798601193561845301406540709397142000891793980890811439325073199253075548661625977215471903760581966515392373941189563899989064402854195779260988731647504999252631567852750769924585538448668658563158473339817145900282567297436817840289112538227994553316508125866236688947906480051259048098052880700369492393900220859657338797566221041304324590858398494695731231400477005401352255258962099134997070008642677311564676865081669597879592904240508908974386693251838327789537881118383738098976671528183836522181612263213029237415222809739441889428651823268776102506081497689332102099995799571512490857494024471034296896757891698692450365923897179948236604654573108499457045008855818419982879643383293490497020170991267564490744016968483443610924943439359440386633553631046492552321612109077403344210966161734440427802186791923202466195025652400790025532940423347857709227926807021859141776753015281571701005894990749258153280596821481395980852993062147511534181173437384354868164455205967036020764533193286451377366604165689131465301432224001773078772037974576331148396852998187316012355007698120807709722870849817925114678619886622715384229064068487177071838681655866699627565637532121328099374681790603896921429827677974638266892640330325082565921403710847413101204565417641549972679365151098778683761420053907245894984693973072934140246540699124786367488101532548534370328945688212804045567429600782896234433156266977248348642839593959081993932153814855558684808680937534551563122863392324334297426870843480117184321792241845682704679660124162636776098102372693411375011728952065678560107791524420698190165416692218058351533953921893165980244474473405642844728525611111598146242805290394587334498296444144919814241969602632853562840899352434018559157587143616416791094222256024862195299150315018158113061086597356848214598376050763113898450983862574655064022787202709597524602768358466391474161573978231658693258087309914513283905068979479213305406668092055634326088889171486549062179943556962332078841451501922973871588173123401271937526834019222868817768483799344132352913720955626834381237705455786030345538545218993812344139735003857094457543403171755603066069980953988909911746812201745325985524106978090809226620178445156566752786633365904244135184953023177300975039700272791039365913542691543533000926756794843752032797550730391917917494338799405192614210510620636288766508827718517528921210849807156089436632151856491893462568791870160141019963668315486133179803979730253053156006457261704065990157475390215742992150504489172593737666179930119446241006859238069983130459144425173099550904031777344003322699880225527313500562816193723055613083256078140639595377272735251033351588319674905347235063707180628528108232096034165448867201994724123716730258740176688619139275528614269234392950161249385269223619440238235113760634203904875655577108227303916746333702675575516787307440009619786165491141896856373479467255703439949569368628738836070689421234075148633712389500474050002123127403152468472077604517274059150508780301907288497435639016040873074166720322748846745046041160805516948797870897508925004918315833924963911836656553475094353702804890161923453519356532249923941657086610018886552615989389654966900117866705254070862799605022510706110164573189990504814760639898102064712440418578586858902548460313603843440158155108818993820442629421902315307258974392622813675751886115949040260327999706077537087916063514097367299173823765297549282925086119249336384948370643361123103446272188661141607982129808768966131030150454768795356899758953993834215919453282144531391963126724580837780287649440776225432565651081910677506281096070328979184151632398405243458884476522447752484980313071519421855267663596171211235514547503027142884673041307778429046562880170595927148620554047029120778058372758002678185188528765463947268623672564845702815839201301545188176794225771532546577228356129186019166917737665665164926689185610141873728886354674544292400297039456725870163764933340864224590188176468844652292220547282780967664230817614262665520287576553555416425852662736125682537231881766533013662660640355301633113428331079174772358135804893116225634916518537356392011309276433361624772070680411047002609446785861619630740066128407209147940225110387777707749286461195641874177365913825150812055897359125746752937314379914115737095772448102331522268666741808718441946980029459307262147486432046034051492274101226020612943573833265136116001107785116374904632894600549391899437332571768293130751031637620221764680334847621023508837363025379147934209918057094374255160213047011471354985879524421989780219705427446818128749952551059633401907574134496821046086973095339721333421675296181659810260811157392928255731699046531449603388433009067783185073823792804083178124356213624844266072493054589752388957555227617192566414772761962702629030153863019305456565841889801660310527668508622744547983721577222784863831236413609082679677254555786585016078835794770924406259512132976045983137556978945029384053798698414500100415667350377933612404394167686400961787206497632539873800743918554630589087215390303551893506558389089966329774715953214875113791118665431859651988752967991836977431479823792733202529364286346334019118630203712598902857929613215889967133697029797068722690298915249021619440314261223927021897909423414631337493455899215185355829851608098660483336324094599383202356359732791110350343194534073398480222676999454023372392710642103335151068723823951065439088309061352319981032856256831639104741844790971949064749563540184277886482522091195965203328181621777075084643717877313779681625027432473220188954177096127225039405050305360053244277245845578766124649131927351191956123821022852344809866564165531232866417010818893101184228015015457237899670326203171440439359092861924436154689935973041553954271877846926528829887541024152702892107957967501349522745109218112564616341730901785990896496535721067533897392126440131860078386555524979942124405173493441998622914885830547287246020163431952269187767693087010461303777086090101828368642853950934549860554350101274480810871774818431187669655868393787634682706220171183437941624464531180998727292181589529383467634337917211896788259909440510135941351664456761307523406339559175420021061865267628682964830773190888600534887683893967850740209763045107483155019411678832977966954964446813238466377077317018378402375658095018335580545820199610771437039603748844714586548999814818084849378177636893133390688818218532097305702395401340300254835844174725368280982449057348178989286875008700241300270355982528119876880521584491912996898235982573499760265162458614697092429171782968256816126838190532802587931788411052732507257800461334535934884566621595109370478686037123714929906277146563459610366316837719534462629515267202579212689446201585079225998934214957929046566317533949610630025980025727783237461893996351863440162273316941163157104575977215126329516403132155585628578800057597044978871339678431647129025639105601695130709041920716229074067258975130563392425395490414578875455298633321507744321343526589541421881697937953934825395785652916586967154369070413732947366589589745941833484799727539411686305871023661110862589138814314993258773989564440699292791175406578538993498818507844719034358867032594365326328352214086423823734042281590891915304148298872716898134767569820573719315772765281124654293338893037677728529185753779433987313705321539557301150626824958336395220390998383894158893219484635926086123767686814299764434823120572317840097143429956186405005365174828981560017455726547898183435509495487284769086041405348504988795025160413291026590786645727124774657013443062505493804261732495274351319623488477203952556941253881818282769487610922975022339855247019590406627820382631980793006799120933070676128236998659082156436134012438838337082032810245759996686009288002586406337176681451013005341332993296446235534678107266279528554064084980977988876616867704840193461370295423602137349827408601684192788379742753787917791074418234597316578503680949816176530517461289099018996770599141541232917290377426985887249952154685823207812502763566070548827608886235315988642608010000355988848714785144847444657652315673287842121106774112568686639887212926049841029978371393378878442424895806533418284582457364461033763457973096713123649236642097491164938888614570870307184621515925638616857273099828475865898449355809329486327217423470344400894349308971013028280069398260220065862395564140854817307478449564073521728157815744245392071562439893255973333054194572110291256365284392196153200892077443319213476864046214012022126106655474655687832089160452578386984893209554987912466843893138825988849592616742259591729930135178452044766277038043501342966174632864084275503444427447781156993074503502336259676497015545033812859379028205500222899430252552540511568403578861547264412373604933136380661151368072309379564341831381592244531699241008718440316491059394936980532793208316731035864669930468463553128298508782703101825876934832733310688467201196287409939272188829265603467983642853914739119783142922288292833309760109594461393597627047503710937051950228026420664628416770575085372652467485746738440168375723767388793420701913565654372516936332356965209995633523865858631470677783055847260663933569329509720207622529302598957701557776677654541781365471571287192041519627562340327734314624274787162200559570392610834315913463812998147240258699801547350237997111535136566491132771839205213881358658590657228861936113573438446999662643684790984036509271259139512271847649391233465392884930785234443934036005176559405102356961108604414496118469325858859733843702238455861588953186427869235297998065764641094361731627026930505542644357704243588001247967025550587470658318845507301373118984449969276601540832532492163018519627979350323566892398784158300444945422755570244769626666756418271431484633965890956260278382718271821972073325814895243907009836386821914719615352988260721741947973072565510245406030920373590152853670240633433906293993441974066329621740697258651899392058477971347511106641142594025043440672381504681096920568323581740791755658303161882163643359378045719675794882307225003655900159138025190678826295158572955809508924452827354673822868889879484954723802279634404302303763536883703526940185066353770404682570748175580532304356804595847548723328962448755775753216730630032152851138079874921366835096392323096182505650923743222144552769517067770575044121059878218340478455186481290348813879475705626350527792017028950797526070653451345614093011248294048854009923175725845251783634638571804211687656541990968643753511136653075571993919357890261286463376487690641799315611612379052776974818028395589264387771713002650972832250194509215108439274050887975781886694467294432954023019378536360173203651651044692057849936388377695828559073087373127856541869533236541451315448119139717824864515225377981237041401221720222964954155899514481640267881400044414055743028306594635796745349346593023890397229140620558780571663740895019374421462039654114086832060391629297851502991047610903025089142637301605923477661787909731042531270213263851582621310216365748924526209659144567319716037153518391469891266463865503083918343335932739401670261673842512847170425120143244461442560070783292862225357088450495903897019679190431334379503947632916115523390183100372449010324347892984640729999288273402063949912537851899561190767769608534133335939232683421087617044861070233852924629185621841095902124907996524017646745563400492811761016817125530544585132103195314594195602568798184815233823604291756679692974401665426236817377983453159310418989009128011787232125990888746716107915269424435142637008880010329570521175858799276260817704200211021555984189124218888307954711309304171840973269923391999156890162312884078107173925371802809209105702278692270879119589200264077212780082944431144549623288522505041520351885749122921041646488498346719267845947775371558457216904995173991901172488574369035196655633640412353318879205835730474204769790319391316628488479390092063802504095907344193407749170681223235614507254715380874985662464554737942236408892662074828422460114435952078395784076163283582826939946758840994028663786472879389432696833726379684145383566262530280904881109375594017902931277271002668414657139241588075032274578365917060452057013658246184156676086170573351854651607168778140478993951893583408957609293321101342338785542571486285009293562869013987680354824689150314703581253245649650158273121227906025272483627932849112583585110781972518151570279487995809831016588953422910466293882320197349563343993847055573182354958508814768634793118766536610097700840524294153128333034468674110969677682206891680899634977970164153156724770651247485274853561803493672707677425497001130339620927442184832137335100061541592483043948386658235517500261118787953915372232546457430624018802273932205316759946288464414857306382380537784946348311768857046204352722782634205026662795214288368458582631658505046409114137464191113502446147724649536850784500761528212672568797143383265719505454687265267577334396655262594807396822490341110584598468036293586337598323427847954946181691896559651267492025026654316555572511650151486730732115154785203339981817078081891613410734459815196013908073844221742642785262335371676969438751322638110151336365266910266956656024117330210867817945373827497717251679457008803158780606265850390303232879453474894836051129556948802852048367616447234682379513542033118903134912009663519328721373796455100111541600548453577563763819971170443494635759520673659047784392353057930666943887072247493850183078391677386234122252097509359833666877185823869450561819979475012663355605945349989110956238510998318854327523735268490028792770429110116049029686756184401127913640787972344759963308571604070907280799354846330440096530711740079667310655964860177370973168494108447386778556216537755374779750833642322625589022120681343937361722801189060291403390054331198171748024681293909255641407579087170377934014296267267103542196604242858412854549212886129328251578805838838261923360899387550018958427564556385649392858011646585906655514498656540239677713785974184077737266013514252762134236542604930263510374011929227138524554464600668203439538290788806959679146238658606758408650835490572469980551059784472711753516015354660909215287599297050018194602651002292367070473752232925550348039892984482154509151117249160978820578754372348193876068162841676802757999902563601041782849538589049439912237075801731393213107018359152700070077747234393861247594128023537683343873638715835877598606627174511590790434084188289919402011331174302549372074487787421455592215814658600614557032989510456007219425081255833544434460024758944012608965728391015255884077790908091731447869885695084149454813924783268835333136175329300641144664564428532075243655621241847269570285454295139697205813987148591750974120563794995258061502875900075792488993407045655383004264945511245554685882116527002896786795959200372699644589083907069112382915637288531638335381485701531973893950070361602538703909636052931049773327563185410707642988448501312230458387674393201920899387618010092064620591594315475228557000669612711000546589626668970779767469750680819905303782932825724968854730688349322698171954563326414861039764743808322841743845168010431008721505717475126389786683731423863187235968311500359974600002183804501497114356432797928433855042365146232490164688413865171375113109823377937607381975658491781318364063525738628379689163671445161956212598529971146587059887756231831164522552978558149288279216722881348864581740733284949432886016132251166672053110977111041235186725675439629145938545915696163736863575671584423900657381247588702662072803751262634717507464018788233599334714866364227630941699950222721752883076854010354650170841471300691837029769627769466602733097320034465786997458521158210752069361377138442561123455139532303086880440960982428622687370544175662119325503721060736160481621463441494524626104702162591031634014209079638697624917253816191875739459627846905509360154180037061908360918549461114897673393720811245246131405499901645585147742615952939586589419924737915206933728422933757920350635760720710553165620235899494484916126262832457621001123211503315007087642731402591231469291634637191665892015193805523696591321700897108024110247385533357808436663391895352404885252577831731590741428330345415977926844043947928792071202718915515031140949644951965282190553698191729781214720073347669157154014768663465041720470687756495707911241128498602201410362496850902599459099218063250494199484015132058946846190645136660104726503397657742764907441336982346479836472851883918131799041487503484477703377306247653431152919937751974679643686624347046687308427294407684816925926905632748986894432959549096226691418378927481069406810874183575985536250810497104693890553034875757366183090336792815596063180532267584154190954286832950685585793999697310046582205847471168197403852424464348894152971166707542349192327825510424763550206665845794380886062397582359940984604627204830796683346670662569186382226079232302946556153118880287256712288816878245869916552233170231699117607652909628406003070042949284437091735862806943410345867357162319963308083554513428538975099771459495268812440629576957842786161824921419186020795253852226164227249248578415769379575687533373426628553536566184790164532045290238446750296151986176848889787663827283211213029344354291600989463572271089905132848501443070981869817095339817776331999800058862371200977507313498865392888110617162596803633268345349952993305351831119293428739449868989347922847203071582459032770261250760829454404191872390456790876871821703064416331949900448279595321477252506706461102815216301546059478972904191801632842253802354353012994553594614081589187285696336595785030932049648364171940716443875386499660990573741495246985184597501524088789946635910864343229356201935648667804127863301327622582842047335384128993597540513898911849855883702752486705527016734849457234355214631760843937409320281927911722280126509419429578853250858551361161180776528215713162904215965479029184740530267526230840078665421371018811703350115483900717480156007773673769107730084006494639240057584983978235693713194483477606330520507711094039947623980408170962594832375666072733813402796462048460798431749658537586790359569447217465849920927118812460493612660276252574843208003627499646242766794108876562071506822434379082524938745146511235706411712034608411508600962340863429397461360933452142318055994744697837017345054891053020198549557442372766403228215028520799338423238966699059553748779964888521654462574919084852007879993518307534716333941769977959993508887836324927429078221184756834951044990426099836277617256292376303152831070275214894060224842951176329323981656290032610080964015293310326466802611874099448480043776579061510011045717797748300090905147770209212188300088910845497478961294130573233586099691157134186852330185675939512912967265115761409357340022695163902939724293800453125846092694266212043675890108155249188474726056783556468309331442077226434614442845231570656138724473410595202455820421878153592250544367979474308062302838502224818129818396691286796968381038860330265425958469906012750728776892941357492618905333519445826791050686017061709432674744323269522135139216387939575373767081633716402938196878217472423016595530293397471436611450403083764980232348892429188721982672278876716023587493834623021236512406789704487677237137510448229220828816038301002073345232620533315115067824630329182505884311368048651157782566169207165208760816732845911943452003735833417254849142565308978916216258062323383496080710375631253334470718352155683373288440456768521640510375163362903461490805864692416122860391914569745495823876190147203427571451074531548544236517443533624203929700354082499601127709541867742472766366693883739818512159014955865554238526609003307390903278108903004956401633007299126038024113560358220136757104270291116932406187153500240087015904862508598407726634175020383704746757372960731565109189553658099489056791086924306835555641328641525584860870363148215346026115515991664397767229812363504347776055718059855307565926355266616873714205362246800627446254052775675344751007950733127262408675067939512751577917791941656761167132176516152721290382115540956438561682716344968526941963236493424560798701796310517925004710981693408688433166070478248146672171270376268625948184560431581246865275554020922938083124933597037166277053103316993614850049361995744547007349193579183149553020073485102352728927902704815704298834258608053380072630409014532479500945920760371372043453802198691480383947411917888250029058129341197960150219614364724915267448928464979363268168988647016461304790350785641348312450755365792400770410920501701358976009618900648685647522154604722172159458285252850347990275531996735865894553486824633162445421752725546700568787630909689485486131943740258580934376916844686978979970315134803638556739262674587312361826026428862387053766184397053918642455440032446014203265014162999352958131502149659203250762406849713328479142359833530248123387475210874682004679685663532673722102635644352389117910477819115727439197860881145698443436760303383432409194791679276980018026109258939298206696055076762834899338999045186186677446566277286175232757708854539154725392287673094575234741448335910466639677949606307723108629798572118591544056634807548500072852683779936182374906661974053774540280312249430017208977197320531556074938024088000663786791360900071955359154527712262433241339576126880183681941144235752613580020367460332142759188948930447149809534839001014676834439191701303909963396571762955169736769086622642303759183973957853862406476530561410418952770901329943854402109153281990458422043419440228461559432182803475900741635048441213803155089098180194879686463204811591845975949938451945458254603048914411865932770285772507308570363846433549690278547827601846115302645850922487023867035979405799680997449267207114666964512941831241932267056235651113614243618422569283785510888077944673940306867706027792483682566257475910654668147008739894249306729031004322347896281786317300589732138004811854127543349326971688595984296072566652989702551014500891850689993254101927057509704983426236772171142848095019907316450576479288566841240906340258227889531428063326721483991816021172164836768977697615686441197995445556233115258446535645248686495054785667313015366573739082073768097748805989544242695357516271900744467486979616484480838891161896041134276356168700082640370234031688468793692337971001045443912869111226675913170463154744570964286678091110544380776852963228027915447262982846214648085349346360933003283577970945023020586045196293192474483096295480081844125138819556827666507631896262179589993182797602922588437073791315365206755594830064429846450714045407572342837681095533857115812866487230931705991781221404760028259332040219707563882932473858491856276535205505152933279817133511082863930655676795809241427370302871627252181643424593624879994545973446208721197211738242146544551242722770427511656796788755738901068607668113140052603294047208742072118914086327879974463417241964078525801929466065455859454870783185692309008120704950514185672496884687505060037732939214499650855439941135917539279426363680306267578046133682928303952279441442788832129821985015332877720772017725335262291238224963571297773381424444736325032762741024066426481770217901460473635906326729805388178761308438705803988817164677599330556032841172526595559611319671870129914187833337372569194846821613980310164558387411707573114518052542575870809576842728107778681267190348090427181838262899297985465723640573784304283446298346693871293900595316382803284317457756840756963912112287537509726500758940490841453897428560476347841170370230020662689664889360227262701857788946441071984689326945960592601821665938803893966913049144368952249838044139654290789821560734676040087901982535806929570259788932051321382436487712606247138948636515761845943359228854596126187447839898985615691576168121534148969862007747243804905451561354222611873293119872693025534833193946216457871823563265366969517397666575681796020871155747040619406100596311527674208960973712195383819523664254483466088534248380267055143433414776135060074238116528278738702811226299087832556281299440778752536968178663827906183160879789051002428356698792310414563265255178749334802140636737097504345257583714805785105363962315303277268023397956725517399303998428119959674851277999095038222821171376446394871207096447853937652051545383345961840505939216505428058651143323580287752730450992434873452680249845068246443989949140681418059827038389431185683063415221583428647796623099093258415860761742293612978642153817756193134572315613601472421397562149809984049578478688558089990818468291017953780458050838243494721125441341024720122282537857930319055814130141304550238979002564221776309852418831626822067801103592517368607446921414429424839737044390797375238277453076146054124458608022872422798747190305733127686290517982818391481076924684429650356943400186537457587779830285409605417467346105329979609101384947457674856540870606281828466154008076167373932396962209301007679415766393276287842404574136386582984983030004223790797415219692686005549884249383883645698053526769195012730483489126686278082616750921120920570647893521195019687946773423824934285999168472447836984853668690397181728763439670426268667001045561827923097606174205427811198364868999514333194301199698710666706600200232624695140990599433308485262278715380182002708257933259168898005526940137426518439704398079841793837086997373888188503846806140936218614602693734863548566933560316928649210571216813404446243500336929638656863812909411640157489964301818483497392936414406957328540548073032411064311644006470151569139984965132372186714047333055997695353317591707471104182384937408475951765739859375028588853538907238817912585128338555053732586007269771046869774499651413986604823754153182839313481800995849344257926920271608103448291099419376032081557172209449425288843105901554312582378568190032370131607411362255641583453676364732501244966263323436795545269105260418408814086266130824195519596339514803411199863219744442956285896533440118476104727048739466578908778551697933306325849353465606716045537520416455243237544250463482675637525323965870128101032430954238193670126019399332194960433255945070156734478549222193554880640969179178415190426818191007677450319213648216560902571402115298972813248088697204997860125191792996006642698747624773432140950144285677087940954466926874669325400424130018114631055326991824360617636149980335001570439094261968554396671854668054755161714721642559600966166846179144288355435794656734367733647452731561819696881485423929687653797959977546542603105403535784446914003154832822403636957047469477181691055248016646473609734986245605496516150533036029283367497646943593358455721665552657360812560128084359645680162396997655772229714092549279347939921841663761666983151949099324072323997939750854099333881432525684080958144374037843751027590821063687372212086221582679984923881347463255478729870194771185899653703637267999383205072600831372305745417390271094545979059330206045764166700317252963966994547913165983264478943697617116069480241427508448645795666219378480368785085226538958313153991136618180483303291317418423062576896799481926491811769869046425019104930679676913310566359246723041327983135781148356624769586843423361065047379984563288715041054443084828392496308710613257817858422940356918021593373558253680357998066773740724029856313347712554517603533099884316366501056404347798323316415426990609483063778441353520132833200536557912457512453449364708525139516867242979533128580965217735351015679753574246240814843520932354209393632403812809332113488299668344680273042270999477893578442061285486272591765317576676558970673949250890597419437418338995047595591349077090248743478775280872771746447746834565996355487006969993133186163220793560992154891169706429056097960094154501960976031071166223023496642308445139704574806437849508459742029281529322967942629171116828265450889313444762524741418680083425436894481583264725391170002905118544754284634719668813858673756587793658900881663988466485019084376933687450823102917639464433882199369236025345512907270666898093179930526507330091854799062942658593574984362830396379999811593178745152236141033946452606944228324307656323660324381441946144505345137351927897654234683450507411433627259240962841805028443218561645048455203614841224244603515698974052395097742965749233262641666598910925122099522793276804694227284496394294070718889895098545227210660077802455346531267203592541828251458475300187022805998497997248718608669758169816492936244896219051463123711584971564720226983222681410760921596859040094594484763698520710581696118797439067380080234070738150527809229044680654182242151473926564778677026712259607134293457610149363075409172158514426630252621066455804380700721349903955729420220281989979869339160044455755822693916117085135245639039913232546957099272553259966762887703531135478823880120528221219030934648991844368927132816586967874769417406893658474068201339357481670030151684239238380496838027211788931611462987340195569284383745797129277412488301541966594890574532444990093825825894436892786045837918509337172030994486693695890931761624282686399085045290517130384107384442498843001754783316012431534701544550602434792817669905615266431053912553436413373125189560547717141738456574269179704587815950336144607007849326101941852969917564240091564647947826905682803925300053027703440660711385176269350887244063467674153434269394559260238160065606883718331493771050563711218592649111284581172484217872109109422573387099419981376150112939754787636851986490620982306034765928207202079752263741057024901247979410204901438688769419269870541656350914094327477069579445612822456152696398305009715808641922561990258183683226157515877446550101168278299039153084636018320215768572609859385525560908053102853036382249753908898117438894572241368296487001275803881084690891982328352964814169484575755545830976208511328610475436650752460405797830004526521215497278473897885955667285119021978132093389697525560422026786019036117354452440243528565795161692358550183967727979307313271635789731308632849396662864548897190975424159440517414475674146476354638978105621985440477155564703294449190498671082573523021165576391060570940101521938662855086756898233249647230399661762169575510709618999525935779601180205412418796431839669103027455625899823788240088058312364076855873454654963793162393768471579530418251007329746085315512469401220704738746129725024098203003095181348969380708560086462232005313404871723346424563222057774887863016423574080740135169279838805891278110438840029140401529475116746448905484157725078633957300978161066135673214376503346671617109264391721095249630445090722923271450413735270785696711460399619875403141377571366120117090644567783491661971107119051357753281235364193022613249270891136682509576851774993890183153176786249508761422316365357099976346006189873050795669888069182192612603707914677679327635874682842753673203433032920622676947329956416073098014010988062366970393366874682482007213168974936798834141115141646745411734483671197098159753507773415114942072692034722929995285458768468624459058230969625434783312056776869527563286902934718899392852027277438515411282555272340140952971340440307631994012624865906427277948675580353958243151189386595695906102047519274273473993547214693940002407183915177781608549962371055600459649668573951784159649360324180910339176429290008933251633661783903178630445847663337493189348585048736362766208944324484435167356101404438228619741357066546981538483156444639071587232210718890772751635853323797902126099524392060611950910209922442387532855574005132269776764450711889823815375659728219135859353880671727715600641474141086426010884668540794922798431388119343733689211341227283365709659780146057634497097258989016950675041308833775864000905549001964247389454137705977560421788335506170336406653237802480745906868895509692543227766998046070966112120412445302567582305599481806673774087754192044157868096126024197561125336012651952768154431317407777437901750913594330258874167459976673458963995539424704065990886939641901244554208399846721886960344704373312543220930407250028590755510263376160358578274413693802190066361146961270702519198174134477049120596200221069009553690552153201656220954005352027768376756929586243250275768813265815773568409185815178174341517700477730255577076859623754440074188424640306507303023716052170058960692063460079501663706901253434012018528816995697617357808912894569098318144370044701694006668987903008312160303901957112700104555464500706039353794527477232479926146241084652669024705327964895677141674812352583410963076517203337892217697788407224898366225026695513051699070051472618169134858541208162403259777764615441304543561122090206854273419345928771887387433052415931765071572316660959622129620722394699725563306007400521993685786799547499313729681636264500135097872536820982248847153844335092652448143179409940119237197895453563738410765517607108370367402023537860303947314163084084498448995510034747807538123361652771389810248622988015176124339868771707304900980988497442391141189658472770917003997417239142246502723967366845495602259353601067376449030569858687201294884604164450520720920814110963155104783343090899590645528385397747569780720007941161270549661166962010169504847192996954845612398563067312066240218006235622810241473285490992754219025631461253450434704176808021693528674609717660597706723013034088213189884553494481062009624119890354622546221822983671642569474098592967690652505559072409333460038492435479027061534984223175470101005601447749414727104154289114080072098526198503800241206472895842533990520441583359259986139191371864419984711193709679999752393399591087373884646319386997976968852182730538524224308304751057831407285470647557229181034297983568211500733274814408114183497714791016054654127417928213731829623093783790390848900856861632226002776656880893042221006174589218576432935655240878015135878751645228846836107690705018569138819450036600436290719933132679475267133730428155277365596487455352700671262165595465683635695473264331137771858224358728295386252755391423225089886178812111968185687440444337483607593477984016416557769671050152284395697833862361081852735848160337163841029579010068141052729266987527102107653079020723177605635183239252835083806479661713998539329002504457790901539019104255005481970462582508018194138861499769947435698878580431437434085798235476769562899087248279659354966376953868199886842434705809469955931953708666068552390786332635186454309356704265832819501267894116825726939964965756720844847074204516745046872123839892047037498091938251261113712208186798352179598354669097650749902945346348160860555198738940341730234165623033271965984774941910861449495661952613524321111597393430159506119951680639830341264928095734181764894703923755015692449642280852142776602339748436961822254908657268953369646747965228646926689929924716081055639648717175019659791300285816569426282834045742456840781076246119957452995766919428902286214401450689445240509209125342209968408233896768826423954358154293771057101143040120361179512244229595337210573886841147498134938069052395269135539749759982385331227311923328152278900554493765466492628425702678974764807463922795842368033262499227419203013702887529080236589735464734732469555185186068474346282680545904786960138453014577615162981471276499475100479461873052340633785083631034874674936818356191618033189573952560530401346376820701634286023996450804226098638006316732458341700320976185035199844803040174034655943023276114419200582105082137560796498803436450397919807465166138859214389031038468829476969323733416100008399016344891777245880811464871423558347182187403133838347355479084004771593360096919964518438680611679229285126451246933525141379014200677960480319559280668463441684349150885691139287306082674608922413652834671396574166269531756401367349751220055785065752754052478911779862010421763564343697663857980831915761727340466429885538075965007838105036595568069333351535297117269821993581504331148991141690974313311987601002286814143750088828882002163657363235147345798874702944920548017465693539916709410232672740332910111276326727157459560279762142850761216842583893571840557818313974062777353193342322266245477628819723795480656554893276121669209714187676034772919482223082723208364736614676836711831566912577928646613099773804908455111867989922691270899943738384362746099416088731344985398981652075375549495456340607501832490271412521856186344367448516309875386904606986242643278829584117632567388418206536863387881925196758451535139667029667593371085922466090981245524993689730106883795761414998461122087624590400468659911102232163569268289058373608820259311193196629787726383134002428219538053074186179007010528476772494533814089552317601105323598522440232815539785441873417745097915623123371039956067340062885750588469819622770223137993166660413457266004160085511473021522858310163799180250152120837715408249347686712604155727376034507682924461670704878774783760489226820259875761550957353544011673877854743695457725442017180095670118309687215346873889372501721847484386694557442869528607764739472843646481748771664967819734965217471831655835994687611381544116344999294990596767918737396757229340337034185080109462356917142468970246865725501282579380542485128293948167085517766538632997336250429160525387709152321856026379625265034595624939581731310490642972522393346443255945957236437011630251803487020284339239136723550303960727129815200498930912692967571668185766206170256899584303185782689735594678910113403286927054719871012263979485171002278329736397681560584985749706404223843424601609685635387499815825760129859161208109993614682126035931844563052460720401663664838156857511582992626594640175484127089046233250163880210555681351361694659242867426561455973693758054674241205952234842847923247507300363144996990815764562229951435801053318729002986209548443783022678798239000238562469875190144370261793814206928232745780510779505108288876173732327405556655378773759759171859044152785580995556853414419025355921095528341659347799380599282889716647747093581339793892801105713221737629909477278691400675830632195357064994265127646473043478082949438551396814337270247528008077133968295577344903361752552794054252663491226553200759974741384775716526133922277540907898669479877730647367849985437238012269830423058108613117362462233552468425755707074611491503645200716569720710546200836235780808391717445321456104889619386600338636452574115222749553926354347829637529460480577431042226334844315117594011728576455472486023973437062670697939368930375215274647070589987309781308506170392231337761102264979219102641910268458595775242148830925295306914566314544446090950112949522753034091194201420989992671755635650865392550787298359769388924847736200146324010396339376254702973469305268773830905164615282355182429635955892400015156138189001378280925630180163194047724960716599156776140963259210704007774892665473618751547956826946353822599968652696021867295482944122950826853947621019768018208117324117446158162431245666007734270453802810030873211561275214513167893653913630696163356618190670738845598196682533228121501404439696257312582925161336000806468387804229871826477123252781548698175113458069676870433225447990135837492331551568653780518544092650267836388501256078618294604156050942053070272830763808395903433530347507054953522273050823417455031420246413189337369363426936689441937593256044957993890736284610818841703953959439828458934630496209806951363777220324063867622295271934208544875898365066042618025387280796717158242185942696528062473773404215756522416483810201018867360258194259595891476415602213006167003587568228474361238986286556753862357932088322556215833078075608915660414145001527355963290645575033233087024976548185491666380095789569916923701815640920294949730523791330026630320735510517844207108944727138257317320536370830399415921931164351705683671407056489692817274348740950701257702283726185335799428367752671183287190475464905084190980076705982830759202923678046083906414766855114326103316000200607241039502405406100428153184883600153867435892284256368802895045611818090698252405074379071590315996339674930568926332068625924641534037940470437337260014841009384207715828202110347951888722549741376286840976440617937924045353390910530401902030909380184526633850785363213236058080867190465688357687407312219558428034338164624762304600416889572521342791544085192818158111549848479925108722056347049437097238717734958966197261123258992524466857001404306815843544082602608309512031253830105217583178146757112740029890121452504478842219545574328374457137151304199473054971335385455393751853135157691749111528654059600839448912005469453519706929861421613437980883957792403036396091623916470174951099587811681773421156126164510458031026619017308547932690729057237434128959654042801849317714254284292909566524831016128557227126368276667039677557445489748017707203700789211906503958817488652220359477443488423876554884181380088465429932478208034921195628065107488284433420148471343745675702597750791729020909071474914388078183028882560767159481575225104083493468644893053243371252765554675995499432632133621034802495550515487081521009823028381432002258260383581251834622923562897097101815256486137841651583627319849707155473302550544073466786020182526783817640333942490396021640379421888788835891272461108252084616723428765210975630388344478927289339102785343711923724075474203463904781068159079185633770144001052618236380922043108077545320201419534155221067849611609728266491196628360571931882705644003117625427971507502305050182359479411362606548076005008719766019892999627418527276836456470139483443418256862484946775542066759852598930176842496924807355560101005400286357144111465578366329335659997582752715267849119616731170825119092205382801361017444790836785946156140423792560941448273505482243194056588883188374624850451980914793597900318270146171629252114122004808823283750412859185017731457087445779759087039791365561095594881061354346920607621774040267194361391725312151727085908532300350992003608982886212234760259515494860545844510863041162176846413939466556574919668107243696102714156990471752499424906835408780450053989662410656110996438702677102596418108208029446529518679820774499510412562300463657631109217487583453027768341187825139143644050725587615962462617937398386129582374314714654883628808775761401989244731091622846344001564174204262394527874589638894637739817604092347781241418112322765519710857268516176337235644998714824457086363212160309920606121222146737070146398918476647223788529124348499211638659106486246894936689930157080319661333123650914961361620090226233463820560197590705075016957050259860685405700433162367744723189032634707828061659870568005656424629307929582715205393965058275128184097000939176092037453592274480019025455480255747984762478707139784732303252199660287930223859486597788852268313411293939713013264223073201320866376747369032274842654090560706142202520735782609116753716033594146125104464595544905647718149745417214740607449081709483966225802167846668717266125420791917920775404897065396318005187243273485852804543071280650126708924329794843377529890058177413107512417533519341695400774369639668254558048641077067579384930450563348340953530551925467466598842527257467947288235110492201959418055978812722061135946407991030377098259205580478361191512150326718845652537090610730639331097545050923872264918804905665388808365024634855359872489116462119337635783136930143846871374055497237415878280023450704924475235583898036525723852579812218272506042510534255422590161039919411002183140668167136629379717845815082365318408512120257881556680762452358401215424124616734969353547449353465643887259278067427542356025558229059322032311007906150630155961043537203736333827953284031902192078727763067152917736407468324721384816952921435028127821158647220901487142027126745720753363009456470326167656894498199150501633010338211756191959425109409237205839320741713340248829039356287300029458709099628865391535067830579007651869120234936398059877036776656969149237797704260226430737493657490641579111314239021749370142052460161275304280316739800578285382978349041754260965817177724027217663450731967946779775530092308715619427051645016625747085755924677252163186169517663313066487940997199169327908049297337094831743149479645364664422014530848060760660436290880840124174380903675175270890577057083872580365027191980523114805484905148562406515421914496392378898560032243433582581842449213086687134772388878603658149227371310003708395687535588383599704897815335578256425934345601030151885040347470758463649959406582819044897068624414659581723797122241790243819111548649687655022921206766019561295840886346089978741380720703589355750679537413618610274770474722756933378155925373387785444848617942247925887081153646568433939903741879011553070860349471608681087884180329639567846812404902078689560967587691364488952651383763850628916926761298263489378293396449488559895005222100772426450453532788865776166346541972656110012768331800003624764169521219582254336360150675263021911237104429431604479396271462094012592667813758973137310138019155991169482584770379053373108742616904381918227910524158999960707849042605071494684925381271816120010006995234012788948355414819784219833840467194967119544981407505372267573546095421180843257053981454823557781825033926736147055560078127356572043149466836925451651065283567228337547795718762917483859987321737488100170735970269080863382004327329801166772839177572119737430244588706064009274665624849792620443339736988665184406476740079222421551081023949698686707611094908184688616372872289007217955252038309793924858437458623292723945530404050904778349660753450063858341991794721439111608706682052215784175492291992582960308803736661179779776572353765414662684167076292143810656395196833577908240519197982296933919088772285209204230697385037210485391888236162211170602133154486568886431120655229821580438949772232442005567854772944199374227902270148332017134310608939349926530813358318755119327580635412808018810669766253364297241450334554776901455541190030477920681017765850740032721478514702028799721024098835508913330536405795340750608874187806721240394599722284343679445929808584572497092676732898088605692351795705609235389494248507022857750344943497469342063084939134199477894584177521511927615094209137369968205023158685813852660105864181732594819031657884305096368836943413129388985234753242172901619821232968282751787293858656757982266742068525147320516697873003312422637978191000462541592747548623207417275012099207178630993671368222169211590323423305249502566682983166283007452506209549146770397916167977946468314747614113264031758777399417965265317481673922149014777678263005108345656202592517385757140913604798594791280905550832028050958127314074712925106297203537155143395196114417469527518818531662114016020163912090291013717589027281013272156003518155297927053814488821061753227562186957694220051541179229233718942341669421072967676749348311356470486643904013163472036724691340201985346309686857193570613281773724371873812740410329323893438573353445143966740071051148368286955294011237226673708503073232149140834718106827382299152724214765029536760404265706436962900183445398038765796695097662061189912181339062248250594484194163132601988989837620718706313464489118368804630397946878609265187474121174413822223011992933982032208746435764671620487399596716295097766129722367130704574611633965558010477073445232455027843297377315679070936062764219971061296614060265360379881567869971255384720069200153325014877908389933365462602256115683903576107161288237835036371028465184697977579853614054651130690745340774415556401171679628565913346210445217123513225220071819171587038958088590605891684310719550330483225072159093314202449281278016963638876457557254515852291752220113848466762467237747935672503824742057897279075509930594775107724041004453007635507898723852268011036361094113335838830491475553724281958928727253520491808178801973988080715214577508672036853849607644021832039792477728496482069768216350791353557196149559010211397044982472229223566233189236645251944184671529244706217605501841283910436683148412493647935950460202874939709292072891453071391033074437956693082755137975462795892685097344029220230098083338522826806657266907640998998623411316732357828569046113951046896449420623456365475808741212271208967614255460047933840985241411811347357618817592397945181188906226402391014157898922401912812954445583344018808757324521588725256702424433891395302796106267298711992329429695234113572587258696305639653954915168087667091134532434389966249314642547185407045511407279209176207965235448375610436911869798663346483976474499611000612066453931035226097747233172534290086401412028520385346072415309580555334611530894568990189343900151745900237573027113079557250084556359238338185287701021178190584383252072505547646429502463574129735888074545076007941246537010313220089818344659580528121177003403746264292588837639686822284663056322031255265222341176210351353845900840457960815558308441887170927447669287553270914939984588227282149908225223692115089170683747816660293473962438812025859198410071285249923669893989130314512060099251642976356349105423906854562404944661845709125244003337995162164265322418806164919265466457214041145259575407304474904181798007732841678528967681277797625076516470532829306474806758913837478084615153408236503820470912766348603031030478187370819463354936824924271717955877324180716916408699020721496626982552467887341998250434649355596111814014043085110149489489356821066678763368420756235166835175414725137341868989973500106534747668718875406720842482845603736699435248331130747953423753376193408490649978002541852519722868611048171412547439065215333217463205530916213091704193651990349728775744192332681978872491491262594705599181722214590855910808775702474690128950320467434158557892863623346191584433399893778013945597533456584046540708370989805629746868743239529473613654548640418866545950934663300824367436428223015739578793292528626912939201444110946481684949101696075443214137204550860890304665861705226354069947148503654225853108613753534264543468436953759757701982323077102283430822822074743957413106159669374341031713951496184573797547702315767492741616771846452673157562755567774682874628016742961143641422773186269877372048010726486034998665377190831087035210487197630131086416254148456356799308259624603693394185166880819490930766742825244129955854669031650179588448255771893458083367509080717668830480463781115615600859483809813129045509346039764451457898443995485110000187235398183212183399244537884899460459426386224181832180893626251474360305483137104379681369981389196740132040948663869588029147711257045495911848383607639430937560839714538251510355709454843718233436972186202156379454524148058357327114282622517279108214190875218872899367319345031246471713025472866146921694551118457111223251432715460695943069406980254514988739440317637482883573237021873849286626959279473548250436753045360553516858091239910219323239544925588816247878215479407454748465191444893450881138676772966135401133904344627659219799058117364822033250145231546792127044910038961883196860569160859731743092622133661093208539742626952251663892688392780548414005274976149516096355484173217356928470243417539995455152922203301656215787054895882286048285924954491266524258558130650511317614116748176741473253476133073204793327405087751308328897661755133618518133646718164926332607459398630160082321698939068434000007850620483013854983952805375349700890609211299799964011708522682210497896144108780455681105770753501092452244848611644785725285784821404663879747833810245738677560262792419734860427545876843284269369120996730876467325020879260531573470492499016972280409488382224806565418932200637078729588199553995771648845410047124322369092029482817374090569744331844786613365896429173015696406886343606805734488271867522308911700944213159897988235202336709031851714881311759156813587800758245717264942235902264649367790888391528171171628356403885228820831551739431821883469610962081825502209315354663373131847608326219401844202734024560174277521347170124249731976119248817081290370975833322951930208595171682510319540462225530297911618576566895921061106079440120926493056204430371234805187318510392989608812220868144685724127916764514743387906045376843581895115094975840915143671806305476697864659133763828345062885807415878481920104234744154468809635218953164286499630995774701271581956758910125073781154095718235997562073011437314146499906148132644172191609454062258876385788561275724671471690130754258361953292591499689122425825491017429419214226545760044165861616520032493950534652925602628698998368121385771896322471782581315461601263945355675627611538616201144747708219465333421872275757461977862046021135274355477228887500055373280860432057208040003746746551615094166343754432279314326610788008355034859966272930038869196585861254592798843965678538341075491009949275518009805197558310370452083210303869901145492074309531322647134843877832702961986656146760390518149644614501446042469657501296683122306913316624232525018758111351502531866876672448630436098518596103405423712959042668272670181686904093656780147885997901170789011281895737353027967257682569034575042080971568204203117209292897633777164384434879588952462744996099115489514118152558047313494276015728115485836958673431227891160415073590001201672234444604391713238202840198714746714054139899012605822701036444451985737267573015977358901016262217800067899253957912510772407050764276921547497956244074843277846337734485515773069701146957702526750264839851060461083570680105843254035354291777271533862713651335395180969297487356501601825652699161292734439003524222811055340071579839697237575651490010173804681901740415715070894890031665414383427966155933378374769888168717212837524415728458501111923400309598354278646056135820366855723935537124467437324832007539209620960478082927254148739066335090645774395780582269873630727419335685148492511595879770674330196858185160674265915235659789812170918646440396150414205870182530657123817102513490933157739619322299145336080764863428959140191184695343136155190341816355863773582616978285681976797152663866288003205831471992017272395101731203026345388691164935624390784022863002219753055785276988062660128487083710357440415742017741669501495107699273116010477960579086250099552521692557739666141413754882495517974257600794176402394144099275072940137142440154372684934016222099669455584706331783207955452779877452027044791336686017422708133977086511872902895752233405536169212021835831823391505423231538938600715531228645442061907787248005971022020745421662515581915503780028387704336652720033874897130567836621244973726223988521614810431247368916752249514936764010880893087365746885474246833819573983647715858763667679759217443059887724040214500079749576308435707969770207751904109524822884107482249870674908931751914930052863689548525309016654049628910318683991647684251053556507564186854306546691471756942523522864317958446296298009438663395615403079917690927088970045439328396302540684650984614584690408708304966366599884306492436436847185575995574670823038807827665998743756595732874030744674226231251191233208306601428659218372422613502106471193784684281486765539428634640561247359353527787914344734291039627572446173656770050114171499113853234666874173160280413887617354913368912216271761949275308111698424892654022144036462185303422122231487064623133945913359886759844684901232546470952697192342776507649436241468841947878744722784682325098278791444289268386864248997373000084548492496053054222224276151283304571743454443408335937153594008138230401375876080608854654964902295735909920231787654375769925209606516745020186686100322795331850816909470965341205233275783095859161601036139506930879518749092295478194054272264134729619204305429188126556479369928378369472088357473801704955289536159992978294145575812025517874501238750871663820153138233129172951378702567599234220983401468319906375334159340440582102616838035636009388353898130717538036404202422039066375981965408114071341607040213750696540331548382976218561641787733310073736683774760474243500450654237657837916260302060864669172169798433844913166271234116755395340260860482825440595453375185667326898133194952331337673081193428143721429694510101880665229849237446655864849349464105330649031764560247453688007476486203836631899466745116835866965597750483574533244319595470208947420055749537922437216172245206252596056156617395459211315399355212735936116007775445046684067921354222333661526517067645682739803134020989281114293410040722236024691322551979471966361625534695035404671823576368731319439771365268388603078264134990191497236510831494666153876159511635475287151633599366859134537051361162525079840274333041314902823217413189978275042378220332869363216450708787532051822486868689223426838142031156076981154033069066071714104489165504936962968163023683645117761612178411156385259768932538320470249045124676918459740401310540893324920797882719842644638276519421081111749894838700389193279077658307242304563057308287176177353427743502561442578377612963573548491610778162972315170291459572707347442981051705862548209711996335435056322547659886963839236449853045297090613415080641043717569101923037944210698464513778197938480231118441127166207073306862969576709399947487822917066394814200990221068291972270876516965693187991621270392098193296944855549660701601935646347826333729181385809409998736965243511016657315301692679786404041531301646474827930549061723552350680154629248741744225575963687639823808716265265085728231828879715393813818858807996625033394146527857407732861637708194606659935405342669638084552777460396928876699926340670865077846371498702797082717078052515342716274563463740781367138261617539287050768447066038120570439377554632720373748124410574505224595699200966089606357948009462714157421720371565619299182723257315840148694801551351301567857276530867124768073780995865114258986508287989059503213943124951684709644259674813418914997329071202523596091329667040171114319367607184119898205730716952846799783080197275193699586978060322379319422420385357389123150662922973009912149634253637501872870010058284571641820452912088055276973494224941089180982265122850064856128256850300676280382540439979075601231306581535099744975426017263261078996730339394775556352053466577539083346213872912211762284699715674307254021659883835166299029104598319701818403479428893904540775064942277733484439156861674582246542547263587458914771649629594432490946708340304020349720085813078015597841558632197539149781701936597772618378815639040706672227358211491570284474772410145303488123427737304194236229002901745375926323298408135794421018960885800257824360246189552185343795809242629750354086342046859563174542781436494704161825219300840930810837680913920074441321149182867918930396597215596728749626591456067510092176867591772580950986372013922958475728230393768225836258692930863582027511664184597768960161842963791337051344462465708860947032840352113828028646382494778887158670563351690221832946270736662735394138897069068078037950836571438848594611570433835871051019921383754789623834484428174679861370989101811742532070860155128492766420700783841627475144471620248334246520190895785547715739924356630245059225548759456806964931679361955612861271363646275640346075621688070116466060965450606472075084699439275553901847072526543805978943820473102956187298894454335855663663642857460987088275146098331963052723840347028511454373757479326364684574201249363905214868776605136916108501355856423250240787250455567462295527427512112274166186124275629470203054243180258411976953417681694028744023906596021769201979468017418273997321792339771470494286347154092782611175054527368441570594268418510926525270008581697733417168777618678858082863452812807986687684050721133318057364080845932925679617025244267386079464679532124037789294234882878759537383350002424152511620886511991050875825995886727300568053402138924163333731525545620404235280535615888103080909951152546277696001653024357504740119450851937364689353468927355346927319488521360144344897861292568566735150474518855232328021547153917955828930099656400107907820250502174875088389375228973442082820902515589691188733349094649204080332643379125924072012793076193365480916356506221750038004139531505359563838839086069612580074426486383554662938871755725151497333156878692368770860968518571514613141842364958397145078777957867075840526880900293436563479015274406842260731596496138749897847077620626967787297965159030845257052118694782615037102916363980427520002426151671390284206922657795931802264962241641638006954094610384849224525895714954307059923066912257846991511899709794272431430623077000329869680785388869336324316826026920647886127379121040060897721640200358550357508216421678983832467710785954564138061623153966534107642201387753081684009982299460342967767601133217587640736894098417777782294605902819000942686538248466715390703065321185066210422818094680824030544819601489829991333375390029811730644467271216851958448431698389355376337318237937997315984522611991983870733853521317457672085990922450331076879153940944444059299439282759967545550706016510559095596445651976220568603037549016592885186322542798826145032701488728676522287758267570171344329998023346053365276148433354024962138715212499814379306581992304637249263813504781595275064860211488210239833694092111458670163510696626025696424380182972123215137593234704149145914938168750600022132781810198902910690910919670676213600308913621423032900471555177712733014921822774920731726138397726499833820682766434210294575122288651320061317179261836137297289674483833711473780198073059491400156605990236516790736065803288189425261814975395033900873061643256226630547145460863716248574385478678946663819811193780925778371660725234083642924562920973726662769344818026870867438971191306543578307362239810509311097988986921870319476560179401256029768052734034008738619317563243984579325370132668956267382782641956081340804059954296219291682104785159472964477773713324096696351292036997769848760745075459142361508169063525726096440732956406802851219593676160726364587017597283763625496355491780517621348737066121940228891699979010507810298100594530192535598492232095926972379904027418779944994408463492098254221616562760256636561175089563038660998136525869143097142700865928047200138358333683455728474762005133527256951867395212943904398526423336579389022142442390769259494702021227887716090369833784020480283390478813629716541091476973639009142195642156781116592871022196173777044415427520425599616519459071376853765490488296757392373714113224688913563695508436269091120791249412341322980819013448104427986872814955950537324630229218855043478734959819862276935323881516923749889972394407176580556796689892036735439567949929987620939953920564823181341946982311060729265277949352391304053290292259396451364017931733713171516606854054069652712066438640464412079517125796925025234107032134378936711687054198883854927332194714330637256973739723193883662191073865777211448269556652025970503089523281030361391485816553012057952709250744849940447551501348477027173231447271161776662681406056667416854836062167248325319591780056209464239630523073603440586914282093006415028351326634409550754569350065631400392343339822294044108069387167186688195829093496515987633360518251865847483814818941513399827999445680522773035532851084176149788760503941359994424874457621515529971024801811670556479432809982321277356228201615179280177284049911753394580296242301093405648119101541046755944709002948101263101820835206905104465774744933835954130978449229381593398607544773083222635050805416162859731202703361859926175857620044001355125911288769121874729044681198715874621481383738527971873600619901714372078615064330609635575510798528599024109700126474628109309994396444214854980513408447040512507549399211305684449744676516715722133781152385582178688046817609511102361485070285060529522168492904900796759193387927791449598580390542214041091076804975835078429624409952125908136241789712674015129112060138114801624531430017558883327318244150353284019390132023585040308708643610423329947411107071807277602104072444448737369622410334932912163017026571562168580265761304197334758000581381584289497021796787140335554666580419789882319815483469257371672339964995212355347126427695110731623245410569772056887162461652687153857621119947744655072706030106232076105948533806800685022934310513606834737136491203538276763965890456226868655455385287949303677419731513749580934174087655603117552132403943171360536198290163813765616185563151894181887768396510722293460400521543047030941156099510414099860399707138336080885524325581689050629127260268081113684957139840236428473884762509425108010136373273896029094475274835267311728957765566624958675284452555204176183086389575966435149017611787716765150672747568424414041080883035930694011622767958822245420062366103605690838084161246169577553248016302043338326981048975409819957402595642976006625981892763379086135263692980799423097588451531834727763987660683593243724410576576589536948929609136290507650463453096148510764050908580834483065032615013172310396502379328986318378540587210317364502533081119981551574072445344780421094313196154864886265522305956730058540783185970946830560275221688078228513170212503353510918544495269391789327961089552664659680228860890460323808962242062561769078706452269938704738857235921293855596045195658743246242095298012933383774136785923730897319796780952775028416070913142269131173209489877987789230082777940781388797400254649663258174489339632951104279840103895417672269970557917077558496997538832221578543306143193806224857687156466357782099928838351738896625309043844612074604245181726562803694688802521914042864442506207654800216266403733770899938710022369068664007814694967427944460528251172428586706308834451150423932992574000163748782379012962004772084193290970052878075035677273451815190869020096552601565507766196595366938651420669137676304149161701662790078611226977761418034099487194494919107928695364401102781233658939662422737536449304089218753597723924749662816403651687914181353990437480646398354555374953554145422189350153534532026880995256300344481288535155128868483303161255384499162278711207218121776861579121951876699661653235897251399629741887130256801552102352427385046674782596531861437441311035716685561363070324479757853716672148773275667953016936181919727928425140540391771794043306955335214109740742277548041502265195687653758779451542698480457494795214978171035696773040905459213174882751091296756015013422767083029718714668814634011257973066374822148640238846481167097788166890304047139536141434489018281133597167451942018979451269225726018556127917057287477085726757964866004619927133156212006723862761774458931960786151529275605795126019874799192681163814083153988962332075960996394197156359791571250494097746825424345301715017748817072198017809624850507080695968588503012952172990476598139659079374093374085195495476352091504125497068807220814206274601177206205561653222274429309380091394941091332749780812333384773562454399423031217890868576059373955807645056345971172552355740069405107202490631373216620520072057353195612931649978410702226124619954276933308488017378431709341016254150835654518190784403546076005319613230412706234555453092361104674511228627641125683168620199327957661058622595007179616945380237040413000416063224616353823014671767802108825052640156765329477330084085658923720315302031056072066414617161395479458682451474925032296184166149784109720259487834628165085061945848935000841966626653348180368197126022978575938286999171536536758618098873197319891880650195511474657300609123373931968242423665382287008170208039615960299683725546285761856609415411099555345610214019418892754449814827709101842826612643429972372334591457859597361830409655952988500103273723049127597180200025122017901866445685751129287966475307981527920711777089165601368865233471023696076437521841475830574236796069243020016740901714748637470798807591868875845195820930220553010232557579122482132378368657683432223507685016843104307733943510673213004507289792890671238097786965689560347675870787517246496445736968846880365924758288756889455173596309975323142155411105286158627793585628760135280159316194963232645461763218180882774034333832370306679826045028528135561503871582318062357517965182783198173841844084502277704845839331262995384321676402932398016084700382977923219532603335827709916107647870522306461029207596545637653351495967172730811564544835272955295390934119059375119076015883550241356844944178132784012784827559579091720911193262101177532675618178005815906147653481782288417562190329985201451298517317604757184393218382070284560705225813338334576908043100537562439519157876315295142463669525275882189994320420929089259887687616567516245478936460807682528842444675687575876227550497807122551229293916435411488330322692401276701665489376956598222127738218928529877618489430732799115799414363046411769943131136551778090612725188467384881296405069352759255953507214752043150581587896825079073394650427448071962220450088742850664511407893448628700644999664118285952473618795411065155744314125646134939512211754262114360737646828883941908341717000468787248822730143998764413229966320479107566621465388410027606047365038995405380534674378579194956991202030064588286759066295682632088643863936251192845887466927962880679888824973080839958733556982844409839959478024570978903774942014032787090003846123409871716853920676750859266724528116999144220060162034846036470713555724935860493209407125837548392357117359037375947166736022407934115490466030056732914831672106756324275174018478471208739321628839681839026296330938688558342237371072184632058453765054815492216027436376118137948087650261206120305486962612241954862598322412278463751820356368173321603737151941820711626176570672744172218676361482023573387598804152924981385243009984845410218714394049492684001558365935142602936341372917878730601788864049629699781310226662435647689088204275518497813437183736425640155441259651694231960475253508111659217775528683594621994107030044503659420755323243615555433611190596554426016056689056104325151964541270101886643198299964374814305039603035094902761774103979591311781575098262954223047579229884744473059191953555232890712905231843196020458025114189226843821915517895231968487781975678191903711552475063357568436227557685557248983593712728463817248563806853401200268192914712023251258681482713376866235125991072977282394886213564873669245467231360185684572018407477718607271918254340327984508336050621852168727764064858983063121570391343347786474807616845088005844228618862798581254963182299388958381197461338681742636578146588129997774073561936222188603101994556555890006432729550462971785453326804102672518445168724508379131518521434298035897326710565237692540667422544863763841968439714930248524745815840850409588098999103039085862825841054500490733227804691599482221450674927737992585920171835260996621852726354501810524744483683402292007109126339474372055755183290460448840822749275233538657987418234822970835347282775585939162143873093217183986021043427096326225161443840509073680090794344798852151637657043381085487874694997499439360842958229462134510610457304288464876384503679859771463933771893244491650903405526275451656240747755304337372525859977137459536218322384187977212900396118616911372613752167070903453362658351778954011376249435486427360531900056527609988591837259914556108112684059337203975922167224145490623199866719163601873123390175506596664830413714242322215655761748846951930675344538621588418237376632655541302916361159034545492130200280707138369548640680359716649614582200304473546914180863261521800410054776610481779652656934111517997669611755365909885687323299870527335545992078585923158068725948116387780036971700746989712987719880889826355321814013419499815975329372080166432984372478619110757921262908399424668517971386573269786861818978565175209641142348481173082120871956142720851624637137438461392566371383661892610961901783329824474630290722049765408777370703281543272331729161107181355403506513710653293998892388609496276867734367986641329956001119799455306961190537012234857693470469305702858390223546050658859309494231586043071069760335465741926581561927343480560934804057165962285075122777426664839076065404614013499774676100819625660849010112205699731820602817902582548542854299770322389247874830694503641114833625087835245569000372148166377829199928193836319541865685827576437701788907324962915097028095362847685477057045121626640240023708478830152536964502290750537363640431355234211539201465049032170478857377653344829437242709903452540124089874302747972935990957812560776374494442227848077776473147946846070640209890525368387191787801033785913869388737542054152969138623136053159220293848246844805899059124428001026060173666604241732904824529654909340709577036134932160056950678350606743223904497420555404025680487556851085086677702502527898978241893107101076942297785373277504000651300018436980245171012763870463105561105853753410575054019935530473107882232814453341497915884055535997881982013406085217300692026945472405713352345130517092867111665532083560121193695036391153635425262669119224182006361269874884318721647856967930032206268371477932693932034312886178520570736623000865060740195181685233259473753441854184142068526643648321042557898731400021872651815715610804365957268792784790814958984814058415943424134487648009205643912514981760282196527892897016791068683798649329965595227399799203008827585962971773898241451949895443092964138335315628190927325755689573842490353377858239758289986161457147519975149914974717139627619069893086126248471995058598364156200659219187453343125007881588320456564986950291400665801026056844997258997067423646804783653367714889691019891650046308996967813636127438649238907029144645233887276552216512041377610707203626959044757357628077019317733819386296073127502558409003654969635826082951267432221810244713734464945855874532529486494664981748674162336033183481601142402713416578082787100258325258554991119774257156997208460664000506385155747479432770936335171433584110938717389239437122964657198015237720030436453321853270392975043606533201781585698100979985800611203403306002035278834576109418202184835341749681997856697140295782553636712416255639131205461079644611812496225179720355018107797810094961308916082054654403589107334955042360077840381378401343371049255743713648866433228670894183536812244925341722198178266540844873949147331085934258146556413150205734624670523173529242944746822287920819328505820580027644346369213055116980613145104137056325191979725350299381960693630860802208924777352406993836461020792158789431728921918845172142231274679395446270086636627406546209364090562649636317088895087346137893730328653282869577444222449363804938459909321242431248070267795374949215617938631370090489624855669026791301510071058720073561978340566555778912868651925429027801270151572547051324913633568090543935637856567118339668974543089033142569312782658388046688294546418151115753150582818866588954379074389172644270561473590782124479006123528008391398049592820539808045849400304927165954295963610045791862572605252627807357065891644066160419514423269668440792567527499022211516864018788076797913341882288763772693801684709494500319699584915250869735773392974548609358340083675352436688996840531504394914120741378358702390299822655631782848225228689432245443613644327345547840027597695654105699051245668832987276042291736689974721031948920342755290372008262624298186049891113102878659523942378757621447185901015760645068691574031353589174758412325857885079138013121549279729004018944516782841534165128996143957646851319369800186402933573399417915034991003453197926197981707443904320124895107516903852053096054699910069088667030968551746593074387797576702721577681231550130019393049264915247302326638007946712349392429759347404371095883897690831834400135482844600744292895976845479614520983972252482937797869029457505192524023256744305712716565697030205825802305178638589747746621606379232368741872885389077284248279318122091674923757512225895996560250704214936868512515565844259989121400037534253413228037866217231412405892141426115366923685323808966240868125497224469680210240492257240702475478417732420673690198680307106394178247812089334609248296157589060215202617883258360217136096316176368882944116213086904880495845630641213129440596725720799373639740036874793681633679305771832279666507731527052574095191334469248425210973103428724279651187783799747239203439709618230590049263371278627071052890494923030009460876490411377459992863425512712695569974049641093163665999827141275275219523287610226468291106376896908487166786287382648798957657452825217175737462652729995333102133831603933940670201640856726649846215957299150924417425529032372993214600414634861472939164525700586880193061791931612559256029864847537572780017228835540544233252723550386305990861208734324920374021536226115974779730241286696034766452934021648313551534727471652841644798167434248180138084837081092880660511922553701541029109989760116147179589980231212850499276854896313378608871586521957365507942385175728951092509608256166036431688828050955757413571132201030189431165122269776243264837056554797209338125351825963316570195481321017905163389086526257462949264819656640082087508265350779148586250163820699626836848310621236573297651491976725113109097697398569376297112371205245389337259145184663648211284993741630902427389595065074981763121106850886095714923660342960401379630534984447935256065909082133752270525771315201148509563003069193826430795344173370180057579591569067903026148482025080559440027659150973403633522019707670204076086179783001349337756569987905429895774951615601346761595360939144429410752996078553326371821074935113510275007742863766635555839310762095067758055901241366493284926353440305949598614561782313693912297478054470311937163623815617963722664857841120939790065029844552658255990391038930622198887983701303057758174568609966207145642222378163463849375614326365195230819508691632633664869819448299280189652119608940350164914839767771011160122730481433383248497577760684870830266669869328100880997586438735982145759487595600224206658068760588462397138028274481181872116117179335422033388254991799527513150400321225729374267657489349336005176054113293560676161616654611915220141997346234413423765490131232075916031190937722808721508625147468886238431886884966163837998606517487231797833667556648515681463446127276931507306151265663725712095098384849258690613166859045992206676310109860837955039908691792478353002062976347144330563935907419537893405902319475780873892108326908765035610658190052773846963621989131554990244246348831408844114808184874023607167666185068685800377116518571845810946616209311580163218321601736973411932299022691015566516568964788544776523135003319247006034817048797269180794623505998172302525374010705517155801315609467706497949870561527417399442375604186357517593262314319095467845636776495792036708069307830523942258385674129574044358673621971548994591218922423364766900023547841181556991917942953005386488216661100542866167954254256928978065609869554666675943457276679393029141569516220957014199604503536206677675758374260146847608429151041740724798942173562903861518116297818988670499833565709836803364081928475944567115691325997544851238614313269376591369979416272756554071633193595606239473746930850049696588893198187348154063725571460431193474662001945534620098515324380423307588564882122398838495411644848864880395727917723723624060642928664577133254566633218243408463353213396620752719805499167604892230825225157852479090731135127201620901064762434941225659059350527418349235370850880710726006158720669359669253276942456736976184135961350110859733119841682329170523213290026517397893806035528526168927145962403845016729633603489176140558778157025616676295926089053471988364902022143572183074540198835225649948237926797413412822733577026931253291530772318389772172572930443402911689272352020285597411595698347513833363612477668732782970955299105063419976369194218413509178981984669189198064510795664861848942333070971790824313466747615599559522272458234936396158463415172820280700365351325590052592008699113416149557798210581766379572667349705382177633291432160169387126134732881152244071018601260797359425539568071119709381652069002906141353661794905678927907688178733540472827884284485187675188030784485270933488094808606133088140912438838894699258359887760458079041061985187317816555795218982954214742987669071722579915538245974509765348564012484337811635546498733998497978704388148004046799682722528742326138830347081100130081070263153113898422354986930650070823720030147165887614290925816895210739278761188243151601075002075609200026979362892163747569725953285249306066848646175237050282598924741008802572523156707225469370579703589067931453233813077322326240179856641406535111324782226548900752036832264794576524674709909709393270218840074184861460980508144088259710508212474959156201101199631082267594187675741429111473516223761369932356105139839912241150494424353385535180726853223359343793238550430029198512628846036504299814993140396982494692688629843670675914894104204434137884197969373696523229012207696994527253807963442800293394507325200590431597786341086444572159651950850061296840700919093701649528335490463049996318831305548109335422814634081542008311613636514229996477402377001094696399064246495352863267258625678556374208454733705936331394483999233804606392356170434390743656342498265858758096748851620695671783768893312560365230048360239669501930933435352513290085447744202668823590125722004829999580912378907926026417640584606681774463497628225355369004751349526215358626260891057457794568999120786573038711768346872525968008738429987172137252825320884604072900658352921666835063848083365739637225722763897135459428695643473345483704028072815766891130501314859808081062231477779889212873897442284465512600052685617376493737388039380934539519039905144157324401057418099119358362129523103200266504530788430071442440922701633665010606099822352245288074285313768093936674327827234249309861230023469356780015793272308940008434785384186756878656044776418856093247094275748767355651475149530334656287478716549313822087608505173428937526034782532307285834362689266102558684289795288586313275682507349610962630440693672875373767955802637333789245246892716460859616705938592185669630007446673692505194752905803103461966542525760046104905411566739984936384764626309844706309976286456008992553973695915932920712210527340199573964310939627514726012389899676784825825297030161556911546789055465530297315879894996400426878741549153623044537858111677738348316899021844085334656717095806640042028191986210151843276185337687680237579789652660369782573588603428880547218153402784900088990169495735388664095910148798836148977720446886052680830670222444262935513096382660306823400918259621295481093073951430864316474735744061017236393468402157518139727485436623935445059873720742562617953662816397749478427521193859601839924981491728522501525987700020883709444951836265020850148929994458991207100852892590306196272811842164043219989524823902167094540867921504311136019495456695585707000848464910178884187613270903960059803058815268062452892359412914132768412814715400507166080687128028884577944622321114547454616496592656418820814652489268181182952467364384714044480355687599201711168010962487465901749506911884408787317805153190897859347567961759046427037428437060288047114579665842391967400836440621689378594158523851313535752580677298882040533500087571409889039697212506871568907118328386515324478634132793498242069408975407724824990539959644179460605811501516336004161613123946839114826299585519142281043019791454786474686333441333015160516655063752943673486310199865548086735469002155709853830640291991801196103638068763013205618952398231403309576592087073240708620472998806273303212577934690263590789068431743380478606901105639539340925651704996757534074846781976282067057733191007839406932633377258509549047692693990185028170577110369353775120893568749164097784819400986717199619931509109629486113101989035981696661632618700369374516261146966975453109408827899349135427504140654325479701710739012039404281208297791830550090016060590336689581577981069494329401533660040293216923747695843228703604256907476735976097732166109464166276287105432779384760491358490434781836346774049491350687997245344307665014408299954452314523035096846401165203192849658007609559454931794742154493649834233749510430286495546090513174679702080430564027014712679278835949302552226003457230920672444835677310339991281701664633357072745324176322328470912548092874519814803285544759897702624512219664511955510298040221692681370931963080972645074732941840406145243922144579678151306881652943559972929443115578900226413288807951875860813264988180227424101072982564179213361530369235327843232689229421835579062367879453264187194953460644574345671119058080787092247913321019167218663077142573457102006359397002201102836845133945212672192517221939852616674017610911121419556724572719777617536864701283467228382618329770087208419750744542738539679775775800222561042769353913813526032693359628525425775699834380141380226116345692892043572246482869064815093997825024531865405310264626735983231937043436000023332475140539435164438380050733491684556556598273283722367227040378351007390674506860713526022981051485584454038096247488804276499118118797405062831422764354021498939474703199443549989238083526510161402306146178275700564939248225735661173556997792862251470835125511931732928913012755608631584459026191414625067566634976952471264822396475812236095834096824611268135729628103981978464026235488135317547460600073988588016710666313418150936397664969269883476770274895395986424438507289109428307017378241679640618402699874300060170168261141470408758444506712170482408586635535322483346226570351401953878474836105857264239288219190280628901283642016593617434423941918996312535839237979126005533785893039128960019972458797023528898712301202260891132979034741660018035735537632329520510894063349937555902608642044265138061232045720037477529750472351442638483611123794664544976066971273284934576593049502049300912189456417331615675127376006292030477771626915472879468575802052082206420192378478599286782768647888700613695048456564940557278691905685529803974799036958018545004838389824529049858161716047065892568617365939635766218968986717262774403719540242396803585074577285512278308101755094774863251924340544822102942574590251239487748084654501131943378693899996229806386069389056417071377856012393717651631760837148934463739442660789648633449839112365649622537335504003904457250805837769771910910523723513671221649986559209351668708276737487941148524579835531593511417982232507801402726638092288943202267762255459684859977049917415038946793866296283899324806628842148192374775401648135547464808772817023557711617395203025492814619085987725899584278984442433617822493276279481721844892662384312600062000756967582257708284356419856461302745369874572361594259128042733206853531909272740701533891905767070952722499618217393567561162839002281591005504312693059623864410808305552104288633342710925364681227312431049873894916211683435862823922218562274642641190172724914600969527591374597637585218742368543884241249740717976904800160139276634632419669227575491204095456584067704863665517287027085117880536728457925222099123462151344651402657672943573943746921257231016257252212441697919420488019699217984565289173573003267229805243017458762472358618286641685257668428244373910037262616925238227843782916009353038471052014604874678439405483467205957552584812277568052436235909250992994681687671925613018708484224210969840831461189080467309318112019450710320616410927819054750563148867529271883037469246153331171033403764565694812733291267169761591263362661034628306788431268102448323629598604162877263886095185435886380709589159382647819535999223869222039601019822930145719697126497617538524400721014251305510683651736901246894828942410103982050807157964002326691376546803972644540193827850710420569117311599005699153502678669285267212466511850336911753028380610287547341873432279714422931942834916260691652802061508444082917811122519217533506813597453962287395218076417576604329223399896301917586143583298983168241829490649171646205942181039964081591079941192999798723616896559708596205300023681259427664284598401615088001476650111799059489086446062703455268715721598520154093724616296227054434376235171907394172544602763054890783013307072026447844681147282200082217240783375215952466105912377790656938933446784355077924872450073925474416552787996599078044362939948408177586081169578954432114727636523069793109531311938442747096220600198098218506576254674768672841213638734502908357495770184156726914769385655015281032398162844533513181309329717152285135707998829097184290798386486735252217952166928373895682460087594329390650589148784429225198193378511038028465287976464673207742138494366017911363930777594888836000161910406343714268662670879975567982070779610169951295053893530226111488263538097628477939024247864681459180233676641740562015895242455984536812294827757656799582898137136955588483345943427503370029451823803803770160069412969500095414449675440375346485813331414067371681361558911386984198458460674906202308716193024875652545601331977053792840001715140140959673064146323395848387656199198220197179100206836825413576534264052267584100332957080452147012860523523298211078241374589703560753699845465239868741772466490598486950105415102680788582716227671546111250068870235362009924643657707621316177726568528842579529003888088528711611969786460229757350888140806403348037346206549961638869296515642257887131897129689813996940677154753770347240103247634067613397497785287934349973030700039979614211266620673297557112324311170233172887813659780038874933798812804738272458599584043420097428954732429170655577132864683341350555143467304015693457893390085500688026874696280133070048274005081294197703483746841896251993452518972400944398331201290640243323733838626367035412796283090312481029751327253842479151018145612498150365884965481876338422760887347876468205041233614732312519142927968420109917334356103217281540131219201838884625287766504938579366625647491529348216001337850695714428879353081019787119733442847665402383687790357136693326302280301823148917913615875558010547443582136009639517548407108976798409227076340087841979563928550351142292622148834619676609717234474653879278342490102034116138797977529616272803564658189452541460159228685979226931902399583080782621984302235266604883022444802519211598705405086528498499998288800593423923263809735685190823547722622593603393078328264804569030083551399976325222628306082778353701550872812279234348323180427456113261587032463820118968112880067307497438419458586886438270660617706721843205691775333784370975913460499108659787672973592868246754132397663410475377597250242608939504775937898290674701809896584332307401458205204507071212125452254561365795815326697044169311986538601846910725831292128691603502892355991126312483925359702417218097831238017465242441957104743250612403605761507511782374811199538878595245383951565205805131107249379483578260240623748331397836886608286782061703817269296889089487242172400196445742649704243012475662692694269717695363787153533363959082438712258816461346887778422257198193596948413907508142703649086497478654884706119046366364576510769243112773285622752176886928500625830283036607771062969774944456770160807739144034281343391859476225089365946869396077563348402236047516075613129687626937459520900021269727721592856681401555323233593544903668796788513257775788382370792493067258271925959688580397971819189698733581713010693600946053727097620939592357221493401203198993456206010903371815678583190549117332700803627083592269714104008977081870621350958478317800002562787419117570700789920949854259906398215919538149671781557845229560513218148509321785827812763148991599089453620212324745370636699833338099007693096171973328535394914568420493644110918593471437965288848800881221686317475935518679663495221617254406224973367657090271920844964668154903748652058015832354769007209389067872310377882551161743823945833217512078406896992213896230078201706570239353825712312059076575031096061564950568803742832300638012213579582265994545187287125945439040513071326825960742490273703660104752433930290548783351055491163520713055436394898136706106132138663013180823728729335532132892294671187649705018742666020293803853591328558363602712680682591173415569470329782710022241891131436435055437543890460076713211161661211520064979658534786767234197438504018368966215260995853369531474959500730342988662124232912216445235716819240694028517137836192616204533959252419761694636252753112251794943092099756015492296004301887120310970399619774056712902022147943507605599047434601190717258409867763068235806554905948061852451362305919114863001885104267775035601263662897887061043552423791822421601247763531951881740669815001213672785221140523361352982542334315370703760615316929082072588626209766212031097121827741843836604161490557907456087961548671173574407792339093995822229403723223504520843638507780231160587024184290758931410471397763693477708338267936650823193433784345019298424508036889506300962631304473898770549338957447977805715702086971329876272818369526707780442202896208358849615216298947388458432424790982470719619845839993239837124381737029700566737494315758889798930740327688550908692394458266034646152917317596686715445571966501164946214410573353436703229568653780216237892621016662826177643414961581498575106728622201393550568892876719881335413380677294289333297366825287022858214997659415039172681519685135013246035182821388291900640480005689894036975374127855015639183986113757730005893898334328896453972862127423641675293645578463442738626662636351469632406495134003490875640925766831492767545684870990884790874180361151322274522144426495124105038256797018812660032806798101117012994083145602042558367519746432413855349286418576247817079823592939404447861543136113120510160446016900667564982152624672438458389126596124531814606815213460366978376355667816610478842447224688893131897841933996350537506632335349271369912936381757479199487601667723878529172821919609827683708965786918033450985422265447622600887907040483883099855734724264312294213650141132984578876106560055090273780492833805137216737648005539224526117151758638399409156992834379857594461602962276529522950636496459814931907684027567506076547597315647990168635977276178027440563892371335022622200305537899624475176382840263961488232358640593853548543321442205342654852716708914348148159815656804187301719483070675864195876541476860956357395663981193420649840306108703417577189994644582479106268888807101448575352400863918805351726161098947272329030624321552869089370686375858738775518507481511431969462593333701047255946900232785541708328625434426668832001481443506068106668089620186759984766806387579962164737284196948459046838846182559133026642844726618399338139357569124934407328146581165568390582657424857981045320383970343978470993554020478827208591810587546271803217801151966575263697786000129618721032831962371996757439161379480999003396975688901812571806282601801146840053763573790895028714329802894414460649046820392690833750433191802361154501038327372026012813957236601070552535172260293381831700177141443059401585462014713336605388359408697245251273997483256034094095624360208758119036258743324886387543207095063629357852267288816371497184690760464993827507332519050073040533970202243300922254467085435919983579220394228672093995664702864323910650265085417830009178926489284372684938050455971241582030835543462388481813531348399863438508261194226262000189517583566529242413839313271876476721566217126165223333308380214054848893609537646872085171463768754697964979011016472544530117903695906974462116185722942043493549041950050423360638641961816916317155300508511717310110098079472733684160937006318136759376516987092021237498585028775618740806565954833138314706131422139710247056845695586704545463205786126677622131982479043518773730623288837970180020664934568391408247830671333976123621871754023155933545874959624768915638924415851607004831876969796303769789314297748149137967063262526959608183198597534964469042663358285468248864533592592210864220531397427952786310353797946307861287234595182396048840975972719864146188487729031540951127824568805472974141512387237754045989607114114036191500806819097466870505946927966124356129554477769012708669017465162191536590327355162430706773157167015780614631832776569763060953266541229359501469286795064993661289437908647703640288669268962945718223731103899535015165056098961455961032174606613687212210268544169023219085996788058894246509446421794976412303296150930762138410133853399255139785965952623594496939077077317470806775422894362399682696669835442333650839804889909412863018686076791571141677941578970202990011705350705051385245956291205474551129396522720099579031763214823998200267163791800365348563647702558393536674076088948270942067927003735008326700325637827550232901981944557227706055773818510137282481046410342402667454063765404300972510309646533038879323372456691827873116522549432969391156174909532864799068513488939261280585116301989015834768560107137895365362262320440071060613688934810423979237790159149245617462070116335745735361564939367903788456063602547206189989883255544010712887509170462572430603612597614740440288750951683677894529688590615096364329824284365567233525793443576633048411668400003189768161550549527730156949284830189760114806872050191144235040925397156236544267281738230766766345831182489726495239086946454508626296401915619557604499013290098596972314299383831863684995989042477187809042569838445862654144939710175592361384958695751107473028021247769348704395770073930264403054886160568564584078943140953950515841398171403618515093061512783818066166579255518652670654345387906588464509976194335149907301500707098822217577235368316155803612862301208174303664782632374622113809913955204177501430871622332742871459090638823327119620440359588208131413017644400194979709263636330540985140935330680302462211403477684513166116393022391572901886504868366663898176808602509375788680014763530176146103699649243640524111973166115913829843037489685483131866583967703475402226588063349317479981754377630931150738005235721709376749152117781353330053497131496635258043127757241381793179750603684215774424975444238586420335160000978994272799300351486959745736171506949667337197390762090593148224570431276614391043837892154089092598635570226223720563444677408540646005436521578945707625584523494300723883795318059397020991403472194300609870734282729151213513409025006284306877626254069882693657607951470952427922057204988709061597528613131730703490445301633619756870126503828369271722184612009203222235783437869735698575815064800211338741533635471008464838385427795479281542850899891041412204513277121625297511523682110910836682648236900117906151553919366203340497547853366698618169540926490741591076952211364068520230474145536045165879281820213569450158318135630416916746891647385028849937547908917026880857842502282669314353080605986460556823672252207479908699848370533083433921958602672028845747957920630562808545118478557322045649673611263006461755414320336862429640615378325780364214794172605165614097553476615056256850489125839370885580999973733840902207703150823941673181311693738519487715536597371737689544592830670247606670368657453886080528923713840421442637185374375163946850709557451774570055720412332509283872765725425110586118894223332049381041305704701709694879084325680625880788982167505549697907371885705867068630457701519023621387091066251981090197037006735912320747531525620808286573598235456566819465730789838024736455247155455806670148256216009478403209016102686687259367367609548989526280349108314047734542651717886719292185225070677599283444843156980060662381223140811451343545090282935526920027781735109975432888408856753244889374236411280381848669864919038439607422016640789619596829885884299149438997556526714856298086714331753151660394178210678170832122604334784079685706995275168924977614638951263487905783251105020740308172770804414571005310338552664238414599803459356182712879694967123291867786630532753827888815697092547429331093258324662834507297666224236062075742562134424251267796160123757658505092827840617185933699465512667213450063490369340066571435468039660820515412521865370803271635146784494440185417587662644549693728728110329459312391827533087560734890978710950903752728082848032039774626770190206090047207741480562734392700925718142923739671457686063519790452446988594649237161584426521978254668594532394833525654179320688958577710630146065064077503903928429256467222987915040530716561945911923762375185455701574560477831051228474579969100580023039703946182821698195993819385793036094070955133710874465893035764138088631596515883248974278872744069164094189129157136083126871186399697190796726222375150814483245344288725136453035860831029727611242496815318842327877113660156337081366927442446028618893955043721545858986873305687095459039258176143637305253448952546756092146981555971995236402963581247443224448079370833691345490096373096826392796259860115549534313218378953010926236656537810754531912620912013529889262879352110580351182776608848081090567423071737357272948884515169330749522496969198165087535859103039590991328086964504699527724043379171680207223552968498252338779185045084121783731320126105580935611873852458380028224347002103991546349659316594729869395162064526236191631763280616838914527093372352570602644756818381000191884085997421461877666415053193007465711196763240123705344549660782713401783817605413726337200171543448609710019914168873639568353542239329767402853148163526104268395649414733002579709595528516211716665167390454992636231954992913365881321258180371358451674398348250045358787806989475737941508261027225203277988165397864897177357055446362348303537243178981947106561200547938932385688656111583350751203253496390344063410219207033888524749895118150997586087944032768100826990087284921573028639021289923467984473867540646276807857777370369899939278005544782913668485692629162318958453283183423324581165592828246302652742474405893832978762809871806846460290322185380312101938469013319941999965298059908339083310423044741973535509953966355979524323865091649974017124063990186893578527094175097393890555891725337965205084674468817491657606820542853111205352064268697719958336903026492343428638566914224115668639259139256930548001801326591154624632548393412905024627678235404152070712761530740751703153403280843686539973005516824944721987049593563086256963352862006938178896485823532436296785568144547066466495021925327040674889926981895973843645012859000122614920787486031739523980515435424972722640997876693704216886469227466527803967267436414162090006032413127929330298423528290159108293810672601973795973598431976088574564410445001893392525264124666616534543305994916951221783098445558424608841301331093624583393649337474708858533511555035795515660205648359205522944273339096815091137995244171745462090910557874298904610614192257815640179351256262621823133108800890581352751879077265257791977146580822646522006095722069576136013446706907458944006546243218600613378125854873125613351986618398574504299997740067560712745720963451799394582834041087748486200624543330175879896142172183521224621942362148840765579006376049381073681659466381031311629663295795418700175299848419476469202614551387137191666761073729613100601271145094634956566333879183632443385840579954831385157704823644672908488948250961806627512297120421781764302918144486722048098589131341984819487014000212390731056518990698119742827675760262415199473779998621350801513784094646207911321839706416607622871845907093233265801296068232517482666942693320131929155353842559327636520733630236712917104316052892232426207418866860806543278528651337826307872276402156268527814143247736255050698975415326186606977247965615045806043001212839623370219503838195570466333407948595563785304767242733476036231101359851258248584821981951797902012355904575498048037497840716402693192578088725580982158077550269535459992488456371189959975748362755949310116638942834075085185538316301906859967581778233684445652620226018267816258131551281850390863142826712255479079863685474372957155246901978987883485741037013537885718983304679229898975124023364092510658063149151791796523109412994661301703083931424868345803061196591495974676459977513888600103801063699253680204033685287311365151714648493999253048031485260296153440456343634385551422340651425433645715712519342475435622308564555321648851111287845816949680838274551541571950341112843475487144878546676084661442151658827331168834504407211211007387485726925581227166996919673456399656074935897559885951494386676243335040508733408882831279062501771622621155631809519302110393939648144694967220452383565760320010939537631454187472586956907140849171435941675609465366752898450781085656105043690949701077986846027098819966177907996736244400635672244420260648876268762359222745431840451713997153786874911068718369328599472501136188178529204927006315398987033168795955935662400976670491440046705793327915901862681184834011390114224258065760433981214721652796920512657384025042953526340423019690451174205887682652228412721082927995296616263053608728867173016805472967609633183663244019419742123811220465196902622467184052510096624586030314783731387823323764550745739269573902492144985022484234330475569331704271389459937849376962584280676226685002979870928240325600147482138892209092501681817945124948594937317432597048749832744803292671931982445402039906318073161887364319435650084347263603814864533435764380765529064940253076391763650855927171216617131527615228911123541323351936554564982517747510776561899804305901971230000113865576262700325502024711225694060474277834121168601974651698738898381910557055974493887726436802620128718050669440365144299728427385165320277832159639997151663747933967925880269076487094689612225728123853861041365325847179518166128103569831248907572933744109703996399855672168547600357948925871313020079950655894600839919995429618305053307510734490622256516890587202655857171822947379864689874017265881995056204698648381487767763478264973055192684380434009360614052875972367396529895686566022337851807922024573380919497875862533040646206179030854827830840667278032621002391700623020181838644964545222534621616952264328353023622465062406827623924745224968913048578899797394523846841580111358224636832253923401751135326613906869673940787480084250985718080706755168314207686320723406869976639337938290425194309993422356433540559933690224406063553783026848096066588269319883604392705732145836611840572736140020503746009598213639267516400897070271749643211248373656463222315927559072318459325165086932401505046098082134237834651186818132761857954127540542841387925637383651221743118631150063355396220886033200796708118335412964369472599236689051220120369046496514873967164383648718162012778462629989454562922358200658897857768750830188985926685532074770256980584828359341462456256141112799409327153053093153227933298930129314959706592666111989900681308366456701853376603515500070793817182535472598749123467980699858888615822916872811977695920298583111768244850848025259244222813848076397482103876793634493084105249355198195310179714158124016684707387129479750399197418947796444867575257001664749678471097814460456001244679797307496080998936174777862353437673710033778793194227515928133595344404737210933859838301974085493528984609322532120675206994603020282157721583887593932209221744690542964556514060961411308657961764826312416758333614201279421302572088679740531045744763832688259837887301386858964596989590111820082075236083172880929418614549197867226102981429067197864009102896824374421949893330811716761713390785986692267160026378333884475922369841575508087513441762178967551033744947263094964943824036819441760287357712245171073475864814821009043989350371020701253321137488958300745504490142462254361490245461670502167393881171610007296926546523911313137474871395274936222339714040311597049838491491257403594523112098133888859890416237452119919983333217721466254888775474807369142223040359460374820546569479218492624852944976400172319500293493568919927315189345708447543650277410339058747005810961420051794686736653575261448248580799014382318745176253128544736295118083130981727333047823184941551022093506510068294305919076766432567117123220495771963983671004197789874440338546861142498899672427205206527791633938452262917021195531395233398795754199486528277507276112825892905818430058440243254218457368524318181285045480755442907503379933862896092445492952711083483065223884776760353617105939003643820748102060472893058261812248652867446457633071535011811867751108582975324722511820732667789500415808661318639833844328815379435558964869728502678860011486435582149685212606551872713840674389273583645888588380489986639278991263995583839297901346924320439533099410758384641739938460976064327590605424432604068529605477569802229555506069484812668904920822583255537705957227345179116981062408515890352821961458282823036138454437517658613747825663650897279571845298845238087146314272802002833290880864387698217551942822995438822044549833466201756595597484199624748871132746222544748759036004889964020805297224994282197101864232625799525563868674149375051461274067979209780670630806510971347078177847799524495398149738299258329656555567389687048053132262086199531468657558571346228352415650443062466101553594677576512424261172814389404800620018720374773398191328344158527131131768842584723909980406109325030620993374181229517302690001222976655826706483621273096734925596708691808678329604540910539081893955013674505883035229359830608327745494395731711499293238494587134121043676631287100689331746138675051943520734470561872801427764376808497378668249416330604038591652001291491257029257320378371899983157085506625253075988476726329564222093551473567212411202238335137075958628899977135367876134807707510431891819669161927344394175713635147569215103257477594023524932748660068505293477769387746415925031643911637645354631326761002097210126705996753092881957754055043385682052966736784028837719754765735403654461295958788025093064325312516512231500122835363769215237665204419722217334325799349991085754033118830229312373544609324860433661288077779467627572283073183715654370497181529728966018467056480435410786969366237369313151189042397759891544705336082230723960490144983085604598704196234571767366325958122320162325123135578230349328784770866102008309231765374355244796345211506156808887878543633350673771976649321488414346052575069552949966002007080643609081512189084755382185395237243856084750017814791450249547735275560023848998578028468408840293172961463201626821189930558870045192212877342934545387685669240614543325701488118941232721249184503223991044133539820217593664682531021560626918856622199054326098152839156697681513806340273680539343649240391499329297112286305313788256507346710671284845200269724539745485670635068868209781890424881708370592952716210003146758482839360293301067479380935445950657946663262317175154844029006904172180224417297739199151924999361985608338187066577202144761421576482213268694378002248331812770522395061959708961485223283382799641213795478873661005797047728389117128885326206808501119467814361065785713033369896986117986911242165762636674407958012146537166163607576059260017576412436381402089633284032266265958984055504021095177079856041257419607825334887056652119267836760337144062685534684316243907883533132769520258728789438259685893995882732531880084106660205350985499278804777090622490169246690928680067382581596835448488846073442552885359745761115889042201857060469256461475881995523497005134626704415590216277714681804263762593783932295635359149595628345973554783135127950857804189626766908567218880002630336128779845372666268493699360454615245758028279405164497309862364538194371705496020354050022078108935527216679197070659979976254541950231446970698618482264934767844818564350849115216628378415746520560188302128893338163992474588322393081905111391529664742932910031952641201675485337007469106141831018738910167421029032358095259226293546632054515571674456696414929877558816330613149737249094812303134384643226555605960639302770114465727230477321633592860716319382487106531016956344093474474888632590306202294575649246755896073457644985746342653122450798143479574144861998266150525843692993295632507014364693667176106334621779126813783189206756935656530709123808248394712907658318342176635278878709143204219405782252311635971226098865954289114172973525387182227803591655162215319802802417501995131247336079180994026396902911870147682717372152915632052659108180402300178759489058066255952407823559874222805706305335769747219745307133464892783805651613335308320152685519156700835998125305556205469550450258985359674905223822385982495273519993666146957919795520904402464774528884249029978409393075860397245466009509109953022357189091938179546802259443580158841143964377030470859452161082202798416948870597032794773209610436953006093814875844985793572449749391872149993795348131435059966043583674017011705912722804183708967780818607799829726820332010484055300403529932426542215160532296527165452020950557058224474013808510108119556240388460173313041697018672588250982059590780113610046618137358161244248940515376512546744551359970262517712340502542100209313461192075065490053144882429589819092266274826332105169592729053153894491292021752243382619594126363643029219854373697440277451874007799505832314843920877363765343091375474082734228822915872684677153450986461668092667087975853606491469534606438247555341608679892432157836088782528409514331843837145914508574444132570467943043680335606841711556087576483517750081082946391198779409542598696616061161454568613949821457140464841035039920678063940831331295246273827150917482666143138813019213102385655252029438374214004275676761386092323736449727828946366456835035657870934542423026100855912480207504894931784947426856873942133070068602480040266853244691318957460898912491804126290311380795920258298586615157639534811964086139245226018675386017851372367717198770918437694919238300966195550649133340204483419971911011895451969397389384945925225917130560782449098169116650515559231629565801781713145651091902855449058855986485182774887872282072869354511516070656094580391545008643037369026623970974236690050791134198564166697255604906034856908329232644607184141260412991162593317366238965665556350645649138847300512012311623112809719385975018793010350443422597936388085760980610895415814718409562140926898985769117925233841975306443530286554353132853656554932310267586150354638384383208916305649396985692395358840016473281156025662091259017472173221804691411986061529612798960839077087726526972492856193843396818364080303743631595010220226496263882145922663568171481418598802421745035176304727960360203013890541095605429254331243898688758520002551347676469860566867886912076445775212442838686158967176143119274135996321661924748752865243485980038776943957872406912627555614275909499948052764102001424290452755543870763484900420229060758239420773825647665616886352523914956969528494663698548180728861713386769388798098222705166922435700009322446090369644670596128743430972176644399237451663944544834118236787284445830787770743821769041332305891423253520379869001280929100543080295800516928909126961916088554149528278567911049966699182443352565220462633619722347321385263961800115609748265420389545108548364062938280109749217601956671361251079281587915870730613961904540105408737350715154605291609567445073848629307100380254957158165024680136692534309728763014564769207239231405895003841088504414619199286796728855096015504420795457287331389223846242197618757733622292588114486973709044700199147492774863580499712838106908240834328082889229252798648717748080495239183184716460377808262857179167436236339263861146168096881766690530986834948749876468124501919043989043960043731488831744787309018062861907409696751957124009017856817466811461168365409741458046777319897964129555907556961793713742228498498631006561943022840570614952163717215174858810948550140645915936648368153287436797506626392198290448543950891666651667646871372635656329081671477606524151251621840843714001884040733104138035107411006292876109571431655873509727587531498237041555367843988799562760703215488411606984756598888064503426911441130017342335979349031498536747188460102212617600996544562754176326091694688017541483936633209701665637526668887039586299706256999367434499943593899889276061730814012278996884554620606087087534878054979048681099708522020924255849656244767371106682024124453410265794143052049111957426805418444706275565832193385192917384948060187431629791842768840747327445455331434603112169353667662822259986337677789071972657668884096290731533240020602062105271334510610023302046327273972610088028418128001754423016685550964904116879992567222019950019802650030122709131412165228105495255785191464389986236973449022859371327182691143914462945009968353689527005071032656390716482621390386483452398960060459040049736804959011005546509124856209403702061044031205247739576934267479560624066298213002745701346696923174936728539851928526285853491625614852196244587490353066041613688253229743845741692819376158701297159778550455215280162875624265320056269186538663094005564204765990640075328492052350293678327780121562381025734049484424301684453297282215316005273323500891821850752729205105467699890242181852917263761122310284652311682579819515278925458514448497823217116715065921135467298989013402170229036956917343003772477182680838146814229570373448523722201702619058113450477136179796119173820831281063259102569984616325564667119695847044486860605479049316505624877335151395997837994907134917804316166091304600741602810367657426629638651292465380168772046396392993699109956627243326676114584659204330721113637595684903647703835748177908717782323106681033454023128882159220654325244078757575216477176022431469152528554274273787357697056117913650877801804760427405615747397229118606350119087096144491620534570092610143654683126176429858452707747305023741510182203427236072053128744274592791016207797281617615673475088996521851573498993708715617460225009830068757810803329712316473660128798443970257626561724036526178612969227467581442388580611562434709502252194272366358986561008375771707137359425933113045216651148015156643554949259828582526796768795495813820363964785015895325144382452937165392151748819487979703461449723099921065705054052565940969679601781178943602913203239295145962602107211264302356294201630333860478717680352496427835953292544910108834834329237892169584421749324626261487987698448730136715557504911984303169984736103528318275171497096122970399157354828113424131939635612523979088697580409500702477848747343216176475067938233038950079530764432814434009492373927288284737986599770270101236358209779690287761777438165830366634907069081134816102632264625345654691142071841269772210757457823054772231355900667307249821984398641979047494178641787486446767860855563952869403138480134988449912941886935176250111029669883042400597042859513207655133673211461549653726390680452310278937560621397918389060425531741503182319078403587780539573587433696058809505493536450268726481730136874044887527884628008247969628574284588584887929376672992865622830956061372586424807450378574365008783654337768558440560527897534776191172835104240774071459792918573873809092263870080931441315358647763393787963625293645795044906436193519070317291358168133324558604091960729222215519123080217212213861701597981131607755152018877353955933208330768432558122121570796201549681976611449552148162863376593164015651125689949835691370993816693161678744537657467465545184590907450296043529915719407828021523567693934309087052035025522785151036570716657885316267857023708618290732248893605389217394247244780476776369619385892506874077354507040849066639554218001484738492149025226269138336248925268802801271078443234936944724062373730887593953465956393380409354384231131195156751829427228749507665847780931422785815814181462918319885197736251456280990891770073985367736959265339049202942402001559457042014507184161028197047281493199805762262155306751249793481061666765904662121429671069619384851312539439622167864262259593723971317853089281756847999695438421546460515115221563359705724303694521927404123525128623098486397282660924556843108417324324404367449142267959929572431458622217371739818054576628206132311740169820553596079345266720740013505642366862773016363442462858425132273708959927024274200166944864906966873769287136795346870367574350626962403766610480061519826891682239673058373983267976921948192926960046889301392716011088401287794384726674367003014974886528980563877334320663155425688187190034553604854661409031977384870205738521644590904789914050220370994913794835572940631423521069301936677238832571750518549506992813006236603603599057351670562085040962450891868041959138665821201304637524521876229602177456256688964236953521800387264688977136570225006711617737246675247788173237338600405342950161162076805485913433454600292524370110435361783420321068050874243253350056019633343361267240828178218526255489958575310229871009220501004015301844810375044067799714103782080290423368852875235144317924801761017927674555073745261080043599178547514583721246130308121187370142209851846051811106277818601905448541422884406012280752549497757173877539447537014063322013097628354328864197960316057216514053999478167202869696644106107141784027343614780346628926287117955990821545476258453397491017283548648074446294554621281068197623598998700831466409533940107445751861405099827720532282231943374945270023681540039840593816687207441830920391935723068245773391858090864828081105572577747866039130989333014007002855737777753100564931168734136449056122210466538192487779598057824244347023320999617347565858746570633886860216341691952456639964671236447586667980828910023854826728879510567217049768182571896212081237720859123595380715126880465854689982250148646695192469440253226631060342567545150641211795640372485176121144399174730735472769464335943926244380425920578785975964218964828680574308234454772466190224184928895939129807771785592956772809550960701031512289028690324725901605454915176072812072310534878594216943337408581335514770848646887922552584130298009405676323615642483862935056259305968943945839224324251749839950742558875814771393720789479686441836395675748618390848318652433418337384590582076878893810559662364042869916647072108385043443719991496464239799847172779482831383252110995391366371377352958642382811329354567293067452004557816350762214989720811147018314046487165636285189472431911181227885724794926558135938583013540335774853879034611577994873595649063113785749683121207245008062314882789244788974248306315754347447000863143987174848396381588044566633530354946029019654712997462950228353164325403028583626811462444906492813844457309002455627748575992721648594938794739685213633877909539909234809519808356247362511400846135131674059671026451388572979956191268792133884558855645607093176704088941611280692766064453465620331375868869125403344343119787429287212152869063526060978254474778559827846933283807996925994060294918360174828702021147740780473038646931933472322903903780187022631254904833345600124597126116833906934970729283369092871446450108762417191849873179292142355106989825510908647865371645003232143673519658410712086227868457296464321292925596591443295570340765980151831028422841818858020025276094151901017269123666856688670063358042364587192108523268721887766749977566305991302576531375866209809771177885187325117871350268169435413241833398571340606125733381838349681705369266222170923539200967431181504424654276224387755355629921465038852534757988228429925189510050372541968050090192024413286716777206704817646253417870964610462362669528355160143776466711708672764751650529256521621114437757516540722769854161505970718219779279235598252102051578230899920008729831620202595648125780286611048566281637914352970605305039833635702582311483754404112026094282108193434695211401412384035039589157420829827454147705527454497592073225815386604134827618423513198554702872177119820414635425217987411865895336107541852690791877352371549547615473715055027587341751472346084986696495953942809781269605369513234079285493030796587740125566615830056477961778694043732623277513791996783895964053734725723872042590127132884635422962813483069862791536083058247929815226537498546990852036854675506556270975431627321167432593549320868588879283651546732726221713786341304266117233364080710669864220076259703916208403190739561066971080772719026071139672185871713804308580158097410399572973851908593538511157420734694252782286274315775408731742321969729081251435917753749112714985640591513950111742921499748567649892472508354877677134229821905861069458153372101509219071770639320149928936164560270433930439825760193215581212775562416612191241106541736266686597531925380060833407145932205944239034232842723394412983487797754398828702783894750834624987983447914978165316001869368356514207451883671698897459515633892402608899735914645553090596090924420993416631983967804828144732439165572016459639257176089244804399548874995705209232411235898412509651754465821536752142457008602061319297490983020148832965146523651273953221762851124846651943162582027391961610761822889242621239611790517152932150996500504891737040806197868277134090870055525025449508822321719026528732904134717923132125149138506374053771667600320387864017189275068383481909353465803602093801033224911928130577931715204266125092378796294121583694792354281089001596889792876566794529794868885365408838037741738062367702232597160355173860466065947338255228845115542857598876599376418547244845024752547918240455082441508742578974478901948544394183701196068865543495443968211029360377615786014591700117491231198477834673936483418446983286561750344689060239162100843952179190958566432788392728535299242412163195929204138083723939992780007957878332255621638878705025519230893688342285508565700360285069142239698042724431041793773387091238384950597402059675140269778079474107391893607853747640101675127374373556583695010467680944483629243536562844231072218315851848805840657175364735403291115865559008489817588287496785949165408873761770471170503041887526691171906233932256835147632196890015016376934173781465044954522502503216212016713413079143439806376838997269410808409044692366039412799665158128948096522337437115314706134213812456121194061243336481411166802760252347362256790317344606321575013069177445420503089610203375208490542409544430070382685834442651028433786172694869129769874149776329264298722676772165430668842866722145192534685572933262571631033489396314771809534664814457098381679881098488375447537435359014694655001227030226009690056953063204363551934671664926192128581016208515698329996487381121896047746914866167018241514735343594435875401449599350670718934046205376587690335732080378018254732934410221160687060955371808700330408889597891687103398035386651081636029018435132727306503688052376877387625324882065956998459521085157561268052321418849706722488371032935579736421735331700845785300800042576886654476615797676260259198779483267847099044919437565424080325636284654001027165691376053012728575017345518966757588305794407285258799745427308128229977906368963592141669342543396065610925408815623397616434028176820467595187163117465794876445128934734582205069478187982095319424394509283381333665034551570117963367271505880785568956231538031359413259784241231142676913407138189671595692269993491670201595122581836555629359085382802286056812128241322957891546887663071228710472193662465243199339025001375729446401774380301605432177088252206015706098773794192811679794897047023756875045566484141204564288668440079812193793830468424904127853391802028328255767755889990792357135851167060400258547197216234762460798645427662073505456589055253012544410850427087680168830091290077413553133997428742313546794362430072544128512632360135465883279590874923449630356309988753970708470202556947824996202369665724974536981652912932250981117004000155599024902984627505726412837301342145705919730584907605931306036941724689269217160030389268793164199735776839536071094847573096518326963439817693383140024797633686187208268471080468652651232566296085110530830768977874245531699600048367603839088360450231567936998096115200313818440993967538384920722431919284193416470848850082112665713071745827949274219591767495635652137766153716819797137166293790042882549307779319702066506060230987831624999398544876343534686732313461327675656032293698836822165377075606576967737002464692542103911685959535900072590711546468193978006976926912371453973024423356767610650208923996383874954965713711526163012542635599562907862374516285720976342926269322643772742423062408038681697689708267562136148115029276830821372698929391947604333686362672302016239093850955006132820427128482131701987457648048692988346695142109106389317897156528178195069165523378898930792061773553068935012839112097618771731885338946488418422503050759324492679798477871476543561443691468228350010887418197803808915330067619863364801391477883517392341690973074688369271633223355850204024892967683556581536923373253806614584749853494290239404680327015225915474837588473099572560560108264548930375773010922094059995852535024257624591087788516446505166232658431069189562355500619673326786437033076061523010342726168432589228706531376508250255560620359845319936327063419196557512728774126703302664529243090645723253170289049706334862886564819745252854153011731675730921659855719785708100087056988859132595335812579923728260947120563020502023583625623001539299913932024397941125857794701493601997640495233205273437881141689661436583050653781338751360795047209769449197908239815571989838783148431573800452663992862827987253339904828959516397521320186297277250131118681601999911960307941406944844896184574383848082129246457017689856627256569850714835130666308406311512918808888012437337253372393835089163389013935833708518491709966505968427522863205513409390192172438637191034274170257680155461866083598545102041979711004979173969978883596726454528693348475863736622239069360402099045769620121099411442541105390437040281887106427571686875688041457150983685380006561422446542115658758693790879225346194369810077096696607866536139850770523751307475560316322166933271391798742118723451351466959112912828679750315213326314889149886301436970765647314036730239239031335439339827215173601061877289569793682124973039789295163322660104592171992911554616961281234149323688440273251443746429791771597940121831899391121505302377168559801863408560411267382388260230224352925595790398122032641404566911129401664420061761665372628476741968018233548135401701860360447639819407455449285465367523593903751477397120522792599679451893626590480281651920984581076653142842568637587886120088599643796634182562960884216312946688992724150851571282175254001794579572652939444067484507482653459836143693357092810435197664775728877285543617248783584806152504946494816363627556100903821723973969854710069008087932962308482726197059064930462499142419595101935142247250221283945540075200130203214929830790893343873447833909341969832880579680851896064092754819800771108927406658264063441146248070833182481117208286418168413611167997029400485800146428466006585485410817138984008690921337114188048808268343823678613032909082523910163886284020942984925590653231329206357202978406474540906084317504496969805647980055555798104763853589438880253923645486765712093759428768475473822527303652442228527336023628268270703397712783938042170495990816072802985684782410626579702601079738940507960860515154109700605599620294933746652098805840457990396557594258180926195531973162524911933318205928441350126997191502903926591453651761915448990626759918110098489692756125884310389039378043128538198473282651020945093217297724655753114008442842123935934730321734356496305620897157849757011476488769644366683508393991474668918368705678113234483829376946727764657748196451117936065585517927722542104763052932421150851751746960979323918342610152143650408866430082933216293250119540411851341773536283153229334281454480906822097771614363768940104399826486860358776356679262292564041895724759922278089378557320310987833813494330668391166421943137575599117196539837985811955000504161657836140374814012945009234964153684157358282418291413842742504769392628538727062925666182808290256557750294165400836698832900560631498859551250246310049825062231124484277668445035113521865756194618921149624458210129547900751930644275152739630180098362875220934761635526301006809476815644326738887909406628980697359858473391030285361290636495812013560580266444444856743676552752158524415949527022259746681702533845768911527564083022253231260855860411688788782887092247563161812770081330110940899496582246471701813054207073491244726699767273321726077194861151591066309277031889842024289366544251566669445189518166020861556488674681917910843895294612013700882446808970220577065217165983916082707027416316977772730674837936941781124266141893983256057127465735200581032334929742581765630431825280228794087219152012030627890973797260367075688388333665019091462512605348152288967948594894307335847339941807775193469078142990567404907112252981779476007796722924129399151230941063974038450720217926626665396128092025268999433755237940843631169588399538523777245490748121930478594843265720438836669458360996398532356692548533272403020405594618696489185175111640727342345158310875957230890098388617774344561091799353798012679322107086555277977038506920173455692422387954746983018462050303318710412984140604089269452837598188229656031461895332075602807440348846276138911739488492695201114618433998675002257344665228863710864801768466899587016017648596253916368774666728091357176834315233998807905921158716261119115533371668779149575107359904962785914275173851094882525706711902512103573466616465549860150721049239231983036840027396791856139415956165403506251459559295714334307810731413663658455495809960604919556661968570793657025879431474326291432959715356382089860793065818065697001456392668109357767257946699490239492169968626512145377645906422085889487836854635506123848803268773267328927933536771747859680118038131786367053001616013959152008207557373402109596781018385664040296322493605440728734836294670150908281244987955267377415787746446385732032970419322595790709455674290165393266877111355897239190012917843683005406305947345485041185745779394265909742655982193996492598229807356900606820709709503558366056531972275792378333490723611726158428420374343415358396775545112010454839395534796348302502266528158436577306946753619836727319643837437022712852192464753163943563632701006837069534677784340921077305815142955994295941878221109125935120519519636452535290260963897020467707590767838981973644286365970030188140945471238403960266927241267188228181164759252161333188039599042451636044147097905657214186446412568291491067834824296627499600868655036216826146133746497219998743831066559003483191227041909360047209826812948558453102983948452478601691877650057370215013149915728899310464244927702924124964994498924981778662048025182449476327150257992713349468766388980768507923713082154135400004893514399742201992934653390132247121493456060019199321841615028845620348178183626599555394864636462113055844251824293583265252207005867591210135168656803142818970060320226677058798099909518785264699725242708520494107827664579687698618558115692239503533976622811122686626359217066614508238299780670829958635881984511118694193240064945403076092944901262724511742855182966311067500364805065324666767995537248210118788776358679197959055658484427005137669467169965948010965562913065393523676174770887607332404906337244775144562939231960930308230708282276282132518204834048060408453963550406202085663800197334404381014082670749693908113987787973071586847928032950683126524535198964345612229721224652797924733041131203990742686018184693286697831213025331637868443538376386132799154933656589032671621296925258132494923505521935926550672025016066021742503306281719899583665621844798722288390372586519328554632840260514772145579981095168797751810740104972921143679419705729213954991629331559338397837054759831492509331423220541315682492660801437268993388289342597610483329215149838892388482506557267499069607789572491955060125370723131897109713767917354903814584154500090755600473824670226134810230773606224640202083698908448005123637408033795814195722644696557673548338227190788097988429869907797112542217444386882480091331644036336662860757868956882568209158511039491925385537259206627649552407089969897547601954391561352919735095843264476660192583330866938140788860218526294139394150104644233919643962889669578659931477660549490937168759056117139395854499098222927330438958237119659894742189388185963178517446503839389849025918086042869049542680034661059958788549355844566774078630504646214150604979488263019804448256218305417342372356860870607506671088611006778716906105211476522466054295937990539575894014589490446586644572348437167442053352602899715042799316337882420770055294793129206618871405683561447815438200753748766329479945202633669561076547994682222028985663288761180033828095082220640284468289106937029794510106596690351624344859934569222347187158192164808989900649214480260813812968111185913825239831662780243781604049591800299392992481987304347748750308256140645296948106704877347493964119463734661524482499672721110769725050948284201497545141237968212509504028764245273909162407607472841937563853876542656771518687031530914015377641092794927328913589395525566687487429305945509993739339326877653123824756690807221249454233709424019707197471335117507013333137797815561212283065444003524048399128905445280748740500008201720023902492450312263310948248218115959406623712868967170782087876635738748364455306691481446361101078152257402940737789743140542678528212460714639071200833842400135347005315472270490248775373823904386935658501358173743290781400049186025839598166179020212317251060894776175697336932526863410921147298222195978209310017727360224299832059518461435736151368624902332871379250563349270443577364925766538657000233610569328286095528686450866356891994464287747903746453466926093101129078754579823292579979658150785083278113057944416756678976591244691994498137817386348041728474634895443746501102715988665269697127500005202541072564873817047667975953392817855470624643708057359183054046818076524948684415229221745013046039249154826199457891924899604834297633499876361133584591992009044596986480103470737223436681420237613783928307905488214024113941223157846934048621694550432245189160839778601940268870889935213492710675446076595711509020473856657813942312946826120348477374537622287301280880372054849464295641403303644198562571393987671323141801797160414181108248002374124202675974239641993849930410803939983472684677966352033930635538046581325706970579426231134606157688255994855796876178507733206891082352421799509389510449416085112901977352444029517603545619066129913338013070184182860861117329374092417187087076339367657411598599490687734974761156481364703940970158681902636376803502920884178031364829758210723198183255763896884992922356334639599828196096494466944649885294078501987737071424641161000789852585177909550348773954331385997658059642212260239707611109184413663250133657264368839857090359288105611340292482185869458737653151008885114636326534197616840048057771170963673462679700580628772036077770341844468469201261561993999389920220084599333704257004364547387802762958397883754889726738403237637958974805854711453418367172213376417197683840240045636520568402526998738757836226577946469595055181540605336108014531019653164121625086972962308687290468854340691957817904764014975103679011946353148998999311631413043412183375267546067706386534465700300080411702491412335905178243120045583592845853604796903572922647050728985710583591095430915918498678931656227085401809237232783269707473602955461718489706825492851175571885372218182275214040185297019503756439517677689770674788529002980812416924299601554341743432080470525584324438876383912603298036618458769468271686845448085003458999098929128762949737643177668423762918784347770548742047440879785842437174767245276240735846227545355089419025034116982723105315242805891954488536266441984895027470579066487888412343581193421063123637773053701951567379176739260378046292659267090885082299870979433991052791215183369713882474706609136298885866317151476000612345503494314217721978148736026799310661219948588194382877771914588353021563516297177989203061486826724544238514391242903399179406325780600272677326147147665895767451956725655950648654143391957708838721552977531465780144004738857112895264255491766218859886429413355686105370392272779826101776411055805241604991577381567830775651777972178953012485755232563428394936661012103442161540195932677693070528145795892329735922359444778538669300324815293571381990896186622762839136162728445661027532254346370319319417899386663454440111024324600557463574361928445757299123871732821611936537913482192911694874661537345772585145421023159852097561948647888598048357871622879611222656959365906210085825986580489836599526563634452410150878321080294759891807156543279504596114257215702095469100055644823241413960753367881173408464874193318679559629678628834464355215381635385117537863616045501894668715778223485743433903699948976993395873037588724375452843378207063643828211124870131369694020098315509010483230651914555575267611241641807759133500838027724814678283441399318185087455819357483757864826274103536903962131228528449110639280115185855660669100177549703000255924699887523452944906089118243594769144664972412961219362044431955876803651490641513335551008003137358076130143058440009653216523357604943887681824521781573890093995169696631511388102614016183700092982900193698101788794861854364821602883164699623571076555709181781505383003636528368378398304052903656220787419577887994916172701055253370491700404557908221846842653948654637746886075642851029566519542397114904052148742796999244983437982167544471034089823750356855646779915727669472313199007482083096688698226091296389914211420230090819473573522975761181042257008801130236194618643529485169177333182646113785868396699689194108756045236218522963396844781345308536467013155841315896044672769468624951994788899221668917831541098669704225043756959287094994492841264686569999719914546718469089658602676595595332695339102387209500882188117775552910177628977159720702674720631768695831721808247255548633579125902676845496621002870694866948860816121750554121840468326515677940824104475085751834278767130058829842531479272826783072685051440114467409357394823921914945935119152584248524508678321608516401558372749448874255103808161597113373710107813510819571886305686672012181149440378940730180638562499998589139937930821487948461856763362170653213789467842382226521880966074053287913807872676216792962254689898522311120543547939603845750134480096364697790508166155830070239162263068729971972019125796011201261053718942636967598558886455675472745522262134244140786100470955335362655865868998091179435933035313502464872420873218629005790260927968312243789822011538083994490640460932454238063752819623160811726608624721988664712350204903629371378232863203287440473227730242793311972576498769245211205641350704616000755917826172029249952451563338624005514626348428531701315476058815620192081266140812363049322656850541083699161486376138219824679701152647051084676972646331419780253667987272580410729571984326292195082196382003262300787070404694898242465420160844605907997357449505754567736356057838016796287194845145639644506284975698264111191859083919989387064338920717371577844761500289108554242280274334188926246572923428611441282272790197933994051746585325773861660484387798085093535151926903380333390993186561509167313304655309021450520202045805481507596040102305121118050790723824943217778854819194756651252428971207685867909133902120197929643954509243383546254064100573191087090163502216001173841345872749501483220671103051346556848395228577234691877420875128847506435962350003052900361422828073172875658159321800304917175179385674770094474566588788148978776669117567145741637707986438192526615518329109068270111888432016420715560947994839969388748307112637355463288512989646834296012853293739482684210543527708792969660814124875131376503909344314632191758992714526644369461444539940954580034216899326187012023486095634393585197694152998306555930257871010554633127248339809228248036065692883642924747844105184945992531715386474753533048802256602993051869558615584197095823903617543160703945957022959788956161343870184380690833848626557342987323672909787454391849627558376097824218713575336138012467502736285962076242471083543762606196828613857811235306773982882457902023632836578533398820419245606272902598233574802900776697290130136465659304327395196600971162003314141764284202793636332717492122490550025840724777434448282386127669970472828977960632264811724774767240809910323449448549450161431676899918734421990896967366079735763248088987892744100725257344126295576156751342868393715828656791507146628462214947077793996419972072035081909770183979401871593841768711810889308694670746055105863317731405040479824113006623612987480856235749957489980239572906203914147185860268870510394735838022528077434229324427093740527537586750983297259391015676235428904157569640407122118930972870210286639891695294667197524720758487537219042123347967553868414721468008061289862310892506768300119148148219179090928579545417023141364488815357929157080037912595814889802704321962284016989847312323174749560954548269248832679227136546663842457327956414208311612893865549762863110007836576674626831923940891251033516547558599039081784506346922087179015214118008122212114561964874683990154994322868802581826349894307216267997737167623993994472931000522253685277118218098629236352498796063417159045276362197658082043379804325043697876618632478331950652168175902974408091659825741192172054657758374245687539613490149265992759387361940047498947628017714615631377049716009822886116621378146585308913625368290029851073671736634498786213595539468842282924353164399347149914106362428423561611835542348537296811380447253198931819767857769430754320877763898510951608573782161230009663631137217043383421466659587735818009219303154737477486409831173710277951154681705465895462272233467263809156323339096296703898596799609101562888089506950802509577909820820388754176963531513802880972584055928925273045500879316671105511440123988595477522288616657409054374961248956836000311035638749794261431657097267610677944369799373709177948705930656751642700645580559739831650316691087401769140226619453824794591274551141128086367768520527456874158970777838728707396190988167581694354216946216049116491340286114619115290420484596916279504984491547816143695953094509428276502362311129764970958524826469491822342610430626767248354442124633301158283817241514194828437585891257390269001927260329495695101894189104760493990021462077665129380589649964466495877231568493460884775672784355394973192542347872657807924223153472900942749439682905617603372873941594888788181825684386622802850480846250135691616544515502671759171342422372270884374415210200076728723836484556463154817497763453051001707489110839736687619100826902813682438086768776068101005266345899770979923584032809111291785722569469654337219138341495706298431074991807354261413343343420209058638565337725591919474048850455368749589437424657570249866261929551610736089456485150480750423099670349199158437100893764500044114957214013329879589876974055509488282187764410824093248406939251510842565786477293996218302932400993661416865709986678330305654287565093498830258743294853669328973219632075114573000676239843520222420454983978349801234833790469873535417151127098591402899530079097384617417064942922057531986371835718691430000674213750942908385579848886364127288440981951179668491427917436265640001330621008926121007555393617960167464594966623250133608261413670173549346947898283472555237786571463481002172178226120164623111131658524012668489930859811090715734124674654057722642838752226467434402517094724242578331268303300221678073358050747854201316818715607025823073341086299941136443891647093566319180311589373161869439920791097625457429426712969462568528707710847079004059554391991240821028636904433096473759444968978110154312265288009397690156114042304210827045969355587535009941367627261832405658740259415178042353207900753032950010158283310993604452483002063851910403012511501760173452144627510900925408467485185441287257503995241643381603370111051332175744336590750062124948054049222675573137745936239246246160835031005041232972247137790455109616705988202253823104252196419881719681695412023956697405147147286142405199952179914509756708588964119501834245214491217899731066327071148761679833368703219879131714657230127131117194671207745353774107673848148426134717710409524430805603306816459408534067449274303147593899617129710702618984302930470722448657299608336430088243314867196655811529823240064441113740277564893206931374707072030102078083186089147294919622002486968606396984599934129066032732412408670580470299202906146101819827262072875684813550418565110901499819150110268019504232358587996938560963185784301609997490258339980709293094163600339657382946879782603074513659636837655582946953874905162701079597250385491004972932250533263978247856798014113461246672833060300305197227950038011909127822544842237482643538263619897561289770142563114731579286082895163525149322148864269077336693096734215824256866680105006046406974978518664631169206854855668996988422529786364019619825446115690456443817002478646519653489765149940235833086858089817670758245673688616064359131207636807892148176429306259600337309410792709001643803860275949435649405357642611332243613443782227286222046017161785434370570021744114097556279148321781387238110730335942320138820848463108261000055431436769845692996600948292626231850908768157330830301410096319032099989795232367564903314427725110759428324034723537115576330905339955137695356043238320774647401206631632513919932856941068876752006190388342704718008704460139001520889811865027830864794173067409739128517629877636193270009196646212117878862430855790357442057610098183365669526968403056915346893994078320255921445576373571846027007861453316089126583060560820209582614856091498846158250400722747994223394514942862401920657718097954556167903700849252614855721535231786381045871495065666094488112112601208665706777462057798584418872697837762477911927380717889835092814912347131655540048124000133840171137934078201605539055037675205670743993776969634849229657942756465891106183498090169720717782485111394058117298266157066886521093516889591682322439000699075816755683671000777667910834923017434549164068692832668092498333394948015573908736826050601109772735654659944564758467717737754071668982424870944251614550089675571146245862826994409365384506509869384276687731018759881532106288486500258771585544781001049288395421688445210101887306261652187019603926561499684337450456435366149530057626021210469155530847641871555032065223740756409588317767523781253006210587138948128605519245602715170573910594175539911924888893831100088462339799264273229745418638404715114061603750751963390471878540422622400188094015971175388765584390137518010242456646872625123791131712303811492472817757969464643844124987846674185049170646600791182166761287806860248671214053694575412350768851790136321136908768016811795316508326130699583079003817002103978115689669308895555185707325795687708440603687091752561300647929539985541329510212059653971251887026267404058630647108847199627501009167512522812983175662093957030000982857391789336762556287142638907562684186470879968238300805472835721158360173272411255267495136670423744918996913334039156518615305051645302202105166516578003511211246322656139644111848113376950568708210106377131339318846250086804506097218676593961582373680980366397801571289131927866925610302150112599707434512059990992612223981203990715186481878238115699218588616970254345889803679126636241490895970913487617648033235083428403139003013656010807854786124136633048145596117312864773079258512298139739230569007504589933620794002098107637287439520965375360869734460434396948106121275916397778858801779161652813159452922658855271107707977098920505760175346590288133925595244486013144396608481812531663903175411307177130407767453900041225284291370907905065723952486337219081452253271780158244150020300386481084670634002529489484817715835404893494157577445833128326179718773217591222064456634845676431058781947554889481325461361003994447237058490910922932635540423603222402480327532446600400504105015671546911779136640056722253287281694005765463372003948302279200676762419242173216361556445254152282458391459392721205711031820905372116616878291289684568583403977900621006122395785713575350772396453754082930255027372691845523098738445038989523112733385781593375562575533634430324329111251122630688511535225605546951540123660783510739102397915990865858843885027511480800179256438799086915804372772828586969699522864933965740805348169604624698219841680792785900383864324694589818114779070780293863264457979986752736736333766623326403088948536100538260518999258698179716120562792547326675281432002387069390251179466297898626719328032944405012140359841502513311500268743173544083686692776442530588527276557597308818095262151490493277229357438168760150206008953065551451600489175054527051173515698235192848039322051171167570244058773087043424820790469576730224679784040703683715907918420569370951766341550491657712119828395117578244319903713747147342840428817810913598836752160381165003095618111458824388668636874338350041187386061471944956965248165948355607457429411659148722067650321260912230542543791029042715019909195176976549753327335535237523199549877369214313850841039467295675241374338532639831686889521248978461872375073913602175357475427347566462726600464406017572547772439678595685444688303605148058983708150410369157187990144244127624267165566524041250730414945523933158719910711769596389822227967007053786146971640629946357834933683790706844563892721378149657246298936724708776243050520417607809401213560512071651340839943232354030048231417153764490428492911301957663217024570503055172518095545479168306887155712029789258182174421930664524975844490118262402154940538903157813352517499466080112674541487155801143388702137245667012912930862545568245457767064197426728081626101230983866751623025525687479863829897000910683706172039983711750032973024611381832111624019564857078531219713833190532146755822376885449146978760310094937323132553448501649643712837929201539257821208701613864041779720645998223364265964657576984502091697753569841483703999069589834555584599363186159863782117911497427999348252252024877485312114235517091539915519713126956211144824908458215387809373687842064526329309638552751177118912017824903509061155597664354593677635254853608736284217067824834236307640615309120373295857443675765793029827881669791571884268573811688323473323685811299671760785512936106996890136032601340950037413373639038012431535119260826990601212115029012476165662525766206382309367167715524058775306138952560430426866876851572436249999608318081149415789905685108196947057526337665770183787577155407585370171316612221595913584148781918967438273442647188446533017255087027501614732998476503729195898008402803343389819902812187990552833803249235966721002104456760579448474657212892833045967875302183756780407113487463150979384953174198834645082144367185742896819161555587652110988108060976214103209117645708405760664266926635123293516656201434043210300862593190816157443966654664854900431161935326471853597345221431531017396051725015744145009791802449067506850322690397377619454508139456195776060569613296586170394266975409893567895982392117442118471490929803450964118879910674059770576678189165465505703602169553688109682940835922609755390977030014624963341166764413047083997657830521173077167010842018175988017816879974415863683074595903672863439619137039873526997378354500802192203684496329055413853221214203966495309539098890695383960677494572077251026497680829410669946411731447605102623367714043527359179981132392493399981582205492518757202507002596294318569965142756648758226753937124992991104420220810852185974533782547712065251210798467808187785265512558206428004613081378387947395152216722820369545557678627772787844031212328802826308295249208818725769647613481237798290929031924646200984012480428584721307659609669662188301252904797675628265376027111867127896393191352189194047128426177280115898227249340465020448400749123655455587440623707224572005219210779525467155073238850559258733561760391277578350015423989026200202611219818780934568227975201299554499717923954666779678998715417798380798931321729814336327453823035473078389832732528817619119457863573218661025719037316600031684151064739766254255490170270392908214128720191561149590469043609073215574620620533902010474543025971111665475855467136984491610415448815026800529051696348916593831426833886710355046951011908960680122148791990482147134240100814074686156552136315763802550428630044501881358590964036676690719542794950215084449452297428197718201018354047962711352818951754341133341190350806746276559445455043309227176595474561721704859003357226645458544775134337116277396664956854119338700162263361727769187992606340647473594818817425653296255794722987275019280927027496843054234781067968732507844026856389236608301492983644710588752720608333133881128092501836562953137497981757935655994724403416360731927278286720813622129252070281590204070932425462448099101364847417907035315955469886891971802230192150398241831096231142445812153556875353554223168882062128041342653227056682349559146253464837427523854522568739307430501387790293662225010609632563196176624491715997105964224591666958295274341078893361016659782279491410609967405702674351442587431846870682047630497023427511545094904410105340122790688083087223523545437918261494071599319813698848212401707014432310868766901320291776093721613924649691502518099010940819091942345891491998876843467803734126897291956007708963946266685908269435735532220358084125286586350850506314899128553580277435635100455242471435978262365212145042442813025948489824179488997694295878299758603955633999241993774085924036967888289900939823852877276762598654232966959032245814950539321282591172304837590316188615577245828738924355975104979274652946359261650584808980705569783406943170478503036222135119006474296225910288895329187287348243249784007513054928843716949804804775858164132622641174678687554420308185529439741232785755779274717739606416815681775232919265832633736527416814107078280904198932888007361085688223372812806291838324153910653640405189595745576253919118445949723312001137654368970394593501656576883699777134930113637134494833988126476147661958953100101133426449948418477248096409610745340953775487608487111714406564892872699298722951140603140044303157573493434729312179406434106333705986354211429406384196697735342707195497718760689854685295181222496626469559855868511880740668928415993222487982154700707641305077498210195327990419049861333878521482668360548458803360420975302779066866082277592321358831495865304308689324638109921991021355074243234136477155342393197085225458604588530114386793277389079281879471645272808070118378893258746070508892287916672717249599180642262605505941213651895568839833775326469424071172999842027990826308515394451110702845812467056408684163872117165336123247244616612727233310528125394168709288397265281386346740731159953594484944679907129463272580528436222333939211777274598017880901852131839619224107006608088772553433049262016421451435084582235527135472890282905626780321981222462525585026697928824974635981262666541975207515841400902645967610762591926207038396153604198354764529905915479764073528776448025513820335902079935720950727261461015879580608714753458443814857435310789940881743108694206488311157776304652171045784453191949363635912926555110119921179749705123840040196279236518876905147705946411063907766014590090677966429282313402703687677980008297326249329400042291624622978160631950942947038454760905195818192346187542856620561645111493096832881880711371368035992037849848322883764949270527399356113343727944376281247173794796936394916777764624635136339204709420489563882222223493316642474977870558866950442218607113428409546058135880454337485401491896666276942200524697674978995293749037469492379347047811639512359705514944626929415174580151291076328102710969526829777510711464495420261201198017033105323095258814796426886557524072368959843730915551353453111565443538144341811118210426387796647593397560000898036328177827768886261077194495918017448500974207655197111164474839086624857748645648479830831111565650005707488410017691565761794103967674458979155847267516065454087857842377562927728964757260739229050600706574655741605075328774920330520925333544913005827825920934788806511208595816287027806195059046990442994680542850982039956082456584758804535642219824047849623943214225343272082404516071774544060692537626716382823864624529996657526500730033636289825549829245036564562403661977842531001788657942412999575840274154832821221617097350129433362581525944206026532905223981422667321202480524756197171877041665454098290652836963939409119345590216537901152029674723877803854168084258576200749917334017911530736360814364825584680777432009584062190660753383315968020498821685054383018229925796432474880932683671394954429980817508101768275700036379340055301406509871366892349999896058109096324143763474969320532374025376104133284647329432621006825559296686631416718299390993396061113241856047849468909655595174043025906831267341234038643132009628009116410456181120810254016704003583741415919704535175832816520574221889562340928964037238011933010483548214679389383593089949188459237720074009845419921957670620002935188175709181537332301692050286774605032937627247961092767538209324776802958320043540942454919483419036204736203712251909830279488016903848661682756652327403550387889230735425005861962335354390554805073243869560959089264044176304593970310149768872921178550073142428270194480365289873837944308848066506783712443842213667959293656650651860155951766243398388686026406331601761728887517833865307183714018690155842401590081415464348884090593663732230673090043178127534127730709879194584097365076109263956653645938713482049880776139051560587159869358299443238675930019135628737395975563221225164435256148466421113211316623547883858054286414728655399687912921149595710536004595438446377768906425142062347599510582833686485368813087800768432549572753797228567610942842384583483315283578939467149816673244162710067614203049798364019412401907956573563005990996332032790363731477981761510518632011752371132813121456558320820760527955665846965785789868455059293800842193093553767564863992839753091460065379578680903330951531928042780263205865730271405931779436778043659776397074237466356546251529444865105826907348680464844816971983848471173630055051193984522121784808072810094366801234316789798081942647262681331894182830343072562524438443640772625699883358287036327862179295571140712637884148582748640297984394636767799676814306999724049373788653484193391128688681499039783225251308574409240718483839084457804364450909743451537408225379250956254483163173176649699372696115823707501753713882427589250545535266461651532603934077809014106550628429153815425393743830083708356849653511458628014913210824958970316631427447516243034191999549566736944608587609303055901176075241965817849873177383906906423787036196660619803006601105027373197348382449702168908166958945982043291799524332639617618734921381266632578758937454093863867772180803866532120928108977979317902717759421763256113187850258531037800576886873252893670793916864450080608611642705436631907421182197163652431021804579841751091245874561840132569211266795864775869452590152667622086753979977038001839015720078235784825702973067272446146072310254645307872017056307027593078830537493164289030929437475302465953692517173687766798332822476919457639381155344037761295866247059903195956749180860615128451074314323089843090072285890645572750700142585511923143968168419889746573859304289684731812588133960063750269724203543340786743119343852120908239410615890252992785870090115077519393261465186089761293732388809787024831262600671107171114448943633514214245781805633312957929182342313703323183510979815667656878668653805230277222215004969523402780999852889100922709763107496025374901581401510283399647294845072327824347718256680338366807367662541172293816270831738924074103353525153703913104666920266035794697340288217117807273180378457512323914254723422997947403232766442698839295898602808903645854189403695390703521060570792221309895062897722840279249179221130042298080481949868892200214197819585004723606761683484638088215583605026535904946361893651601080577323730065323877115620565466537304912311797410393685321271859968065922938744287652448806855834789834290531644107992375219802003806411459424982983939556982848931207366798718381786702015648548905872016730690111015765194122334919873642834335124971715405343965131241783350397872091825993683855933499549762813854583264998012375709354799014757535015162964336633513935842299123709511848075817321838835662412884283162309996394878897314643085739346272847635115786963413707886443073556245746256575925610143358905713787907895660947762215477882157232908468809489023251114752188400409275387147249804079089489238926703134800135968027515051891188132909877467023482378130699925326085288914769908149133718288189021139524730308993596110111317264231709135094493213512647339360247670863517495921909916088605848509903046953557404874849678592936762146963871884845218644772187438160498613974033944528840978256204788203255006593388449561081322149093525536819707465797919089841270517257861469340237762129581100823770601938606140714341532546682767743167254038809661006815704014609309240581398801016032957017642462734158898543084449160878657878183910157169920793291130495268355945610629844337708205349414361669595115042773482609956105451428308415581249101521570986663184585263804006848144088490892931529205385351204610017376641433597797013457152448222099255745642385354717876669911720589993218461235090661956422191359373012109924265395573497605417879988194341473143831134121846967973069445321822096273991329619366184018380562540045259493213774916697331171809429800209115408313497790738454806374266024931111545928637539243672920846229805412258853019692873058189512948056588531697145669149307523402703002923404512314466778552541210017930058058787633262131538383251847850637306298845004173010856002134681542710454068681392304251554383243304774736985335929697584991671864277701753316369128573364435067153645093394729423322342790394843714968225890122144131146886650010760011087567000716059042733996008799527761238685702314392138804575926673766967810352426608659400922923252431272068806386372510483324129014106925031431518739455876054144897171234864809243453800685167051177954360436278410352597407642596004713619662500834739322711672530138366217973270569592007801119533430957773957240046866650376560644941766943157347464076760630613279284034170435605934041633000896206490759146457269108463977993417731072296032354492994159606988847761509792400152378091326407537571638744914618405608149292630375297975009173766211064285084518982312893279632932722197485332476454820721568917655258216453711948427863891421911791044530663314801688382830527605064092926296953908006586010884467818680060729796428751687005655676160607772403445815604291627444407072988135175143636166708357647906841814201789494266796735650751027644677487607160248848367550430673292594749974271950690256239670494341813856389500144326935332839794795543439475909419016316382996768148724435350721172150293648954722412877194757388620277477025514067048461457433198848598205578164970131768366825544564788082545974124588904145259117085061942749001852950097847415951561616851892284061511235243385478756805722765648077074377786672410216851764867573430699999242585661300729104061610757546593279940170368914127102841692464758028953664864554544859956789006547937695350417895130018918932028331174008251779769115611807781303138667469969885278481688374888258513507532561028606739535629719730862781840290005738375698254113322502624959836445033361929801748246748709859569845053412124623758409630080549976603055001151824520444805806701596382793629662254964495920262155591601635953235155325482150631764547741844272147438143302880850978798320736793230012252496281601939772323580812596637588140122613966304431580034951501076214531884048587887344440543824995286257209188703170236678825115522217746906435020199660474370686665234629023056142619170459684653149905510630004618836120793233079649816820011561430887265131422123516656435184801226775131475854992086801120595261151255247934323601932737568429268323859459777721695677846882522901410325155412698740650247915303575592062931227153335180613052173694868258630706333408036740849746157771188760019519341218757860046907338380884231743274024998504763689679502726092877829339739775707289401378514791682017820173253738234367180665952266634446868666913379392202586465902092615038046879660837624147326635198447098340989819758933584939091634134771918077607359884402967141187188763027125375414643084317973043484277567957093370311456615260152067315009148148642066126095306858042050532155600333568058225796055692775855680683822262667754101115889197218819850207435757730694821066729158226456531763614752766727406288747782647868630850016878306400843741723765167403654019644198691624988530436901627438250795436315202705403927269521647982709639329902127164089651706690438780884056613968131996910991292179854420631745169262085854560349079076618953787039656947615822173159528621103105035637351420588101225794983189791464291107841210529073251460299702730632383157204507733080814548778829411708724316550871107487798440173675797126093854248767216012314019555296713229727859541956655278747365998829665892853859824521071729608228616597812900660523166174717359714912922885467106922259037451847022748856652562252605248660317935826924333572158172057777900672362621856130478188068889965016008111779221729396305514593239798350495787873294720311174558329525378544481339924972735607957193210248716235011260542408684339563037843315134102686308455234858369250712023466483827287070645486353178974588540896591743376464233702518405476864549874737652368920957576050928847371585023314115167617488208246624501827949335714415386062464406615864578935502688924385485698938212518955616804890189659691710712097267393931339639079444806071030750995271292780976749823327651964446308296898481287674947146317396152786171949714286734220130010458722324070566972688232738162498509628134317771894432672365725904244792486472075751120360533970481874046883198502170421376964026645103513912519586811984386785693766510986893930349630667017394624148228668650555995362712474837760010548139918707415133373987925787037397208902274161289146211017824154995117665717166292541321016468346651030316991063627984228583686003112743384061982485054134030192591202776539385930037756050555864199010045951049280194823767478038522781389759852086679215286620323997502669395855128557500595227621663846235858627505104405827754414534470567309034929978168779757221163555909137928265702204879574800504593443982933286800658152911482071374213529173719604159994480450745712012286364055172389236308700976843571077525795271076452219948024164830873509977042992936888092784043965922123109287597920786814631595783287361836900517509658641542977418221926122654183247943669152403650039889481397063580647238292993216463253991558048415032603923274135989202541815255300360982603219566753092999487826983952922636450123136754585792304504581605885507465153301236659573862307889826799901124027320539989463774200905337778585322974949060786231931414324816842991449359619547438304529569873808252955661303471397013974905911003301021778175325163409339718443436530779556724285846807948276337692622935209968910353579850069565511316815179921737958394855584952971962918209865921019315531168890922297164911037696716200889732498241683046613883718408256320016247495221876141695385165513753190528767819530382149506612998058681467841680950532834225859324325856217334597769672296254486370556524697050768797337046793303974689404425262941978839195370542402213434164835992404943117343667260207466070428904795891503514143116046766326893379579392543416702938886893424204868889355186935197157802504114674926949381181932355056411488487435409850135292646213344711008234313955354750012562334420169229743134692353182336685150002133299558147502560602547568008555551707206818812122837066728816781619703443008651342032295470761304716625494884515958323419958965108126342008435410598731599946711328974050824887137530944738374654560498480695508900081587625013654264868474650049133585256458472349756846725630095861976808053858453894831800587200970740317262416451044630843246111183979532449496308546960791399394909157752383433899665704175833774409363713147892711718532666611991084823197126700029341377682948795743081304895126312917775846518765782100854778477441247022724290879730712097110516088434055789167180257825839096040993046659897464030723991206728293693731195890188058710268392262132178808993237912279383665011802565909597342630272230577503627964554323008558711940428281961613133813309061033398212681008257262800121915795128084314016344710475650876815284397946066500440757302538658758336880296656471817826647343008503451353584524951769532280844249480839361648648853377998532600857738004792151059476037554662563551166719122474137845307981051611562502846542789126578146846842549355433587725655352100829751598204194480148931556793015322970534528198741873994045297756696369714694213032010587161863797282515653337382212973251811960199607138067705166175420751774954999767833864279228823821770600591663654872562212852911304521312673802332431042331946295007549775248224457132477927089577641458915954813732899528908956099976903017843187423164737821448472918284257139065971742893874038990655026650068011732551233303398715233752395681688327688170084947960173277094153470880554586445720319415962341437355764418552977970156994628739066796543659506981650479695078327386994276603292558843874711269387023645314304231894861925182395018427327074502121570581460026051421085277532920634185177574015259924482915982708147675157636327006601763102041047302365071107421557588890443009675262255569452604665393648207144182275316613218376020940698944559145914869592530501096944048719061553078918322199965999678518733185530995003380672988765517453318435852736812623299114022270226996227641837122897495861001930581252753904377575146322880009828122489668570893262754487200606715140875544182412308738764889862857006229939471280122984422745995866285653752040530169713064524535671235516795978236180865516208108970641911457721251023500781350344003255326178318963882968470057016625650960527290237144715952305650864971145606952621188468372930927703660010735542886880353159196283605534358987302740126922877083014944454052145103685662432581632150832681508259628708057528337722357109217179992520230411592007382682700780358111442666273435665741745367995349683485059870985977072539049426344542649060856265906578533520284252862177347344795891021426586129202325643801905367748681530919864417220844901568713582612892244651666802415165099786539824144431901283197902847295967819020464744366496895602299757042626873311539824106272904463828308970225041411064572838362810583061843221215812215523117856129052311234305743428892621341064347653855035003794704979126188156122869618166299238203869264794895911782897701735940798423664138742126569710936849265317196320871866234853335888405633136699823243900545188208677675365457033465436122583267781583615459399684828556637896919862931718792728815713802991365929909299820943432133718280251442355359642549401093505336131562651908551965894732155278385587431833045275118257573372590698189340284582493687787357097028852118600002458118874293146227674807454357274598579155241416858905970389185114180365276216638293774142603732076403893733991756766839414166322063338970709881223511936394176474224218742745809114003112031314441317639011731861574850542353867839249432993251680920663880758190891725275004480104024721231763968065342013698419669410027282606641323505277340547606194081903388149575755444407171787756075939902785338860769666684644737484813171314344437641378490590224146909076773377599088838214724211175824484899568141752319914594480429942430899942562763274318598043084783996977120613705128995729643714920461564873904745113956967136610259888454633949997236170216637206249417861341323600266893732354592033379251819065936560839247254487659592020882840297557049265108997371488485757839401663108726384303685333610400763231464149151140403160001337997702652254483027199254973922385851646476342431285130649054544347913529263962816232600600109827196445439381047107737877086104015826771586121619329991720240137542873535245109627445388162165647059873654198862080032376335290644001105396173104528680024981855684930894560140664719371604015913256917039856635041154947728936950946606321569429226453430629169593491420044184716051149733543311784581786085329754080752247727550257165919901286684410080744935935608440376647811070991750074858365824582452734263447926899635603711067868713532702144489932622356916687554199432528136725417931831106130165802676518069889751235903694102390688445199211457361519482466389254086742787085178010317425011745321247483691380363951777329314745749209067967416211336908865446770342390688140924586152938988873894749704422668165629549962522675900430513918224618104634409716247795202490868502070509584858607839121739612228391426273121427681779227050058879725011697072811805866999329703254331381343768274705374033989028433844873210625772868199578011733006975262803186296511269522023612810432987985461706870094308015383137097253550708250737403305396625973379138079266023304999804267637917366674698813447143003338500803614230413806988923963280662427785372061308067896997987654631707542212899303484732293237559915220142559008826516665158845825796373398778463609731175419393666925677456376496084103469497293371109135948120241739841374981336253487060736215425893905505651795242996104583189069542682845334905368772018931131034202117001194404217415977836738101405228610047201292769240682181182120280155000851656670224328442337511808655205646047293582066022806415008694016188968932189868310051260263110984028388150025601667404429010022835033586353383229704309186907483089745095383601829630879647550946507503200552109645987832382489694065452456816277373090940079402335980555427028948091399766195910916702422214729776487108791370753580198357718671834348112589330933440150537544163408992857789148376674282959309886062923684435609737712403467371663037885805347408513197480126987734228493269979075242695587300113579191154185137134551947621015158944672240552463244345942853623506437147993095455016583926713720910387811135785618432486834415452242085140049031338997517427133526181184028076711411440777272219377619438475931511156369950683428146123119952882134788439277059010976124519927839098521836881951717132152433814911663576229770281959511283582062149242052314673391426955952908874726449854855399146365683421852301917322617841194888663637371436790326784547617457520560779485451626249786701455990263160317282347559631712530054073272087644706662689748993271824305050712017790045942004609222453525715796282418523445898939002936708996290682420938119979069803517259731663382623113962742369632615626569093728110959520447001125121395188497130835737159493467404185418719580234259215380689460953199958629019717043886344611083594364521827088578333101098434425904960583685140648028279657248993061251542671209293409409312534694650523671266149047194088398167198149521406329277079749994485723047782500597335639702369841243428399835046072633977611639425851613601235804583340578016310990713989951525804485298811459993989486796164665065435086582763323197229514758033037670432781095567940352445137594216057293903332019334143874938008761794208879819507080775890484166219164887040424548097225565189839424444209589056939432187975996199751933303288001598608601350288638226690830841729635076136291699217708210211753818869142706631707887137963541056944866070893949766543432610156268835065227688783821365005343692080595447120629600188667642599450575696340566063340692994151699306080993899277175494363117990026115541258032337862181516165674028819235163063235085472687519553393369157888500734719105447492640438802349342011261421947309364011560477676356301501516632549193444877857556197744066704872434028876597171251297157078651602018184181168263379191271245713217518200434109336862733509388012556668004160732239458272631824409266818495787703784263443669779502586186442033431965015708354028672374720293798806044822105055838573507572928392945874632123773518762778619388149282817093232224482718768175245735849978127491088943035020350253467296261844523282354963909518565054937301895091792644732847993502716493687126536480994951706098782834986339032657001353645605216456609837993237153583156899961571072863973990284514840812056314837774976879204381213794148975309359577013859915508999158257987867065528962762437639987890943374857683613346560311811544394401319874434792113397602542375750318167586095331247158543992484171202137999027634950288659015584791557150615566282198133529481545331767134083663308007422955052645941760847586190387365723795942257601531775738511560923967052964000972277916015589366795832778019783610110705256238000357479291281702046114975222892574652496281569882610633168911880240820944327978497510252874335026622637305614405298324945267472467746422994052853565136000047351190501598729026066821544889081603309980008413702145265654997561399740334964687668618765668291292776072197531900254108897348810219494121508599809340235508630336083159022256557826432921354332016069754593356860253736507819341795654771241558864263133797816568881833301939268416686490176197622422459649944938312454414545111326277302136189642400743232015065784576615057749145831001028572660675479976231483191789544758746714659029949015800720751826656792195949352008968181513951810505026331145910748881954893657340433721446284655018722570640598836102023994629729649966477231262805857402105439616110375611151068003778769702144558914127112327957614987698454307088497936825596111487787310040511496539192372115426052753282442837707631776473254882138056934251282563540480590672916633136315963014665917361516567155433310710684828863836910019296552046616986146195030516597321823205957030251238092452198498343263122340369889123663968307655919252518168268695625610045308109792751609158781217770263764209703792277925417040517825203235013319763044482410661222011698244864001826679757585122248373881786643626306922107970943514937902265138309860301057798254528381962580240887065184388343866242078478966531602534553343168762761934448041904556690609896492067574086624932160168080098700871089039307791215455869732246375768469396967080933979386946221471361277093255556717083474840217214879252012674159392442643087273667031169707692288916473919762667765103349444598246638204088761679531097789460835878987729811678491835121912232737398528367861814664360816981207377977540451822847891377480784634298595355385822591766033215014402462959657801937419655556540940378837072746049405726011722660612229825702647008261748427259466240841655996787690065258256946965905350469117439672259736261604567832653521821149878382590334203867494360288605078520918892557772149680667186226458443516539026134982111215669834573789565247314241986738060465493605113588608234119771964941002786252417877315603149656958474095144688609820186593974509914987435954225764010808781802283770024651950636083307755638148900816842530893127724898769395800398445923168947420488122271516707700380939920023540847744903027134610283689644603814413679885222637861268025304242111597085575389182479954561541669683346059628125760404170018349431569826206081822219993582964459028081439271715319962515219067247084185867177883512115908634859345322295944732569707999791216141347658000852203708673729854329386257835640715257080678966422047304497461713637416262642624968596035455341685304301067087197381569959465308008116251757750642474311456751773463202606742969023666098482846838190450128825948566478178578104414087039583214677067861940617620900644000765132348498947827431138504559936950054539564487514393695852805950882991898183928780317192680774300368539800039227390390867908298747401372309466851378351407186202378811157034869631832494031290384009738253047875119154390561970719926865396963908764841676453730281140992572260623092547246861058656481016386823192458962577160281731277699479056556394285190797779673468862920569545784297640185008556610073871454104358975299477635712016329251092664659509458014920880275928010025760900334402274616669242074355405501895508591788297904624706597703249021553826064293327565705431515934610331918372975088804158237483116124844365231646207474722288484106313619737097797712070063214478924350530168444840695508080622801168329171615643858552098786768495414307303694106431329872439016285196600111814659395641536498901066982319241525035876523963084283311187333409996924618303893987220985924895462070853940440815856451399941943206693350596666003308144424640724099519910344190892937134381682977320229230756181288858253158931293350348174534256515884318498838397878614366426448202620978548963249371104072903634179279974707956978187038075354979708104028488201201664192185837006124896735256365975768617471609362161754811249171793271957606866071418939406807346388137539769801905396077012962687001455299090045854655871148267667009928680653117607051877227172056808090557946026266678053794526855456501286115362090403931280077286115217456969500764915420980319440847284061773383279036111704909348597443619202509080018112157920095509734161623935904771051832122264419960377764412538620480612865327291698097979357715357159544962575184174587892577906015183968292550775214966667163416102901674781243605285203725692431361784916232288683645213025211627398858343566594620373211671831556113080807490986894191490274967369303700723557381556195729578775477655749879315223217507847012785771582661781749572288175214215914917607812069506397149939816282441820768807431220373312896590141269887673671144779221747096453753555499672261485747222602370312643474868823811161025350265498285438798785974634506473664900297606914077045760214887239599300405168862137751685063582937204771906838427287586100532152419902966121922976331701110550566839799241107909644488453440921327671147413538148111104400893309547806546209950074120199667904519699119639086707324997200985957192392259353083971760286393430319070153507775819970582083856576139659946812363122068515460647686116174052405443406684116833747323583780953452784728350595457743621837271534416166311467982513056313218276898779766895704142202456182531276626195476316778869941909446709582062334552365247798397640959646026579429809331234391233958738702614816349775970344361174370132001916270927992965069283502378493328732862746855207293497794490011592948897155395512667435519839459111607032316689048312496613684292710151749512903974515404605024210458055927615580745551152740831234268364369867069193274714111355190891517243139722864520334372714564395130966885350190662034309545795986647666277044559206154275855052432690483916069413220052156863795859256081744189644968565614897663377456302333788186745505990081938285516157651594445173998713135216195213431884584825862395106390892909915191062810998502534096421867068033253505402790300869150179606760234945421159191933916092381296687787613306221111945571615278390129326180167503029477131453890972021144624686338861403293746728667097064160650682002517152762419273397154453467891402462991471825603848251477737627677936057619988396706336160902324326412389038289420294447707040406676653789066448930899276774925191739927838656949583616878850759833178468488502193363128860930465705528064037769293979600522322939412770007098750988000969827544006808384005665531925881922348788208509665591494858537121602915154156013589934937120531412885204343417110335789525728837020303159600637435642179212696640340604568724992194997671753078424766233816643344444591515996470816643086617192447614316451758645513488712635398250925904438568760280648489034836414999434177168136685263315366963092692114597407433368681698238876296949420911937614530882354965291434852365477302391376688053861323661515007725340615611645753712042208907315717095418613058903821517859728517520534371664330881630147809274056725214209047402467011339713871465082439619437294281602438037183643522115408100489970853831414699473189706929462194372974164491286855807201606264177405505521846951054853545739993928810229179529804918787669173298250735116742938382997432074354755535584449860362635052271523919170140394495253818264717025139977471201071310704223591794425886820853822190467013205892156658100920290433691413211476004678854962306221833334899007121376069863988452894228820715811664965963339648750672537801307428116440639873334111757075912527237270959015966990749846856910262558518282606788555980751921179525809425832709368295040403141153015641193659353199745927221008226473137951876215828803519181352832121555696106854569891207867329390092961540423172224748914918205353859704810006636017687483610802221667682223524366569238862935404019373900818938409864570064973226453276260558501911754861106119730311859788358499901924351498130289005493129683152812409132191335102210706857276531607285049170816445815706887237750176888694247610134412292206490042314593993358740665160982548921594435645148864675891853255373311910444053524269331157719587223078420634896633499208940399015498718162963001927383790609338971340290522222080730621064764623042195022737256627146159402663098984224909202621027770472277390817137693830755541357980591046523412242615008408902037445748486104778882674608130638920380322223780408992013353965827098205107709112830694748041057062710629579283826578387281849550942102428453752726544956743994178047651819215384727775781352618893990515487968228032316626298831329480106263622762747135504079619113154247108036605557100232014204596988463305451551505012454735752033689848831990408137262121674919310120056279830359566876842855164116483762406420518619580339245568486766083191200253911982120068551581391935759791523321178864868217073690031237707070069922160917334173207142947265205784382206597147653210459019551859018406584067957161485131550501313558285875643108434938455718607716716306461251135820050037084935502588781152181177859444035662957321287431839252255625783007763862895501496848421167102486048369844504481371814638823558504272962823465314672214729707183584530281169040713994215804949430030364140566977342692123515560588969937199253692499027584007526597079763123474356157665005974909994754257233306930487921114512127100661370266033219033349540897481523050032628744127643600938339009362262598353790506585592485590786367470149138855424853189863672599927783950317457364721844527754612878759799913805240264481814290171587125528057315558248494895673232492053237472832310125459346905717274408865746216987417335657525329211611074011376991876031746179430216705236315679139908221660455871206837453179773635710651608528992824035971324995829727830599217278915312376409733191474136954647134735942694249057952291382049999763205121372765455170552527937843744531791751952471403419173976807908208371840789925126123649853828986252407284081797848331601530447964933842467260076385474433655429993334560935091082794389678318384494894278128882369805617413385389000090002473988361806227545196513812297595097439071906263951602777735965932517166265079168773092404248224874252771241159041323450990000573901351639847682871214135252453467788278332301278111104012661235591820971118256705457058923283823842043314751078198546728197330409291977069321742899402508430986026045959208344623320446423886837219293358537184249917430767120415853108012881297002443344696209029461725755952283483201118624491705648766229562613294692187706360933423181794115089805730170271362209860481635296425066344709705894865082216122755589931074008036665537126820264184046611514927853793328781090582391918403581706162471735377946148535495967384561962139345540835380812319711371149011460621617765171473796305373836430053612849459188515085319102479897590048026139178180308832033290128546315939024956014531532586847823927629270626160044683773381651966680457822441864638810387725884235228601284174758687728630523901896357717169984253215152117962853453949940234315055252338950118951166875382828696852997440625975132291747045366105613476462161364492700600096768817348219028158967331632173230093240090131982276850286754147469810760791164044880063304085722933156859407769684788764479496937478046702402583836569692709467860688038744815412884942641329544502154007482155226611634881660649986509940077055211521824798011891540678947737904392936867123913903651276135048083656589927641564198474335870129829573411607272726384494538334887094614923028110203949759133003174232663286264977843765248613243785133573065513006573595232274033148612294708625102011237319266276354051356045517941123072809145074995769832244540218580278313734987324741246476943009010253810384868636653466761150554619328825165005780206048968124624235259215679902208969165715321699031083097903213425459047365720149297588029238118936886521729066068943467719634578047125387556920634526827178706914522379441562113661548792608197588822738685154702147745109399548764496197215540614226336156684305535241362449336666035357556443344302631060610053554792918675751372889588014747572777998210329754192443379912792555635522723224294838284666711420000587640171120131240407207931887962610954771049245827369977585459188478570949009597957703526395770362342254528283801145386573006342745429335795671884027710295990145066357758358051355370671989288913036250664825914206638405127703116545639993655812175567882668699631919717023791117618409640806442528531083801726639942119575473644889958409664619133563406735800604212941969554011053562289201335005744763946811140345775009178861170365822409617442897378194838570705828790129035959617575978203822107429564091023151904931132275382693210087668495714202610557972505908946871067237445114270247215996207730120238760256342200509887608441155667336490298049311674920545568340427851493556019002322394731367086442086073719807337580679802963429034499545068439673744695229472863987357927931715782231177605167010962696627742287849331468827191455636888034087489618601171451953296880084187403995147683897028614103727252712237999735765322806898384541117108574759061958813036292616318413090959342162529902983041634182740093353846005770301311711023023949909750287206148513879641009219598013057978522736377111176298908089773844115207039525729204248226058346256589643156091154757440139959543611799050825421161206356883723469140194131690348718897706510660353887630473771308501782876501157881772637941455437526021151478181776815104113026466616498776519897480253254092652862093311798967478227214301514287604547752411787255974683939175322556245402174064403114794362404094415763905736751827094171648091946763048210193822200616985204801599590911927845303980544452167002870540627851761391422312986475588372856228682846776020311314585850023227923211255466228063724520525388220612678286838442465592381417200874123269214909609215095997419453682477870790880298289830063666758374914622949633664498149558745712340074097497853029298017269210967332884378723474909711019572334573058387085013302661017994012486290254263687827844308197307525291485422175723268019813974560071977621202079623548323432706634902054858302151214991864942182525594615661043516149090953372292060548847018112113322841733961976861908714088227340680217821452250087614446140636054411003051244255672381515356726909825423499074059048458285055370575676605383419037771175158052728904858409416197178226958112571656674511715329790819728891347263375597580392565955144860282435191029573923935324605362334905207016440909166944068590189415079105714166657737893735628610573502714377968180021664841934101403726111616145495144879176534384951051903905709412221342521374570576646610969873657014266254529682105913364133569871096231145003270583879974441736720776588640874502524804133087784152223789415198411053475568774168373636386746303691199096129100195260604617723304850806574980784627519187737515095822385876191111891089848954597285101191893921158947405830683569983098532683641615884558844239152953962976330112138258461162702183970551406790649831054537437143177515667345224650731433767408425099918313442015954782238989862412535833609478009109931074329849266331777688491081900364311478861523527482873104795858755874110939105589942085582392724821625811636436315168677090452646972998033201447259078856649122673936475907447742056725036764355322436296484805238039585599013502395979130691992198423496758290005456829057287226323406487401900380293960924185732882821064732632336871079505259318880786283189785551394459326938467170094683812577574115768591452855004557152521845168706517435717112199543590254421283026722540513272254917538895507934316444336822704752463355405726128563285643967480241065765962764338205663299756195201954400893602332760921571320764949957368632496752678116650307076796916190403424945928204778542202958675466612675453450501238474342183591643346933978833778395996885078894420218958533728969529466649424458476213262517370905265307261840634591303830846801415635738633312399192988754484299537059868043333995477057139661929029720791416739929474028374871829766658638352436359845880033006172548855943762765546990310887614933964460339804439794249706826738773705463716174194711193557170388648487901402822712325918222711603342816976505832092540656310875768508018046831600767470965254848799628164232197407744039781511254309311738880731314979680766371134431362349666272938385074930851883634979025166503774223498618802703444332279234465512690478484098262419666766707638551612819302038692649305123759801922852508735239483341107829698282282538522686797523858874362844406234571338420069728316505856501460465761780244748386246026889872215661810182567691299798760714343512290745052715773901563731051828791884654717899543542696752625988525137763760377444638676801654555533506431921915037898304830297798537514209563076345364837422988649065445942919247147435279216914550178081933601722484099325804689314757643149703556738654949039388236397920220618586239852191643530704390654352618452526617498472144215244587059034346896180842845598166417054969976278835804292288991400405955847779029437386939489969496589326066397054764872738707682846031162268101889224234013586160645774277202736596850192401813848387984629111766529082986765766219763565895767263813318225316690508490332868092671387541515572917456639750862311686586443046938114823356888002990085759776455677251825016037552455434879472641062266528411196584517409468799319972494584242303217588526718302927642430120749160056479515584517603378055790331646770010889021221641985172469137272071158122060548981442593028103197957344514449680413753361663152871561886608523409412399402952447625410705303032777083094601026827925287511321963858059212332770970089908509787729348901848249031977595418867883268758080059400661329554084254370000074647795734084448152205628429399926983382806885533314071970575846604399010028044899132267400438525544070854471169957441078791738453118046691816753114802364871850489475197534036787029574566277042661243935556030609691636372084176735243411834417991978617343039371623725620045904843730293441868565535023527212193603179654133969769423490901532206824386444329188172767758365772016292456198429920593973720528595421560681925443763141590999657984149849750479928990577901942692791329757852643174343658524290195806250728922199723804311410597593577291074475438194706854412545283008724849414959085909587643159690714064513398107698845595780146301226439189178258443597158044190432579498471285666648053668838498192785349162432320318464518495852951129737215814926742681996752560133164419221519711253895436190929104634540753034016834373737127310644966825119623429534351683880321484368041522420623506779599422616514446283993349005493414798494258930378860082426553270273192814719054324872009642579940506033873241320515027662810535162875366837758600583681620384319811897118466699460330882593014799405237147569051455016748608492464573974767435680239001639354391178125876689168252912823960187027683844006184809290362495504771798375234256389459035870125916949179891228046559780811905908307771084165338723536261614405617137129425381174448708534358607133596344745944264432974958629829190089428921742355209103215269373289114026966478852191931705018695048980092290443277819274733335869513719067181922276886762182401395943110747405668765540985576624295919066413337580533305794229267450466855770764841778731002777895837619455173293463307679811180124220566752397469129884864123036420458946286995010820262064912314636604250161707026787864927605032393901533787395195335434911608777420469767267442019792160850440123935783139320322476012281028831680188694036371646897446428422033121317058222911974299185143241610651975441676594282953475531894469882242719864447188818132554717047564745497819709501133098044678606419256945492116323629457302825633386982101224240705222615772777069293266399092931967714462732632015153758238000680918928196256907958774569284889838616350619633478581433777570027863159410171016904231745765289250042675270565856318798594184773864223469840223224127905583877563138936001568306632446792267757535400580548535662825084242773383508996664068765940679291294591177242782073597185948489721878615841201912448445418138733909610762261230470191669480757220663860501833254899732661499767780645571287629311031898376717427536853801811558512801449188668755044506722061451262199065412074778726869764877326356910832302116373562658325840176250594491250929818475867913789714675529897789780287586181593680390770318004750868007901356370866156599677647681789642630703969218407932682720716855976367555125408175855169249731768814326805176487348710268536835461536277262193362884213663149662949025178351768271477612184262492025329997990556836011556861288259018937969758653589806986297326502561636221867469147026234201779350246280486181924805777000607717518165442950723225043188283909866500377028571196182227518244959050744125033558791387659447257633656082670452919420748649486431595831560961508342026779283687741731003224318478291211014636355623021060650515811928966818982844577393866201792927215477155158066702785652037121147893314593620937362999237754539985169073086459869685526529857292629021319118923866829552612880032020000706151827095350891095882687885766770689336464593503456120415734523146100646907411264642842442026586568513670769365404019072419702464188749648718677097418411013464416901059396804151227787097617652953343034302888136326326162229052125588731430304341418166412314729912671676676728732591262020596957099992908234527311391252128722024649439656740062430724471736704569727638856908524571753429012134618255306836307892402734223294773659155878720581002828656027387278022666635068550304695937842781000249666022810483357235366387511860171429444811942570622340105293601143295051095669423698698571661066888574431227247907022104841643147864856893799206457304835868691923168901352042522001263179007492258106325887968543151712745009064850824620063890123795695723322512473888148010358914641801222790127654068946835745786979878649553097524000906555600137734850297181734048056000078962102363959733196536523718818179333596378994947453215492207284273633514610456412804084008491302848553344953577067019888647984728139424427326209078801093534889175781351029353449326151677062065680928322809143801936991262750117349703955964196689250707060935926632989420366248668021729492144354951743301776490252837874415822421258085764383351026748336584147895663135503323508765718310037602783291453092289178517408043379149457167874664082345056539741913538995257458165312884723589726923343487652234327641348747302438864636215080636479202862951046114109603550140542186610307418230804972059731557026734431996142302020919713890776305976112331369045403238798596557905261332475946218258246297867614205954753107082805988089065241113946546519102995136032376863917778614257147513055427918007350979469312513961674799591913614396575300658477366934672236105755039550903207120340595005124614433273164925601652631858853541711221015943190946322885036830705909027757342916145794034224290001673830393241698886560072043666329729521289018493242852814092679684869284268003530673151422793624058470843989546276921230922022604700307820540713519231534722151516177511513782228004221584520427549511706920495554640116914816554102678037045482145748833864465470858577462078043570969912574715326814655781756653131029697007153936162612800415939947737958236777696675484959249907841074732457683537618865210284658120980997522523959542076649449615152632009104414576548465075369095155592355881260017848833601035304802224530695341719097473219602793046054930274605946935799500014634852152088119737844719652193667859359168134648728992630930620187076547962304124532267870803937677868544367598379382030782332823497465322813475076706725585660981753543776631748852654143220899515755582333239114452696910703394080997926738464960869146619579403183412023420515255890401328206256848374916748800286068533444251431976970854407010772282532634728857041967859902023767501209661583991684367528645386029859025741238073992526731119497240765899644841619388266588718546800955485013188959547989929436806708963032839435099183682647662457315437639840947431514805967674824342508645886010168427772813708587723000756590964446079805202404774638380088885148855380094114012463257446280893208213367024905292939709049896648572851183376068118042292223259998309726567979659720770839716535869606086028651045892368282711051395693835469438640042254238783458845337193199793158267091322222109369932919135528666442735614280090828462770128931845239022169006701249400951311864450158891788646173695888817194674224104885310121271772666707556246411774897912200531803520431346049502777161012351670118244527880043995203380510422904653946866506508077526527718706116569105745861213577914162518561394151907566083894040916938169629461418138320778312126720587583716946885630425279481442944933652878904849088482204221940925428606604079411614287820107673125181660087632583776190571641035154249228293805303848373388491052709945243168491138251474230748034534044885516152530093840135083946540992952792889681147839756009814418051437916896877317973625141840650646183653320217156929250597271025334759304988473084122461047206922131958590150829795728111584026210574125693561110630290457440189278945816349520310893650573522644891718994150682023090604325093324983973969339434699802718580340356172597566400151040255552261189613581401966482602494380948996731235083795642418610976118638847876414190124995602629044506401317461806212848993878386217728028680918599542236254935412999003819058060889221494641579686234183583949029375228645376389052704255511697939617277671080143133280681807634602681968618868027045034433973509563584660172183116385367841650162008627424699431993736173740208542650946926092755712003434203236843368610500053060568082112664337955836055985994918437210838288938829479723412119334994963451405494023438819817366185210765363889475461835303792398696340883425373862360485514641981070467425242170215332490644653419349398787378050489192995690534213137952674602825435722926712817330182856150854333222829804343806872405674113425199114328744623238029485346991800098811202544768814948771220569529449005249224703568308794640320645249139330026465525635148365458269481393720231959822683750317337638823677905464912560408433300435696935181850525766130775966455638419542668156865452188356457528268016874911661343647723246931763521774500700916374110627533141124370981178385837760065961092238075449863592499997210571170012543349326182185575043361516399458113244010294069992955788304963271787084833444351322272436601336476650694446322210739963573632167751515772725399621106230536906494372421248328263613150329870914845983338490143238832579124943116401324464978511630506947700892005651792031048998514148649022820843159510483028566351425933108199730399465974101730019231356815300187412737849629193326907411238995787436608035674588357329950855013362031069904035177157257668959899558640430656522343951471991748638479941291457166875701507161048700179049329720975843929147805889347174270346889163810199905628450401595996128995875178684559416608052502255070189220654709312404698767589118697520879465918057265260082287914281825148459597347506136667803075302657518888063285911308140963685248731980700068467185802999991039608071921184251811540407435607621358100106740334429142428129938183187957694075522232290489461597210605628117845871886168787454969029008292158533507905697410751646300469641083448064053341410464970714004815265815024597946226437886930781344753325317569551140869825608158637275061999733193637686053454260488296612221792929997594818289808635707807752287367288021870242113995360224171398164883292654240063728023045128207754960120689476161670169951786754172781280402542647037058509080996453736008017070362685624214779725529665715845274407226343366133695726983291242335621709581566184727970758897081766667025453925585101878509165020756091771092151774029479387396055553262824592752437792480954229222680568145639912535682378882366397258750333250878590048278272789947795925437633410624851944189816514017718470266859757591854909153681918512649884167590387648795360016377273205702250336120926258952616111658841970231770803089201026558400058235085604917132831462503252348951524800539245696208486897876024144119737494779165727442480985035905541472061926029186239626484827588663675847459244434081740415418960442533333022642551171851420955809005552193509932398592919194215172169814803375596296826259632946861268302914307660428417360587737058799727695208490817131396611345145714997479342102949601167403627296064988465220954131027866589242487395029492588966649305508343126563490744607596176334438269394971908392866008784768544746564796916241170380414577699309400038264093706254726711510515392886788271323654706969929354442639707321943858074482151065750624116908902597588838091348999476029646945904400207188440369321113921520400146421642449656521108505486876964619875817118417210862955152256321597636423833346029659924798449185227763101029812375234148218454195199434349622763126353730161167695098737092058429217302142278711440150984569905134396670603499970599230646573073726088620022268139227934518778770188400767389968208576972066657754736295780501208902227731984629028822152277694664773151236595857720185635606991761229340230961882025838200051822794835603658252188173411453962231292410822934869271670907719659925166480670449280813092330225257557865634934824450610888017685138638413553130378825926556209521893341031667113196450353210186615474239176712741497831115615202579051785450320439443251899423514782661459157877006448148254345869184017881143525971103854473887671103262719127756233158784114562392642835699466133548294089534680847177764156666713475573975434074079534745226877545673855442185796256129709512840416527770625350875137959669047341487807016214898459064165293227916426298702823551493008922874196635451551018583294667205752407978049224059507801749068264646208405166616186407866765783624060869716545382583082154974955032463760846845238150182698797247668246437333335375983868345677977740689134393690157352649895195213961425790700220498323854133872625517527300118574740594530134728539850879498468802920704916999362312607095207183037156665943941436628831473014735340037249468386875684287124868609842299147068920479048675111842868263261241332992320631621290532647025383391478897737500128845013273558818652886986058877251354539751387429638517544541033323982532691931688183188382164993093340883297735354811300143797609750945152010655788856460664041052193831093130712894027753314644822337292103458799414082266298297032071983909318812357575789541893200688114138358679142440405878873962768707070604761670141586194812990817703600309666721604129478601197177326570945143645347310625420522356992261662305983611371568002104641468700376412332406623610041805888678869630709822438370476597285147418258958479631508410488283652024388812365124091152961094407859868934758394648044895995057609517637076085789276055206981282590903912705030961433956850374852399412444277355776488860188305254334064347657082239486880240919616679979747391042261190381144665965181429209084655788252806281320779993714499839704870085554692595940688196953124189775874050050157881997585517742343746079456095112015991534849942055784779513523994134392559593470473417345195214674464515662940872586546291067729226675329678546430778063066209597576975500073896521110806457109779973921085440481707775814754665593509149368274027002659740827784850009034057944073730104890202664167413050692508452983636272544742475773356011900908473560161356096725707263128180120489065085495250902764192295918593493919155673709977581594942606657904231663033607542424589713836615700616467026801226073521801240011968685058018818361356033560187897671976073818463784635469413767397942751609872902673825241126528162566797317718626438689366459099843877618532706556422967674413626557296069618375438598011316736614185538770405571972813082394683381653108477949117649797816326598184562971537980023125531360095986096985809858203039611119478128165467871690611688239576124409236487267614439282889342452683696353444660874198025100926678113193110968716575201865664569254846432943615558657103732304138604799613742851247631801760899707206439798738004964795858970679180641176634164126326782318281735607724937957758782130708244556609481814253410104390647403613322930321570572195999697042231656698213063474916102014923097079530138482811782374293138964985919282412562241339628069794883732258671007199008328890718545042276482468726704030074875416669114110128060320266410601152914002203883669130209580751220625233487310136863740209233365067261220275679303335117150317944818779595282272177674838884815456670049565857241246410886234389623236461884654005048534254088575781599663986503261800061712119152328412794039725991542323762197884050801440937195317243500521325183020789628450726181077706996707510914409161697884158012618002120354495689039586032119032080359376431355106414945347985882874546022226744058871626387624726275338893612886253531278942047354468925477809294422577386400033497839897350556059042431928412193287706029099685491631933257454968092447679610505834229622899694432032343960539333948682244327220210384904387177764245793434895213120113542531771572972599524629648618684874309935028777888272632909887807312498984223369842314352413126399108090374368250466296494761578081637489236266301691980311693843738828463893825510785260731522070151013376940440852950854712764690401141639418737853852312855487390051352439191838501646530921998464307918635596066797809322018125410485472282372111490630562718175476001037533471535485609636214112392582837086777041578616591124344952711682910005171850625991040384777578015719763587527686691697530850451022788278383256142372691468992880986137614306525218335589464893456857588364553096022360618727337362923604049463454360196772828932373302301627380030792834302556863074093974168860583360599568733863813673050878270825353070284871291465810470641941928618406326530925200075196827264792400883495689102052095760229010628732687565917815439232208757471064813449074982011412581863379331062149980945045471480912657542251725363956175507358661205353963897845310351021681640979983376031861666915116193391241181028833620990733807252363095399660829737123411604068169617554749082813616308603322920813216478046576202135307859262277542600701171283161399646539522723138454891428970957766221429909247722998124568665247182005055414188498082128888047423119611163639269384033840743984494314992149985830167848897218060083041204186419827946070343098721770354432550225849003420051357607327091954525857837855392020143730522730005958657303384920536123248338643908384691729883776168576024578472447311517355396416761553891603591800490313873918585833752082918479543405173372335502963127923869804757479996081337007777591574170231907549105696433137785708654842040643831279854537250898205871919711519877971538863771470907544292752579563945101558451177025406051470875414200688650649965277941668978666624790270311778371800463255210663075214415685750921198329838222869606924160758728742521498646946757714486182526942682231428793819917211320928413254816576658058399915435939857411537398755637512005857636432060320829345679747769535559850724641351789615180784399648521023612819091293308623152964894768283108019871181872746160270240075692385488743439745647480803154506413175754272925289597895967056286789982784106570934061297017713257436012022854624667876807977999036006558766118589770565109412379542923418158814593774986611984625588006357444144053007362392456252325585707092427836065835014475585819949564169194574277061774593294880001089990446616320429814067419546738819114133834207651091921627046328666873418335398499744864001872567696372199511179284162800695021725752958179468753353488925010010571644754776207639519938785572823034702432912851871517937633472079188669672092239828161014727768287925481359027521251576914578056137510804491016735513624657817296485947103083855296012308180821167347099029377591814875856946209843007878375123873346951955818470145892876908663581864639055497959042474393905849253971082012406009866420489936305640082175638821261265327500340524145736487846193242165634892047817337966614243761450625921092812499629323222992494864184218884450510513782037982164501960313151849295343240286357495740778488408457364096558817921345349111435170645540019510402644829557878866804302950665175397225806269298073750997453528538321773283387867894062869096491607496277913095193157079845488438740572217111241880407719555330411981554611252680697220645260525113031700285864566291557465732709052967894924531026694411230673929597634664437412414021607482274908144012848725327234248011747816525467845810019700933998228515263885480513344620454044343741826260112618839987124235779646130120593313800329156182319384582581462439185686972308131246770931312854605519419700837226907814615230606755533366909654914916117739225825222169535058236204083185638296661507745780884584418293806963722480216093692276915440955453969044477746920685467236111642543180076222859469801738077093035659837550659822133277233647581669492492251981388621653177854641699376669901017243558919100706284965307601309634657972821749123328634295014174703836939514507140470391734466517024925357891397714068208182803238529041151167504920090029274274236782450468374708929314919372223247406812193183966973516688814012782829547737892820837857860527480692797213185816382770332450812256168516611798594714724168586118832531959935205362761311581632956325087176988695158889158482194976366661548240518811213063990011446160249570660983413827734426263477296626951857771404882747418996698629368042229160821851085539256984085454267091175288980002059452083626552599530248416208578280992871916869164431669799148531648522737775153587711009979453047858825802172930149487005460017011278755599800852290725020776812278210410105562495361100238234360594082364299742950494733573999319109577654224734100241350169002135321278075462482805170291474811787135353014088367330938208466814973538940029651737015338278652457674675101578876848418038452578599421346400205670396290960205924180270156799893960510569586112561288332515131944064091588064470719790727761440386487312398456884715981505433191654632897550912701953951331747194540429306530138979686400235030636811339744929650705520931922836438766999502918221920998879931942863500085069552867564887546521222469863679006463465006036959702763447047042363544596351372028449868563982065364603924940947554589108471928015636102040854406138367217028351485543860157356909866060705653380262714021585780016820790241609785017002831868406542520698014671179933304540000972878107666477453486600913925237557294141125174468768924400993671245389255869280643071140211817599750446178271238094013043117452332944542491205406313496217372934162727539323432770859296421120070306104667992681338865625118055813880235414465410686770146656025593385003359737859271713261053252347923591379849362063751995816280996113864913669286054345005778728735129241798479535780283279615320927197080103183255353003196585247589224595735597793653482702419082019406913139648198058235772680593028547966785427201417651696400262966973540303167805163335892231268668375528666458505398114684867109319361356154240844687066605386788195678089967716780694320372530716550514482004662742216052015054409479006902809956343833854892935089452252694558642083519326315238476111692208247906707670525590544824573627595021226261782729091680903992022144313130426222805549355940740073787713778350665231722309403079902785515931263237048033890331612655306565046803479028243853099255050466589364269909678134891475773589892961351621631001044376769175118690544729007372993168306126616511189287044199164010249202193011092917961405104283063454334564442013671343377568988914723667388526684290846118438639577043095800117962981901959166839163377910084376459478103914232342086306016185362531858078422399190815572379852910561445728239876410671680224231046510121384043101224340266865008062147168749622277469872368052347603652186410123103613383899928776911930199801695669933675882156423807200490891607703837831411775934838263516596366334117092820333957190035263486037147695519789239447947291200464519701302495970961411870566992015576301672881421341892397695271631113159198082484781053491376097417561594187596176642635335143948549914075941989086102122773168113568762011868522740432403371466541884105559802698706161975358764254822549979370525005480070834617791681920648576361476893228548406458809732786450233386135248807888877044474399168603686248619227520619426061638747511304280412638059082274555947085104999814500638279443702878269326986865202452015422520757466349045895649569447974176845949389360843439432427766552153047272126219188929971440851102212775388093527403862859249020856960816395777379466571337994725648106395874878874073238406959709311189363846290048498457272950800530628187267096121089540078628557122461210522627824378642504931264659308897134241472941402919616367873067524941273305259277045454500960557151786606607670916699487570394334009608164550691678442254684997984368355138064427538723359878794660627280607207294673157221599722994004435344643085143216643548158281584590745207726836222059693491021054302049897972602083297062249616653094582501820741234375100706806973073628929863194668114163928840558563033752016346905307801234808457824779019589709140516116146915251098281500243638687660888017787473195737534543312803909563210607017329272054416302751312320128454182378365223865320386573943760262750384496141717580939492191305026322664809249060862778194480986258225353703221326208142595071107035782452279884604480308491715406963901112759219123800945452564245198744167305365966615967139288021994879368370496388989705563619892858308906678879480946480338471795620854292230483029671708576941958535131844134747942893211227253756842887939106134810910975117801302507277292039778453355928206767044112993084295741250814560390207153283982628173072548651447377051081442216275654208464018094980516555024989813076082802034057137417173201899086394651335410357067422033930949824542050505805798125409035761065849795950504400656328238895787184122739206567728710434390639008436253222271531587153516163397818702285607684644270431945237344645976728083215226027972632404276547438312329620389095881714891377654788324520410755968014594980296439116490606826762010584128675918110742735018115534832855429402806864924451702908193798122914212531560354019613299255866379572248090244133805561186968503625566236108162768182661019826804651666894084931887622104170580492136624383737758345598653511092557321189632329766503391142245350785798076458599083831771802343984817083724463407860473007196833175402601098459702984661972247583468882219429133074538450519124751714931874894954994691432378653244048492703741907658277419469636823333825541239677429443996623317692633031434375869099884673137217440387232101811640280013837255934097999992136339400311227817553248344403363769395792925747022512331263321601253975969433157296999684932371558204657010632572093271038209545332243716827176618033006940836981237770506989159389370388599266148897166882742023189363116571909121232405433781218029864093637732010749485283231253255901202913927235349048215692504738938997345649568785588680557062215570047785502087869960325242490558496789131232909742819974972198982042825917657809960155208934585324055809620651596923023024828572685976905961518828484198904297568078665814818067785945037314792078183069732357581341806863771941211740058022640660196345736293339030128025428832791571938620199046397699031981177523812132359503479598192222949120193157143034974178849432563521083158165174152226891951940636931987802550652200467525743957444088584822352860671882895882618355158688587397188231672927343513919476414945653230236201297387597928702722027845738360356390663630542270212747088832074273453652588069735190307603131055730014322903323197550821091713389085694970923553479610965860913070431279061816180633621936265641469176642266739393819491513672817076456801337512557519592928993815690886732610769969421716429818574838191443932836348536389372233783510918436448902231765642638737161870124920702880513963854787263529341103509260722577962586006284977329214992370177115498302378484841954515850472973151766608878229180944023322768422190023874025419537189698527068862291265364675904216479912432550045672945145007126642860222770598000071124672248702273930620880949894167468252804702579719793265079581955608681170844658232018138076214808400945746264516239864462053683927788336458876701796893764827679784347192785791457070620412016634310228612284389360966281151353234936829813800439048690138353963657010617716273256102553116779535254429580716650749065722857307139411056054455161580008844921475954069067022175885221018787900067056573163315440788842864410689521437208816900772581898933357555780905441607374457318212626823728995436727382108111193009519296326452345198918511185434443284762133943683298344203253628849970229550763617639097702359843134813943808522140627903327804040518157399806614732543746617666336426780634189212693085959698732387197769413090016677545842634031164853388892584887419028784042529592157985577077013113712795268620845877591634568474519871951245584651958771148781896022443579520779408877543789041929440358001305587203864656874091520694547601050799353258554328204714760440856413129540082904704803383425720319306100353274428150760634669477037580714970311705152554004392270056173739205377413189096921974250388606856476519648919040668810340805813750079434751745604260127609377598358963575350384746645417406261395270682050827265592899423612286410951290467568312285439731066792746314581163123669551331666772356155338071947622753164701146013099278023671377596735606473536292131389775022514829519397707887352444652473433975332829372695901919901293452618651065005244971573035813468778370720256139368837563736944250609001441054425670327539623955447483958940264263518772143599109877398768285469859340149188883825134847836265098935915756927436924422031508688313120563620728266744361511889206394330847752167203573066974034973517194785579247148211510377087118858473278788162759767013568308697462597311283809893158289448748766232289222634828343973164921310657349897529197829635118637428369096198892564434914024344441105959956287166724516355763776649679739422137068669748700873680512522478477137044544727425712416022544011784640059852674188105877258541299797484779788224205896524761511254056096018081673403078739997512204489717345827491856529438228177325590057207934653196881559222720235203532636588157012105673657783915349233264031364497036523178143907773756046318670592653664094392938490751499037382486357523982109246033312602599277459257302686562038520146334711952490434979110425260730820434117383798899352051028963425178921086481265768953849804308682856134638993896932614274928041462980026552235205193065193802062405797256314968280410046678110545329881176624818342908230821499170104769018489064465044399355975530723418743266542907355008442085643564446336203276701631434968619440257352119144847694491527171764836757933125263048629849517954935711150825981294058148842391453192028297751107564951172841781839048392140325898929387811122887749789226457085401629715983575253835961508280176743139876433706418010401864626544812175726759210871211550298065149053715629317943265471222817889255906519062778848734060124739947832191470909264628561083458505129763734165343707505439864041701009238617111372156616722262525123168004681606552158377911697383847370055780823697525906618707354534835541614792437870384107886448211707918583041298678336231036690473154355018710151550441978715913638281447453554847052706383906029387954395175143719722351233759670498164824054341493292099003565495500827706342035060640137377756583063181101892188340420472715574748063504943734856641010218625660441420483458388725023084898756134940109947641744467255440902507479907903433014091542879892032200284664072919396160849272706817964815885732859814184770935704134019348344129995707841625998200636973828114753503931854227297914025186561042602634158446502978393030946506792490101896096835257732200288432651910123251674598302886562682159587018970333316538440567639278316645407639880965012745134987175062155073927263396307142990659603125537285064892535018812560542296306852733525504443248942878227704912794516744116388822213347020971974161036437491320703190693950982096376961809277951098337576463050327605629701655766671751355050803704454237927333540131441722568061481507803040993028997650995895827196152366444458029600645141690049825683977746172399552979233603154900646617031606020092221050093829066708807202131437785917587208151285011181432082863905481827443735441412519743737314694267673506400131351189811133391580406976486921847100897484848230463383097876134256721030953658424620170697201503463608196003853153263214309737940254504313011265569288480524825896359988902746597697504124606584647071706485668871389688931591406631549225417980429047150064109358108072502188022106934436045739529351984665885146735655244509073772181754357604013078558029225183724828056293566505648936536558693018695705567945463317127701090871204909981571299518352455125294747152736425565159766685688766696116243791779038388918363026754761165057084299190586588409235916009333915792892715120107385837602542868453673834488566782511833600454053063945658152427199494392956700307527594472133853598081489526469302883197797272966338220805907235646671304683948423218196752772499980162036559634693068435487102474163577309134090558483477161757483468177307823901732814635815982169059352153109258996189051175390705420394263549291457323404418356967937617213420498694610472041437526560190924490094120851175516372425833431265652798386661377837501915489804140917949821623673126643170191859126839238995610153932759595805303088080504701168890680513141727857928031024166136597916399102145138181381755854537592307836323304438005400028436680712665802262263090708026039569189500871163744653729460857948806150459261287623525199333682029512179760669527840095348654159578483561929288754454266048400383429121732712001282911638711911083996224631398891758465300958526134161610710745619123380491397268098071537916045415020247272360945073044141489516081323758973795095414829066572811704317177376574795809931407928978789554574608843384099320073819609441868559319548160067910975758724249451783057459957150863174575314872132481357687556248201443384156747760486897110403405531121324329714761032275158796430973689108739187516852376772874106559865564365268705180951456402922212756333002355331967690819171110228530599894883137350587419720973637539738983331743391171197997898533355286530859427669605948714811775589109576586212073213253034979212590547498661148770482188615011893613907541563628114388872908670600618125074007840876518445775782000260385199432287943348400458891176171417997137246587751667664303313037876340796409720156597416631021739464106601495768431053821808443757674562596351518979464901617044982907464542825553810988990685016511057485924276617527723366539439040628625412347479053946904004958133016387393106395346755150236528999044509065359347544540153417361746378566680809720374611145941629443163436471118341666983298443004063663696408903294341575520258137551478235668166534946103586575026397368763783810857125921506643428898885052478174440299618436870644388781217017996981960554774848654593368224654065790762526008131260257759804684241930711376443948578637256859928395797190558771056577548813030166623770222728135654552532868997007471606887310988660925665089568674250161695099111441502472372678511762907627348241475183681997411198583816594137888607649500835855622974991932075564470726240754572650466155820714609213231913211008599218662143304730093433251654874937068545705613739847045292450174136700517142152521579547873593562923247995527853554216742921915738454284126838511943086318307354190681332618239564349190839290233558055039763324927925965481866127808978284667101009490987868611626409395399516741549301759740822152486666024631476912381671110768865241939499737535163923767266638635402813649529852033253666107510176178729065810523930939809944558916939577887858869996064049400113505479113253885899761087774629438724784320264349854410791422154241831536254146913583649581927879525983314116936517159852166456482863248420971860965738968717128543496137811147198394015222341665492573917702969527475423863974300865956585009458477994211707612990692276361621073867050061144915250406434097418481898084653184402036491325672354111826491633189640298351988295840897931652670470207853952500903072721549582313121842343110418859796905215676226290625015843339039998357277693608899622712134612532493664719254572196685627812975747802968664134229545031669883196721485855382189978806973716674582317198913826906165687305980301962254102392844952027663022885867939854734576537644315881659880452463497584381242990911241667882436994491718641411109833366540562887865178100995689750991860810014791361619299423092739717192415912163181103873955103556533031759921767827762548900513783269389886087802557843321969457252321382101283848458350074363031850295338143580051078539036732747744854630799619119398648405044312229765412628803739708550161936719234764354570902982912206018397017699859741650643575760171680141529334700779535199002503903595935063450289692251497344814632367796871154958817056894016330615271496915042576057152155459647567750324359359910043897035451515057554587264799843355184351743117932887113185555407720833202482272192941450679861522523820688796621986935588358518769352139945232717187493134880236939929127455268460056007089013386070000802307199050757302246282071556624843528806983239368032663220843995002476503328501318397283690536354400605582366170260795039685113756115987159306709618188689016709650832869372369411681772530140011361548853539895302162162678972654136826369479084791552989433234398508379120804613006121291225005911059747686074865489110496996292929866704822163036177490249075760561948774093066432042595236694140002786574754107108971077110604808611615915195344901044898091142349152667191859064707583379198572743995597253279714497748054794091024559006442986064073382811551117638068743451364753297257777312028917979042270427938143035124899608761077889722049981699909211125709961501207373851893720470733900532104750429845864486849458077533159196421245516043231493123471502205934492380446597505937742845081298249439009006556636559526485008229216769457303725603681286877676938987734922531325856388947024956142130562590193360760077892240224635664227829674354623048570531878304987884561894374587766502021577564282342458021261278079326751284826699120205830058064984151250074320768361021098863034496682906099294855836281641045470434125513077404252363771470243348524877984608041454298141661327557313620665301189326741243208171412168951771475406419954848244747288186344113210736184179978689977852431656057545110847721658373332141565079169292491593436674825363959677644569208015162622134857060722723948474164657478258974560250097086908094434198936400814583060079113460779208674889609032060736241239001747043499170324593711872913639283816596637846390223890100935306864558723384556774518348578071163727718091588844833904487197232343285888425628199998728266635661047633258819761614113862020011349799024848073319129448310425680629528749001114812370895468952830707712295278642013122520690782195712284282835661277076457856917853871146531430526796374441028729597577759666182007085965715256885892317900285929810317285053792620029786216179367351410248696188211619332445937736389748907443067366347594257706785130913414913420490617815483298201548947614338687130698666486031203869795574591722938315774319312697823026065025295810690635699482993303021060235265744427481662511718825320727827839651431756606031947293549568844054715687911409723481205962732662075892705492562409030660060001493213427694993839854699075208525490098392672720553759667020014409991762831985470029879049674396145995567624291122556729562560795854746779088842816940661112936163149342947469205590481358004212130465083703438786423627155757536067704710135642149202772101740573545914920188020839997315244870461246223512679237631477205359837807574319865204095890814838056012525447576017344098365417443796257844332725709998533698179462557251908344416748741882792441071761934194860132055070108982337991647493999641365936748613141127453354278898793903215488123795023134878437543208668008782764355879779301218962105389371838821784340750165093633858543385097082948970438653627374856331612391558703800143011380195064129283582950612331623665642308928816275683320034728967926214020856019431512685020691979427657572448737554558923628082981428967189902833808841804022552886835212170173057440617931019740500337064917203084008313917066071812339661484179093049407792388977417789916781813599132988109141254240157896745631819129103470477921191387858304109896774141476266649937514383454798144832363856929134345947044582431271038403209428818160774937463109304667697625999670726518463408957344580209915420033864173727802655167490178415475953775736701247967513453729075302781556925088761256718884892007733739231275129246946977235019918821516076368792585564116371946219423319320951886601952863194653749310057667623600746306308474138698055305620377008993267678982679900734023307142105448687242170939706900874360629119667644760405050064412339422209539646990317255522025159694339094765611577306029248253359983152428643646577649940773375124230803080012691707715390911794215833700239464214895616782166266684212195518896580675165633706647110165643042591051895688628815778164520604302888739223699137813989985481544501073631959049378639837842024181687279351978877096410421134847085246307824574566028403524973319589360411323255010087128285423974569321016029396438798919046982248217800079107613219462492224673447165140618220406520535210836802191183158314152470802059996763482939741469233477988320407658382897163673809376924999553775702768073261686376160863131954085791780023033954061413289633694741914360071670638625315034828814624746095679315649219799564820759637911383429338450516299295840934744026392065087300097285140231035761737052760106588867495794771422629665282343581812322254270287131452842391444248504930014371731821422378829737224152601148230447275310828965703118675651621738056318290589769723722939941247282535218745478467592428718236864982384164998345403578833430688529070924320244223048456737705322507043920217504543535512200207344578411576789238311223251036002492179273975713769986307811149259337623089555059495647792308646710984696582774530650732674233162479512747674311747308742670296366218339173789920324031949453727527316350999177750875823216443827998507621313882311199832695082461168735604708084346608774355884472555930181388292974251334298780838012793493194877825887554185357742957312683546691393192746719181431251796927661306960116553581577279578641761345447910167086136545200085433121614151381938309763406371513801018220681125765637263600906914002883640297253829645613521832108522687560153236534625681951201168110385508299516351322541849778519577652044874862203752709124829499731324636628962013138193547694247928516413993867668978624215059465322970827201520238952288972021295252615624016120111410031139176095153170260260460999645654397407745536899255119324766455220417272675392319696234635614947469966972989282368060763490734074592185954032073663449213396922109395609660687963946405726624048510272175489119207811131623683486480303470618047362312822104434027089544278171518204584517973927458122591959366230278316159349566118769236838935437211439873804532453296083934993642013919369439463760994366842179650776220855501614613625653349780258873876127365157053323096175167457062336427928958378512893960649629432456386795452270104717422283279406269850386561285540052371259552981429315548173976995236424220816770516122916231898797196413323115639131111859663633431936774819925987161757828751217797310291593596513960875344549222984992144442770828051032391260533603070256740972145967030382337875629131506097909289621331652566362884900442107450140639593752365509721545090480925073436096254329344387597434111699854120957218514066546727965154382114114567517575584198741001803433586436333777971941062644639393511004174211643403935474945199831455571056458393458371591494129741606197431613898639717149306272062906710082039514154127163118330103813682226431913018041535161993471897408194593611080855178275069070948767335870688578474948245486782774089291535068737338455710917946874200209256888189516030611499117177465749446314051242757847132548795278661659892560109095093268968715509404385158390493668825309151132589484218785325648856043435343129195578744895181373442851487815200149926336599517100301949165597924915804558739896624962891750871078686096221210581710770161621508092394838201709599387733772667433251518204232547912947124437981724720036837575406704632740512077088457264484275135822986792002022573167498206425763583146044508699953340701002523086665599099782106731942429284990672237663564315705408058345959034493568373139754046700498494223797910052933010047985659697840152488314006511215182940723864865834294354284766870771699759447952667858082534903358051612403298633653844692753173754676048988120057006054752440245974248775471742741896314641507231129342798374405913819213313220878206629267855842721684820561389665845226480914144058895398694738913886900214775255013130638883978887234236684325020637724159093571350211379216922194902020318744536601644959646543583735899681333052330498127663902475049344470189246797757510917708737859846773299403347496184095889491970840785307738024798893240744944931522847468414736151440495872658853346950724083637559733856190847683816930272120080846796220749230519632079585426641890243982395511565509326589685143621672312240759279977823435681895505495297507046246707913396054179998285197396109481883697464662335124893832261641520054975769673443114679801356908396453798572419687689399088538235290182022562732810898806671672356240660189409762311042989688928532044691764053275773728362889877455921065665748449340962149747471031676838155706562332676022011498152351896734730429744221173217002904064151670490289054436537169965190196990197430911581141995144279290960768898378992147394282127560865126327139847583534304521624101454076689673857210571708712048301053331966236216516151199121434544543380532584929286022237590300665827153842243355078754047819955065790182839579281492394818930409934053869683444960432508609338885240187013304876394795046474700013840624942246898223921768223232542210004640302309802153708452793776584326966624675692269767008657588179921746866205930931352128201789429722892389677801530006530194017170858895156919920554297423334018953459445203249567158250862009300151984278823573235629341986068802213052905415185392024801699307806154028793316105606048915624694151464358650253778586419201606093054689708665223025379827055476457265883164949261515256745065044788140416204358244584439826141401990295240003628747136049103141458366433821096486131626592206754542870994068915071545329191997617597889820562050782585691903588520191688960032358450477736138663035308033869146463105377750374209158893982444034959201858360749932950748126190126405247274801844615864916021185504752531712311983343732351905297366650686523297716742512122379410040195628850127959552846303706831003870240176608486219086583916962309381180691313042804650863217527716267377691479656962543666317313303564396913578346542736514523311950396807182193498401171985538104719252993452206367411700563631666528522186063582621181605828232295237518405896319008031613029763658256799452693534240068138112382146264997373558558312675710386513643423848609374682767756498580463066024534224826571540209810223435984314626428588206639477917948062285131893781632169781664134165404651699550147727273436087082764013741541426324801221442323640100962227227310151444656713680312307158589798841165454260866198679807186355557489792679757051539970570361213901339310331683712614602965120892550672044616910008885642106757368598526167962808393241673414405563508199816626839974274229796512839185261217426846358615870401272526349683798318309938716667108302408164980449153965248016967108515589943181181997752339636277692682871498780479895983313055428975713246711588905227362280503834234385089471344969558141572738167746644646555017174991193235709929663993032391216988290734250058771435781559256775528484882033334356943094966405621676769171061309267889536869706196637641824962487169192485623549534444935179263577831416342788851510263440716203169211447828491097602939626861510087864173558077666307648151155710920400734700242265469096843537679724612146233770736084680206382829985985635880559234955741976545664082236384497429120361755597825154901814118284452218927315509252295498505619951516957552341751949824567825103289699326659843176168827183502610364389152643443576914467955879312444986312657038397769941515713630182712112499740370764100725712736802495016856193746665121302128638889701618122157552568251217603502488310975244914575224501581543554258961855348888889445839517908468788601964815085939386673809225235110990099432561094920722463235371233300471719837427844401024351754048070991313336640652773213132284729658014821173170770770201149244308013517073838726309310836187855281940565529221329790966080947295316185999358291603052971181218622667310765651797358360093475699591774781469975002314066055022891976654714909138787142150693438060030624328672075513780408789047085387552436310456914858397482737046598333383638911263887410466536474662255985906467074479361860460118967064964365336203023841660405953441294735643769305535889170679815260703058251090120946799518577990425097544956334585447031907318801631952588296647231193141815092926005888019334101463577048372446504891108570041964168042478861294129674962091840717894425821239165588617182849749494900500163468874883458979077084223865707536779232222647504871476759389462278144513653042410425481544431473688644222624113934739462430420831387406628167986247535215625665949675592920143240124435507533819101056646998200923378920965292440167944160936444805296052705502776024648208639638874154216946553255510033216224532370810501360753119702897102009423608818826085025379622785407208749211051211114629560473477241478281552649175262658179071843673524747647102592685921916265700170792151984518164331455521806667907588185970547612148253506874789834355497477206790807702647253590584762522385401396121998963272426461788863268129389533943942213347127511693988406798836567046991175030488123503674046422485954123532307159382769654614995609806163573774199203199606452833188244074632424995845872226959581785938066113949117568868922719259342738308274338243468702886941078139777194908139957354036199478886453889821409981536281871574150555138923738264472981260510114887416589757175484316614855983743487302595607462544732502853316631889402946948907973601789285265462849560179574954061093810408865590169745873823868567442553895656758074099382722455594949392089414290537609924065845353901670596680447290964222827767992771057834340447429367508422407806900777228740512104858044635558713997120706990753476525122691581541758915691270185767934603072103163466521579373673766020580052535368647825186914478526142197936092418851578435699045992305847079166236987462025678498126737365250400778006449729679708258081532856485341207342829874464085352106618165731098860880429742208414158654747592956267248975528733610272794081652039680483287968311750552926980833622662360774506937310329558249668038483157852694332890730780808257214529313838053355786320864390055378675886053488197913842194822947189400227724200134553693051287179253743642259428171973964055695617054500546234649384187610370183358936882719805351224402948500151489129511464172249797599936816898817662846167867826243022216365882152342277837177086506794256823610373395960076672311250048568091876372628595037663096465556491007738731463232014601327343379132739788869111701730923055805110128665349922833011016526956798536576703407294413638845792102651068620331801935850053721163348109776574319636456579495251625258901129926132478739717056728909327619292721449852485812653591170296649471919499022018209553925840922057693976624735252162279881593417596077004468973992548813421854124866903380493698049325962976350508423625336407426151591317011922218617773036749362978239761476039245298589552271855014353494274539184669911003979594807317819758079392356556866026603365382071324751799250352091169879918312601113480051170285833668570177317008901866229546928328363775710837151080769074021698560685867022858022935955862836917522753553130418060532850854277088070069471515466564519676598788260006543939205095223238112823750784601030214059873491080076594879991286031870977162976868479268539458744744330861696416049500189369972648402095193519857325827866707599632553314746605965753999807428838485877151421399379067112436407540087440250240957884324245359800561902390782754668377490148903120735962624712265558594138399523584599440363414006422404631337826955033397235720609608520639299799265643972368296939447192316067832876913975365401368076987423198205739861909792684718516450984276488858438831198706272038546933017826848255347362189904858972589050157310634872384081824104403697336409328992668709164339999870572939197866548004692935248220643639026567157175445385348463919469609213774119083713188380705944562411501060180994143144993119149652389662730335043102989979318720502022716038742081107019697090927182000124026178542325657197745221985551860415526882083604138926841201792691650441248483863934604862278190673038791044523317787389919953229694754488669025014551434648639648886188538090842458563300005163207577690581419234690500496234830938582391798948881492336842665298130498926563834662615394321564174317944717524323657214067356658901358445745401925539601041068356573733423639021874313814798100653652731748027446402045992264252155074933087202739407455966741882206783643660622695466190628318508726291911297868680445070165297609025795191431460921565509581887851484096115487958681876025532401787583265017759269475721697344203102504117463201860306254873050244198623936858979193845397608294541656712211285512078162393645705367778244058711220584280665585032403620176680902425464534620262544059539723836351194781335037331128722360829631655743834048740457281810504388802660165267707417127208415540472006314004047684770207671367720022024148751105152415576008834739042868719372508864657497985757839779728222030325951938614941758327697291806792413857309708165845033230015047125172015339854801110396227139877211899063500970149534474876846584010464385706135328776957979995261791698242389304876548692884361043533980936662463013749725536705604405837696111659358835020585197214325218538654820711838543528597877270189597092285153566180013696076617947933023758991185672340689669848566289300846401319172867568241076355853944914818525501751034402415855932211726847962955099197505330234513642911395285342920770405240451722150452008374573845102269739471296946572726740569920179553269834949932981881220055332530654460201511549710835598088778093466336886786848623771326015420499135038189420175892198424429809628157220205697414637318801999901300373193856408678320530467771841296837905154787745981942290869478428053225682052032546208895410432970584987640380558142380359006659354243908776073307110082684056756538196398398319724237900405159442293331740270126908441324616658162902511709597417696504925729635572185910791559744946455876085519994160406292013469640700831543491389683589235354939844153619705688357213883848161135235664223193473790523019420524000954016579229201481982247226391772798097678922685166302833244290902880585611698801646969180890038457984229249152990161552734702815978950183969705339701318874019971595374610503885120861055064379461853853526048604139381160323204798381208808458283816498619207065936298914428914819704432466287872326484261373110763803100705703625131470088302050540338732155330217719782854971056491538972642480209780801709403900421886888823192243908749484351150001332695242987380180103887194239709846748514086900223739265347953116095949441814901474921504697406851279811365768029430929024071230727047282249114391033229739805061359438142206026993072739155104388305383129414983904776638596979173394590145569808216864189583655004528367752411134758200582490022071660241422884251750662336896758273617109223775028166923718672403309492601791811753515545343426034410052622691913477649641107890351888915059393585582566182276506056159537440565111504800937302490296715940147137043539859054833403558737033562733401969956753138705761565220077840202531781181191094014539021944222680220994695362163996310759705629904939409226173272928696449323416321981624609956385740417805451685107766397287273709934905980044820543663015711560098490312586662461812828661532048965316882835084996658801701906047863888323077134972372561019183524356685198381975770816672850210890316643216008215372442589025393635701008839740659859397144498388852994930966455084929981196819053422121537950144630284868924652340872489123808398282487883285335451495399397496836899905398618885854335075252609048427516552354845138492269022272191249162855993849218031627687371753811044223416093427207323020735188615672020123025789596983476762120545404316756834120064526639910146683738371376078359458484043489161089047775104509142378633539792302958081633301132302082362621006161497819848985081210253594148987051155836770460529466280489863710632083881004224537255817235645640749119967498554685244106837632569115783187168209293296186389416093744097749603481313423684020240826978589325349212890494098078455478129779973048139212565433148715254799059135016411471541517750350213586429865192218203881122827708042571911512725015033559015373771524251297922197011307636677300048265047486453409273917281705784501329604903740769327224988706390385236237738575816929464306755799127026732444601354343227592348622230888636165394210484534859868996001331854220975180588376324526034453324714644447849927013838308024653692432682111568110129156239337790963709369815755238206274174176958403970680300315790679359889654654142402286244302115243349586321101779035655308963400464391922915081528632530506989789237184289290034977390142710580353714838328969789422757700308211580589826285177792155059497611374259413953835854101595503712787696576263868277456268624294982149088082470677632805299640823353260589583349955251274345528862317289511338711864477438882505433730418339002285661999248200849796065548410359465421187567934316344419269709401662242720510191234848192590846473946507014339546167294080875040730790334455996404956194734533280985522844304184490915805678818902501120958798032425433633714441520096972531810240310642118640415657288352703203162576312203043157191780918479782085918908538982053460437643145307600645440762957454007473807465997118906779351752972744513353057279212774066696505271035689265669324307541806789130338891297502338161430755689460828749729205308927866766991945345714325170541268910489934626926271694918980822310248631040577622161065883048134706975117541045720478382621000510561620331918634984752973262259524846329881551591306872635544574888354886892827722068307521555707978541804500679436216931133505600973782475452771355795063177108701254742611037068970080479389228460763175476424152349791615382256388764832554099873348350304648382586888024630731519584558213606389466145723186475393895936800203656505587161797799199109331306491954140725442582170546467476322322748852274465817940207664093027798480585583259119068543470055928872244409180111321322225243607089210094282625731241377414991949359146049628993047252857160963674626406428096159222467215251143079952425523863584519410764809876196593225688311347886327637057361742186139509682618043573169890838547636484071908667336937345195151396440101690856081566839588767230114520903819895943118818002474104717381113355140490643846607716174003723654303167825173786827686090531284841413997627095864095000149889922753328359609152447753069318449861939310536624262976005806205130475130762702311126587504519090270944716287829230259480451375119203306339441875076089928582901432513710632865566943851178524268487779247087959089140576078772664802561023649653503517181017567406812608967088050055363694163447134183986521739536511274907946175135641334250369773152896180712309436842466558158121627600715603706637328162095671800562548082124893386906048871229892678730931903700737049063231806163009273751263451277413514611227053332796195071852221767868539262895552631964181571129234153467267598888834488040077160140430770933223026753522277206651229752980668419268989791100167943374164360523374392974664413676419891309511134684817950001277874975933238360334011850623685113033550075668675839322478440934202644561724821314370516642238184688694250922978258503360494471615912260222446885321381602335971773666214176740005439474200058917645591731759642899556336194415527855865712719687708976892468724183867834221511698525554956752401973890909424781446061656938556463616116983900348420403754488453167161702018530172656806861381529359729028002178279468504969126486103009190701367363925323493403999286790015548897963551285348600201898796677042915410369677068373999262190723989118382271953252658365826440999848121665275780447509487033390500171359968012848778204812153972080176956792636246825858312792505700337533449212058632716570647129336061049690983044276520856489642518988309262807459235873220862930390016071716208600498710632962800340127422747083438051713750275204493520398531519286911996279775906999176551070117023936556395044203108670502574385632148835065771408333985318622592538606042461872497856356555065199420922166865101637049655427654488445641755313361736112808056430160358073425659549048344602374041042326125638740804299422374220707277323129921948561570254063977912514288288488207496454947701157079779195868661420153114729649231219014754553494463594834670511259939694903302107103166422778236720814584899924381177071891345126016438587260000117242358812550444317994409604659803791426804880523409737805382366338640745876975218150460673640223643079287297182799590887624673309236863998076648560323065911564706195989489084357306908744528879779238602287227343417973705778419343751767672513065328725979958255253922738328773792060823387450530256928932779460841492027446568548991645162592709268862211514027511811521512652886304743483028431958456467694054936495888482567515769018143035795319584058118736298594489926643071021067635946963952357253957388120758252114579811468838841951016551494191759088097210431722124066828813876589063186139932801250870068708607998758133820723671141830604974192376144033094779064822398544112200062762561899599921198773164196085817742481057976313986559453736170834695160837867635165437862515112707052667532702272819962359196013010945311286386176729233966547744886047280338478092109802291111381322796819839193911239801300103502640684492516026121628465505026377899116121897946669269454854462024152939348291628478677464663376977606680911384795921854543636849334539328741392609200420561213968925597946626186388076289258752517826245791069680170393816918909223872467993621165056085867280940279274405919734703943196182069901061966898524176579480016999324345972921245460935987743227771023347999299725946042216074363296764519077995014463628451479894223145198014852830126401285652465272179882612364312049936779053061912025892765485518719372780260063093653510063502711033965960307209931025564834974713829267680833754361166331594104604845414550278107347702841464322371698189985252901406901084160730915817602040298842430974317927361790148143371640654899899837688471358554799494669167609473365337587074013634991264652203291736688006422586290077735294747794061225960062825301618976376868779343897751754457399212671909846748908296214403233762991482453479134467884475310337475826408580832188376631962401724372064609039850713261194188859201976705615814160923310764764510542444285242163228132234851203223562229007121466358946650109734186821041440096355991573673307291307538810087788071613405322458106425408876058652469590520802072844594363043394024275824819996623575007979876195548215453354224941027064540458753660215560243645907732530572498874387315088867953507188696909041897246144881981989701790448266679964950245115111045822558108636625117374157305615536874718712650731251234431552707102028081146926734453151678043126289950072198011700940109800507823207211919842734213260536913949901276514490064324194736966608756357925788650163064454848998350307524346112503837023952858783331015730493772941386613052593965627375894497902135812999717927452789188705293698825134987193022128394409870851770729475432560902513603139575256021573475749827052655819458582043478128478245999057525374864186771963870760915588417747482775659020548204288210300745734865931481484409959738171889780001099676697660910411242989138765944246687175921715211288754739941690956215069700173878186761703000191292197518963810248418200420523030505927015736869256605397191560203069800895028037281981995462792954726013024128941245065361173983800256159156277877965253952182895232382877070860197478231014375870644254659727069998402133908536550905544833773743998259504115969708334520055641863622953232488987022224259941251958489160199425154588714122574030039323966651076491168097345362385427200913303768291277367944983214173028559886585056679070182502707345639082928823862187929588202348388404552965261916075084474891161798456156414763355132445869827691413891797903068969307891074363422607408417573033458992866979656962454156398979027870263254289722677800688231168418099621136565465763251257365553869957300725078352610107819905932551400131085053360209277525834389466342237134603889040134198306853870068639645480054493535981663436245246513887739557320690348432791068444075472028470418073845397141989985596482735815955432498596490495656337558965939385368570477891672890597306304492989620668127741568266114071000280258993576879636832589408692099658291060742910659726213885061772016812118612453975798041781398542738240727967504447759684711888153205333854196874038460844665570482424167806637735112058200966028527349981848885625329103032182474837333776734190544638223092054029712950998986050485998606379006181780590225563092972173280311974361263762032069351663467506958800061289699553908243887896172547193335488516689457536403758115259376698498674228458369223145018965622812872655847181547198980556477159282461599753705626877083524699140337912884154473280486237610453435401807673303214865276335092200325568846915142890953910912637330794718703578326781456281344107426053767647834000961788545821811956711938242432651585081686722670472902269904139939513993315667209508675127205160720596887871773389757550865857261691008808841665940461761806012553397633614732273684195150317117897633336519362168642941249332011470480055168803229165145706346879209804232816354798387106613762990324923420982059845080167454025330130818448803197115638557288030587929083824795307057729889672699357096487141712046021134746408481336783958134351517961999355703316305868095446434339771696019871775784882571622523956755942378482914957817070022312424971080584703361807482997686612682612086426183256553603215696529001401399905081721477353173247007306419717902391179913687662888399181325994566950672677350803477545276487575930678264223860946405406147840248746578122789812283540442037824481691428355466219230030894004600340354212458225273339900259385766266891002338838873627684976368229441165107299347041998363589851649047356390930536552499458387482527311094169711119613138380593947778928974331530272659902911398768437577370709230863363827949204796181030955031877154546194248443675929143846989013173645976531211897197148860900189380252651145154262396988037778693002064425264007559562311277564225803009757267447984689305889235563969339802379353795888772188211531389555911614202749054377541625882640392623498755540121337532138714641404302407789296116274593668785992515041844081528382687236737246126222706455913757593592608489600095217038906104529484920136526800403664626348825920240374090248849616299294244959130070829837353512593904595950505329293725397167562833792015660168709757898650399287099652007579563342216342130915865400021890959269258541017498448646581990233258791189911044860820669644242996091096548630404584884529163470131513048090844971073189823418146161021166255948665175941743563156917970631392807157057254344653535219737866045460274635558843359239543081373686481420745104702840830854090969944397944983554605694500718285894758159884096627794742805326313128635500615421150932625340665934929210320302238095654521159596679360119984161752342873170334332955557779187376116211154443183094613504030012642062224824122568409725801206093817253056156462498763371407674999855504311255618703361923282289380688782822818841205735843387057034864156320091767819120142042553851312047575044474594294430484288001461308165230623494525852461667525731618685470276044559640971224504187720334605055474746663132594362531596546966671583351429471189960885872486003209733361803293099170283560281717316242186133568628335449161239197003976740413575771789493110630954299550380124992714820958787793317231200160759219934334492413649084935693524605633951604580437363448115299672825817154453970395530330496029411967250548534934496487146100980713605872928874074562785564230838009698505023091783330505885463189401000774596124706385122882746950087426981109413395245433998586723946956109081625310609107740600945280519517155714880385953667835920185567230097117034210504945915424956011532761693501979793812739995538063674199936337805968971296107082016676757557568715749693520775199423036120618333731741183635572557325299623137339262673903680215570503607160260086970828148232828440134688982420149154238454338887943369073912578896069545238264652625988732860200981030441704686179792242300286019741896795207071417032181559925916466373708960472009510697486364669622656662588123151701867682242346636053028336211997053558200537395768697207557009198801178815681107704347946631145083830056624767587385385459258012757328633557652188744218423259055263445378435442491208652672429992531817563942736829922299649843936213234381201380505483360147295148310390282595514814224172886554868323860458174698115268901041351340289437501307977075337261382123969412542169773764226204634941097861041497766348502970750705391062723715092506365776035474224842809746869106776462117934855704639434427868017292729650569597985115193065566614992179081002414497550918193108117742933140979852130344904166114771064721733856445726831045981354050741710267879305985849351269615537683050306584154501411104636005618680031591718608619397095499074020595552082129982144948283653222161625218883370161419173082902024584000917926668676931000099620746763031896056014960618467636621830260421114066571328822761305236256876478395177083073050529486301863624551816875063929374951514826446546373313680285202323156218966908302910843635516719968599112795842302407152404422258590280672284318591146900859086784669196636129689439894125313302451276286279725353719755609507039162958499038409265819641285929302043557780488746452956020415671026687782684232623842780970600728189351656934356319794795871724064481305080408460838179437761187294952615939163497655598361066636874769800717832153829912795164236039020219185683552566523538851646338993554945315340409486881718118884433042237349312637951053740056673702579599768393425124166461718870462803245863824661246051340295143591891848596918501859212844371755311041213286637931059663996361201852158052196049832852205466204804195675146358154964119713560203265757466496156472868135101826852614055628391975158729428688014719454263187871230163012097482932575666334013938078975001929987955514643628758350409945365212338863545291296189733491335059506649552355759010787916595150896118016533880817517348606522617228000473292466539063424365775332188434314453956791912818346365372937543884333395561592280229986095787350511847455038737078355527032407658444291220219823313245230398566539500207640570361869277156797484701000551437791994720854989832173912630472006901754986673818081497057586142793533093569106826585817595072978807963409756710074109323830503320996511150449619818100061364588979106277066037272472413425881841263000583605543714802904794010287964420127513893243328956484855819753493784100228421655806543082677341111519833577806046992085962444319118604199621260941267691358774783001356510377851518026559877947317385438260681208972403918633752820208296335114108818982756355028803848477323269977851046325275205442727872678586186613577884617746078566074787086021235044784289042854190004195048962736037430715827742152324141086047596769234643276675397056521397989860063850381770282795817672882940245184678225587467418437657591868182134174784049433463556757096967094857820929952793708966102400723491464430699354790807515393110442884297449245964534965645175535956639253955678298606393848525337361627236371984331211748199018621993409605779258489331847253930007826223091878905173730214993026871411695796306862010589224115632000158692009135548805155910347491092465449855322651197766067257737054936260324689103091263820959067639119328224842673536507609628968576926529678569491012326317308770704864227263119080745569643750359891523610894289490209452592686138896552437908450141688878296847325761692552407062773962157994463081512528062095010313738641579273297648922809011190725711562293391925960098968184394964417364155663282490087966946584429635677296621873842776422271972958539287707557688338596266149295359297039167339741225936902588764934869938331880747986986252646376835500960525613600965445708430201605008455054304720000314880286156946174057840109166668036232238716177956430265708958936896070542227265956913510006076813635592553159897536314169224396081197681711658161490740871449662172734576211969315966936466184145918924422003307012267812015212084301401157412210182652513029734687469136943879245192693213932840464411916936846926937956067890703244114029515119891436011164540790503919970033430937595107337280785690122547565095842569111527226954881837120749243154174629414456090326520008226659617783204181957797993467785369716067618400929024128949540650027209815993277030893502893389657828614682173993909442672152302968121331502347363686843742488315996848485104720689778551589245215070950596152140371461647947935318552553547150383686789357855146906512563354644055392901359299632564588688198250262276151873803265699240873484676299205775042110975514774831697501461399650871239645489474256307050236097556034299845825377682614318534120427455918482777374560544281079787107062421693683729994569815678971310853992536835304380435698990517336486392020958187707999553941245270645153031360928151869559358790963888010889395125196275247939951226214498003869934308158670557460277874359960557117794088376190554731715315296715348888161430069441248048950330568077458289935375223231198411723763968394642287248848694757535261101500209114409578811158038668733788765192712421662486183449200398011340418910332684741697964758437491693830564008546952901671814283436564672145397557531073540928063850087867399394070307956039918580223753236143280934792508031946482433879340559147437876903518794586185540397493803755028957291551965162217198672860724729710694882799644834319584269438151095233087211462726382887464484067260513209419942191940812831288308905231206507237074623644837177107307428424329343317237869826676772856577129668658221088209433174980238703831942503443589325330735680457624073364254511344577258261646087618591149158122889112835333578226169382724376407119617335217075423842135156631223117712874378004463272993044647731437278855741691004730571317538505210983534395146366277900461081078809657899142150220265740422221145902219509134859076757298628949627991266256168971974070772398114494144703482391578917917624119759484833150997475274012271311887770330160170936005478916347175449975704606761080336938008322478791522282392080878325927461846304998262646057065596236794111409561969427748061145120216583812883921408157832856372863995717286196821104624678386263982210521279476858541307656506818179020949662029950879146938011330304544204200431347729353501653650694752169576873858131556436725538214107588537559369106112971611056170496338233222994746644174296508133504703476478623507990993415056194742299532361079232055708500731731926495995100468892152158242527998631633850617274868189707682547406065359395597408158933216525275825192254390900556877814791349410355505161476444485664043783747215304520678711798079768661987525448985630198365400875814410376552791545934536675484765171075056348931006696198999356972958549911498299448419386356273028224530963765374076742666770545621687272286508218705212600507348362726152504049438066821201687494486495117251035932908565205647908220301504323122327078250261789419013246267455491427762488010299131998676925133087716455843852887387303598315468934132802604122005295094366959524315729253160974229305677343625694098332254785731300103183729352053427623125044236150685717972438112266846641809243716178288482662972898985088063614458752673737911870634737039321325317484654182151547927305029656997524388738415526576610123285900552244952382350487702211763293686024701486499581468573033545799964563669561317399698110091047449761568927415554204186531474440013075527127408332070095666633639509600294384208416939233996455912066793517238213192004409463651948925902223999792354344336836177990520145565042168324255283947908094755949408562212271215638018146405573450077132805222375763826323802368875564824079143685879135646921754598677341991535111612682014393197952791133460143114013902680761391525000519856196480811384740724432432041095044003529836019360350158978521535963934212181517042890711489190056330412934853632960710390508785757131730672626360548757061935047777152926338576119179100147758152707065050146801153464090773971921905781239753095915677344524515047317500776974795262110620343531411096912143940739925697185512683611412230972306589872040756440566992482382047741463836679614724894104634056350733355553898197621004583626531486514918106318258205634965844494657492280800247512446309022638765510013294659235410567051713766508310018096801212565167531248527368584211689324430687060469151166086031542232018761490864370183389183195783035699022225400072096109200050946268581020276930589783121679454565968100913870346539306326824702001507442107345274328741021420964159637857867050412864773855146165030362452891914478304579705869101633715800869584742330692065219223169403083679379171337700020216501055142347193098855293830215847397198725968512697949995328512404311758507827163594161577159909697697309772726098898552000202661582670192082984803648719166351530597928771417681765257553925306646471093050707668936020880742842400274042597001980961056236061286215616999700690080018925398883631786631722621386510413987411879868972532693166210039381500859469314817735305028497911868190409833396837695812605912523800111428405221392249227276274989415482009270261575481085066482676225885189115204375227648732025544455352839534010868080483666571646190788944245851698983178858739287808070347333021841402669943881547945363240197758615799064330150219164477641975713871535287635147797301889409940725368510907576641318068957954306650770587443982545129633636935226489407207992722993122306486953865965396034406777138380243226905094207751382591775205402423938842571586910125135777943857276289504356241153582907419754017926796317689354936746030076714834989413300154995907114675664981791864371887452959605801836215280712216183028009104068887842047995661745755932990402617737665635039580864142698474314775758152799932802321926710386377749624839859075664431698076256017129813848431623453641471561468124745413400850849173675406971591215323205409872702448970507092484136196513624478962587762132913869560858160271006354155537698316954375756699678597297320176425219371099797133884756504637186587096976568799126602913427801871918728884591645723286721186640859834514529911875972943274328134074343878609284312030973213751146432693571269311920483332383651881463265683988343884120610944207578293735384226362850537431958530255520611034385372026711278859655088530574980215754993050624868698584993195613446437334701950098547581543349064866505424753390965333305545392722147771684956412164896697985604728418324759123369923675252160589101075378020677171421875049897807814166372994533442441271389645710427971690647595180664810378415268805876848698073308127915655796168804962043749661676594294532053285425740694751844489002210802964861586324294633689488204260602489406610887188187048779612527279158935447646800027866297589355393052294068197194095674155872563665839401236589367713964816480188625039853828822792128199703207494326441533363804455069260271809388865576310573186175082303861531710263339682958172435239537044664598761358558730139534021576725395416470627634642298350597539762322077856317371405054730625106944707962427768002426502687383524773526162658012573213064988706435627827004845308644028656807736178829767476493217238158556091560707420759156259725634259912129110557428320279985965114951227708457361731343425649363801733532252801325182095297082398001745104799627488632624786461208779171972119020621642146783682028391053662603392185273955957031827321457503797305407927013528384865547756206729715850784696073072771055931424050419130072394820989045271362308167589067911514121725756266755381851152083174033139365944522918679676715831990787868688085833255455793288206599390284850538710152144685569892522105440595483746109257925823949102516351656740670609101706899888645351125633872994517760228371161164175465584392536894998325874315522616681201205510655748606491620994883774551712592980197971981707092378255195657472873968405553821569077293608894424741783525224363177819289940273542957529783007325600100300176413182691314213163783003415978758552963567292902212607052609225737508248901791774952639332191539327429469672983520568690113322072938294459121004550784922763482112851238938565391693051257366367028003974224006768814958502873037732529052303963028962044639395954650921137189286017546823621636256243534921967022302223378060929605122260752273518972175613272625039195353099612922236514954031021743539500221709071941353836650288789732637903075965160920301618286454032915655762942991186845383533282313063108571332652398999022105310990710596777369832875676929680281611635063313805216684117082064603783211695727135041634366196994935851603207619632428775251081959159090174518860407556600218120895956529173263302635284564086886639121353834018546655650189060604150750537721919727024286933793805440996676708707649460917714195028055101499786190880308682708286611270561699739861113533431878917620218864144873572366028244167182478766110408737400767329741512200950598679868594478879192710416162440733994581440076587907616947476625260862110938589553136029209812612888323027042209750622202924755998053882008342371298559821756160656042288685740602197117308451939605021425215676289826827169492775997839816472538086715101872838665050793106347956137385291637216020119164499760215812841870939376391024415818519349357172533299790585182780875719255099503009905725850381120479352829445969337353930777086875321668061242867561379911480365575618627326780740002113926593111420084851395438182305227198094910881395686006791007524270509631716172817686411381619328260275764882318443596888319523376583042892945475064044098140769526112069090167937162935951400356325731856235153088973163485205865906195747786172600915846000617442196624339590431926475224890869972003710024161022675828533764856779607058451285386344997918655385398424233157641793498212931378236590723324483022826342185380182489391524270727255810019266871277857391203626733045229022221638760904063875084327420673805518244643438879056252717629780038597745271762469819611005368445547105816365566883714809532355318316960494019440359937703524578181949588156061404192266732595621833257367644271958035819314540447166266094738337018002581851607926850299088407888956672276188566616267200603592390481221246351936672318898774111594576202110653968762884820335426099699547746813209038587789642287340074649552892430573349109143065647738543050534492501215160487163777057131254528144367305656328388404502346062420256827053543718820372051748885715498488352746256841951118341967285685718203475232691195466219722493292173248681913810575485668719432958571447487653488549091284468374956200908451293888069934307094183205030116841176860769779611613106767754377209290278666651358528535733669473561056429342574486953212144789740759837065347032559397502014670352038792194573712992894115384996738102246583497117831734910719459275716489526863574720440889806492723559140593386397845865562849178146048436543694551015938606717618012230776860643734186221974314165966272730747584962598283527895207998587627572586328522009517340151905540258461583081083408934905463744904300653716169666922151965466270149056424928507608639352641068389984696944402794788241457776473875892678930577499111878166929670444863727849000895858229002091630240678335227667276384921900997055481350706454271136346079280526451392984368684357491361697298596972157577638611341958684571027808884808008432553242420973926849457962505806092955204529847538609940206326017720820258669796634676341957506069604407461701932250969521535510212022452584320361808730524686439898009983273110366602929364907118622763477923598857905202766264525736531446565830895423773242033914768103826563659625385976787546157060484191302628302834590266664410351498469157446202392932522579782996191187431527489647893199535354859150404638859038491543239449024650520759571481285823808303991405420976155642572028715547326875855130491649988414277830948105320375875013857466689831575305178809691999502513400215881359895638339759127467594997893780949435752231619647182625958831148313923775205526304708107014471164344198621755902889894090751950838498455791332132511742546355679508981264296859284674799195755215093412165294366228530790907947474258444174305261171709586222640899940991565557697860049429106000570639075193309623529219174251534760838854981291403370532769324248914276991658805887647373007531915166209138633161616847669387378717719018997605153731382378779088851398926072927651589784109940946735307898817249919093034068433550256873882962845753290411749572386159824485517262532067055859500154002321217669880393698237124934855802964340702629754196955930881271548302006962710466526252474416984927445086373873947422837760535077573627074785176734046174316368784834025222111139812056933968795912714474198650751954591353575524231366864818820659547945539916378775386006516517511406789165909449371850915174192927979005290132670420099778346715861854776564530319166425369720917229235524185596079940135249649917740415708805492474498538577552629450147576984336891348135102096257831058432317917719729621191607459100802858127969606824699183842265456142902521975980302384604567455230992644041065624165024533228416088340351582923975326846461074859481806317745329759628942897095816238328921161538393223082077033682244064444078442462857804449856030738043593578465240106182532893610667491271423441454776319390651820098906722792374629209987190213389701417238127437518910982717579635853981662342652786916558088559352180292620566288667326642171577147409529192235701449233003370817455577619469006195054803866374639993641129567813332725919047185051795773318370891146675089404241681207184826595504508835446015532513891153456340980986348793437372349856827434354798280413872337730046713816259100575722296792457941864882522928591642002945559831826623597317585297141818384422214537456674169650576732874995925611313913129997658394040790814086838654535132609333722264430577166728848964664003743984912666908520395907553248363676816934275833298490564677169030570851445511997348529896394984627252274280014111896298011382248266544937636587765122880468865528954952358602138179071577026104111728700657565688627831954867506568880147957064956290828141096313953639185355522604924926913386638853747851357639787598030909979757527546592308620923321093984050322186339807786256739220045347299366300000235410025340954074523914625632636448987212110640227898798264982041763010573961984226115229620441713049084512120975256478009697527676094720346994037703399308105052885042032900219669105988581198395481182660954099843293109564602501834203491208756809564253666625014261511566791271105809042070701021257559217362184184575094486845032781801442809574650151540850284199927540738236222923559048272105202086911155809556335322818213802679364602079697469973704957646691698399788233580519763338274145637672039670200214629449765828989537298295895588478017636660393829687358957691254713820476801517724644545838855426542454167777387270257743063897220461479987763891239982747800580675183792167118292278871129265917897492881038991597679785380243716396658621700400934271100698019873050848785932595975197587048551151815722851706155050036990277083717816199063294329924040519089119350655198678641416376528433048161949558419738040883951296995787069933336524700712241885646240147780642583387329545920482255662978408304668083232032485556576609162144449565727913234071607828099785677175700304847332990206427875849493877290630772363552681602281509482927152809064252727978260276317063379223593977621994576884954704978963119479234110730516138750345517359155548116883267753297671615738298640166537707947701236198730989773655406412658058855014875195286406244414940011534517099521190373314317904233556218817425625691955900822886215221646072364030166719269000780620772819028753050378414192261578309881961625146692297799192481727635040772499902041451652077624527790006917047047452744388631109775044966415210893546413418948280235783513417933257865045762889121254557303339726036544451668007934885044517194507652442107216442903171149796344219274748052374155399060834529195024456656865753284696978551175805160690214028419315910379769652969795400605705950829366081358505609294271416580154355682952955698286481888662334880990765445903965582711899876167664255481852055151186522732093724008006838974049957503558064337947061923134026398335925600131108714838711530050027488929434207700915581059214915219391748730355732222024274477044618693964779399466482526081543756076115031848688321855988501922571795192243317225540868702706633657157630665668934645193268283482804786044178834897378898153071729983708370735210691724570175590082810161222259672865204886030931087876685453663210049663773400556383680211104928051409243154058659274653887317665280364070406546703706228856795135279606238664612108258247232658951354035702063460661762440350038176361707479872081757067095755942553177344331502094119465525174731251854696061760299033731387417857555184017296868067506059225378462873414180773072566677210870244543867225237064222890536455337622541435813191809993624358031143399900308153229850082813627777721551782284258613594367021555712629911423336953548550950525895854135040538423798451028484151622333338880213073393824009002570590534293758483736747718586512849975876193347776118296300310158596549389778862359777490358732394738621313960015124263304701337913897112659295015707087275383008598454060185636231949751200756594134391260372349676128496125770191906580045995894835493273845198870522874488026932115891036096656063293269434868643609425149876304897933476640233375495846172378476640528588747216252379259587721697589071292316102775186999205817731710255037259427381667871563725023529336111719058432422863904685890200878912148662849723141228281945062625705139966120007004946539892577663801016498102613149496819291095228079631093147231336339832072825191516296077789426044542782240213571632275517544389195943430790112546292711016089142303714785282008422378237830394733024104555455179508316937096238712626256534985418362739050985227390164167973975982616097150550222628368668744100609303932483625737182071797939924459107027273407460992033313017297004817365411076539459303619511482114991379731987077671977135288932401199887086510140645469683474175771399307379988712159380787304346735066672144042891290378975197600415724588562262075300539437511490456742391377092502345487961132775569190144212794527283027707164173824148013405106772142944805648219181203941666689263565254168978897663349868949786828575933744324811138900351634793293695583712387442992746426504393984483347362991288287539318937281184143130479064015051580093831849994235109750592927516470262095324138033627993426723181131258395635097989565587357042810534767323701700991328884500494808180476258143894788012939821062598815058427579866494420081487658260988116849258634263441718760739362300737735187658986816027656803477082609873548142049201781764642891526729966939307320123347174614041896140265479720076288011708497581333470408033009031330137503162441201664741076759289378742881364663940233421156438147001895176982837929793343047443603002853099234090457912074702590400931147997989380044512868301518521752222193439237583227727629866811835023787598372609559112464838397391617471615153786406032852627780741123068985041248956957198883363541474638019117542012193781363607889492549064486971544403350855381762948246918494410850995925797406112580178086793363295086875512364497907728241665555750003291891368681820657306632022655469150605273348538945446852941338917053784023493085498123189084347751824950191259031919097529689618524296135034820961545462342643470160027965192607211527609689235021187680569844846988376434865940674640747119158561856291531463446984693075704987243808345416303280253421710740663954404775169162900875135098356569964892022764772410289962640161830864874587698691367848931438650674103566314925889881044235127787395329971470583256336739451713708616160458111534462830009227230901975777135680797756659124406891047457759656971396260409729189631446703016669305226426064990487940701074462169373152151160423437815394194941317311011391296401715864414013854758615194585502533248592196722453481013649259585221743791260905962987842226545756800809907808994783859960128234054873410705685422415645386402263774922315288194484597077927004781919340523965598923142674243637241584707220222232989804807028259886867386782523128803541107297510555924429541562339228925036665909122456942866963042476662578011500198529579012958007938467709717352155651761670155125059535371304758038904230216334522695511243668777344062122296852298757539147419269693986324261344005132799736901067415755962728603046302101996034800899041857020729601066978578793391122002198833671837634377216357848152972856868473712232850742107600210848607236423285219979394391131971289286107271591404332615597158490764749658989334511088068715845331137576735942527166006017026777967624945914103306001413405639605917307213820653131488734920328193381219670022205318230605119123595220514898223414234945010241141305257941018488117449664867531934181394117330878682130059524037045526170203180389799346722447312388084407815410734895227370700681129262168673806891692616148234835384927670735833038580277495636502059955858652188143707873814272001070119275136349013092687181341922135565574963540100176079001584909895224379878500941852671168985641510117559473896215035719639809204913550517706174694432527202272103774669618770204717481256433230548730179839211763520837005836604709542397403270920695245282671566279917996976683821200035231222823843519824428839536588369351567123941357744675020687121606576342269901501388109177566186648104166566015002599797893914627604565075025542165876451663564847134467418184328821936531936647974686186414398480689099724425208466334019561489825152105049419065653207832566494719782811760508573253458643105963582123474673290147603916826992231662718430778233332495436013707443625931814105443349062505083943034743454269516323028049760198908292954228160232186052783259502392894246436933745524670748663991970980976890057799759513352525899318645687081616631977536195578995530216357491475934117224550168662874716649548540589494003831604927923465001851763117699215319737100289624711644316060091174737537235735157404215295748931995092648344824932226095840661769406434480508509915819527298730098639783548623991611168508939308310331772934698996062543479967707612160983788037943585118045114254161788981003519039640845383128634933879123078921806789704668690616131232553789042629670493293207018355706861068311842760898994975986872147445339521210008835117950541854440978242594387822076729961179037635238619530145899599453272142734028472840288112898254206345778254040211741754724705026517857815211348248318460754809119794652538191715487535346812286993751543389655525544470542430258104693189580678008469867979651873166909348578175103317550150090735195434832431383878330382543642280487468043477105057401302440712677760035921383605519955403338555365927469605697034725085145846476716430033485284101674543761526029566097699636528920850045051196587195336880877816908395364658468079324655445514996682614932161247737086590479360715679267887514868746231645141152111629063771637815416699369382884863689316805773641807547593118889487230177387588066539284345870459660313865033137403142304679425840374107454199104250124166510048665707387090580429232196464280902968399800128417520436508894139171498024758378171739918196961590851991152569917220285234533752830638097700058662079572975942642937813016815435337158978119395635746474421904406213942232468654488960385183723140222854583174692970676091939086053721319199468131982303642710978860799269416838887589366207776235605650472593875578694300416811063722139157482048988812907218189380858579728372260386589734665087655673213668037395299773523806034959607558721677393104809927792876371599063555302988554276979213067465025715828691036529000868141807498137572791291831028227678391879910362394713215250892885458423686441408689381671475857697509928942621959146632945745640406777380607151082523644896804103719402064660854988620868178988946152274004431534200354627933288605459625754750126418188893523878915450607728904742644687215663375551103169096828238487821806198755188410058280884689308596748477500504740534488652274280379348790100869269590968573948869352229012258829738717332523429043563289361825340078144786740639805424051377350020030341918154900266536732643938006290684085159551534169563356956927270732175928310216438757214926190043517352034207472956133164323806726535174913032456678938982651204808483100410884067387269652983340029363103439258413962660803868030891669807829391095302131374612453072474680312139845471231372909304314978811809745533829868153417163013796039706809499634496091839608539847163934142225727033222949105056870484152055052098666728813962488579389277085005980351497037792644314275415904178422692736498866407322215182513991798571925872747450347080806427702724153738011078110443659940900095900084719773578549137041268481109797015976428319767621274851974199358424581805295387671658724264646038842239519023108250001796081720650234283698684753054476124557068761548499781137667008748757425260229258481781555783967568882818639746442085654995969115676799307249502985539136041382847586577896853281662617365625365803759350537083817022447051953336497323847943248067188303924766032054378132530683147110602359438120920354685959040154791365737015682281873082377696213435536509301948158710424363217670177347255428034915425218561558123201941092407942813713073850815772587733817422686265004278117367341491685225227871086804416055064990564722308878269633658204358028365834602311088655009363472611956628001381277732681805164556200200122553715994882896726490853035960614781316945538024147171274222453349880370438609244434400727885896930940961020704929923082183395327626499345504828462662171788056018147179701079488704283987654901643443687632322979962256151856380860905951225879139299004797896031200104232172103801607648312399449695064819418273604366642057113884827229987624769626853144978932793064921595311796566308690612663459515792237148381643686482167328098447900140490559747935374438641915886311156709213853097283772507196509281809454665711910331621347401663988689609104925298363410208647157032457406369954988168185653032224623966264674057917188547647186816326550970999244856792905122429998710740069666145591449457011362161179035882948997470817541482919051384288845870734215402037915360456647582265712288937250062590806644895209360666502719703800968524182889500439951949974881268834539348574005212122637002176058255022687625057980757469496566945401878558813031478220769439087628542558321446351991177164221125869164378914106432086972408134477258588549241403456199790656592112037974239740517780560286746447210827144465540932101979593780571642715406093467481912796654091934708768233294877975047834999804184417992850801039420825138858477835938121013317639367189946479064407624824274122203096747275292492312678782679682383707984475757556790868502703181003301042737460746464731804098893177264460767073682314452300120839500005522438924107614065294580990821851494983096048359545121460463294878512985711368917205829573906061832841250570626723214088975480225419139348695127280058615563094608618190873855409581298967781436604616849174434527188017615302227848125507697203131896965131076554408360065810430211963971006932752096149353809317055931760626287304546064164677589251258867294805868635216576649176186057038172674207139945089061334105190217284984417727187613839040381981362293312774869799175812927384037297683048785067080181489301801383002639755231148235955119907743323248778275102046236726317675389653022067848403623441252102995554981435181568177559003131357799285076302395541967251253833556862979277962804040142694655596443699594909266748254745348376145200817675769294007576388272967915801122953640996598450817788664230397732931594181319961629498551182948719772957428462760999008675052681211565942001028695313424788723928008686890095760676382315749568674787824232667100420376896542970149397409389319841873836803443677365683955684947753776528003530411570146510371654959473052516354633313409424891110548902755943225376298008176105077868915999474614485616585988220182225433265008985849453020067452203120465685698426150463791142865618394142705471311903250137466775716033616114163432794733170511318433132260991876643677716431735175616145214431543647607578321510598658930939049267189969969115527225047178781335499653814398377907526813562043063176878083148416500451398347182015705900535350563142971276568584382277967282964881538987191425913230784789209672335695519911078658973782820031330131495171937907957367508862772184122448766507021327320105011603781903110727864789297281383422783938873452228443392595082096579000831137469586844769011296063981592537577345990118905842059869095865779350169357120237201964402072102720869553166601210414220932121844399605539740312700936447300804816699011897725305862757605495701176161592842510709335697183569951612184235733307927280251556640278750946130663985433423888089013584293758569603976901262310995989075080792165322127845227134493761103647061100216592122486024271251831583474521399628570077932465379951463662917732151941073044162253485645816749603777787699748878369958250733096866497585859946571825382531377917146259433400566349101612017369980089926855673265169778660738078019314582275704017678063698341838030803395892140176887356834958439420935846726580801736081956449711056648791002347846512291014133250632255657691589997226102681026611264605103087081272165130718075740811729456186016303252271725691948478747718401574579221288164315433978696855223093473962678325243250728421886007718471947036752140498889506627205855303855071648671960473064288515114771514978984549945691427497362192386912674004419921104304770161202740632255291842689286779904414523724611638053564101918867616844174211292626998568523097535781099340179116636446905251952581811953048636467333614021400715511576320466962347329352787854135653968750356141874180893978891255144607619241621978253588900779732155455668749550650239910004942710734637837385761279354895887290020765526508871761705326965809757885877306232645802464174746718508611511093631177942181170397249677930313604302359553722688736853303269062288856370971403763013164579872493451920534208953313030934648115104335238056587967249477627942086575723733066461448758433128863192746677254406166994128959002388646267760571948408474337136131414629857524976043261229072543922611876401643593021388284338347550121357676856427314100343350501703347603431430678577192706452808307400953857597059022240349377095768880613330655099612359905412716443843456901084959914693999811354055449690085732722832874483198844496814106611407906120546069299747331167396233784034604181049194957952862722103639098684225096309123855559675424585534536079899473605659250563439914495887264385985054549380396858591109909604423909777547350948832709361295681638244409719567030102004839758556270975484097408634751483866928468950721953649547916568486582561594904215521089650306816204991620310563961366014589123376485778910057282505799710003808279253776010989315511464405236560087910269320636555617371732137987699876662702260038667598026270784926123344833852781345428598313731924332166438419562521036937222456451454636784068212574388564982782642898842972844663788741788705686593737563755116946910051894605240058129981211850335735731400696386636186111278371822004008458713583210654402357619682522204535570388132373495810075152176453682631844846082896468838447813784594854872494294631353477506593277362418643185484560497668875331030379395838277016261478235217556621046641046347328699303658659890661508800173152544574164977942006683241103958950464182717457541137959876801949476613156877919522815682995692980621046161270233501372623628152270339132285714178896131035311627527658317763450414998950533494418353130657118571910260135734967319371862290501857262406850176451912311722150192561731161187364784227109855574435051216550556736523016613356293675235302644439930299689159051133799946604677021582239485753144924987321493828394425464780407175211597034820124269456749074906940196301796726795844956549252442734532691548166001347768715609536820421141869987861780677668144081215692256459905227929009154311060055234521441477707370291800927870813723870403364024751375394753606512498294227211603416365641918795522892972546220753767157893506625913613317804731805231970299981500972029745822165398761066952701040343293848958655694109960195559660111801011723085402404760843218597822018319921779424163345146087438145711538580657483343063004885007557547194965188636214915023711067299339353977020203058714161839501711559340005673082997973668963227087953126094631475812372556554942090347333765457431289174989834552727539256280331252499541853226772047008567343584766161719847469357930780811635749092393835907176053554161089431118466694344259128202019470855741658922662270149704332054492312651083486787141868033465852705582011390828038095941323087887753014250755462114632863129093259303256433379569979576133596095440012365206898692056604021938739390347361960876592529448030118273010426382813620695415913597882736337574328123520804135566626081059778032210696491414624923875531025153357286259433923971027942404626240129551926214958955217523686085682736472926844809680652076209406598807138354188213693422124285233567606797546462195905852500786504182944637952009510827938924153634130275854536400376844287924045884547594632121081643450049933217669265365346689146377242183988941210123773960490878345110955303905883787613998258129407685496490305984672312034235896901756323928590393384982701412117937000604814664871038428123029630393270226658593518686291660781496177795866267359564709235223576676952997938271638569269053944992103756241848982869067088588082149740955073876842709605577947212467345018443930964575937973053150519006630109807553232946698130867270268284451022016864638528479574294759984852728781439987154110563411945372255029311879353259847013035791114677378791103853075541323368977544055410267206542930614955459074926751492679473090506592542375223606580211558751664195792644948242770248781843749981453854666053927713544485289365759681093660234700813425012659552549173847498895286109479012755304083698824200413138866608026037677350815477967205353243243972692665910777342245540063595253135212602847984109103839900273462258687391251191685796448150346862581739593788831744735458583109831520214689658256178275857619285676069031187248166329274806331791899448447471830445734071363267017720972633642516352342800256819698485035319701658934715846553824221819095212338413152734941855284240476886473158944687695016424680780613327294224823960944613439119769410216237142741658632079166536488532525673590168264354671964628261508879738203406916977820018303115893120334950860085681721605013179012683182998439934903247233767995359651427139422860216945494723995188863018139230079173713621837196346767466926449206003598286529042757710984847743556873224123675333713794634085015781677589131956831636357901641207937322339828017424408649110951503861087112684441673337627630278461686041222660434329048296802012874946034567019694887259947219141925824551175018956072941169781854273638511616820992624255590547012105228543202774981175221426498266089247942829452223904226406271075884728571812494783358037181084559424568505719505595699727740408802526893684971642794835829460714634123825804316244934322757853723798381697944882292219763232482059216701704052615669345326220106598926819130005131468717583090361316446390268702954230239372718830261252942262747471410832223436101290143539655782800012216555096433839470174648455344804842626731130890715501643971934969645664692553009641763015634096833129198289121313583362977920021246545675130877338736055680634372808186771102306480621226447773397335139336851781029752774697596479786701425002741240215992615125330701858720552196578132010122371160431419888831484338739055530099660586669122227784628907089094130158861621342519589777235738851482013663009035947521166922096439156059521686065590846762792106995542310100150820560580036089603743867279366828079442271963074597406074873873185978189666317773033893803398237476552136790001920445069236378128589706744584277795642428080884886500278344764590668048178900389969175762713564448697292280710272299489125264237077932830918904996182759932238467886110450787983573051041181914632340587986028592644277238162807310060675119700302296641147585372515209074060506454927665287167808776655799511759413243673868310847264905496742795974341192407412702481659340367697084295985189005533747755492144273404596534030012313300913488562391913286039620286942583096010321537174775226424228444645035620052781381634391613954113205291461171000730254889495560647680035249827886777925623527352250631765935258553242372032662202180400054092693748767391842051434437172004565762865277464981262260279072266402062738296721428417504830816599840578640136367551227548008474225916416932561098035697808653044012998296159479300135641807419520718755350306831884403403484270331793578350930748086573225747524668679737025529837067539882038439377826410706108597344382635976903261948926153014954221447845075121450915838875845773681944975398386682089517215531776729414426254817525093108899141313575096960378832673971399714084311787968805830547348683915688040126886156843933114170239458481163460439232139839124234925956700167620444999455539079697342794996818614984364190714409676961082750197904148489073097034171540954405375436002418162326375180713587111620146654325123782294940223396275332771891528455655695699232798751687541863197426091140469014090102257893079826004727647023472621485597385100411933251299491858214424945894572926971515482396615932716410153574448030894836317526626270090737632056866885383586114892034232506831049690483708282596987322663770107909438194343008535690975082602630544035727512142296716030599976836023781080950343771869656437388142551950694330852789386564629286382290245151771747183944061972005877427845925798186043657254522918764471820927810003365904565863070966267844292732841095715659834949362715844716480141350692227247730454379624167344308578144816581172234858330563803151813280822258829544298078045829732923998182380456837622359547123907606288155028032430315624291278891494780061366211020906177090555847047638276523524321219538652299467184189198319069440013923445463094154570952903898785073706621103419943042376505023224029464870105880465081496649236713594567880628275662327657618651009017433550177124158771695365449375463719235486178661126120858979685197647699140279981832155682410660584836982612176894572767760409690832686676335438714428154428171092188038431051052234535531244879717077418775800503659464312832787439114027430956088366389450237568821639972291439567759635202569740397735688262440871302837131677463181380294595871818010268685541306294827973087908119078668975718331074325332259693545108287001345907601223219982384128666227345830906041270939820916989844910148915753053969586844743775637236187914552518410509189115996830842665758458626130296849104021940282397777247116222777786269823686697115758249987998598980601675630039635141250226736292221086982493682259946404896124159405979761763861002623098660568558155764460558321464993374638756432323617667734072829475239058663405156761601018078241945792346715995679194694784064047802417700242967890838477505794519466740130958881908455586558294422974672106103714298080320784109004417361420956115542604884279374574246343051909847260602719934041734576655636040347913660095608297268566924789268413907212958018015207077926369968563583149395657925709215599230695858171772891377034855061438792866326227096311304619789210239669472676386031378409944946728194543319940607677779588578020929477345659665411795079813809223220482558717588424720024666200593875523454089048961127382061369500253432052503157614536413477433231378123141973191584288852594424486561843745096890197626651578224603776986714515146782153483543693789286570180010984670798989999409831326093354878298499759187426952942938505420544779820129344255115416004097815873700074750287377523032576864946433392055585328246214398508988981827834274032507269570935963006851140518536696126213217890271581549391646103477791049578231559231095161915535957140223867204598913635856245692728623135129667197060353233515237229618746047784775129827719669114797865262370961786140856053021340014726042728110328822130716893134301464933029111753521663903524718270307671150845604402032660658908493185512024063492662617998163355026498824090803011219138341972075731120622361631569876300441510685318064409932078167157708315557963846147620459528285915262167805179904151747098746631710696576023029676719667632175608995915795454885049114826117397214119598443489774103687657049525304686648850192942766869860308936463657030731927317206849417680990745757155138813769603006378955299504992156169751972996917086460805016604534406752551305672906953872243487647270022065043760670702552113460254901010725063772271714897996783448051382996022729680833536959184762448359544423304356657726295793592702889742103015301397453420477265624705488655685483919237796407742153509692519383728229169758521571972906535005273282360947008129503526212748272918756080795350041487655149273062021705393993517125956014647645870818971230670812158709239529097721913266985189484691144738381790050076842311474682655996739637445834972616036917894962273543667029562985941005978755824220971651123312063869567598357772348042018140566561964707173501507407367708918004520125330942440273036169570570779648504846103190835358075230408002117979254913138130986499650932008513235808922098916333737478847130734103581387767160381265006936244117491032316605399315631539097895107733846986179597826664275596495121875371254430349259608541817172526629133429409656299537938509926975535614632082501207528730640586247249590462424327620064900716911667620332556623209064164385947649048194297596064074872884550111784696836468004568918492261957576125695703972033501113370311567370404409110191842671760259807715957176058441960607177345401418340416926008816889101272304976674527573764916628311113974676413701149546108576170710107917545658878572614247378036486342499417524392226008620127640266521320203639285304132234234951164768288727695669788458950783020233656376777439264021169255098802988482308659711997983863327183016370755197791997252068150091037762048329033694348019190205434450338570301442680578224450458996185754524939218769764541672018029371228291157052443994058225417959494557500125139677198037327378936241772572319590853774317864594630273224681933779706774788695962635386119882999684407202409230774851106858215736401181972099261008757167451933768506000631451067280524543122706039747441789742460062847951918002416234561661155634146006581326048221730919970018449140654165759353864941546742369942952241251658552684201313208014505263965357548383308729490075529193057052608363716430687050687560834736534952249469557121674378882129701915766654939396847858007267712182123319327832410337077852460293162890721926310299589049108579991416596022838039814869560520105230927344718678230186464233923852030888710478572575046344300742253414308512443497866601613661017428303134765407340290840677273209128233834432563270877201168583316126306721535742748518491369836066380801652036257121375586856035369274243262992199295054665105007741734273793377833105784098421569902980129600030371305004170042303831860808742641736619664444871640689934075394916402087157326563757922051368104252725406819060578528100780137177886062564671086005373429907150855057634151090129223262228871226753466068961843871519942472044877580931238265763476963089699632402493064679238337617110603635617618827239328145886156816095239825883817173255775696848678256220745101794179658458919336828279598920233447279720786037193273935254403192340604444008708821430823542705181767781469911452462453006326336804623845462463629944295574862588002274207873932952735694285453603771011892082978529450985034879041944994631743803248178847920222510245538359433084663037796459926862453403927779231921187352062453852300190976978975847982459922708464840410841311697314037612389956486961227735465021263508898877387889054707880986141036256052443671660408978296857000663210437293242923474426842302250050623886386081166600725687811383872167963365183081726232295290826155818958176502471940965207373245212471946811461087070146753729134596566570958732481229335158545872729417142810346854823037411531951333738698096601153878402429554280785590069582007556589399541446655533271620042078688769062789869294291127984548325464407341692593830792778702774283577304071505819722702507255204515471876381124044552377583939909256756047474457640477068837432658520185998831763036380577294985908195640879212222819336400982175051156594697651512020715571975479921632517166982530015397012265584221914899604296882369174981464065689551880460230034791374438187322491413469786792554117917817472556520308104370422672479019441060984116722023834494208161213174501915517695425494984582111194616210783694659433571171207245267858261166397507405274412212559918068551393026578806850338110263720655448494132712411504521994545776202813272946240370640153013552076501810862820695393169230361512509087144799275489471094852218557200678898187269391277950871699679828261624574954485791264351787096524815454629944655899052701184440118340358959806803284215192243854056539343052467208970247849665087746554572352616240135048043270439681962845867691690004388960524773085217425785076044024862488246731065920535183654451795968608653347072877986349960847674237155406394058822625313124082208663559339810857221229056645730960848410695999556582768143583635727077560482113857508351631933144812063462036680504189066041423419983280520602730400693505186725503893097775476121105967357345498771776204800279861619816610791679626765513223308626835512121964737038728354980183280120059525380522196167809696856387792002368831255585420829523643352341233957642533363876751859185384785824683769161570599331182396550161424233498873688304942771300568534504046131005563513048055708519429307459440735323799715184795737365169961303530805557207119758125618976385571642121303249042166638879012114657840859976625335273898461211860998280477935358222998495019815220694942272555937539059725354872943819813643672637256303822116920526697091433502658653734276766586234192820267931552656545664475851307255886184191303025456055563312734279283003518262158922454723356500748168461261401653765139957478263998207389574987529016484874059061528269163194898479725204412506107655776497123469518170826481076120250127238633763714805822653190464958163290801806177717442854968146249136791541083201281620802269715405776345312354793139896116856038431417913348502436523369762223238165621855111497675221902379076353017996006740967520483988710650287114110411384673501888922079716578999627957702879523013670574667071940629105226283358154212905349561823303975137048526893222270598290961765622126911391788850934659358089234221808388612187660053893901481677946042375189469155485503962032473702916153887945566757904138890700439047669180171008494594310922630778598324876573410817233980946130169327310066074924659170820576190309345477327219512617513631229868323061010530557154614561394202549535464664904177519155748031923742666882291957770152898226125020596029419608008136652239695680677298791530037709836816428977775260224129421890278861369919621598974663314780304934114047021800559440587757805727723817553723577259614770800460771357006057632221149282731658008064745695525567402940560960627804092635546717557510099313180163166430036854715306290519131650135287258552366308640712236763439193953675200309120930797326677118996921118069328151797429869249028290753454018574843663110954744728501190706687606620845519542172513076167634716698242616227965224657042689389355733222162139095852890724271649095049022941060359585814056180677440456599231274321440810271147931914084143924724866791813477503042849208192932821266999228494701867093778463379467904427030366229560079253595104440388993434560468814181247381116794101157294467080795132198124375040839992503086204715091724619919020694199404063321360968247853188536178336129756921333481138948514050954709570679264017718067838856377443073458506394801555549493729047020906537374668158148906441115630943000738323514292163903017065660467519573648468916593998759593510677240517789175183940953654945944508692686909228336374313315340323408594451560664583778711558176097586207402603995405187848573836258954729120154227814775923547961638052353505689323554973629750895072817559157156305589890018548250407333924207274213438927540366304752619947444850345234397380844686773975656738076623775536227734380215755573707955912931252207198718637015446242221558005623213295121513206606576113684794759648284535047862085813668690744901968635042037399789185251755224567650029926041165906203585263019623798291155270321675005250476600126484643267335655378215825263400857825171230095467604680679812096869288704883292004957007145547237500630778196408270286502583446076584625000286169632183186657091207441859207014629887528073941446468841402279645679827915213148573620825878693268959600777462916705866953738191498303030137409258580179791898894262583299900839084595839282119761402910832154241028121943422802922474297734370310104942695423101496540873764684541792564366759377936753376411517383516354350829428388178851644129727524283242672843941225943181171996029823173245403088149709969754679564346657192744092887196918390432554422699977075772527565564573670318720734092952693651130131058838578382443741727271420508263191635785120556543546935564915551499813041546410109102524619357196891536886765847334215028705534571329012480448765962411420202791586574660590629238800811428957361355118497615801187773867203464914710827013139825240629279343025068730213133259554812257633904198564391389191019698139637694129754770786760038046195753801221102075984387281020431388746544398661545862153086623540986825865517824244447919742735023344595301563670907439158502742091853670454354593815686265173089685742161852522273430654515518732041026405507650447974258392018597865135852474044539575151416852589380943877076444779787316309589680223740431567984258284765595125164603953931908728605035472823934695241909558508691653754145578945471424549152602623238417107116012568817462299125313564231818934637970531999803272993744405499339622683488801924142932253367618276327456583795178202191926352882311219429606823098883008325884281264862706684300927119005747106726787908698532975728558612293193815809190445025277335726810799846689126210061578984502388900691429720199884110518373645129030661658995528799617793532894520127394476388021339824808849990833702612733716010015908721005928803617824935227820589529325476682029695612425998648122683073526449614857510746563282515786225938380804042607050850486914673589936933311669139000214421341467062603910975320297462739816458144448453540794814037189430085838033650816660762917013213888953299189922973052186334905466224903988274460606536318142521423218820244260002152951459815645500260345192625549214494552098619794120029205893072306202278411954692834696258387578387326161917983793510089120131323312970544776490071466702876078582553473891839489879120328105122453471832840717106665212180747643346987214354422752096452468456016437853632481150413020469861142702468852983240949861579134503996840953131663632163595459430938483603742374822437291533376052669497162787399834306753017112329898085124076711465052919165379719187831302256220045322635093128290174714589877233586231486186068845978673068243565055771533479328492159688115955134496314169751992835783236153116183571104933044847458190138603891375131438006963571122030427562435260838393837587948422802757038966755750240664166922684451137140553044238888531629582468651951667916748598562818027630597993665251840829594001087417370507420435873659079434417946738684714982984902129245496784467328444918831115517647812994067615180460985895198957155764611031736159270221976479711010287723682011769134529916186202733526450068754987208409491083647367168891488580892688865778566681615693014012719253641861102735633225195130572511429551427597145540108345459283481628620661674358986506101948997975526242462609429583440434594957349504858586261203594804117632026274509459572069063714917774251570018300191871599238229853375528783860493063086219575149358895565998487770415410566882482206027289697749144953665292013131018644857541190109935848952836867998046282774952169050372050470942605652169839654576196800777358714604101631691022220001121532151013842350442658972525045016163812773766339875160104683317679475625189132115897625324880910370843907735218086426025677654682416128466593443996634455559410470318624435744423482562889600096070222278322322291465663040826257642301219913845492026454586342316800747613122359699735435846513311533427999294306944297323309759748649624916306330811641687215914065549239795981691751421933228319396352204477670617534006790140842213574349293445746474943596267720012853304230100425836381819738324045191963105350829465136299400881668276399197896833321871248624056318680822545816854727547140136505642061674580343395082557218625813654428210921790708541890027419247590260261653261155035605714807092500303538054222777931836224179627047891279157195938988968505739937421686107412331563614328370562417097341884541063150378526827475753707760078541248640905087814546160923057030661387276312716876253981010609785169626969673776989356726897974956714677092530383592771200248928683597676983556487958483722914547747705353628844649436234801131882350919604872432001489712575021223358665154859148792920530863684114550402203088216790470440687718088088585851689955303383188759807731295407008209912904305122468565862417093493954079370730637069891217421254742902222565250704088039036950959069744448019086489619225613573417913916111792428220183818677489824709496997375121156702980971464438295191897476767132698666972636656111106632250047503434561481980829864862128965155752414458694637496862756847597023894972374904051514101575675128146879315086327735474950237643620804791151881640295705774738920987132947765621913955765878917461116154706199434527200374759567225415679972163287089367733775105894529244816140662975463470892402267916274492649879428973249569860520414700134622405602020726728637000100911139439143185493214860235808943818604917824860697464494852396549787786314884183412148097795608331520426079806770133648184548976112544072110553323310784872715675811886566392082975420596444286702534590398794073750671977592511099495646504767243904477271985645988363888572196554459437783114288419843359855188848271429100083422302689959966895776891565356278060692384816101340840918213016742738478309495369303518669997582213632733632132763264482556348938018978087670293727908695220786305356202841878620996648821324530174041746786645762778374813247985405221643519012925757262680166350382956193243433123254548413627767516509230948789644763521514064423981966128922470264098267279434333379116486866551079176848895241115299033481361131702635042712871321645652167297923657796952374574868960252495550970017674759653608284575283137613471418417302061008585861396019873748621428204082591770390805132461154886921887366922344656135074066219858015217500590025100143242336093614979621322821058211744106532626831356582097450840470984140712883669033488540558802250939877320663734720121913857997860494703284033975457411289854153577153361548477336896779666675749028015900696891206637273261661599664376931551329704211839307642414769001411791504000272008438754116253020899824188986790121447520178883743365325961694419063185086672704752897663475215940508407113467000021255852000301391525564441884794148680451451885083796153219848560030755117528931975726439257045175956661480192419944447314578231263133477203237044175369460132260386494874284173824242013169409352667022713584156907850472147818635777844021969940606245897243742845749488931617902722881495309308398939395823593730378763450883319207235061574699387773219247345531003099354605763509445339616869836015717894061108671564908555950409360166995087435093060864085778221473374685698394222624171105496831405416937649629591381898585175494024280859939954112548341677769020370921596102704889869803098519275355289381288123695815228345929438873423826646111585114317990694161811630350544100299419441449010477122477100379783110483527486797287023824456179198616397458946753919449306851485756267654456443958676492822155583073104853763733946109031407410634952556460401212771535066374183630155041872826353438626847970339349656247278413550009994368090545566110256011424512698327744099588284339143422589056182005453149077747639022622253438229563687927406877491939180523651103935084466917920061238966591533927292633484842465041865547677773997854669358989504515182354342010929264137634581488299635100698002304655312661039684506875498010382268969057899650508534243101961533824629644188602124916407163069359679764597323081812374410098479821121913882455839187476800260724354758069107227335323527504778605201656341788809081049655230251931524097720160168118724738636392122154029926504591323322417944264077601333957765277251117634266852798927044898396492771041073224532407671959338852020280690772769108922478535006404321358599721662807238013111245867469783496702919067058210632060546714803764921189609567924538803407804790148513967293793859017236326461575366742749822068230641724201337240550922429097717116039509009719537646321920657352518522681775460520319260847017250216614487897893247212573638881972263956425239759407414328780794029099527161462758074563179617589325245692562978475546601371278382819309913926659480290235032302697218064148043511331993616993711621709048213810359528526995010535928704998714156160057142609537403390250444703722674291887952061255447440840621875808533144500192686213822908360010026169885524772263091260268607926772163534389313234611045413232086591191207673511376676080836604581611200948268706730452916263155565363351922681011592088105349915447474708118043462940711606465547928101015341473609691995655930094097909678683555802602432201020618373502063938629559613875931496442608148120873973548810631498629786130033757325022239971819712579537196928755031725017167251724446792162136052608828443920618743656652119913754803210543401851648008380223474935364840169805078086696167097964451350605329853281044820613308560464177136950889661017596301026788305715728100536430528561339860530623312919505886995371022295147903943445250495219623185949068460989480086033498268849248470253335408425842597319790866092768651666542915391651756765637338975445840354886670317898135376204245481555168083330364260917871614449559254940732662160425434914545474476630457827412429592457703835525242320756281288689679315606505651546984035751903978877182243630448764485086248886272981495482783733433463048717792883189160162622755973857870889087414976102948162927244748002104655893648871706854135296781017186574112041555746724300351485548042378384143844859789814300538618373380669275528059034325093326359356547132558080408719593869567730520787457295209046592090448223653727668579866750449027971573300705502794977385431553679370331886377992783147527400270450241581376888100763510599852874602431337057108692332340464778920531222405692376834462364780011239380459399899499588627350717653015828682156986054081094777975149484114331952696578710449237883891380870803982745364706000389425125520247814891163338182681071680975608755818784614914640359742403007377577329222519986740611272293071245500271433857021217452050385369073300366494554312614623654577856197713144944179939449289174026682579653584861943714619503801839739435822978575574893951299477494193836613669042841776679942949989237513632887363808245195039522589208601038092138864423631823037932782973413162561456550907082718896740142915461581290475702489349786180077818922372220994965708422645096076718679989772239825007548281363475909922751651602307115408434597666632970251387978690404131299986204237096048204942947698623658092541604396795129418703786880727646327529842732337171769405372252441730864122973455527145831600826258578510307290969114561231823733550911480486478506261752768938879497719767483097375159796088954329613740529459548603555786438512606689356109542943634114009627201670388552615164702655854010934141556342139497655211140908781507934907953406228961960527338332743424752564509417974744667090396033935255952995108568039411732842339583504353917863736922099856227198132676744988425678205459928946340138230178837090485704351072875872657649849470913566722552741021018833927020961333571161304012778746309506443023566544061646739115895893286723180682748982319992893834940341736876624755843370442870714819405346473789875724486882091840136101676757138661830205186326382456331156227020762003351829364642498944026176028966260762771761057419589169197381546037090309368822736833078311337083589674030283184442753127572774808606731671522405271293801737545143253729807812595282199846393812688083472322706991772600215935555325369482517589458679862643802102298284264221127330484551620112832492627935926614115900809223806666893418511885694181518683969709527024051588975492805767919365500630987833843369769725165041939144736023118221749179786572265989025269948958779968770223720271829051886184659686746602073394428238885058195742862957532518305565431953086096904103374771276488534748765981389366293612898885440367862078343039944076856046486784202233912288430131161578645467292167703609954901632661445589533842287261251570746089453619255617607048798284728223373285238761403701983647044145407903889314993518998557949172431349904208106643019486161421940331705590286729546696962545391942803560072172435036239682042728565436354505933891406822106255321174057356692984359779424156900803431353067878780422687174931400593284804352185518761895721151209598952845117169534600987780460475928008688277644262637349886148141779753641792439916423035707569168324928401681543920783052696483086924001254172963987203538088907833879121491473466517787842810547657449389326942956382391695505615156563205399592740401628502279828634152511458102166443478453404302704652972538301794157400531119425415620704237104928354834748120915797353097216862117853938774313177181268018378134084477473624555283047322287049000262722160292690203061759791963464343534343909036690614923732034290019636087580790152352147556253138176415512095849306582255880550110678804826343559559215697791548498229510506967918373658271999076445771062110220744142934920710164458016758241486689205980336218219020499038052105211478058523519920426348639642738106550706454463806828296887012546531251369613859851782035973314582673150028073233063951328149225692054135118490677523966501954381291114246333308877954027298063939614915702434822979537936166927430492169488648601520902756655717599071700837570825944827391712509943704638765394780293993483556738426040021841453322043114686289748365166870018544442364821121329613029705583259997307540107481538497475854394697845099303922042708638117605332467755447589920220307151231735046105365666219590759404784737424966581496137144823148275711331303992831705171599865417003480041120217317988293284988332086303759399130503438054172805569019947944793251463657810384017321832132133106059256643823279205218540231507928974765986364855988250274262382958704001607311404533728599826830594371493198699088490474318851388280593349919387362223466849754489369787924157334533537836435797799679241568109166286492433197563246881083284119623296364242175720163903650228941130117789243430812299714428316876296902094187361734394423897354466933481702925299287076567619698195845285744031521556723059763196352312095657991820847304784222848510150107604130635309267249413228817213493924011316928938584550391622058672775387024834073171164181273244004366914959276022405504496425304078530534514151616557999763916715735676974169784676669523397336485803054333262768795009967913475233004424029257070930095376203456486010703928786333262132337801082957797133239501800975397893736269281735060507699195623699215379119374683167890709849623161243472019914831239758033955099688858402787870515609054847449624457960543130088816744533928540106520881344377746949793738517482609465119014012049745515855948523681929951987014356830915010058484247023376553759809395081423098481744382922261824403207217632758203981750061374691197002419953578233271597426992462939090794979425488765220764966906282929070180706378733280543531988235026555589211155169040066929888858419880638882931319603428738856943616133190090375438759808027336888040658265664913448531340271851282263732573033581463402675124974214140559048048255789390139555348600256277827540515489421471081131758756872998723456089303537324171427612917906017345508243595632489036478031365724091518172730543721263218682147253950015292894057021582997715061083267072243817862401321941626351965465683466112128881315350447655008821340723229748008113871607883021700962488906755856578197171154700922126443343030419974102736477390495531792024423038288334762278578719221796347097070060901956414719976501677325745174751540764408142133800495703957685151554675375816399427047963315525704232764166297810267616882973342338231801115280461894320319392538841343237500943221104507525427756342283036255169219887600232518165595228068859305250725930834721956268458925257578896789230851626123661353480465241336473438467237571955755530061015457618436762215030733287012424464230396731140966469833481507792089436216936969548841736169774987045928750804877329824914390284176212153152196600606149597621501183593003476866624623353190310921768515748933833362254046831501983341155323745471754030830510744121714985976739957082878533306407213932110425731826307506981812414042258681457634492250011162200308039267247307814200918922987394348646249477992267449515147136148087918809269967255171016789295106709521566857894693817916707394307794521237360302416299327493731684142211607436328655327567401107257064433481346136542588969871113053060609284157607038730572862689256275429343861825370610031277231623356371722747152281528344479363789365825589671681461498369510602113646151487519621379575614422102780845488439373104744118739979263511113660775414502403136274007416641972897404570762928935989064371876589119417386018229645239100417799817721038605587039544636845036695710725397678807840587486483391256819267698913396921780893153328541100130896275515239236953984094162242216191246995908024517538441360841916958936631499934614701911757070267446665611234988305464092626771751882616951098476372964266831078125864892051018606498090644435662498286876340205015323187507947460387898915996283564229274849555376237043868427383608966422129130276391817070781226881244087283972019212174173453585677248116085946347371744412402685086989429300771831835490672284264452692879245369180314784355136704673460549431473103071034797451536640100721735992757616878262958552561200705197453858469005987121392538238312274355341180008330942634170781042242645288853455985280336398935118401934010247427864334227365028285055244669586553126390159316744273197602356653332347986839026680929685906302187146347360764850346764758555058893230939501124538820739532709150502347812085702983615329163384365478654109853985629898013832404636898488904509968968440621009774827230187591591754854813003738857734780501930083494762751528833449904478518167243298082322923920698929401903162125311748373969647935377355438882270982273507054395755526626008047297100586276899824336494205410263071582108463322367462254639792829360369550671812932546954496945340024010517431567685421460473526287595729087314004929237097555123965497244557418132459018978197483689752945250724167948488409421163403350342678720137357045127792971560884457397269530048924956716406454244839114147166766172059185011362667934709777939069024927952391370022379690646292733166292708752523885003985993146621808109684993574026689929892271227951069363515958598668514317036892053624995689159743891317504621553983870725938428120863221580497957444420048204783648934514215994907108318933777900428015024317317153533921610232734997335858469930845235553874595262997843681788165828477043463393584782435308942010821279299638822067726545065895763432397282448782835163704832766113513470560386804481646610074474326413929097900421679096053563095391971200929748765420536800645157239318181899238230262766532719955256998337448207348315703176855559194820614401371187933125128045904633940496926466909671057581365052951859513108753963376309639897618960259980241602458979350639443905534806698722326378414706092213984633732256952625512154132628946375167846571200369070376649489370986087504080283282562703716562726216084653143049421795267094507509854427270819626395951153884880776638977033771539360263807961563114413943054868414505910713345052238361908154463349744552574048354044893586233259648490877098635283648426924007384950720026782255700605968268215116633819724661272893963489495845540533655502005573361662732938562873694323517020791739769217463352781452400623868934252073867709808849706431214156856211631348210614568799319855527969219692923326063185829294792717949897801465737501888355071485231555321563653761399681691591906485247222549726329056880739426756461162937061289937829410192015553064007110170442136392166047325838039668785337246060715908551265338904157362644416131512236421784140366064589213777564053885975828175603792130502895052103958975105895397198914312994470593564902450308182668457021452849633882028575339263939993149159991804774170481031981485321790932391591873185648342935052076704261301377469359723339895065113948045902393271641803166025267672375707856391287478235049288663507548515232654773403963312547200181255651975370939641450282481590614062042699858248204939667022403032294598469888083381766676357238445478965818422880409661587794802064788160715387760081061761336424232661695351703625528768790781895750135290898553192674098414747096569430729909194476149078895200340054794692910970002672948017946274884337484656051727992720677400968810106557184147071313810318801348701213141408978644853319349010229675153016145021766096184618001157980593997530397418107900269157522464403010817656814339156431311289477892217558143493945439242617743864709952693914391605232104251375531505286389315066117514349801595947160755591805741864092017099238106065225901284760293111261580170590316484074159113942902416684295773419009038088191020213958035672300375030842616997155599356575521238874464450935484212417200555614422999191857720532893021559873598842800973386497114352637809322345525856238077004499424232804155610768907557458922286716700815031588559969288518548246252942605636311901241056945303156169771884185585556798799226879082858581489479422192109491217188443186478912662232551526075557434237950494514632136670348095273015753275735847668709599014969375964508007584988539002608865842317381823530866769597894641460217830914112777363722271212191139436030673327992565587854738523736893934084218004679411688714354855538762831969751284623630168366644166523796405738499411087080444123843753783845140861536873900392302307155130733995025838162717649414177933469344964940737800274909560829056939425360791557721759032457950328648161590138632328894485240429378912849256457978066897544300434856299205266089846428052965007729608841566977778343756755574870907774228960065113839330123541642121937026191261724082829790882943435558382561578535260485468599243383798686440882909757557203717211784592457395428002160999110312176928683386559675899846748662774589787178800252335990633848483465652245920858530989508830419593357523303394751459564251363671719304260226566233162193241903878404689755871292161937097006642006963237467227981224333493571587697715207192982506696932519506560566818110435065821723254700146586332602166825808526453478886737081098384413595117753104709595416778708364872496465345743930509746151715653308905466527961775790541287201558224576007250586777488445855914232737817353199742184966759583474294976720433573507053270965000498289224163383826858788715372628632634580885125701964677637308457732333183837840905676873075503355207623806755636071262523961560313246288913052782864313910740668585716887218247758777399521971176333442043675485823473732392169641779438695203634692387169052956242654667253250547070428113316028873164837974854407666743462165248708161196727861918861981928983592294356377707436251012658206953902258802396097411948796837593971672724488678709959148547573544252320955976314271749945719370217151303908876260693599232902080627386949540998833001650236037815878860211123148202380744722346093777826970805516829528043223088557901829443770817589893641984289105312057856610234327840229640140020027120260354955745342564212820679330065289740500497844492894236923355380395566770731451270463952916544273476745253240144384552319065438258171156503381427155901360982689888325915936829629287526150839278422360808077186314383420240056858698339907184153606558002471684189623152146421078986611983829170161433492923079652048732703663432333338329469579529135670093113932654410738869857534978348546389154245848050355961198361032735280000396252007296298879548884895647915673118321098276067476793214780123173102605152568703346905524290637957333496966322140689560002930308709176304573757878175661167057681422662171174949368702241939339031874412347584415924234666714069713289475699633368087347607287097029440806192285565501735410640209861053630016488248669503002447926076982208345401217837319743211808819534841283312651391949754288698329356734770116213615865680314889696597671467200416219691980221151510288399839718713786687684155462760431330236908750576288564871181468886011177269182225091048652687288570656358740393049484270163391164591253917166653086159329570220473238792631081333474601028678974060629553277185341419104581709670164008499847023357652530953305295112030951509529259813507430901367168665592147086285315484971428285709766322124113735593429216720696363049623351089488727236041332110104367763560820338637244025834857059165786949610160090329206407569304302581501964513432320538801710782738872278256502655079180735847170354521474125707176105394450251699527556514691903037112052549041353656424075148573595257740601995358744598740641935928104659711563906443235669932829382158212252162451140061451205924104292095489514570424725507870375224830963361751816959194472216814676559882353464934919638917719721453639675705400834120930234074272630459861292895314896758354073103685414303442922260495081122319928958323285662968514762941990433631855179453493636229853666350129377892496264280822686185216927902678480143059677665592664036599876329413417852836733820435593311802363093920360230504303899430487162530712888487660605009601604077510712257506878566116885700287014184684229545635526093176173430376577367530149339548815435579538955387211615226525245835893931085250034521777379912912052062805240886815437864423037364741189145719103515237877007714896797422431578014496726732251739937285901079895945502108412180553522450724019021248345553554008776418082077845033515448875778449866487479171629693337036587750758647618705492101814215179909621100365203315448377433364567895332619564662321579849415298809439966659603572282457363066178295591603095438844411523454862588320817074425136847088026289661608076367576370792437503957031986373141447988734374728461506262416076477723492663014267085880636913207100301757546530105594811914693674768973455164170904646166859932628110932992619934671150713703421345679576992570928867745581826826101684173006690778311355357697563587356969421555289258313850061067125664652305483432678285782534887527732892183460286799124860358632635461817990613174719458165790289200338688761442469613735053998522199644448160305158744336310209485654349478383345257369902567468781798358778522468333671709268808313982240193665877065177088780032798150544765739649357690012117549852741309270299418267500642649461076022115679641172812964425067200518475142571552787252060221388272116888792826765614108721063889490766122960504446122508248619789552531702086490512860250921738162786294245075572950052454648775571104121495538438040598660046205763067542373366859486128467021751584420660391422703789159530100331729958645644561864781757508627692370842151886573894404622208762337258586917984744979809732931332292623000035266019141310136958762454945358468232149898036673089428307188571071522965413787731244041471045601407011912738966652193012381389261887457444447997270101161049201341274422188096116646351360166961900842045181825520253325089796448389129868428678226912986263863021083759332644665664640019151916377473379528815297489172993909501979000567070351572354718541390659339165232011403198783528011282611618206350902438138471925956378996410380588137640698956976168680721875386593521605325267653326705890359918177682458609707659534748325233023431165479142024222991498238362790900080451596724730519295512686238870737593363997810134050474138585933372477030097378649047417287039278517838248988538482278134916825923974223687051794983953913866753598833844244628107587917276932909343221767996840910459963059700472448111120450682169175107030608266601062112663727391247847749410808731368019190076473847374555433344176481163645614531291799594434327207234223244383166138398534942756227701828971698871873251255100623054999796797499314684831673079276650403910613319178176917918088136672978526050907365398572076634819685746344010537512658263562846976235222752908196653202648409595908952985403575776698489130783906176285506447742105549180576500022793546421376830339098180331702558536252429333212757411827728713914677904060654086828148931923481268354542182679111805300854574569843769286504851586443296553411475522381598916177251690550834591915053867490550277876108141863492092243653531428850379245079391147582813403231431499952999177344663030585168913630206823775211505586096467459410806288553763145731491487462166930262355010473922740691614625875409525111444327241193552987247785324130672287934487640676564818467467197729711713383482899779316943577233207527485426108226331253820814038529454864989797646824988943510436455894083668094319356149947815636915533325939887438959890080706820259149639521694912439578343811728584043270071368065196874789425584456946230433176277084797015172996518578761684144252206650332140742365954732729339004312270975951066301294296086226957379194948694809119903454245421109535668644360146314859511675133017003755852371365420693266748779145188004725662832381021689894619894350453348754413605448269454809706125712705605413727441226370705387258605114945341523956684086256912342776942430393763260622274829925770584545844626438677146355230557234272949226894254786245123056369108241578624587907908837637091973971873316185828684421990051497008692927386100087359072942254876943593000162653564879144224484749336100636786799928863112729789392150594872015369598341891766461975991453821026145765194230469249324864828372869074521507505200798306996166468970063691165525220153344483347802183508924209482008351334818479980749684577022674938499578023728582620395346961768631499179609345083090552703327645427882653545576545599959586860384011831585682309927553812910356016171930497857503510909172963450370772959942632122332087202196110873785970935131444782637997595832962358161437266125411429031042143586304072539356023016944382749700739860583731012325125852499968171492535723916260506931830986372854290815614503222596790706828647362980591120312726321651108835741605837714325728872447495428561552372415405238488625781900322514577376941583943778865035407431946690355926844804523913076479956947116702264957972074491907509358545767285715262848557320738898377285813950905514707258548100599534992243857955470226247467007021950423411053738329465437892776032213158549307672036934370205329438273829499120963505171441746529817050904152031097255972501388186555721014785793180472757777198580400358345830853833572014067178010477779197402851576228430145588500969920305906715320394105449239723882575470178308109231810499168423128751409580698901622133285736694869119769198402409167564783429112370344337551355728449209985663877269617172496416833144915975419156057730104119316879604145665153414710818998168851585640295876780396207410736162903223671171083367087327650205769680656361257908753554090371930577197720782276347255524606839014937708606860483056967003662813888739047587933670281991011298726962449590996484645750031527308631101228637671733364149433467947534487399620918534837449358598689740543722454280269000917026076650674126713878609540465713197131447154889199340922280642268203125731072193256700988172267591431756104771290149568660588671589675670863396002177923899605938239319613509932814280312111085518053850627760457980441472184476841207896496967501466316347764475068585237678685459240721916073344671315647916366451714483085409155003480987280023201172592136737772268167015615138170337061945643606523876475313134301018610133780637939518246421626158840812713506643987523280300756183745006969862525563211052748951474881313207133478391899278000547364170595188196006459681820778713048809518659826368267320531494453242904420468013857644467478116608248929439813380189528658108170046856704774193385050870140879730627964431728280745745170997271476191944657682730605116059956036656395537839358988428379670941828864021505016749904091511656095367676259738043197763970182802091790501384354200429052480744602417525474635324616389932953148910519558538519575235131927217839356662220184350498782387594495913591613022176532488356862579282421202846092948078767328814253335363493438541818716193433472361373062862536585457086685126463045868736871025657866344412826106445679633928501193157693284037646234620563457490005500596224220180651984598003688624054199361092752122410628431747370008922852818065761892324111350278338400701931068281848790849608422416363974190332881901072871959573216816013189393904917940108444364557016737584210167674569622245552840709918570278369067530448755847653072959685441550779160183903042843475136732804332253879124499609986326098760689453925007719441589861480875710137952995672038970497335739744660266456827980689918813868859924035970638632409293759108167592085625728346216824406192915276086621175965882650312205017346124201851819890218287051129216400406218046472835608119729217240315645179410570097647198843104193606120221160587430316224540289806785808724353469783686596481775664546363251147671353027961160526941404079693519482277986644383013072794685190286218681270089735313977959323194968917152290448159741672590356203184597670857360109656775884181925602248089703545893887428928548394136928700563046145640888378374126084310675966217445621382869112318180480972504951684792214121015531392999143602621821145856552096059819026756017057301383241587017582401641601428826070973654547266552599839521907047444038600842583613497915169471018944948553072261471829616013650938362717879466062348030220502636498011033238802051061842869926612746213586307226688960855245699342408405076753718194169574902944398779903397739458875532137418351670490091760793584477995536436514796871324748853720282473859463582953740521700569775693576957637991425086774897855502285804120392205821096899903769009719886909865874671540055852633015822456171579207632586133731338844411389599883932121633712802955191129836302218722013832282396997697337321214889108321922198364938739906300493229004355807001644807732850723370451348489273070751824297067996034118935978605029543744014198832957987029433601217981468524607967226952660772506791602093436003705467057800706755356149113850019188392598091450317216020508028621065487696881577000699889356350862848434853778314634905563593136296612495458807069660625047271302500928366412642109834208357727115146917586147574878833215757606348087894628708453101215658982086178450341242936185300485070516616107478678585599933941980122463106880994682430801115299348634643728818167002351664455652042073488250967984921402236374646354912064923933510934595622899612629778293226734924692765111295226935431022017050839138492627650346857142430509697753256290816491591347230103865082675524159642180377635983139524829380856321389268765066884614813614187853252147987844576560664854874399497523537997013298082121115045898735417132319192474420260413763053744073450079587605440339974353885015401270906062669435473201535536964750327100109179720731207241745349696557926864810207492098913383417534101139722180659010986430051448447596410168448611114970493357579581277921207392360783504524656579087582033924088285757210170156027399885263255989526963802046959283944768248070782311114021593934052514428650042644170312033405209606307430647334838614860951126810961806348340798478620880586403084831061432114803669431232572670078946494320555727699859004434315254986774425124811191153249599499290394040262391560638720483578580707558366102113686043278798284103120415555046992360120704027236411104307591248884964514509997431744669637748050986296385503842807964162757308716463013159921175352460954762495298488285302956573508036885875072456041707351811187547473503461967706353689602384886494769008760174279359805166936284453630999885517738426757772350494007480368097481109448334510951869469220820115383806067829230634062329464695113395599370100539834993864837690505692637405594150576488618447380829845727888633744109491247957077608361308971272996686656001959789428771379107369184190084147149957498450260710139595507771348036193426921117239890770004678437311812260410697538008633656484222642108274132624892006638036592048719530185367278633442611041405272886266235006512320386269153972336493957096892499769430418065197803019092047600466239468739105804390270981213201753909994054677012831029502062040140347276379645139172871130981059195436625943763957225624793001804350865908510263777021204635885908479114204885948940322973482004595945785559471837210710104128847638560992304499793483521028149328601234880908322226863364076347380570227590606233354775051879489765259002865892282266945259747984221571808071461040199199115609412319893767560769003472913566618652489603490204892180079616868280510823599751123106303438321326835683820723270505927953280914094119992018612082742395834693837396295098305176133149112675611304209928914253514277507084661341209215746017388678251354297133823833410120136392385624211697742188700307698521193557661084237846728828711639363657771857377531259715411608111804662426979928129680019915009747019884308023847829669025275208641861804314707185535801527047366897918399365043480711884782427762566230392040823063252853172969956556996752642664416000335558927946549126561721725916401181446869372678489447879578749340573738635726703485496794725563930140055552717877077696955574074080436134171773792517416995974887836848404034122297976098047420177553819884197344629753856279959159476548841138036199493217487352359691984493163899870036835436074047009023554063417127900910257713219139290126075248189623239178594688291823151141782606039113381844966112484463576129103444893300690690201942998046305692724152416372365125576762201378326692276087501245800974516166864060153779423004610777668722704095577615206176374805267447970999280094367612823849061070208302516272965675263638972722626446240126915144647342118072236800842008652622309578788866915286507157442350441486115551920857693029252455137319964773922987134749009143458762305818597627892254237054075740646522109100725469365566043931795831309486638335441962759244537051819501472705804465848933526051325700514954466856151647566571658617508613298425664242718287349952927969005988026909110016330517423885884038597554431578754915772423521114246812301526712724929140690935525883418798707802894936525748178579419684159801287148108678887375948388992288638799338524636203552663174100539020453678225287241816929084246187840003366162784992595548623926728190452250474027754956686438426987986750515287474076317461953433274730782754370690329135001825220042887929415387512520462794250107983258645721882031725892011749751493595820331345304133111187034036521177718628077076933275632116587820651770232016867176457741251545403187268902543563166321255044073491427512770497802274066058939144961145365702808864589602562807078824491225052776009495094633851538298085032514257224511825966766141674041463458171092492973352370488259143411887340487744288823811986678197868905282828752218926268416311820081343439142366927988957606296813249174549637745538956357441641603991677532260270842436109909355130787626406579858236296019560493455078100555741541212088579119368177570239158999738128503301132883592928277148040984376843846492678073894420120552469282963839587795977060225441548277567132606016029433470636613617995930885920061777411197574122388652895302860184017128437576859617838430206431528028441948287165091554289549437692336676799791366102646625858894913311513392782028485166959223727035573344278152107725021471235618936650575220411036362853396862768506240142427582347475684967947693985442609240756456623593588042948364984278593040769227341229390967675038700323859886212801578643280467076724587367409987547486940297180545594279791955543009573460112344329477552879576466869203045908181673174337282659384619778337637313798507773994678965163900048305259387967404274850652827115434995442184997126816697901861864158792896905331321070524367024564864022497625918878419970558333530248381369634324762879720763747218616352921951755584283363774905538915914403161292062884915857843270751519341293356275063913332713822334862804786223578445477878265620676172955376442912263963576051197858110613601691912538346733956038036778097170376460191961692396111094833706136375636369713770337493469052457644058380834184480092914499887595797345656374381731985421785393116157462405985484683103528251286723896393718823683345511427668814324191033970025621688814654650644880788216658537802166794466776545618252322591904988603319593963631007976151053837127911411759762609552337303580884536455447933834079862325946108497845772836076428943191192782331678818660572602942146974998157906416583010278907901535688011218611851721723815800937803080461326870813356767855846208715303520635183443406244184582482523153073798836603482702200718125382409960083936422546744020511665184936209199104178053610214480561580959390850761279217219315800335975053669408852410418878562528706218216671385974688005947469576194381551460083259168675367480336764718969006527304199628872274782733298420060422709933736891058088676712225105011322748661947638523950243251221528900039913095084999311018824776116369828557617365654583692938027741538686771578735685107954755911026172736937889144519682854740536994222647653072395358514151814582681393531765447462498229469590669701616417135119339271563567336785493794536437326877071753616328630817052474096523428267347681461045301482943207940609256311548293665782472843067631804445130345847767400966546973932228412460959020270272140150396929537438250367207783034849365927191186490087035913461539902412300563430147601330053481537263676620504294352191787024760945567442476142408194129879614317098641695153558072028414457550751678947883185596768081102730788179918600328444506196027700525106774218582053187596130265762969987238357160791858298033918630273684105896311173099722320658895089678079992381385883367911896256440355468703969231022838238946710794709539483368715169012196514705424246818040682391767122083472800806227257382032780017524844568392800941714691245259667998598613378404221561262329287161810431757873849437879073625503460297653831614935494630343746875854124456910734337340303134015299961934372408264812647891473794315495634117867518283624924959218052127084940959679215579914496862150995687060421919903738391396046080536838687804626744915752344380175256554147880365582705778834723211554071958696198869136415911317464834310440641274037098467897773879891507197370274790022428660576040859435306917906648503025101024542530900861278392450877740403852762086434263207704115554148990249771597117613332423711075674333823186190178130801137029868992140649118135954084068766488083455688495612943400613384503193989127744875593362898066673820510439655689931698963840429388798854384906562827688728739087649420614135414099652336876561768334018572577943641164049582509173572962964809931692839719192599949815513661901895567022677641950407468076607544206855694358645044915725102029666985068115452719989313540043320800978121191744680072922194474802936735961797682825897958783942244455377669318837187531405223404427164613203566677422183984955654050588952030188521546994459467112787489772309636172791160517940565845805267160410077591592172472031920316315496950028713731285637203062715220700419655958238207073337777539890381069783547019166597663223000613253651679425587592223827024524959014268193930413389681828429853218183333923311248121159448051176923658659298846740998388490686158998254355823169550202980919339584765103705189129131032671920833714976078454678436456128732823035837955963703709277009928714926150599128030390778165845565917412985455688861053239163794032507344365112100727700183163203305218559895082705430592763358058824764644025980510659510532957624200037917063960575710164647692458536446891632928341120845450853283279772912904672984421825309301088996965707588642833966231594530633339886652219679485096533021767550525990119085205335938753011575448833989404533767268561014420372853168675754840026529794066181115843140705966788552483902986531261103347156381133873043218042097351941218041385766577200494151758228743981418143261736839065135015067126978137940113890991789210063802845695978315433058990230948136962208069877591718103719817551954496258608357062095603260728312309248967942869420299715875619980858900860400908726794328986302465451423478655062151060997421369169606117275096468733120064529037498075196509594891183036548219955490217403671709756470726702297125189914857273699182674998778369248605493044924702232691346604290916497219396665326917205003027250633536033569006299411334115867733737421818810704745536697549382881002866976129550717320819293727642869914826352755521696766313515256901676528873743465804913136051202764051868251480296475605940283577139218432071313531635583776986933940249737480612819296822452774383741066538385659169992986102602895651642530726948373089802180937662988817208512541515331948222594321559023088291766181539266686401464348763229871887663063880082370512016692385155702311854551390390085104991660542778272126578317685467820521564528122373273050907841163676117607738209393976195521235317567338798397908152624343389813588459756307229071959682037588727638241859810889398817396638329344268358307097424251259130437240452991513398231055830509432766056290362472804577427530251883526339411670318546749687752234955745899987502182189465965760577494812418269186012515833503593534358923213496074191720151067875200731107051664272270870560728704734057940639349062971235899429411825413119300293623239834921412002471548406717558177632547881421527757390510460784453252548296148196732781263815559486033712238256654059893301696103888401947910721821455005621829995823634736236815223115594678261562361792901250666757337202719537879639088598591701215807651875563933628217903681242464122180890828503543012526469691469009536710772417615299195368905500244625556363029713267010649221751079167341599832041358085078107579397890794770903714543852587414809381781252619013157329893628261000661584158304030405608280552785922928520779173509000887076826414730934298390158618346118217905365344523165790264608745454934797114827062561131604805560361657135181894900756344613876100240430342101116913376173714497816686670024560437173494823226951389721227827908400546012839531996118390708518963104167317732343258744083924817726913604185837955990798232252103090569119564265667156898964904614273147677304038622356896108413552850051391660820617586436186739639133931125535242679524232914618842976162518848678460840785747298047096789970493864232128106169317405248121710633886744726957695353443320309225717130943243651933300058606153411014723047828392195141165057835562756989945452043654990429421893549995555137287203281509576026022880408306386484411440642033788540014093773197447109867760642588964880969567899432563913384149391917366262923691618331564338581027039195249536889814404128165999223805110376763646271878927862949101217488534482842048587648204025525462379970452731387680488827787981687895699197050600758090279057858843240761699544523357895596332147840785948865480975828059604578769508445009992067643355469455718136827314741919312795747947367515149736357437060699456621104218790301163108283345817524193662563377603881518211214586659729429874732662227815733948588900569952719425670927013043694922555784772693709966577536945834392734045477057896645025975263277389897901963116676076843764793438395387143721704513029091294811130227266037724792357131094726331115706615458422547523361472135888433611715904802819279698351563688494520065796404309865676800828420966064430811061857039807996323029505837425018044344177478712762474107166963019824369479897742163663981690936603310340858645945190586984591435844162113637011216701532958633989974928730996044304867285685775254156846006215948506566051175538634701275465406090003293107432489278109411145115340924412619148575908856039353670580077113253616893177394657489233057985813342585924963144769310094367715021384546322868583863667112020756111916436291769834807923109986465897959874252253164448784270941508734239711616602591205219466099116739918484374403986312643487780679095681932548069695981035264538804066821391663354184385686613603358390414608232565224070531228728085098814757361815782936891858935251646080461145073278271764234816991985467407381734304667101850905305931029354252061478909186947439441039702128501863842093413992673859799353552180040496715299766292157119159971919050045323471843491122581486301477422293243164771465771307661239808364282596111576961745981901771640782010751782590629078886726312523288411450538275133535654770901381046569840519663353701271952033458476431952371209974131478217136527276983621767667708529043245902895126011229983740095429492423539523598397356719122508186883042392545605003289947234516367022388386789297689706800275345791633981191581979894104990596349695348600013394075934580951594749818305630730447702423960054677975594539909740757439004041743410517592787726024023832895410847781828954689575345187755874368130607719237948957488008586039479252090908732874652844353519057868500730141071187489372051781543627353570693887761480709494484492564989693293735572813760234798275165151317257854728864535908991866654309750011286250055477107781303499963941049476301810053022836104681442946518825470267336754865087538400020578758699232725543045766410470834498574536464221337298567696588095748321938373253947757147889089949221305514416359225384571047284990227187654577356138556851624996878708057506446089978213775524931503378912081804463292277241710305433653762270179253379167787845363820816507748872169181176058114564716547400948907031583981049375754096370721561509587856099644896501663907622496125420695307720247406269723967033214718881114252238207754222644167915784695114976368683004512335506003280342757750289491122406611880615378220080116479175625889131246437784463229337265206359562815830316452812549836678889888102217795911913584742596991447750334125746725004308074628739272727671475963269039018684172655947916763697720915646273656822821605664059507160227080707337085115580824961685736873913045757845532312036397566263471402707075909694950826959295495493010492418747625307850634652330039090178781728615885826588518127631183834478674014840088013627669710284546811679467468116386861491759631805339644382231049633533432173966212960581474931467164672847817912593930789339740102696351159322624864951453141934965910525836342800556424797804119214359147267490508639446006324405713284792616056313650142480453019367196056718741598553885476105171179181838274402734655986508820826120037305780874377503970313342802210053702248475160611062273061711149200489382613963060523332557494978328264181362838154065964346147697079882809791414270406941754886388991771454287537460531592663111873246142751746446599412810850754595763297073251754680898545351593525135463226053502367580303397747575953841917236489820852507686463527075929728338886907729057095976085500571745271514381091127855592359287659613416340845520024553645787172626823354873795410981980382145993257018384615369589768593771505102967226050471468216272021881455512932917468393746756293669130576427609722539265955940105633087193605672577327667280752073136787438800921768972629720923479220760921270496939114569821240735299696675340192219348626923545910025931322350590723717328655115581992740348843383428200801266042214187853916029514242016822273274247998612955339686797283731397538086064081266906290318964692775546429695734455161332783527956700705992159720744115725262979547162476460816278386819825003971961246915601596675579951480037052890904742898223545483108870291660659498744829075703581560498623655768334507299639703184951790846291112044764013923075743134844592626825097244845969923630237627620358575682021558918514602318541996192470500825706565687431518999311510056673005774696085673341913145539107624099648794165189230299254252434223905196577175357692815767111885449812940312829588283975466701051667613487483800186549330431279086278895372494841736388954198808010607999008179604653176396234392405114782637801252580605401596764725788751411674807812362919073944213448983505328371496422186906907601415973625575825332515543168135329733920638967715942011189927396688549156585380546215912819486623326580801364119499789823784791131632386692373244664878783123664693478954095550968177048085766638174756903457061422292370628126451042302997028341873111794039764321352462799394265489400297557546199969889475849998573799297430065475087577910275073047623106524957506030683357381363831984565866285760359410585655431638779856170433964405227754493046590505401321480342157658887195620292097105863284868436731607054463028958583565537934688667930681637185615156022483960547458846105025831546213140292233893605956273307628993444270367309433752588609962726153891498851581945827623247919253831156999123721210989697660018329894675269548104099451927534302634480572748704311809904104033437195205772317932433595267783766537172341080670875484131906831787692066436873624472476939247785157172995087480402912969706160584009864895681941832487132452169251328358732624038473820561707175445399662021423531413226867966520856933324025481478291302732189908825666239238111896798235731650615821958900187098804970081934782436296917137978697988011067668948579702908191509873647286116978105062331968176891261519729163590054077776803623826617607861221450691108649733149167975640565906178516868246761085108058875355533491507044711111921327987411727880139235298282522720960154071130022449502727542892674588344947678988809821622884911899617564367392786876739590233076832697989187021362620081256397348197660846690394499134329099909648902195672302880794037789528658028690878659567064338374974156255129266043617735583135103260185144554987344031878185337924372544828182987984930723149980285342534891005824007389333429091868460166318922458152805121069662960666423639778041145130113184665149813050981331431830698930853831497068159479337198486202928798367246697235077830395866302601678608026081114568177847607394769138409818653709684779147744700137786143525221381816317906590197266980062164063645298164659257252000785373264691324265026018488991408643798858862443181230753337742664102853744526776700793002691506661829975849896187972077294060538779300663253013151386291229665406478645205281973435966540760840509661286482824485198390545123984376645819119171589572463424984517872320301772140909126132693900257238775796513312774220322268423937621131099995650158637279214060050325268723103046339066656857981233304187514914695205053296707742456377178283219503182416577518123251644078216183860673154366361200409637073176501587544904993096861190006870574274236043221705471821339636873600980110492459473488619510915225302677813134553012713968640945632855066277798167512542429020687438657204635611170673836221002811758180979746947533634608679868073130656475694568491706847232496235691527837480855945244250669707251323430107664596414656250406068306315513763649667794651233546965257418737423093271204335241518827609121903211538526073435443785519871705872296750069402110143124183092984357394042266683281717013112026101739597111257668551083268801023230846060034522713096484870681929917357619163246044404404558753859028185455054406529629394775124528246548161940326058729628877018093632531230862609027201577805385892536981853250927496287004659058484242765860081225300847629694914604458755765995743786284623182829091305323804432118637167405097543170572991705928459164654655583905689447572198830713706915618792890102963324935781399394287799506346515130916481118516262531278698223894365518915065627234084511037995893415994482165947027885168692974893939116442062504760197041898475643450730295238465441643032064571540482203769993083087458488519768035221937839786133134691508069670601714498378641120704295337965372360008750851025881269045783767728405816032484679968250436488601827119080593989294215705470258323978710679432251175746898281909187150939671362328173197162733859863859803716499798761421862800812746344426788112624814421817351868263634156735843597892035789939985357800967690952969459538786763636336048702628068153701335146963494709931909713424951327737864047129348709027623490877943548852659084451958303596060035815609685569530986498041904954202645556309310542564979306352847348535803422129025414585776305073973602167586052854001663077108710275428811216748189574588002776325295122992331203503616224265616546588713585418150531632163807611022491260604760924210978204904748538432681768338373789246705674645365579110725390525190399931124010728390905840742182089130502864196555641476267220477344112320755650545455450453282654899568341365846616412247899206686809779187385908702603843003295910239010754962436518158842641101397499744686299031897174194781105009838523405877330127125555368567198379855900069297899203718706380049320937874394534079384841218301263570464326131546377388344073349634926608694389365144836258228306123286529356680014570929184026419397876266004694712754024153401556533675552708660240073560753302092965239939157994282798265361048832385112570115223590975071034587327390431570818564636383005700224937585475280068451128732349570862950215477930948969338867118982360760609914891502591486163490898464010733319612180220225606091550918915962598952310967555748700601328440885179400193171587594613912303679931983656550356204930134195561752624176649163462246937158617077953866830512982405747496087621176434718773301946712354060645427546176945242392920240469412145415619175020041936923544709365775464499475746595701704847671890138836679716842696691259456623372144160557520350504353183473470525918487524169553789443490261024516365263933992871518849275790972019772703332115745699234223939558305680084132054404422462260356342162794940609581182693278090889918777866773168376045904740796988278470126179191570672899753744212356872865461038630727694939677195599090181204790664022131771243817779361316624922505292890730896058470287142373667604641376247386386906210877872436451607485241720865886017819818821443866847419091999771438896721584077843544264845362938575175025054434085706039430658406475364760601900298868609757192349516600618882866197770727888507860437245765557865463688759899882789219446606305857096315910123913822749804591928304019579295930034309615524516057850652719973814289969191855775451673598048583257714492501435970274130841827001576815570368899927405520039270882947072622732589189281303639006738243665361002683743276718873453678122278258674753557971222703279306006701413374309190170660234097300766919519575457718872083127920700719729250003466393172316023705580997902041104891657678093028362548879978738969927249363850359706332738817277503281209833435034099688306073093897769888817975443828321877044834893131397529645557085365044253294866864489344885512939610423299757460411408115352126760451564893504922361130311898209325307609487602236244086301334239854182098851837812320803890569814849461037425539743828597098539161987660742162799051617467099340199975789437595924741367263824227196152148211317791291090558705728895758343017464252428742662445273429169701469503340565904918876841138464964898277294708148238385235082671083112695407978341566927449398635202252878990183716149466435637082764601612088359506841141655891394895497033551098460724095026078509755151265969732462636157714149570781236246992629862045852777972888520514260099570784961281586104791387194647991796378348518055361966405767778208572465217487595042880217430497258243264617070219650908933442659611314751485804834631292577937631268513182529895167855289131584991228037362835157231119097436965463239824746046144812886368017865918076477295386456146596589233668264735117931399068589980598879937782328489702298193372372525621637053138338939217666898122682113422997739460234310294223711250913256754719523364395883497971207526544158343422620714010727106083560781545513613154541022971722454071528447676129945494164921544356996063113112552674605072877081045872045212038646515516488143678676729245420562824287598398382170526378456066730890376668760684991220783555352516191099486338910589561633329010569404282087010675942329321489789793869654631315921945971113370449858716877973344778535530481060569241991134638445715922494244430207717563504648660762566559211372057776185149184624763652415517952346001179071228128058599831120096708870469670278796275307756333489860986474258032823266666811916330690274093392798670379175542814739918221379064796881761591958024283721112344790368015727706732381614667635639584638467961635613154029881940397610364240588342782857461171936485430568114367162506633406704480819003231563319918103359709270406452313208064518030557052686103085511358081504272191118067967537223568755283024270523331854074144508229948165205702339286271260131770473111130000457565761503723512122780808175507445189329190857749616506394602945176883650211995522452010644222741899717248717043917372304847170830709410251886161587588180351250149787704496784786940243807017339234682813521302680584066803754716050414207581662102606687376119838010747469201139019127021502790115479841043681464067373697855212872219999224920995005450900661818039718136616286223275257274242034199177444059118801677580131995068900406467701878978482636335986865647994814441480581843909581518864777127130636139511952567787845068129740032252045182699242189519689320982543139281472247588190500569625812636126219758686214698553520866407864223443506269182039503065160846894536502876431155545262048593371961002095060309667310512057771158029906403099330643802613343506909043796077603879133296703967822352723020536259428137301278116396061608736320211715074184068587387081713430205795196544291405369979185587813714711580723592034736570137083272545800872528385661423017377332103102325003809195788690850249216835736783849792514978653138948591175113098375478363732388230726386524613941924457222826698195141834475703937951918433595289001945365044835900144066047869112488565026393560420384039326325352221122468804267680819544664301334896257945213128022922801888618297485791253685924391277475218788840933583339372567508062888300676655095791777573770547467923568891660146931296356638520056379335502929339670481017903661549196864943100715159830427207601463285598684297468847161718804945784693096590202746789413847474677480677974967892304937142759292079488696980444665300816106551679335338187203434276981687660708808898724793153166720075916627517949131223683576168467834563782859142104109201832716044100281951373927007709087338026571485954370686937913286588977322316866450407657482551950849017086654251814411537860211914935059540907168592831628651697422145465070167611484514601496497880405517670421275491523357914486466533286517571460739254577616127811381933020670507613071462411704514908987742999252488127760512074603278760302985125051914893707777178254195737092565714590666174122532801111351882086593384748840951191247851313798514008115094089300420527557512809779591015741411136047561745869525181743426724769643057961364436089291361969613526072254529890672338633763441113228669020967446240825206416906450141564694479936234256245090776102630790461504943958285056891735544796600929033153004725556252295082114486227434435590718779762627762141765362376846029756337622236563640735108168945854682398571808694207132831764639110562776828453688540277844323820438790134980663852782088965601780790509224348503524377830059373147908076440562946461725329111394153761445682529059847534452701277157983103341933736572691426190569601780073632164434996194461941596110480241259819735259624456795854465734739044184877541636382495716212238132943706013448006916690775733385349888006029129469710337814653315694555809845550273967627223235248853259294326646224707167133634032234112460244602909407880114014548053272148258229689370384313068082392932067203861136083044193968136354111840980505087598429358395733352297684653771947982831128393966238198768663715282193837339290819941659301316702728107205202683834647271826167352270730664438100266912536399973545658702712063739922365994444054821300764875209702073521271623881612554295949768478148918492628288035536901815631484357141065377445968501255520019269325666286948164544129661472199678112443242240390210000663252984831105634548484581157807779948729560775830007540446417469179653277416181801693441785385582743516871383253639041933827438713867273354085506209502932510314862535613960057078137056482594246095093161360020023766073784241020002717175532534127815940063412454322608660836612589098939916727271297983238567920312812654155476616372376998293659118113141511263291182989845274979869789708030257961765375938891016837759054798199710679749693937437259330901287140320709631011170686966881777520593064842486526515018544806343007561651364389973499443286062505418091143143535059221882547192927099713441055848883642366490113471000773721442881547256809299597027211648408897803875972713528903828671655238072003592887886083366244103492032075203149452728963217096615738606024487517637298619227100297276391356506286835051308683212610213513254538733283662178345618677035392185660937210721165921301942968113652801962890932404228124875515645955491705534013741597590946729732605918073981967296861115968158268092373793920601512015205611319452811117387903089482232742349693549635872433494696027826155624904078490527913856458936937217953126425760047445293063872066457814983084079331468424228480437024165189331051227042224829551644125742199286327183120909338892776908792882204465457461137211413293710759751131317557275367089471177290038422757167488819615332918531620579304315907068910621896116756242985523786082004531036278712057700850655429690216856101689205113112606519764893360272984924077782581134968361732958378701123749309998636594179053463014033101456173471976257678257044257267550388366471096125068237195652011436134272378377049466987599052853620116459869849239463596819468013364278376453515592570169277033694690999497130270451390801728453331228004610679473631831413958762642922283920964208219258563415933818876545631149775551312461918663156779443837243096578556771896584654747803845903805844446179098686075297008887390696646310071340565558846302222439316431328955716095626404646422994284143367974897543395589079953418478682671314830753979102517057416126896430698591647626257522304120148081205778136463959799441908765930612333017857529387146029995725696396868649143884140254614506500260095686448823210155050266728447564135826138110588789252375040102063214535948941415525633065201688877619335893901744401093994179180485187883725550843285083437220544662143853435764829613171123539498887015588413133827620203916120797251325286604615449653970204016022042666492446175021432059729811943759007057818500010510483296961776731866991172385085786263546402328673981375217570292732228708446427974243721962915562947557540236500733246994102719630737187913076414099018639190143596784921668889803538509865905745771009499810030231166078097418375914206480496919877682551746743992017018776254107386419664113728037057911381686001643637273093952216487159284000081233906206968207021671489699275538565762483732329957716222462999426228803032408535975800695768832664839364228626410035758461381056326386341396585094246544264990215235751178960874279682507956763603752081795684079096221775858039432221639158646773990289160992120569862461977167835187714289365815395507345412890597393462471132329925890612346507838699172870041884778240448398809265279641836343879113345907822467970489764606189496987130332641288393069557317265872720205536213711512267618405583664470377234862253132168950182257923819212679755289192151407563773415297884415967261640290732991746306911128744102181330167952621274513484785546846327496103452433677774500221088870849045647361133071785390175634702763364138358745874940689576228151713478908335616430064915173320980014336925473800635917099718177252240895419499287800718150821360942950861017694739994025269623371464730088917211717471033789394889572008584982849176143301359257215180318296952886822809068213887355950905203919404344091634144364951860451171486814050661777590809716623011102194882102514676485838198075956235005483650287826002912993489273533109708324271112463016365301358059790507535532669961171424511558955143129482593262194644566459887555885070037362776133778450109201175175490509800201397050939083575652450096379977251346533233862738023632117303721196559654250669401879867106293546009515687117997278345714801564249287658992325397114078370970168290067867286917312174840836979389385273277852279992875770624216432658811864439375004538413681498340557880107765963591995270475339567988669950296581436625430397118058466493292318417164345639170018255777057831259241207348456969160322042664004751069481707225000672696888757710431062119734757911065532625652798499593662221295306101676450957118049349365842987844174363990568729384022994077309567674791312200008589244974935905780104632625085517893105021360705428993752774948754603019578970679370044730206277696820713215625919801733218373111304753215771113734963097391316890444400677645499327949947061896791298470540640542752906872322940136453155842693546391585490076316673906018459914154419815226160084587241700784459500191870976971040760901558564254236657878126996894295052173254834418420807811976792792688886701206925926827060679662935706255623758256387399978473896896355539073112356116841816936993399821400846174572440232245066357837013237725598320640173014364489565038046004315549680566791086325094813888439043296698725181193648318228994417314332410368687135010789614636861689370221721405975868995167516066214159501165941913467845257118846074900651971209807908307949046251086471973193440417276759042983553420440461300162372611765897666296342657624374020260906025369273118370109500449081735468541613946103017777090255987865241638847918809630045699540117084151932711827319270330542090430678671287693669404761506232099178325033690352812819468649941979275037607513980658959691829191451941528994932652453934243407112689174184232953241400267746562104047310895855150107016927801671373150872780603429382335654413404616742494068103793552149446488135730371342914152521476037236910224358305896925956154374284809774295163628283792371077575791451737789303338634875507420649378724671429224741995117461933433121868631665628229741521690574379371502934619992447370467228619246497019157612359561157553252937729800014025100220948621987820501313553150103104591872794435416125420230353663006743541436968166738540816375095179167655727931050466682643592056824957876261086130826151639617612522688325706473312812788535128426269100965282462833634237568042764692883058352565577433098174757139595160075348570262394890938754088813542611138883403165856918838707830294478531881439221732869367082355428462724739413980989732449071226023589268438219713561395315179496636741925323414396170902874652576401274856839070052919887936361652780263460017590647698816300137522906086069769604742914890337312941994585011113625027056482375987967406372371198302059919807208084940734731092249596749478359678269044095924331234432289765131273548501709230741593814631014846402646697819964742081081272114949153897697459838699834669452652467563311467275876533330476851850985085407642186990845447602390905408829848395690121908809574901220188416457397577304085920807030871189173397541397994734008418324756592167506953573471940520869474650652698104345270017287654687610724713018882800357226439492725598908936263174160083734634447663885256314770895024417804453386663788286443753643996182416577478458214978579416331931214369507902523743199600013038924864628302462842240769988948202906464593477895527392544106940416110093376016549197137403711200663670591341619176347127198115997684127394850952698285371027741159578157991888106670156012720651216157618964624200551119572779570400194717700297384865210379432625695384288542670898096681334928187760823337670169222074250239530157626641216781524931089587793422154787507635915552057305317130943574658940125753179576986774309697484909974877718333850006746891477066321223711779765337990620203371030460923042056116767413017711288511531877332915279804830496919916438602235473494561428363529241084182480727890283481361445177745251671496630144957107192121559512792384944551626018858434766773163507854497994375272665037772449098457411601948219649948848469659972746502182919366165761574921548619479800237887947474653181168540901644779875077893230546420625033904660704759492393634130075683045434220837493414106339168392738044803280229686366515456911213444621343624814822941489256888929847864298111390628386928842724996762349830170520014584017962039561491071386041546511972027096627609352006839519313768727719293665337918938299663000722740627580546645955140125838398445866747242932202290049615258241532815466205018434729067407323605866340376232933920466007336580877504433934383327479150696231408113103633067738308819625389779403057859214112955004479137140427076290156873887319503464449189531248663180758033548234808215229421863829364347741271557831428346263473247643150439469295037577895356597753001979237856247210729733436058676399322858561694088219983228366187026332781536781276168958256370782012622596327445626436375056161123152704064970285338292613611802341503622717471238010741581505853758199338146312147465898890284417816673674239537898580754795768942383182085491197860207983250399162930512988184231744271352458578251598085373739983280563676964087497523460063099900676577538706579990178161932395038178492219571553538419147518346539237393380283119911017275597145557983252195988959963561563954408836101660510989498406125252591456329499078601673137342768713133017429495101969086947229976465592646070805782218321976654022240620792225959475794830426526914180220524315451407970301243648211367677403712257285722148767919695702150616853327577769542336787016118954942735123952347596699197923843118005129813352844355584554505582955540487490589496265755415835789982220879800644556457776450422979398921899909497916067538454400460685012565082167155310623787618030419983556563907054422063476778425748351790760867976345154134544340468032345265561614936607349385210353036185402009761945164861172159548844979702386497762327514735608154298319472790298512947274059411644682846996892787841366688714340680152777850614830974571963850026541551270402200443524740972098309957285598796779048373434707705462579276098300662068125966244361388988028110440055701180173633805259652840098774732807336699713455731633201595699143858697913415943712445240407981430476085936849194269353215791575585855348811499316842266620528016655869538173816423550932303082098179530493993803571741857554662352081214381318153831774191518062929687171597259346432207923957223949083738199930636179009453414405687769694730992884421202176353386059526139971531869600505995114399453592899758762440421262055656675996400880031156842531110888847349933681051440578535975631364213341777966629153448260820269305617329241784407162645233098395562043905194455793371656447518205269111400331821434991389605915277768188054153503998398122269019428114436047400855211051818188844189724273165243289680188502753882917856823521384811643342945801273350551623037095662666385759036709831782911660253945703838094919447753005131871515941541931138154813687496507287446703715794172458538795424361722607282016444927025210182008453808097105886414701618218167934270358027052484322215469011785353642633870254605856609045454712820878775724657653085220658073556124349385429896035170495122337968907929800083789732031402245905768108644590811460059894459358383292238367170276589494135507259788249866053846416755526929168960729461448330486023263901918716803681489560956766366291529437800413238056946576049542318737087925877781108742656648427434075526467730428925946574791505352941866077619238636644059830717033201591584232234105863670042913000556668062152480647349484505478135286362486689858202762910164272522550311360602482726935184759613736274971270987495087185295118477639967246562366693578541099554196263745496535452873056602077809279386031332986525799036887675204008016810532748143671535415065698598756720172220800533430328142849255673044039834175101532320914706257435054728908751684193887801199194663165079987807738111910324080637266699401352132601720471427541006043787290302943758685304869043779254784543939527039042009994096528498000905251028334761093182086273696898331069565356743848586350815359272636080300118129203657386547851235306770509431205598010331421427296957927865166868585997128153695374591636516876593366024392195509106346248344020585845620800110056602276616721606659841766940151275704138429891815842328828298238687610463202424407330534302232691825141128056844058581443739424082601816765756323906130938121718780286612701464857852587046704449699757904316037228144292454820405193901672093034564786886833679929763594386353854781816225394063402087356167794330855453383217981745818238886598762719415443140180395608794244393731122867781063793113331075932813077021045063537140982472620561713001554179815440684825926754183014187189460762785320153648523095061237521082377387311165987280002453222606942211232712787413326281080676024333013119679735723407231748918995344631406120469033382658099173653927944776708590032006116748983187831257063641612223347403890972401326526310460748564642459536210880626103491190073328264674622233734492834399204923132437281073737521506116336906981119761104426218550969795612092813197760940388402110684103567712196541549927295497660646854602357632093118268848519734470288374751913360590870872043865626273724308766929176857415210443615474676768494120961883788284766876165940226825651587032318253593181596282485029764021534706988305677419606179720633610566592885302594558510325371985214764082402178523024656718219595392216373830461767473227178741463666349987438852251888294523621117526702457235492817661078411392990019900795562666080863054643851565266125128227714273565311737844985239210771372096819451357667903900696329929597851974027071651176707261160443503293411795941080020899034334069786204642760737140858581933596850438334647901205725605500386309529894204619323679759037729823532976310788627936965522104776787152746823289794429696854347057486195282733241102076750055914482144641021198898398664653008720964919393843117718427420737130633129296106299627478021212506276457208547764590855758613682553429293794098752108127394274383476542013707180196598656504561406244138457289570946727649140149922878745668786869417562088611988372364653791786734284338286176047512142852475656938012145847132878508874815939806590657319865210895924021944342028017233628540058728153691566277460825587924092537937970362328883686676286240870457811659107495810204364510222727142045731863192946740734333687642527312436774596721205691451076723930996003376147920786694260048360070270312936087106921314752592554127329755590094611688827680784661328150893128709188405484991477009117061031187024507135092599776645632315364813421466947906888324856295849079312704003209102698872477115001098625544113164481251224746498737415929240114240879076699303994646621519554742713816205082498619782590498554770551740447039362712033478337587522232505561302604126424302423408849135292624743453465095431680351607870214642422915408622988034281608486819482499650120090837579062988948938734303771111384300284775123653505484978384475544886025994026836394940628119393785813142919661080428881390589257144858701228281870520037000110184174693912049226127625407528579640946703747660435888305112302406529843867464994406552372420103264892352509758470066719067636172230286319621162286339303190402204981810914752940211139034461968022772787300008804730511336891774535440949057249949013838458822408068641962070928939930562061892294132000982590337647980513629143505579416648756988917513287705608900189568395296788336390436315555988319875140526306178908232021830114089114330323290342394903447451499909747386974945242974976756356304537784295529604547682877822967370353688708689731727715036937096172051886190854217227056737207347358715321276781056589109181163218197263724157517227430570428695781574879787143840195575464869621196995931729951587990825922561002053578787751490855411615404600929441684230980572228505662171670679250506513487916965814769104224565559954027800890661741982975203927227312365334975269721829311755539195323165930728440350334963919228561892263576427563969708872782265189082524223023958213485396221286378355010752224772703350078763586336640676979883722300980272760748010446788204106196322530129093551309004810572729463735890735476299023010376716370887497024199715381352038589465128511444169308529936178858593479390432757751366024411345645176194164692591248188772649502427896878123576332103088688631568899305988067107546803062089165786317827013919029457301675143421447566856300142917522851682866086560705087668760146658625578323386501767605215282414412932325368956455973341503066099691221883582273630677677616376586723549115335133427964518361555801035359594583054985061833365132562096634255286050606390823878954985630932065612266592800204647559799988707159177781995993080545237255150751305483412189799321221125324395133224553890293364590565038833075973668760470372105788197091807991907162387570752488738450197682052726394417176221386992099284792449296798600458819887409898989091989084082402781795474987931634972761774463783039928039006330883840707833758787963754588480119984317064759854011060438025169113621806661727766115749516368519224604049387405013951266542922694045513235613369215909019143465358477885365951705919345787208963837958719296504900138668277576915325654098101875125970541457977623453808659194771563548121153490483941698238023532765952186701966259113449802771373761138379200425202004317912973373611389012425896292371664545504024502108363587205373969115494681860128941218760841612136303822725019991267570745587835412431918487147079069912597682165099139031388890747470517377663845202026819056797488451864276802464129675462102933861494867218002919440591871815940280989411665915974964400909484660264522120391620773584088090241612177894875494368303122774742608546242953391180268684443672617242284525397578619596394876664600816861013607293541162826641692991204375341159530170096508983210560493326325223286854849146670319291528087064355734675967248450219821596563394091636760186119522353887804764477318711554857517118885679231942361672424000992019104243019199071718474142384275380021235722351022840392313914798692181726236480173321448473607729769428963995722344983915470383508799186481484421417292640517212585577497076294664469488800948569293734741070016404438519217983885375399393470353263046743640809369228926484837328399575077148396300352251468497321590433169090127157445799365453509392629175787119284977429632087488729951976105297008902805649958379036584605225864313259598711452388965723349453879249308619870087150806504382803780467724894732645837672693961286739052445311800010942587548461789617836985422957537643458085270956014761942485800605666218548735726370033482437507984666139050397419103818345867595960940340041199540441772807223368981525276095770134855809869464924880541569397886792843881095988527565633133532466864358094893459620509213802042405138032215741858543550387316348179630723705675934939576263949900802892286915063687700292835340533120863408121170954591146828664348427810124583269678638688471708617337232879844013745288945985422331508938519389114062953338384404074365625411860341590570899976632796430132989068081789967088666564907889417025703223295901441262606341174494767627591346092240894717841221282496267399519934799269310969753368972630253600357482997897726454144742176355419509202937721794875163740231744120565332521699186809214481467455907818615239209437133842346441306539263159840836717013962618587452783205191948571020156469687048909022412809755630595480920013098885655613973677858496819477684815352250368401577525446337408592983144862783149020147685232936717400570332936134200026025558014513651372667563640349129797690772985469079906787115761433125438753462624495714571432896874270764985555166153522117864243142455517123819884346023562366178083292182471688088336837003645393297629175025518761772614551208043219693385400749093109467171117367440143153816717386070982453927653579911310014878776468000516824264560967432780712024711103295356951552149486052653248113226043133595386813099712953711551143014078642640881774859519888086672984033310231020212026027511377033183309247376062074248051487927105669745691313356029430073562761027012265860404012950646370122203653045614258316905322769135142079335922204137069286864601245004542821589694547622246788876477124805934972495863132136988281773042920041583484883371025556574988098579144358371735522380611393283108501734860705336056718447067172854872317279350673286989656211391203642105602080605336927611341061565784720986674670152491949209519701151419204108097476057768016130113447267090200292264426621070352149600360153688879258496254612246445256165844813491992756910753736993916812043166621323067536319408268056364417155713308149139673657801013910186460168457432451780556500348864070953696394921931492312059422963026904269224014702774246799408343633391377914942622405649873618556634404566698886618515552750985272772803591258901133012790389260258874007042652737228870185573810449700460122711877249956664691038115338952647804298129543707473206542309580484314257036574136318864315613128122843360691425683471831188557574592910574078396746754480561534898121205845437360671996131040861472206611060169868742110340997084432297388590005798366890900809779341909532325285533488013635857660792085708567190326991786436044727948178012119177943546900103533679872946768822332704335751666914131423810241991148257409691226519341020867363591144572412408254213994437104288297513590279137703350075386231278759453387896564094175658217994922575317211464602855032710564136024842437052135506160490975088399311300371303441538121392186459019475871397157564166878912524649642794996877653999396502842314162205000843682252139835907774729560055278344145878406170348562305671480478335940672053314856784673628836132041588861589035592845516861818516371347130955943870648541881107226694985363031727295174855378686844593133921285668392282371211192370123353355812162659774280268740062786229659913509363766189764698091745042245901605609640361191347655647696402384164509492894342139605210332728271031978854067734860438747168371327952549413239102749510299372562267222497636420925514429192262240563571226638893171471361726509196616891722548710600646283620711565609716413414241635019607026331020943566798010052992523164926670317879537622980228865906369405311700077341290443785140242762985999826792543074562533854198792534309445560922007472265567361058281842745162854644184157812423345571070096228874839712015027039914659265413792133653160054918762980221113277723516502115062180439469698564431674116511989201710513871818340579659130861214630972112604072536075006580581434468219604848639215344241879724335761164717751334334627859310249728617985176059956585724439156530471602188228415950508196962318163216418536291357010881144323125952249334488576869085268771387931719070171148340036786092065116246771099013865700323455261625654943646534272010122732322904459293718767258696060628126769631616052362420450817415758964567125176979968059023015461198911044448598318039475180615482231526161314253531696536100684915557043009111160308525003074548003564950486389113081652927004210059181321843521996236748127218456826560736789924133653270195016475704732987320010387339411150869123145746268320850641506584400040042182980425281419912072224312225254532744692321407285164958242323776009355305620410694911963498153309517677456266507858346431409735471818904785345608182886725171539099993076479386515932444054234609614629819248096910796637276320507213930239620515690177582333071564094952366119184898153737835464901082157532759065864483116950614117837292186212866145567161787097653377638012678770186872319655539013079928903540761558293577738099340193750696036041225612685278515887867247834748993698134109077593531873643026233638059803327868269630394771011334522090656669322207588804189495063482525551317589082252791764321343581593735494683921161350825532273681792339352884209471050420591417532309697545151745612866619401490939059317599731545811294434241736002171054690194813144901533222445710199604822065627443844902593903185661534577450781636942806190789226740117652362994454274688607236151951460946030531134849993673301426211506491879982733072357586861262704847828379440927524101988983977448444098056594209881494827201601050026749545624333029967764774045999137466040913121794199987851551908418656585459455093272923030168301883752075605563262191462978387921900113013278514708208617264956392367463818025113225700176890679772401496399552112764271016274329197458975267863897566983949260608892103645159572582491163839232494697243589212733053858262309585448786249629838686514471135234818050847286675498907148378443256616375852833163460486714303981854206102457805578150891275485382132983295538765411938281962938191045399737405206478012226017417054012634909815580704246359829510608980595370837162237118644588567173858428277309467514059909943505681411584076704443982571148147305893777665656034704168665120141708382902760919244618400808391873644078118429365160451322866792155322306902347511340521734780664749429088967766940332603299396149416385244683089663299815589240873428317302543297384215933337477174219555367177873388760389930457113529428625952518371223459715004334315844675613919868989869032122546636775968571157478552688590369750753447328823137644980323664201680358861827981515535754410690144128321997757272347720574522116455023809729237318774802851995849682477661608165534249095479501183938968203922481429895120495601756974898907760484643652786697932909366748265553385574457119244828726064549947287592594510908326843779964012545280932774003527418311971929569034738422029328873713286953067889954438283850525626788072708692991081850731119878625225290383182179497319384633454204244153562059091808030874938240852284794932274457845941755426451554604061137562175249021851425437853193054173223859072578992905019143280143388855743958207100117890393402739355604508517015598060780315181289032728166753646387080076527536293465428148369863063747220072197544616396952770713638119184393600232867510943358427707566092070257101547523514680079639451476698268120880361452552145683855172694340628600498594211543741570418921530072888729063447768713640950032123726271484406909719569882068066121951456933506277858683399702289859510519373532472076315285734368829639169161017999158647224313848307187832813283321112879250839089334514012446543374212050819104042038534543427901436088385984487434180618666515991017245438598687697463757758961501862012806729451242744634744763157803374681208692379447835637229455309706734500844385796006913616593738574293044639564530656971652537694813089273636906565541390903786340670441010700579674944352701094422042304064744145219664550710782433715028973120674918727665887722445466875278644377467763087977130440438673912058703872493176618697364222343172021728529634989614446790227958614714397722075791535526712161077379107193751719481597224468249954117857200331797975305862670210667711850783040830005548913624628067741875482820719013278029437449573397866408634506010586568396238035138910790779609529915285312388445357999068342523610519500238571791882830514638859246830994542744805076009353250111161272455499154675267219545686977640842351299820177698246531756073800658844044475074987155425056523789801684993250890345343915075182506763146551628367764540347474648578299861125545376098490682726250763166909995834613505320550928532246385085066745026765274797481624663737827113219795927975926271526289363317369057956461784382189111933949797666815170909036750569974588556674170127680129417481295485770881390086164669403263048003629288333524053705744530609861780440838432154724435431257325731837753095857609145512819254656952045388832183859803380318940550578778344414374101670198165427288583833086911718984586391874234665857590054375141287171661366666396079988345349025154931154885051340345348361318729054446755831660273192194961989709675636774464844711874049792158825110264790406054744553239537272256279986541958416529530823425593504453058076582718432098966119740538105311075704997882319901008120197041803305327412995883847533415075077917110172684142686642523086197431379506373905801581304352532049651259224865165594233681302904355950499826531061323791393965940641962114438237693978042163800694034489665569119019990486026270521003329286649705822621628753533671219283473989040234448034527328915671010459226166366312807322072104153923287061301691434591264560789756345822096019670717643242052097640643084995010439991482449007170036418807227547841155119837913590938828268641034935939096988287307123503052569402614835430230726033693408460721430406503376726227384253983239838595303895066817062881303007083426932039997471692177934663421415098967595783122998884493989668524483192357740533801700324544777849298879948936769403183415693510907166366768428143029609396078096031223803317601648780317678031049816124924801308049285034053464045233391311628955703931809373669946213034138368244870735476464808758174136924872638698898881856982872753067979195171650600139055812816885245277514917768700081361173946806859525936299441373644888136922667867348598308082877182753267990601564569361023735365560789945709814548937323904185466322258716035394240956120058736349779336782342884066638416801445507988448120786755813426199297016065510211847651765168039278607011374512232448172004133070384819980359117521523174227540721649259065536324029661019365232928005111511835860294336097013307050695517773165492458793544856563802841176360527903403560891863589213454752434168243139153411902365523581695136490767164667258297450694972299330412615959507546598788205922680960021816988178297778646487769482176499438377477048882398005808553493790117351960443858284968314038561342229847562556371047355717448859705696970132149675313227267501208549257241920757896110524153318804340054466518857507182084395315300518678140161693089330497429939493845984183450378362945155763935217425015997997741585395711205727875867543370935729327383177372242128518143885648855432947604337780986642574151371631854305875945055497566607301859763221733803962012470719351138251879578649796760569358941125048297952223209136577718789725263692395744998556574719982209544185274330362125367206783483366823989431235875854562337123124901186866003989898444228436650131873203794617126980739599643673335612179384189705203554701040963547636216137885432980415585850064266771674577729231010788345747724207539037708756748961345151501013089432436424049807171536331947298063008068689161940733924029244846022605950791471803155877308868172812835200266473667157467691295433385379885524164355184253790056457356150963937263671159977819806713385911630821353012172906757530360348259622915065693042672329069835573918171666700622466337585843331987670969927801691649397863238519972404645250207469860231334462676874037481917297246759761308150746151733813601751324266850123504900897981640756831392429897792248294790379674890612497981520029324789701921770572769198968618926516020686604565749458973760483895088573900382211797313010240248434756167317786323543303106014848219008009251799390777378612454363546720648194450056522856258260292224565240044067342250517313307411632877955530121870773772049527297606583516377013749145143785079094427939843352483418399766050737311503870636721343732709715421639402459777918735067119857265064516845361795309811850777368177813543584133593392423599800985518399741188532968531246818868453412364352969623630692429559310004990823919605672318883851178926388952020367386974943891364186876897350721922051230453662368847381462740723103140162348395737747939724505445864703924318695346969166395750216810302803302998819921924192199229651220360332887255481211269609092911642191292410267306460179231011629514643075886860844577913942283561161726362748519543651184867898931358441739479029888778851134463929564662738891817896072252866281084038184758813412073519137124263939490563156229929584786394414214310225575390540131512451110798385822145723338059095003165296746999815152575914468624991377481119712229455122856113210844388809271986835118570689716623236750014528610799108823110805273642307376387825743998326108135799820555170438281076959057656159763189873003739674291311382565365658608600012266231896520792317233894890722790842309763832621738878029896394128927664550983988022632936849744081522489635617563212258399413517437977212641334677581058642961882217436900516268395631842179018424152837752015702158565226713150820842675081614011515000564032646708242715771137332188691397737438495835775096298829229547629409584874942366013769704565490386982054182537697382329708721929172752314339113149596304033851820896396966096664347510558195250426263248113359171160002757864358592569727091612258401361315423836167277018794915730535600775477826449180746387336326647798484732056399034809996802448408877866373322926697580994132949469970442267036007088475257853277592409011342153751616657258957773100906284159852483612551716695836583471360160648610846140011784308942132338124188689602479003687799536011927598535992232912746386733808722327123334481006174536127122294479392829521968683497220613387424691241435945780639704647485110692683343079446205758627698108086551833488293182761233696053045707499579891862636068362593051816580734452631683168424595588817287274538283341287977354971881375519939668357358658213424823734756151927187769843171455615020806925510871224450623791539479207785106681965761722076043013890413814266559661206031222142664544479412642850256721460165662068536266307857562465231851458530793805878215558094202798215604700747160988223064011261649287204729146005901447975394648026077638850666894684623482816717670697375608662326014934220742035442238873176214788900781081996999122260987183757470558127606907851683241295678486435866297790056894381751092667376135972042583375089811536751607174555383246228077952115167290430313606372194521426692218526457337009914764720438245081657436314893848791650088465995519790817062478851490840905357246568699661897366598080174312817690592752648750316120577141354917095411021802035064084191725852095324162959620831894117460805565734750517374152035796866081109013162931684161718792340624649097447088092229593895062069512729036458602669825571099654781403559241164476814208962616506555541058686844725953700966326739768021638344279435828071755602820646217936156453480483265123187087893644751453509040134532361215811386549024696510439313595241719629769410378310957020052996434275073016030759881603347141966813390130454014502514756165281496609472753663898154904350841620995957538378622583960107949343217171805983896386511703857656494332077780600168035758296173840035849252829732380433478825695839220659219535416395013939704318907188676320227466785154330140860331312801677610307034962756365147152867584394907097256925979438377527540755155881807473380559877038429862575439087869246422843179986577489471506199459324666237524956121494166142401486750532807599819512612984794321526854699649848518767009657565671426607507851965807996678182122602043265978439595331860943827369909535992118707822982733551177145039735884435736683053745758128392438720279369064355789275294173410964419436414633451677127003982628490429243629990625795280640399718722184274883814182955455624311042944062627944322097023630214523647247093428906634315473533229356793043223650515875119919009682951304433717674959392452983038408646967372940649080510645177130066435744250594170921759632109504427912531454586780101135909895120232479855348802446746186542078900122643624246693941471516719231654561469858956148988360592184161559261176041359080383993212308646392719218439427804637526175073387460887152622237423008404260907274824595010466339528612331622103147872177816866336225576958545012162866205091858288859551452148581930367232944248229996346438910508200431710836553476583421392494158370925198533940155586535381239175974289868902155620124264019949245984847499057703690079338149518414768987516179543113451658856217563390963008798669096318857215928228252478114863517840022394117448578235364170609966930512588761427665062026756927604208085564779646884992897420003540405706186529796091821109797664931354074632939669901917667695076041429550910557313673833085061062318982521113144119086486963228134778653145214037441802003081054745711064912103464790768662762838263319734509885099891217415802063886871338129855631122747765329450365403540853222914741720718566026471300586655211773514787215445971190527883781496088614812194151026965196599291087695526957825252095560770623182869829047749307791957745593428533149687068215086541158423084039516393779722439892303429656631026819146775997096823422773930551357008007872792326728813091049064149777816369168763071965071177043613412551975882463659287367304225910542597979159726874975500954443187449462805048110530063316366399169187379515392579986489500334093291028908376088186988636873718434598160744177852552375036203265900472334969106200058078790140145291439181511838193154780308066956218977988546982203122971850210771500128896600057082337428229548059326257114810447295032266349072335615845479471191188070903354647215295926718592437834951366747756971964739049267990760724760770761632815262044874429284640547379678085721792696151468906227226227408065142405230948394808528953526794801950321104548348764313551972286763173117965801658418830918215908817997430366787926523604750837650913180693043570566516388378505239140540316829551931132491488115993218276577186383345028628827970841225784905281594317162900550920414109242539188624113497274853193868790105105327432950822063251809935525025580942228519549800130279290247602229027309897477367921289448219503637849406757257444602849003754339528239625903898544582223112155179281859556676351727672593319193575203264824117961275630231982968558657390985552816655024947954163868711983395623783807836807459354493729978982340928443937810150873651626037735348944917883369356680301367356924460329592124829492478516311991814606930652911367284131432955795688878841095190376633255842134818679486912412582185477793044800146813915920233782646138842575767470830888106781258393310607779064485333879254354239751184986958595683745018151770017367920621947778196665493559711193814684505383170269556737067000718142586522422854290458659223191207861593600444516773045384895899694813420571438378042183400710367011462052536744311449745754333726859578866108715517821141805249428040093423897524891046180687585646047667358924998269005293006417200078410246422619716419297602666336023852089739239015024015754077997404597863045261249946879703087904882477955979875010164040702971437236319328063289529788224495263605776198467889794244521518305849991038545187962890334733533009179927799368617498063120401853615502299560454014563909107501219417086295306783546646853512089500320959961099921262019460780167449964098831524290161410023617266921123139962549098064126774601986153742439113577214403564763375398052925531842861999264178967045615773840136005399400869660028897042716945708638819490544459130337982746768776604862457649927109969956079943287301931332604047793952507489014739498903840764173983559567094444362546302955411473629187762659611970558188451988274724494465921990285376200423679776945807719978819121293111639601228534395150532343681914797576545881115277488454723539459624170734954008660722645757225203114932757866818223517107634038987506372832987347682312386223895255434955863181965616219019615331032158351027642260399462708707013908678922510887275658851715411584930593860291742663586538840723166220143078323716239906121709487616173704255535680530669979226818790342894090579061387884471728327978924846137605187990540082563636480541896616245810942551766210710958263347932770789052728325071776652813122519938047310036349266007102675973154940180774398088703364507145501554955041812162441772205902411904643633672520893179469265685415135892668560693612129374793606514448225852880386281747897977548966943410237934220366580043857794113341518039970153503577389019871988271383325401178093384602124722575990207960149446626758903230268037562681395390312079949411379097910641198157633206321521934316056312201183679307423447264338117372044098623406159758710442187608185802843470487558092877640438585262044880021031474467739386852075193775132265486827078907088241448001028213641869249860743261110176913894878077555565214337362286408279020944908943928279247499555860076582536866197726129009455803803057105592456689474431109758651549002253012607342399757342390475973109183905872288866198821941648469376182419069276064762635050793373453146310932652572692334163201702737363996159925196592295903440888704153161291217139564625248104616362141533270838662069508064375909606772529574969169007360119539888133959915033997665959972356247585005576200672670217007970942234142073642187834841499310705467199356551358825430369440511479268870946077320869856813136420201121324945392022058029375383456996675682285301138649780867432781934511577402422392834414863533209428140185348050413030636972909677220121889316882269953084296060539448004266413587497030652790331369052986734759702076473826484540715513010370071687988029362055701600782811060342302410299942539618007836005283460466402450520285121351485423754052353576528289273270736946945730004249201629370583609890817546940131534085776009381386423563616655394099782393818775620247333218998797910397020063309673391854838751842512758685962656948331489912664439798807721652980056858562941471262513291856325230514185593868285112040288874900212153003032175595801645289628830759613887773263826497758662818003426978650660941141672077272154579394907913484714784705899533829859745390472940614274416877633631663309974152316918966484772483862184193833082979762027821098663381105294364322370586053477404159256009464489166572501337411805876554388570948566590882349809562004080803989524882902160013597613423640201690354190473494882018990417417544624785342793178501913729509896253463376972837778225562207389450514768393810880725120732952879894727017089338473215571518645322547353589914616878593628366521565991238597366124902518574743655541390829886460082824110027842791675482163168102704854958299974697670412212438549431216022495716988569286666907504602918064447602956264647212958553282493752488177597741815906450705577286581575016543064260720131572513443362787575124946866601834329495227600982019250172608501033190796225162787310607684889167776156972020288631271775201555894276476258530872427209706535189126851855256895462483598597072364543629677307285319673651192639038499192006475131510521131535779189967241423048859950595406909528292156724872475464306752041942661389936167369697823129011548883691237142384996603842016730606640600833356009003325232601309936319743757171647686995306824406890225707931971091703675099076192546950134183285032574665882832083721133801929931675531845723328134745928834622572405140946343851842894505882310967572631372791246769576959226719059075888183012832348427854534800464611259990222327399586316790796194798933926696163180179681139130475605303455044479543441667114957244564613455715061555994936241293540162931587014352160783915329850480119822272272503925436991621310299654451199041342984865828652364786558653730840211263013830888378361694992203541229800576536622452453020097281586162853992349092273414537936572447050985622951482103208645022383135994457382802131764266052036626513441046999734112557375621064875685421054271801793025900711884303617838191628078796054072421218923141529017507776993745510939331016401719258970763469495582717990613997585897608026395983570683254960048527458630950183224236607118304513795861864472358675477575217810450140577806677164411506700872370212208790881187234288374222959972483970951334980366251608710856266467887629000712388233416168700273150833373552057151764616071893583698330155977441557082769764114769322421118164589336603249644169178525975238551265342723769750512041423079695498975366967295132228392142122621953876214829747818955110289281390948744008488661994650143094330580114593325658991924236733063100497254366593008759829031039115117715976965543338338134502359780356268992090001607362974171910778646305543235339143407300859408844955565433830903778530953878722002981283730371855123509579376857042935087402430329354410270200164098230609246225727380027927481817628428530597405621416519604296785202761793663051917087804898103715989133082518300534654507817594925526079700710240613378664923306264585916271493195957343866028051662952196339564223792205513665931351347858444303764414659932901010056206414328279139676843090875350869842147402253526586351117512301748191781620388031731847483467355740361447662776627246922970251850625526020091341247277115422495556527279440736772625903084439452384383739520952639329572316915029709048470514281739259302530189104935977418943165167471069343274309301195262272711320042701830026522266538585348017764690105000684531652257208171951856134112835872100031330630328427669903866930211723207953633387177116343114387733656544257728005473007509091063179536694989053323890267512549606771449280483404521215990033981339128438840400556579535037103054884588487608169791703096668919144512089188601191209395079681417561317326850090902637830307238611494275033532662135613048815806262742520505999494070209997665246340776119019600473197531847067414748685676817128382974052189990561837481579770414307049309867272674809011367921536221202933288311080971911148084853303961950247018170067720034781513840855534814353559075198086832323639601738061854293893059644290477011886655231906788040865163221107458691045069890426681604121050282244286508662163356385278464704326222194051329448918699168630583383113026184473492733037975883306627706677168238748211269586014789329813818390111022091798495788777988824446877088159984464964648033329874970648483501415445602232549470418113192814760858072862707360248705373976218710956635919883418428566317022563003753967077608726833846775985903961066281329908753109902498863645324551629462894590223542510869978348999045432905430488663796706994743753141668784768666848355327563635268210071941369421645686519095910849806460749037451551220521255335033041852421438798604221694402788006093405852808176366647559835275083780656079596173962089585949385180609308012069867914081122328606623349011013498319726241007867861292079451617343617009461973610321166991322049281141958305194747199768843346243201490278215416455578705955961285975233256916494883453886070543599364311014287189551285408096924987068003643198883693180834991341807228587484113854398526695738510106219738227310934513952361978158564094819939485264933844954746458045307190589311620482641368344739263001395097497641890539259407098647334411631515464020471574505208651035698106069064661822107126194522735350214231329144579890653701172916446287763306882245556143482715821516909471112984372334842019339456660116864128642860002418987218185344108768394694340554866841826545008059911748565044134588790119578028939688612870958198092823581622615440729683423904383529780166005681586555530424002979787572778655842543118527813429380407020424673434066999754268489184638804677612168252941534949031489087915418104348074297691246881781610497207845037552182531404200957269119072900032066847090478226789955069265207753598716324733816585057684913085088582031621968763227903312071092001286876376249760081641241491175088164807318566307873368381969723616280543372769685499770619669547233271243624032782242923305817956214441145817224977830363488922172147164130072192670698649867646887034949068390943929741523323835616826699402451541042892011279357559641613252812356398606277003874843374327354286283410427501670922813992309680599514518067182965877326479226315610746747350928289220019895052388602808917827348656608285020239654708763584334702762994469709050617865435680484637347551542996425007508880312656131841693633455386472545514549489423332501017557923867820237988167816673489131183396900921281808507233396670483488521736074593219512551954418204641934716393748703173641219101389528575967632767497968367872346331911447934172521620975103777257346582140807907145102356617575283420547644847571912601369223539286212662024929571333774631186982644310191084800238858171752160114502967363650272400648603578353557279180078453313445223548516285752702837175750483497540541589593552858632182819945750624133436354612142870002559465577434195510964804886064683593100526730578176766944653976730571616041779146814841084800570237549111392590525513003109278583794086495804499208916780512165315635136012485760837196126541296069685730707434690416457694652337508888814140002403533156114120016202829999218011268698763307354774370748940881666853324074418301744434239497933592653289734490876071330269021142323669720605306584976763023703392911207932926614996548309292325832358492428312248044200995546467826739080582826096361756115610051059439324154351026822397145138392115890120478144005907057822259543411035345913711742840815699102360848740801074821638064858203445406273732031357093460913496048154006226922829960477126608927232621367556430315607053628635142075197935756332641273090073841769163165154449300979532857784644438141212343569502545251901232584702961186737225129619290925505446541590656451439821386240235421148268800121172791974169515140740537252737758429722889750208804896702877510586560151411094878825351957664191446141509896272731554535070761110307944386816490676274100463667731677204485437956281287114939348885105853635458257411068498916019454301359551423204583141352874769317684799870178327737973682112669427845104727347341641676957138309050212700428616744333931047777757236544392560552465701514229616766688638659006379084310308237365454634040377348700839078410090588896855840932762820904494260533915109651543579230663384720134699488051709320545083477305938092739269632387052906195709233593565689985256979567742840032465659466042770901530722339156099250839569615326783018010868618360493526141532029801395953245101061265133480525426448080724677572768854905767185994963726906254558349836471118974210010139343199988766091298816779881920423557755153853306151695822070517797677663317370851309120231851900084720124403712900069100807852095808013113242314300241480256425364683881855954466056835892143692574893448454472270599348670966272734490984801299999791344270627465011781332968531988083289387166648617662203832583088783720875542820093667977294074616350863486879244737678401701529573061691287653301873538909715201201184707677638760032413785390992601470056203163104413582236692480535115049746709541240405328243172344445815114669759477167582963689192509381556582001155685122027291627716835452872510927965174773739839217540470948467640007624363798614704175569829333881560857983630828773379761779408547098186532162165248740734076144308786273917715054356747351301103400166424983612532046447199598509247803115470241019708632558312804903886861648307947227395538081738973349515964422390916024481649033447399985613419231975587647516467730808905298810852607732820947911014803359799954319705315201478657283133678523000245006939036733490949499565800761293134482180179199426945719004749592846536054235683985350268037933566782447054199048975258466021152198303611208618187658257110947943919752720987481241465846783758704773518205871731577712237150009071614550708732957497894838740627826338182983428701394320424776142540203521852822653388046356472424454901752121326842315115473543468715239914809377222442547506441628579556269537418713550554955349938556617892414396098328689094409068171895007428258994075211353708494293577302871254993335691309153717640582395907081315946485755704828463606603900536068534291465344061573852328330983673002572237738946318666066305326092815604377890080802055361593837356199587492591702225815957274987356490036799681763189490236638016522413631488965936887727332894141950712412952093126193037544615542532015551240570600185321210845303497737967586186407226943838926733637667552078672951682750124903231568174205032856305260297707700519593558885156132486764812706384955494928492857812417834060857814251842838172179800839706487657831501981973675754072900510230755387730010133039175870610834311157307623692733840905684245749804548021034310011873808909713189762678534533850593347607557493540276694043901662851571892971110426696622877823146367408924039320802506050500405534774201454630488640419495636369230182395925623195851463143051112043434013210245749856465037691505707859383467709054650350304768467542111848273675045741891485368448243511596769803571459628054910676135512724535484752541597552206435364662671168982784010737840032066450047314563122432606907596087785352737554212538582354005534528498462537701803381755499315659679148031532356867351599967977632740187371876947995492078392898259945439915845184830569653295139724288549829400050753186583948118602462648920403425950030512545805714850477765611109114349762793604102859689037986746171082756179802898888572355267430691495871612609870050193973032974589173739110028837943339301339029886841528173943941040364618542898309112769180171746537980913251232058065971885980295559705879364712897482655099136376701511134326525832378805417646757670037880953317019338016227590236048607247580323353596263496866389929184566221183523019206837032326180895867815159917824172029069920657924899450886937075331476811034933566485855280520389450399613352666669713212246605237192826553120037098280727810374159649416956981395494439456591805417303525109221568463385835640535902901977887082646459172295402471953804994797034063579613429467494716079673781709044162434598984962434554731126374032924807289364203937978021476055709975523359284335224420107514026618705444651692786846801990392446292357438967801767080243574357396115226659258246907166715521616903853811723327378626490702865246619162953260245916557018230810819050710653108503315427230087317568342526244592609714802244861158585377877765783536081359159622956717679065262806285318519056958064369645177314038352267016922886890677562711037367495549598481091059602588908899462632367325077622281863994098146371999025720319333439148398973424540161921320188382927349617224041928491633842024503973705598126559702317980405001053635833012218525766899520984061279715552512253042390072597861067126688971127993247769321647345312655195970031314575447584461676792308290574821062129467601694904575204734035460616197179785623673695040117860245437843171165652240100131779454936224157433791852724201317473045122204487678233341466139228649710845153359885495033331256603493990838944498127847393119956784791000329824259757110349699443801350356146691861483824799850114861836020661020595482799702673169271505458148413894887440631377474606018839750598171049277434604345537318171436601906880622169324348546003583830404412789759532912403865734041900163168530676265207154402351594645859639399993936446329504697812837227878305133191166330437544461247095571320895896184144827608404584375525830540324463099944760770120826757023468873054025433782460396985853510672853535508773235234849383658330190756189039168880578501452293791932678261541867401398511171614539614266377669555018427909518226434165845324169712475243576548630488319332236980718315209160926724228502638554227977302988491555464683449013856884041202270920281547593281811968858921229521274957507081429648077587812820731592656459713927900067067003014495812339949844637302812648877937420762658995971717206108430398273065007326541019666445269993142478104213885629251087301115719520942283146386264902965569578320358522510754403178248764441829025000351430937836440766303179727705532701000884915071828083445486265043558718339520574324052512533892127158241684352312101186511561534958767534965121333072258510946455761001588749630840475199190635882077420462866024893310285295359519018289801778646851499329853500799234454729559775212250760550874576068230525159940227689179183219226556489052736357497083122819977814439005290875431353266891914982928804019777107788646071231758061719841438154559780539092847804453146817409293660272263893768207136663868972548024316356431297882082763255016061909045131510247211555526733470382753973782719365936372456470873801666386005995237179049286793684204998977955322852536958288583949665709492723215918512575674569547107249009783638647936706020327471148841095706899068959959896875186712872108065425429771294984861871443189068646969003870080396983937937665277963103332031587603547667150191780207786103698246197433039739029500920363471709924626206913361447924086054676345105953658192274569609865462612770369552901588384093192296928975730506744446260713714915952327452484190417958015163046699753374683840033839430892242121059414472967076158226192559622694333490417003841907330763904904841392569718522503212791360133290743890265687938788099263899844774467605492221914404668744020511546441676704547414133667413459348250404212910975221150525389452292570987865465606049689007116224772900172211930849642823812880436765402489099017554549267625566484299046653256695318586587246274979826113215549819049060050783262901880027750418703508317204283888902740324548787029657342741473767317495404151138253619598482346961725815068851601152979814660187859760396090276896811111305123140411976721592855820029204182187658114142814852748343724446055814493552690193159077025599994143310208940316276278243913070793334023249576637923010302988368843292886183594631406303865826850557425521000205663541265398557221059295137217691836804358359198503281474811358173948934390218378847491905867429971610594482190246137829215057495124199606464000262767471273732761615385098299856135307482006734539518352059955237932022408755071931223874586349136986987447345133890146094695934019339372118907250343094427277665090992156077805146209340191024943182260618177780997495221280071042424042573609148394503473540148065943502211627788216968022517186757842093150166301883428981361750733796511047585059567245268811975297328430560848797630331670767260673908079103949000303705269236724958275253096154116283500203305454579629336686145353689010112623762193174860640549420205893584463025749358709280376193912284139009842216865571733100966984422255327629209100213222005047988905425459798624333495316963361493142691967203475230571448419205512261141515960416798973348706841943534458788796535872326774119656704667387707506674725251850076030110159383921483240918672956199447651904035007531917744961697411661869397053994657396348558305765155386251243623610618957764475529483071236182674470040242797086260674535888541252853541970891261445622340307149385571154407621808456756615265949950627049151593228037357938706449270228758171734867208499040240563390942161142363736334085197548429359729774022069163343080516373482077474446325188115927909937763141921075665135070210832902598562326553768344881741366471364687741616600817074787049099471867092970943440261082106426855396264351342992323247785708893885064263909283333264703831195888123255141779226757834983780653834577367179183820453272924294038295999504230429131233979425116535479646784691500643832539708248723662418295471344590501738684864679156683445660963493090968238305431791239074605005057804162289053141187091920701045809506005522431791781470343434114970851375869885965022299188974521852536034643627711682357524470847940245102928803825897618719749192743171598588395892904436060426558380594144931600242752731176657546795753439303042376167030677111574228107365458232486770986284041261037712994421613154834221739548654343387022451479224010012306141380197392802300971003516874489261101032590079770935447414940107523886582721201428069057817849416293702978732246636737151668943347707616784255358479568665709326517070463891372848858753742574524423444288910380613000192420589774618881360534175895450223336436961307726500866711716700495932115221719497059695326160989926055108664400930273316406740281783204260689393185736507413553908463680862305231950353816284505812754778554166305538609063444236848712948600415868547646829952983802473884811803843930561718575382487926562865709764946837214488801944053412222857977153434613892358032199766008096850490321272963939969269250491560700604425098916969344781112302955354337788504875125332175750446083900219977144055921632225755227804108076224784761987441537250635365897100511294943122391751727510766867365838070235602239284658580505717912622765613954320660199112425814611916518219918002452412400880558866452532106294511178201661520939237860724433183395032239386704768121095220616080773810461287751390675796422830094022288193874039051235717737688183152059004756498323954129790229877449355289731495204505603824051519942749450189436364998396346037714904654036967949728033009838721295501387192161555305654313103377123056617002983981589930906367178056804497592361371997162870966524704794106206598597523169261531892049269770316610003690455174803588229116240337769451440207499987668592913193180428079114738629132821635130211075809839742026645323659807405578251583354338054084164870024046685451262073905129133543188078351055004126251734962866426520631498317384649011679822898252728066477298013918846187079046475678772797441833390613152511054228530938303161647807543839049930815366239678313729069177942235029290618239514520518647179145301303507098824667385091357186004451352334699865767033997367371516385106995687466612175559222489149427596636123412092358224826708709887123766804165523762221235897978613410712259507641258086620045701563063718187115324468439822039966286593659105691117877469803628466079862534908086724821509446370201228738709217938036318805257277654738081453548703780230117891477689033189420287559939378036939083495493744254140272986808862311571696059348400339638369302069901495712735106563345655021936233502290371384872298521042451194272292647564109741997381621049727898460705652755365833488293533153205514977755936007878120362966543051718694521595567096291760407335830126875047735515603066975497757274228764466995418823379711362913295198917340980276038460837006716776240758340726652185284664288229437613517593681371853077388918841830494307817474511353347681815356801132045736510221144305927075268263397408797024121036888345918227428580360948387686545671845412159875771452590757172621226181627692498061499765504012465295638843551595904175537029989442044476900112352446495328769113516006800415683338291235251154973114740206624799569641429735772747368933406286039257883642100581800384585959871120401245878390303495248901027450679102378777881940523483131438341268220102544258543243703102281335771606123802376125913874274001567933049958500783211031810954662465051803746565792970089539508935139423947850587771682259960788769985089805436902198953743722717620784512287134937324958700154737635539986595627818023053011111613250702675650275951083406517969100027284300076986705810911246684194494700965385676884885623649334887919085295028483797384951638426880678634491960729481430159709262367454713136575055772770013838304645143193419763340957472793549955960165996763871253125961538014108361251250122769625566163574530514734599744362486845938853700012217674549833062468410715826758036030111314587250208088768985091986446633554232507424707181505462252774302122829217115013371662489401747215321964907057243991493289732977716837576983340019863197370241974855319914529792345060926735481650629447536160300022470593246244639914537190030877401912273537882367351306267293870101025790208713307890314810629652742885252386211054897751688761276022076890239822406092482068273745043458814774161127160553381732607985085912837923602477996343509056983196749538934292453491696735220044201927767597731695844480618113395211322982925581338482838858097848271680744852289626880051298108211778416638196078268907752671037024493132164177861940457511849598690563397780864410629346586494974277273969232749545432682103739997535290577568311972982703607192488261518951897722982916556119717823875709364596928897849794989941419331320959688286142903746488355310038246665203148323971505011281216234695620294001574267716230364434224398662790132310888480630018554310420394916305178367969770952012682905171453132390237671680105618312135212676255787289757630348901022080058568705440958467010217698835802841721314854920487599631805567312516465603997387477750110641199435541023636310466931781001320555245668626225202638161537916258799136693091869710140487694006597476317363305018420713874577537160878807041021410651723438438074837005595046399700579541898414439954042097584091791974364125422793111112078111656543498216983599929184056812394490464934984926379437479668782445771325159767820634815003017266757804543512138108711811037258142587035701729529740241114113596210655912575513483186626845047676237192499528552653433952503882464296848198353775090259289363115670870431233143637502610491127077979414197253982876728986950876207061676939994893744943768486368044819374776137984328678121095201213510206147727053239289997974880337221320966554108907620185777874155675520388811011425662814126974078672052038488574880759381532500279615157363342344048981376593008008687466431439249129151696869356207769050948585424151249861443440241792154962583899928556007968787727756053540748570755746845883197447999907020118045033501137283221326901092762204100460699574752183098469684091009273317498141144691115938461392851625036351665865376245508074929841662509076818561849293301042168715689295176999299710303693873193145779697824114773140071772898556245269593846849258057231647674398001500081830499296280853891371285290712776673106119990233446853084657696122549466656902271455900698827450889974787279889539794369687600468136485627888214539955865081618936575602698195915790105784361709339136993841583450472028481191665246761824917023036938048850609919911443679099771951195166131662492956188026334372684585283855478141714542107642789837702339823349492596690702145066486864094152833479504496166834631649196728432745621205874847829739892752532270671065365494196673485217854419065151263756721184021190507744975645716317046939231816758391533231006809359924090774221123022796560482390121439132748222136391389038378234022161969734194643150064569324226194202163720677488322028132721686847982335409135056930754003918845436089112019759306558802499768212679481168575902965914104690843095745499150344320735208083572058731360676069163917733429464224464806133131473953079062727255313547908980512240848918843280045414085812919030699538053913547369227601706009302321634396360193689323257869671477566458783780769544068927893454533648714084317381160569349474262882616789861431716544878158104424241117733328011871778547362932719116723049219623213049012334143821100792156880997891265221298269524578358048025555564224084156774964899576433440492561444078863137867049858335133185262467859195218578425305909717179959285754940114373234309654853011467806365634792098900853896279032064318287619086565596031687934331144906692987579147016424350242206595699563594878745165486333918047447057171292915963651685641505701041611854682865088234657701512394009305991097732055352693249724855538159129592636076168966345092055579460995819555384070008569443315728315209925154281174087115813184072776714566439239155178094129866848774477115501183822411427511018161632751908985553547528039145827328422713722993275434997925261673992556232677032659675931728139634154021668249144819206263327795371090472453597022804964149265942882393786537149987678777942214543407732022965935690002831614414278772571750207291917381218166267315111818430386708637924832985618472827750242369555814247903855581335271722277802379925389880722224001278020142366065560887798750827801713623517454718118094599740369405418811374017437758124451497075269976425130019647194922584357498155769116848500479185615838546025752061463547131754045379876628085130678856384630262031786406465488665555630397465934520529489382608287375176375528130276350269727102485930041515063739248892707167669229939520419210085394406367322003742002841800092475534548212384973982602002265545749981436997162976720660638001905438817482748473240867345186608649329642666526258112735297407703537701210636213320902661202673136852844388242350111642529111619679099813408096153093558548641141862439498307344656788586231637058844007169716865821762248183433558739358229733952987198853836340349503216647731288880499955852275031509716963246829415523190514722586984856580080031327006134174700440352192971687940809671123597355146392304230783753558407269534426351267327347935395656689419295985476608924681996520204911507194470783425526795279502199314097262737493289449482893720904516090516203318872579251595859395706605031533870673999693941756656327433405686706429778447851800620696753390771539820281355778824289092956141556594011620865231398677293005613597056838005852194687260765730829969800378172294814711263268708758426237805668637433630325907659366669201769035753674338368422215666573802763318502331734796344466417621907870036777867509665792921720362184622451169037320241131634508168729573423009590478164026978313218704578935621934941823066097957315471224757615993885318616273933702926179541526720136901545821481310425428962412920879392189629468599315720910168893991609655781486430898369567381442339533680398323401809162298968363444645032844337045603272194972339031088473533635742150304523302262014171712748667106316869832404519878379236307037695353616656930854422405480584907070872068792356973149775242691681996725819425264328751790762296518995170025662012066782078177341020293836993021258444896947895150385638533204442502425157757038625829941720154526256216030467712363358180516001840362722408049321199619963192302111401309150063928059456262880711047003530665035533276273566248825909764152439764382417907423846016381564076012665773048721846916002423425597833887326647739372974907294472686600334163582242813834847803069505163417467199457596244688235069522040272984894792907667656036480526407611340239273680822870331630150221063798694825890338190016118067191769926777591606808903742358166170767392752373647669963139284228979395364333486648252177800520817164608535388510532895709214397525189180198688601556025178117217630607236294887995415037223234326022827991031471114951249172360903906011595679779382621688991974702539269919264381377688822799694821718597439656924454889813791192072174638487479082881567942829920614136814074271282763658539945475639828084285236330698729576889908334279587485464560890863830042447064418601177846731043965871647730450695084198304949577929493006247860940153803067972890704359913932644458719007411485098915635775393633700493060843927006092453176759043218701410060737809002300393596465579775393605032483530584480815570188054889113957410838624110673549527575714249121181824115096174688232576301969853654168980368257235881246987076949550576449265975309455563214361320681151312447262304963486646419620700738827668893301944844197307573547486648873109224019624770282980216862949680350947182753964864917071028763998517072454601258650986450073018475500050326937350235779643427863506816845312703758871827865597784100247660326885390364658548800321115338949286935130001151262271600551736227499071977312985379371996072071222013183507481730378932757280614605809289361893337253099701375897811610485914443559928307271189442575044627327542337305392591670428947002106311600356963035191543290969182376032866021747373674035043738699515675585047640440070061065831433838239312234897778696713268100396055495399549320679121978421766424916610360104903099200248903572289446069501332193553310008923899744655729103348516508736931734650982383937219458928554039065711944078484421809680388318136833739549566398240809893777518091766075501685768331278573206534907463806822820947441830280624262525123513817289127089940274468086698759443984394163490586479861718409790644807963052834938928979903358967997432080772484492321255573422561115920142078828338830644660405470305829074381582236205130860555026075839462857624574723918020702338695009150837672063250699721911921460200099248591431538035860932463513668879503391089525103013581318317973331858259308830781021057218591762784286308704608658229620266067541705701474619133804043422762222759312836608548545195031360623078033209875449558408433443434341244143939336367245936409931676485561898393714640650270167556778005735505511581387276909270404531443373819318378697355319431854015180127304202895225437634569384202070253460235767931244866016959012990331217332414415126847537443817819601129516884741999192366542819989707067457017938288997393525243906508215525697845049244231922607507553115091645313733979511538157884322299428176960802805671836869622643313352276580917495418151416849326869647242756866169477570428581239303834665819946904454593816648941641189474142491369695170840911723055994180932388532552706862711810144136326416901413079982012900522625539517695073594121524590582157179054088687625352151496382588948842601813964369526280903947620341656242689516309210849546149984666788352711931449853634394021418340275309928857025900633733699895164359189860100973433848610921914750540822247216256140335195755821307606607411883718761031174221437282891868535320963829581601231510526334901061731855026064358593900398280599832993202595909057785251445931685431687060203294514936108254974894126766722875753330947460153460008650581773763214735275188540252755626225597383602803806203472081110026090752552915593187224190097918592339619583782534493630644958021936699182384728865284724154895141276635810295127347422289324717144722654767424190244810413577302891812855056772964125433483318525975337692562862942091099785344275795240519272107101679107155808044478141232788769607699541530958777358933877477388160127866486276696921367236157711505700788794350938136965334523199137047772776117080250255435531957784858914512134790229569788358839755715511633935573311273783545279431158614573502187852114005269843573883556380351720952897922165341358110716110493360566078001504885173586890847071082249214380781807218253910518995522730770060063622233587955973741853657089595062741284180816846724718029992386662471815517194233693518580388160845867308521081260408157916522043477997352759027899122664131760354506308396685487148673253989709522602231065768440986894771160809837453976063222753721429097011294503578989829766587976500836585847473035532118686266506467939614954125126890348446140144728350006182414131048683253339790227204611948875637485785227358405466699409075864690601222600498456244568151203174502584746477899514173019381132561436965150349321742769039611947829312189647781920346861498685102560566815995032398849931669627650120359508505200029509426397125206857249145323129479610827717893343860474783999105795812752367629884116358396515961365494936615746281893590076444080129465834176044113042016785116448971131849535303120303242782830268382092995294488032959832435958629600830106485331716068162083626237007362476837227881729844353473829764614883355596300090141502838143188202970976751603573602099942668829986597893606056280234949644816554044137878778741529652347178928115599552024566505036744010248025870605960107299367877369724523436478157126572102947739831572472393570221621242098058328976135306404737792633031002914859327680623748236256290298708661293338990999723850875412236510923284264214572003533800663279732156038420754062959562465513813058731772474812444049143807084648195835800615541303376775957740489487384005802882932839267248737994338812049075482220572783693693308578690762650065916775937445983655800108404957817462958432311446595228667508252466883454728518811134976989566712619627969140429246681052671615760508263309065366082329682347887652205708272818053218267793581045437537998425191299503005551133726083036166467576736460171753306102651457741233083946223298864764345588938533329360843834986575303682383300459773397648746708176242928896234527924648304641898887174615799609978995018225861331422853490072459373956940465661408598757227417311413065012139138848475843157564185304802679231842863718929070580763947903380631690955569784475911878138234655032550398672348492096561714225008571082146780901267769895774904811962214856674189934616919373077010317330609753507404979626167923757976701223045875811748757854956091543522710056978803462721983039564480120834898142564215897939697383111560653191741790779404351499971179297234165225977616772937713409197746984654343890687072331127100879877095536703140853152271154100691414295684919598613908626974883744861564576760826360079360455710401682063244691380518550405578486782650916986605435611619786802769878405685504852772345198142582547441623294349363766102973636505870962426762848386155737889548148525555087591065936298153140048529368229163088387939737603569204675393336179404110552708385395859835805937777964457750854634155737420071622072607167369365424680263955175136225356047927164151465802633180001322347476601373765696726873875034748533712709040892078146438174054485508517171789850798996516213312391292217045439443324716116967617134985317512629443662320944538035065170918319183168913145747222985812791431770996446741655128412392953327417579677019006029055413217022643196242036843625063809291539743153486480249707257436577728703507538722623997172589803875977698011999221798744302894048172998038334961691564847185093405370965869419029765788313030581535636935651931185813109710642112304622764525209307038638565952750197512279613987909517282639271191010192080402421487472689707204848450657431320760967289560290082013424916150036283792985793110990728919095468383986650452903026671725603466034773231393580308811851958971730247005089827400861801456861747844508650523884162602515930822316206705254456549053074451544777708204804481954309325965265232963876036085266527621467326049139637037899871458497806185543534340594044661544891501814760113461645398260113773299084184262537734834295712142497369667917969147269840582220221414153820510838915866455640255058776870408742161931318103736675200148483299066080574093724486211771712634353735894506704207805844332980204171324680853222916372284223870937666746085540541949921941615355183546394260163356735954028445197066584878864722009895611021934072303413525731521527872847196761381807198237547015424766800851232614341538892197236601941606599811523771373401434840847157235216199465863667534292809411985847490728774491396438698438799289682479639154580956846377903212097545861339246074550226939507366094002764987152563374052919626338329926252462295807257915962167923164030630275148250939180892354932028153388704186264838964345599491812249271523666031279174006553115739595249331622459902325264042572359996535435967255532296191724526833357156599332359415425435585767973517693444706737911415636475966205460478493402893042724505276589228501995684715275305434582298564070338527486863824785073257643133784325454726732982117119509424871580702381885873282591936993175556030645374753277375386358943451013637532370709293733389742667658354004294937378478014376451713729965747223993862688639397849036315653169860322721280195143688145375181538687161975404528396046451935274220874075564677134881762413520825978050283477208449634920636833774090696140652984607769602462887770036450546201520139130450695782346286077223012304331720989298046252925576868243279758135300665623403615866186594475489294970731199249802176771275336280177837064304937499682140524768938713176462884479717509151610205117318555195868915105683087858441278543513131063315223745994717748507935605146982635574059667677006677285749069162283903080494584188528867780765957143370166644562117178120796591457181074316823666448084672962315177619462362581362440574893604899267612076525261892596499719307186141512380004096072988785402571374269409198664265058211137218608636386895189452067382529795087620624349495470956590862411473205096695445479859651165062584091131875466113298498034792779114476260824374686253105546280503284486655173117166479654349754387122662789300303337514501950651346712654303769192304964776013328012409083454093852451620216094596427185029010006723761121114489820904312195526707017456257100194530891421089018823684823709117833658963472585058314087400531215811588717469078469998217245285852909003397141667846355110201090157881872660828413161909951636462821915341520877315849790512812070229044761721556937221089832186677462507567899505042880877539340783174059299803664266047190867000207416653609793813640479970890917288834162186007040212863267646493490856267806996015614446180306731216573407021927296131700936170334936730494629452848893256237020164191631736075631983727118512583167014865065483064661605774764706754992519245893377703821080157176126839767648720349007467775648972356570459748249194325005416577911709713530211818631601478762591062285705685473138704315278806038197283713783785679176756538473502165907099634809433394662604072950914538755894967414199710977141303024219782979380420493754061869691033191790095316342612208378622014360282777951781151336839279030248836284649574915811012838954906692434179540641705888002183028788204210572015855603257077204622587197879572932351666219252612281186375953274177087467256606789714196847212803237790282265720221243594911633610417618623638595345640772340515721790232038014416198995909429801504071899505509986639960013045365028840535905693497880081419919627693718659243815936466653295265252033605202260188555617533729252862594968871480374987400819200995202143063961190388126893858416450559370514249732877069215979391558438814447664899782632393868605113137767046714562099365970084872675863405588737346912521825004330507186561080180894909146443571697239220458493195126726566828676259535504423424427384574172425389272813911478125886631547470215988177236893109723290638288533867998329246328334141629771603238542259986874992463180964633421478704625991946683115024880195667041358998293557063498236333395189303156283757503591305424020952079312747862687146410610546360524368370904976410712985143508067123241771611846007955126303482143856807915214422139729281226708449240652766137390727205912170810030229720086786933860959388926993729518582083402769290546870103203278338940762717232996284898015119102025124118102640480190982465421263364623639117067777948314975265949100330801154154571553623492076399061905336933755306385257757662322893413192881123519234206954913586119836572962059719213176146991836381769051625122706140452762050261719357612329105524212603833456095976175097420527651995903652631669389580521256829021135148333639463459728919146625890160784137770370174911484524415383863192714152341104609994782922785042897326809620315986214642993992808455377132874795359219517751711136686527169934641342487445934672346138028383301157272223196268495648443846513874845385597283003528274408488799232615282046708855882425458956541357349229041111585330722606382782241655179684705717692781668277694876066605678583431506205835627424523833848832420243313822016523965764563859260168861740090133265517524366855078023083531589134086564152604182232533944235505486773796009454551257906005606242017540032238830328500474670036267664801678301060153446643421462660462269439157385929729680070052206942864441261418552033386172124198300649316959141123002183573659855838904818786137696585715497301500448333935823654221466774873375922038215244564723817936342181563826236336200010500930929673528874913822342548184189416628276753248267491499442604694658825876220280351197185001399016873560568647403551429819543929352023752692623528794748375799109158777077092687877791706743350860397166649194016083462526041211144997539596995687809664229069670781842628595909781025620516680887401342519731867959834713221770135985999262838661323191532776871057969025915033911004538176134040937016947079003127999270903773827915927638121400887769576451585877451008886241918521396323296059223426696486234665079031793906281270132728765240461992723270387950144204875740187809650984951236364419919060644540594838880653585026322241290736219688593164503407525525573178605739570635665248526959421454382755878914132187879764479958204317435255808737102539675370909769831667291669185482596552561936272651449139311258338821593614626436217679219638676077792800236830106647225734951667747861297621192230074061404248457857183176157809465856547661107190231682227359372476750237896068840359107006330929966751322680998333353134264111663679769065761803337088255914628951761337444537217534253504245764076679334713372167098334769544508089225573402513019300279586172283730586942154836005115428527453709363002404856237464232248234003595191797194928121301450687143774323525190656423717221622817695223596788339442026212650143210448940765349631932746917341157179907114840423864543402070641188166956984317180563675583152304433117740152666967084359498352350489964529758564185126587283637037066837361878442640257031019631730887180611486396536109348585198272765270885827303497320100545080547784476832977330803747059729865681448667825272515746748149700313196035916338614758235074030225191637385962004383642020383665795933720685616476377907911809010980441959107423685518068147738402278495538154255059096014041915769067309275706072171006631552196864982592864388610061991042541449534019161657684847960973270913316359727069822194289570334777817579236601976312947214820621767985217599467382947065208757649328959176096865266269273726029478807009808119542574459612313833218328508711945028813876859747595056103879661679717781922887269106385015755979381906173389782931504756492059126351775896956546006957055845534088274382526902083433277687446994595560924187809730228086672048161015387267385745075834917700981079968467127466601691606490837151016803841636610721031888574906103743370654430613412731532493183268976665826595650342271688388588052680215030332337159232688164252809587042240032137071020745128941188865997053077525941346381445948518245566947877187311333216176572868571241648725552746578288047490542722617600239978054233011613312171247395555595871074926993586809815690829619822772063677708948090988301242632885940242219174172382583279639212797576584057533542490402080676694293721084646036160998711739911338337220860498635890761035749302374093288664254862675114884977776806174189294339778066442947969812218191539664443181940981745858882817361207256016983184353390465699750412060717768852487322372844779955905506898510308592036058522649541926263490918339662047498928352861270262408017052596932789112908718633271082520184855933964972898194581122417792544148185896864394999970274656074915916989025682295216039666677007050178120514849811168948728625462485452326555385443998689972262724383100715903225820777419869958810439747576674307044601627094016336572497982766243734201177534354873895466381211838484481690893029948074915356034716275735822030267617042251189691149081158513067669918781829757041002894036624104708115852693297013751386821026232759796975719498267466872637183294681211465086032538366095542870466713312631250144036214490258733251359504341302852071784376498618650697947996391031191040382732712546193405065866978609007237128567464166233763462649263197412814883329373663723479429528785187959721293900453464006074438929038792273111688984734502839257512707835723828726696774745024336243336461142302869616439636127528437601285372716012853790176085508258983402127864995675665221821033351422722823764456108047558069374940444398358333513616376350391895490978475456487419697651807320985611556846909190394523099570219887982605959428450815230692256543811293399005025289842345789821257364158186957418501414908109764169550538600160773490295116060136925860451772704800315926107508455418035923472021232326028758490320720119755057488046095948376430376091806676639934567803472689933634012417088563258935767229234068902300039488710291308369307946743971112001834634808031096529621017955482881918308951642226333331356591546832256122963390652078300317952950899879286455004769050292685971284561406429346266146262114084433065436072956609644900412334321958004376622610597934750641458775921674194617033240398285192905481232712157706342907027440252618235816521135657622915046582094720241171218075456227261083019909957323686837001540875134235705670612503646804203248003406610206898674444914330200529729612241780847802571519741788435771465510060201336886362540564520720679131827568711553479283060630434648398273034544756582918653228781268566394599793829511230822453660249659505793306407291204962826762282989198579039431948378846390234299838802623064911479338257218662446726678278989953799673012901656384968947653372322116973588439776926673344021362227941841805667324443240723133535130804539114915326769969765858158247412105246057840183685394415913072525303247226508402356774010343274279238424998217221372869947148749980135283800051883489186969493369568567144913821804267970577718101291003837152020089412858916361599042776506100376639010689363931325571113156585868724808729409988572867694501397120420077953347113823800408436509318443364347833687343801692205893970652272979815595518986392556623431556188562301999274273598331666703865787598928429266300188084632211617570905664927040179109550701707315854553015667817386147102735764928923625381224008425087296068773388837559384767269528980978484169344339477477103772285534124223833537124805873954896942132777223804825005019348743320496040999589053089108978756182848424164293614719890736526002285871213616928149582283399683124242850846948065729822658489532050193461148809834715176162204461621869553472101585989634723002895185261320344905715493622912207136431469964368869931115982249147891375175790272129289219561513734727694980209246381488550146577788997981625153458336750093399012905558706238585316026404722772102018875615243557782721986318011734802883426976946821251625834973376939414488592248808415375025802122686631700295489488179423696904456598612679828715143627982732121460818803787778830913264691031172945984870621501459332227925179674553857136090454163819800462354436550431795579221636383580849497786844866383830231711195910241700177347518798473903257308620350189550776834553860655503520360349353827609051886834882077220304797297092623878874176227883328933226212598584365739296509187511144187769227019793368672751406648425388596436025740173401978826331285922655708843251908981605815399066284785571472149413916331295211008807915346954121106581561615316201590027488893403167986269871510618966518536931628532167982975674764583774339634888940351201090226002095465427785624917751866249888752700499642656501308325978662054282326435170236400009958928358118329124757601259123692922589156298493765648352957550557195852032710308218148782113851328455745077990955887755163654359611156448894536549314374231459010838994860522011620163045787416871746535525293600578186601634091520585242407466118045718930547136613179544899611671166985900352868864467161003292537417624240162887010422250030718673023349448386324004494933661656844019205038511358205810859631014481565789390139022885641633149732186295039761953527008581379173744675556934748032804458529142522960627067668720537859311945839577143084249834988010200860094354642886216534796312437092977324242478290378207247178781430822752699808698616943973057503739094116297455182999848445128346736897277999858338387208761562611600860062448849447219539732551802707691576862491834843926215288259606661816484117802471764386418938188898424559578657053082352036897755428286451580226502276438566877474083755352846821887134976333068390793580195165208649786472592024130218445377796396202596371301103140960258152607493659670740903597224209758167438840586410582646210662671148152865754234816114101778191617614917854520447887148932094373858091281751025179009090678770645618562898385601279345490532629063280474526685504200982398844476789260823873538013084639902515211195005237365093804272364288651080381053083538369975459935219741623810894972421765389686529532846026207629935259362611500900442443587124374038247318644161102152501656835926705939323771412860783221053452535068141839336383878228746749373423420023487180563482465313092932548761115396067192562049437919592898972388317293666300834379009527334353458909286966504525068081681721412712402361758145409412981395064119043422545682119027925287529338106365469761888794703864783951995535263424745802099850191765671994782161460316613351087458303998994012761578856176797721419659666357185496956773236307072624738830901057237995181176423663408549114545163386889141986197592805277553396281888933633468750887279544742893863403112355030515008928506968166626401866526068685185744474605830128662290394274174196890553777851523750942064006686647526742113243665185880294734120773384764121107322551726817070937775400919863099022281313705678899736678749409824685151579336794565267192739844039389599117208192725032429108112369252095479135093236912357540919295739176929825455907017947025088033397942624029833956153624028293801907963276346546356006396427888602264829665712439277761531321938642793410006961379862250118245128180940064706396063596346737745508978502899370327768605544395416263631807431959490460298588255388237949683757810652767186849724265076507136401141473202858898124148479640527559146810622747834962283869130739267558481057991051335643543043397214559348786936333887432968189173487844241860073958132380823799039449068944425451907934127484847261324885758843819624889856929048156998876512612674697741981506938996546637067118552117888694111652160144441281919605924751431572996753357815065296550318504752997970983536254953931633392427207577812075410162115916739107408122176722843538233503712546600518004381374814563784719245947406476403040255759405125748238483205341316674153059969635033198011595590210808219312691433451647760514762149775748271644223339676386510691332135422974165189119228274103030559394631882165230427030873520829067572612485894331317716501979836896689560249432041558217194770098413370312759422180505357109550410022019150314077983326747368531709722166546841109717710665615715273346344425103520148352846843079126936091886424956164147995497769530481515969226506815212912353064045961362894208556306136622000349777260632461282794865738806304049201872371774833090320634476334012478707009127993373077263220129759382302373517167413709523560195456561331447210803334397155103001283080060352099323290232574149799683766988112205892519364808711209507547302896302392009815362929688324368261175045874672654138185762900432774649814875680051888583573306710256279505473482581506491322115937699379648663435939583777201176929581244692764221317857850048826146994089896185291245455022307247264881131803640810890479780073990196672881664872471976930520730749746928673439903282314782058591152078993363116170422122237806048294536533487791106999831147098590284824006974738074470860582974041788744047282964443113534953511353000853075305515162918756796059884005679220089542080589061281753376026292705005619612445789783573758131452306290527081207283904888141557262638292877535285629650675860053085109609202274684965853342873417814410338973678932380166371769055182968008597644851550703774196847901424014906312238319014442696580248008570404414344959984381722524364592783594933782804552221805852667760026254000366653674415903395540632946611725427988262099220458047110656130808778770627156668397293320456833322302712704754244973042009882173937322391690803516616597040551101874953473009230651544760657056183338246007498999027026528834247773822667478777085516275926008754395153828749333859512801599838632597049243177583518023227183725027221845693950953236635679612956964758010570278255504939613948740794436700913392595565942447878789405430633831754095825570933098627385266982131638491224188602184198491471848370592116614117172071580991093543517941082871058726248308831601679207766872524047352028701850512292406886071182078824203067157670419571576657547195009849836644304543935153545411397317075321060488019573251807837036856092775497535864047747719183176209090739451973952309414584559140787990033303142481420480774003473130072069793987608517607822204886074748681462942155669544786056761423322643624541449733387947313231810772909772195017725624460688300908709025498675007508361675277950821744391394899830198293269947079801076712652368257066511154512099121466758787458740538003744476256156042985818646490573420730328465290023394785169003793934812450699525775003483494607473263718965013954094165736618296358775515550954324504005013434872144926264445793314560230127709403686182235799191375480677910960004880692877396895822389030793793252775190013184265277725315438806434902122345581119316325863026063921257357900361915392652738435903179716946304489719835206131371629164256859179733996374874647607918088548868079069799763454404833227822465248572278249329025551201483055352276276095566993135924914302665894032849994991885892812962518062432603156357100625022157699251399804230788753636401844858172284206745137273941112615726680176875279807173022455437527407460825526787222735082502177009163542883360050970637999544280752724694672470081858785575352473307584403139288746180988324335427612376989920084127261489560586125816601373183175546134740823337274155587390380706486487212795474002932379037648743361887206765909655678169466393268585078383428034579037425552857893202768671271766804393000918513296203137556466807762336063254654474987408684810739647579770240978406604385008084082834679705882866831806664224485072083487467100273909912924609769970374161096150617892146679432065114096963664127793692078719526219165240293995705957588741786307584037284012755358769012801236082577826242469720797325474942003277825837007750463948995462701304077362693798372253406132352924213360838833980771776605309917847500595743179230225039753154882307693909957870914998067961768078416895228199929704126947233917682462759091765590286067058658786655890243169550379569749599700956712972804310264394979487552367758617293483581751634081826484115297134494331366748497181431363141114837800623808218642476021573481619407230882847213615875734318855394241719015990404396000417602053854707772609574515557472770011239436574424729063435461236270476687814048735335770944545323311282304373397965779097492983165541880187536980882566651175408207359317091622356373818093434611614466828224489504913789569084319068120957715368449018460036673690300550058522061615660963246037646119160284859545030986721867656100970498527583524305583351520081870776309786750006425074684349691392500835183906768476081624561416857080311799728766911429626841692830846191736045658909277066461323216481011913481292768248858321820650588070588573430424839229865276184477948913642749491224016391763947184502435719028721394939867238783300342672549535669679990168284885150714971565745175643318038302613009707216828966878158768310033843314153460023347336588830386100833685415738751405607935308954633019473128018349616409505124623710008175239307843978650423326078570530026268001592943231183269079542994015301685481903167187239537765261606964939532163847688713867944509507491321386880798917589104815732242023131705217847777299709638617249432104813697041094586497625212783584303007096387453250126167892756566884946017750161197130906640082395042752090389123462731842851394294801716698415245110256207070121479370249471626921817155532978969844131550163399487813579026519586254366898190285456344948550526031152892168751855114700165868591805096582037498526813626028327263310058297740855775074923809756891444163055845399116754032981848406371360576978021817384851473698487426154218871509244609188888493871510004843203241939686830903966701709139508764080647119976794539309374476510652587878544883336049539574608487158602045246767315120102887206161836603303478662904582693637219646882435865774240706582164146021800916530173010980680032059887516834100727661309427104017311351518157235401042286891073831774540430746574712581860713305201548864947868697670380780297001296002855170472025110797329025921779264681086969156130665989951329783154864135728339186124241514432226550424003832336539449820363092389178708497151039585259710327894902208410023702662972200183257319414283811439458566560539875768890044526112435704107760481676345089802671822260496535361980486276054203604381493748686243812316562880276121580872833676698039165596311128747801765097056708109355237544772964080622728837418278769134350020224837551228847711982190236797633716059047722774210309131742665505709417565310903206377583486591971389049990530750288446714194760597298970404251336325997816664080711826213298039334641625184845293121125875115445628643932049336283938000207286268126145911180415618496389214468993479078372565449057015533506085954908841702198755417784058404722515118179532964957374416786014969063980635319893467963822248428077415087120654387827152763714898148162343901130928760718214375345505161736354363917156782093144080955704798356025730738352238698464207286052237786920780333998975629193368307564997180037253462721049629897028427797211572483469228272845499991377575273576095624750333575657393746451336084162032182570843260885764871206033641041376127647514511973228989754046853497812415595677394288144603844963573301757177476855244868437809878542107011220237075626018323607109768994452997673721335972680604469427298530733868519364503110245325424868812351950795481872608830206541066229869557984210280848615557911259833959610385727363954294709208201577149692879161529227338751527630005978332962612253643176774354168043176048609170367319107611023314924832902406552663553873629438657396262001790967874928834044761307540902940980072898348104280162550159181875872949452658125517691856221003531553442745137274376127087274491118934175670200784160965456154543581247509282582706689931777928827035132021239840748673024462700003166177601865706287851995608737163319636081170969759059869503329033115279532918452617127872210826917627212727650034219912170040237554904616307645617316724316305240478480329095982271574012148741012901949335686771572426760446476042480613309211943655929203300481759228890504128247305719453541038396678569811577879371599667403192321764859306514647209162270246113456609163651952963249732875595174386410019934422386283717737035922660028443843730818946750619837090898045760981956605874693373613174028003230373412679257252402626400026111983771534603528610044729660729715221084726036915215184739023251702861878026402606971995386391444522623286348421000001456241015497602548283118909631070366142617334867416075184667713914545553980282895724562381958339886187480933748690213829255338323498473562653773177161608505196059191339356185968922671457424911940683084259796667843029411847595621351351124528155283485806359090289178093687781900228058292784398820244255832157543490742060607239947784300787067686601390500328295009383066642765954682984320655164739527378234770193729648386116581646884103501457017542773520043846916711064340520199912520071529344940286415095640122520091329607291059580459343474639471697770047874086623221253940292610834743232114418987638662918144346734373343012428620525062845568115076949977709777193998052065019788535324585827467484833354758603752927650619623549234628548262613958127798917661675775599599216126477722553215749187466307661292598231802614583845373539712364876290738022586266284871351336890469049570106509273347146822019586660133311174441240729987857866884034237099126736174948390964313957085818086935753164627643864085930807151415641454168749439704728904171197085513403425347367624149153706411677383151849245977074312041323744396903465123135867687380221693179174112656963489905965299942671904122465312810488724541353142789944525902900238891487964893186388314868342308262554704691195448912559948484116929961429217608286059671683552713399321555650948503966332359862111822698248398335999472770037336998470290114843047697215797411509438406205840430339649764003220884525978785563869624295195315701063529747824756425281636617512604256852858898317415050881241569066454973076405265583067105116970029875153484528068650344674548660527584224271278978097031201869227645386184922372740345846801155620410586283278240977620636915924458262490526467079472727536382203895309094365543223144220644126328281053928817041035003268177649973490810473647844252347303982555671687979094680958125846442415103219204961917428834596325683383090561252998084806326438645383907702490317982291830260472115812828057737867923101465135955013005291240822482909187912960156751531340325015126607253220107126861858181575271913455939624867751795801269257812650799272734010242891526788040102690255634156150634284998638326781199785434757505361266639368345841347412290929196072549311165499440910919288888540942313508105167306968671053566193446556423923218727224656605585191824698613540206241187925426463561579375481215688102458201156013399572322647330324728088869521340664273406565301160185668376982056547131366210857169813943524566123876486785565968588467257159482098511801203093969916613882436467932297833184125601618783414705290868941869544914801697877141264396497690868558435718380472902258952038986265569736302655072512685973826432940393608868688958575288726038150794473190069312937631555478200139151309720858259267070149255840876215244189579158221508446499098418123773942213766138937664120969270054239129599679543971558849472868804350022046151896769252877774867504342661299231373699018895473795546247798445849593417543082442491480770410551733056166606296038415405187622220263050403912528068345455463432508044390664786629721261688947529021798563053123809787573902346848044761388743749404856169877831393491593448434964152169663374425468056942193926089675025156477812751647023794321288000709834948619059653984623054861573177343264830135861764286419011311604560225247040366670014556613325128558526650457274875665898714744691539032292189524647761486841214478008914385836064428030850259735277551746825574248456461555859092122405283718606054110935875393512363750087935760402221936005336957202585678443405273523868031601591721805986836684553386132385395201576392547576200981388114685440839082002887693787207967132561401605695283430793239966565668404458967284131892227501558483648928139525146714655497965315164683919899792318344317264406366158474744258202964963813351693513669169265698565278952798624797281269026091898916882529609820751705755279652159527873472685630824458109359268607292554426382500130737436510680597429770074407110322783690125657624097886514463040309316155452794311650526204406223244176296283847342532441615000359617872042133039702200717644781411472026451980084072996162137274216294721285541326657455403847007636527030492139053063554333896239753496673870258108964026304778225250150035778504055692899774958628399575325248688914137711047945262556452865824342349538707514750540053202373783156276588072013863456631014298119748498820950776466937254712312831813878508405222101881154634964544570928351227314306089129123816267389426360531516552725766432997357555399541462557355156180691062255297494407080900682976320673018749257693583000920676625869147468096062697002565628777453602557852279349953384800880395465468621311919439054062922851569589143525141346775698265318572504640316484776679873010330011422145433187385888049189435246287930485699645802309947694656891653905414259847572746959069789643786396999309379277205060369595130623450477681313450363706191944551194782273659814806303786801291254411932065175474964533683225647748141797802802117900623069587945940699426983583199324169789212534996102265674822415039898234488456837976566996008579703252060087273658951449497659120720979665427048226852083208657388736876585169379516202257485654846517482501700274673302944924089219283717405515361357565163036966119721636697324080011053565953275414218070796466520710127662827312404377618125981575662491888824255562120581938165175101801989555645650855250819679495018707908321885626369329924094838950003484222552261855878429801663628585326797278709281367031787772670558397002060585456492470505858183987969445946515681496855906039886610995631709888634352617135776558416319292042938569587984247167130368239666284322711996413528531549526111158352112248220078432912501308182064814256229988995899372476355585996919399280377876616913389137629621735404913384664191593506865973558327632315597633963479740299513615015680535913765290047195436816833443355046787609167858839233793120999764431392877017509649882996284146014829095702933681239744108592590548587037461885820877468882829932964233472271211111501793043072451929309449525248016808520229300936672902679644395285690877594592467327916502561302371933338148555193175357022376463699037577014884759221869409635919143192183033086098056932218799978056766726932312321159379125648346039811885612047508499433718905972661364756304229863394056932492942369032371509883562623963674704302201251310327646597669687754760876425899631830288838082512777787776501265317143947773035225934011231537914451980127468756142504195100598435122808005816262597660377642431586180833864822301951480567598164051421229926988596073302358459737692779472849528892860877103047454340128178165704758116398873277574988604773576017447281719822752859481074257587984259325288070922071180068452070696749833536974775205515581534944204431509395382137116401771398467667429104078639214788716811290999733191768015990477721086212992766716042515251244281381657201634910120220906070819028463414872854841417236471936056926317973713340355818023598389981066206862594802202124380891326908044495740513136778503445347432231728845734098393957884738802732100646367449173389667220336930666443173524298350868867134360848060793374938570503166035521745594238147514087002968525618224330689879162426020038739059346321994092240135429553260098242816853839990382012301504044685588683315143049775052478107390366618170229582072677844525765776023185190696552059091463571580247067816203448034877187370464006371721824332273229070305785705118036435715538393277153626290605380660051935018458513492857899114981462135371699887469952049667832994059658693641433255219507974019685467346290974463679862165378788860997772674390252066643622995858726086196508657028554579204852466968875857907056729512034627833579044641695850391317993480954735646745106165865662174042705313044951686779120298386976473692984155934704108926122182076435005170555282839768155889873281871434640524710853978499505382546231106495362967031892524802107710994668007109798969162451363510314081352032291176412860368451217372256503428343350379977157529444594685272367547145736387776382005419405564181363619062618680725135647615326946470610290580687314763853165167487792035269061790068011012771176757657765322576784135460929951037270314625860549161246312118993313592194272646741955930750054605046180848348590118800504769842481622643660694667648686442200902660969633781378504995698746371428441841458387407149618617344533591551529944045962200230749499659900800520527596203565608811716203365463600383062172835121211616284970557415495119626366333314943483840917301860211279404002300518967156050343757955007509185108535071413891363230779306097391785945906724917352601507971227244096733546967058189134167295481300451025182878404376244500091614146997807108797816901223460910856140578603243103218252406316337315311922434917524201352762710156369333767323989754201056450302111364256161403078308106646505989502339293676946121699296876454879069519393413695721062553090361006098904687979280988069822440856153980915213663589075460768428362350175457698414531745062645125229317654169820098768171822086886407109185455907703294612618763486735529966099065251478978769196477012377350499178814445994890369965193401377531519302670590907418047328200653577856061129393832289508988122534041206319329100872052543565598128751771065777277747895912443530350023044601877208978016491825348370008625777710528994818665471709392867614961130144522862422404216462471185206518323418475639030829619740705625010250654120343938858418035509538454237831989196398405987186763028113707321562649522111516016196869672097570493677048221099399895580876808941832172447750412956814502870637222055288403484818953783531427567443936941646512679127373379748543268306222275430004221877165744682442792908903124819447478364133896092328102762025580556529055483403555843977639811880426873600964513992591556125554422999970257254104203570253952554787474179491945283811307735620327694404686846991525602669146718346832580929750112530615477095739013182151275549992952156699332645505897820123584435413891529597095571027565174691512733925327201719922387481231914170458746150717736848740132857539609209080453778703661240442336079110944660319946537209250248018229826482772261084813201805211260124818789665496627776781867721203170227122926773720402934693157976382409700807992216472715204189044384929634552422065075344815076640529132893693901883529468758344930488918521453394591069572203534214530238096023614369905219169236540087806402343237573104089284314458495937793311703577696471225847078928633847127835319528547867295240479403889556100162317957931445342814087535586024166730724581938992915797356287376473712107028494488734052995472193346105274905846685280619256279717001036852472495249922643288076013108866591398850121114270491515247065729743577841743482273790426897433097672864108919010314980487596252037877148797021590335252846162919546893246598373962852370397321702735644752137961244172766594928080623220869436723609306078122017006976770490382692996836109427850397181650761314924555674528560379444717102440129257989359706379138752990301918125853127894606965800084357319977119567684033570605494598856418192170216576283801410734608894665826876756263259137240340103013818595874447825343777502606412116440998121906545236524501010764329100565831937594273250545552937464648444504737787813495427885169065746725857955139874250468256807865042405914532051071871403386663490249112997927070829059632377688629441000523941117000214799640852113293561505529329249280965379424767838862847614168762670961293828332511076946360280468861260332473007696997725022738566971028148808497725815392911558139047053194511167579762980539647274061135200976351383516845806994824207088165135116564357792124582139359941791692784493535733317337920595239260053636628670438302773552094501996658034475521878136263939061786378802052102929372846564039781608429184239104427764562530842074859773282480257185243107877914533128771370086116863270026962414745030825720553924252503267987346679797713857484719397261407779366183528481031977602852665996759445446995048359729228422149044097805002217935189528415996470639656099588843317595268696446586360017388592944335652671000264231324601334198036232154303120652543542617028560358648422221368975685581699655654360622584531233694205017696154473346786386892573976914825578296411644824239973801390493248254826416018261625536857164536353421592347387225496899463937145312619461043922328580484218327082000207680630851969851589902180350888698240500652601133729576788964397410505408441017019698036713545292364818164267444473223960227419711108157626427462276059051372499538389216799769823693944422212606327589309116945044217782427007645164420856070584556540295614300572920185522102222765660889136985802112414752747827834277973375908189456365462342095210091169864680667576616820278740192249211302001145299934869144832286282317780963682096104278398231265637105829797444148501141624405494158809831119956584051428787259713242323766919765123963443285155203041793785252306492739899526140192444260558143343799000095560291324280020403931431792765807686641856356691215584430437637939686651501475960274877223299832464519275982415356617755242804666495687569322346964866012942847067386080746296599643735436295459895805917959858593440864887034673776743415495421465452006236004329117046539225381855281833855407112778255197328587572924721348725790163387667903006695153524938882835213901355915965443817073816777165431645377901734550106041351763297202301584472097310934113298493637928002251104543704215717877223374797326202585704374683772723958927003598960211928800591695404635850267968632781306659923302991382521965942598359299117276666397523889141810963401688453506262392684405043993426439923565468165766483247254289117242825470614016175884674492493381276446287073539205281208244020560344385104084818209462128374313712371596379607459834200689685324831948957299498330061133369282815236923665299717313750243792548955402783569239716796620646156992573751285956171596097250134394901230144990222438485073379013253603531276121744188913477319716039774841499981790285286096002056107663877095730113335201184531171161406935274598093279961713340588403985315483614289528366223552272776966286113909950498614337398039678684993309566165312326570513901414496484747250204572529166012341041983357247515631888308389648071710349224524802527424634232792703300212008787755411647683129589589260168981231883528160518661820757360186972645006959313794501716239861034061823855344661743311403257932656521830295769117430021034279029245445229425069669754682781511678612841695355214598410810454507852903911483390398831356328655005751510513547554857148699787338900301813477073533864641826741628874756251164614141781176083567869529988125850313626364464629072169662583165838472954992907783633336069729273418635616140551843175934329692889556912287952169689549432828946756907517748682994218136632442656381206237859301155389987886095953359732536394199192064464803148590729694928088179240552863261353756802801230841079583743179482809633012367723562979203568435365410981754569144740068575091013074024852153211925856185311925424026065613811333537203972426784134949063934870570209473739278048478194475949252158391246716844696458506344638772974329707732253722645999613978541466409751585704785457986406790986696188222073000067122760633159224586901481993924125856430629009179376995348127662306642492269727888446135641166923619155420555804976175028184450621011935080813903140369602268087682718325944726509563729903567059781094423142319032676039810072289032870027476851326481328455461013432489340966510226136879833608773749640568118889563247540325943963973044893245246000974905279134008117180596268390818576871223370328751888679396613888552639412703831117177909079291999267930953436935629835557589235857367163966692905379631364983602642063045528652010072721446426781485997780940497979006465273179559135930262785784357970075191262948709097062034022226061938925742838546966686767288381982177012432626928403259959385485635301727790016870819375988303104556308420122494650413265431595176274470829543251311804291584276097272816269006426222566480509015821837767745966521823588854582146405399827774605357660723401775383422834256566334940577522402056241343523438084162960381095921324126265776163521628044506310020863115312454371821087387911976049365166373197430794326309629304652650059656658476667619845338659988194344877610615054594960073442636627719354351159395026586198143226502387267672280534120772863231876522089742609734657863905448875456811867261343170500949445165637177411625713700251038878846081895595459726663884463887152205488229984673699400260939267978566195039484727799389844953946065297433332543363900203577746542769965874384925044014306277633120182493881779811505899723753338280228930300159933658740400558540623253021765506039981261096903343027248368418063990657664283191338900154151737062887243825791615680345177528932410911481061801676516479468349748089580020429877669574482055412308661897596845105097445592754135447492407837126302872452263003424826251251151403426364579031747104375169716214847199346894250261619530366925122171528184230191070015252824572693353482220086833853001268257071810149372635357296469754259416543888684335563487445557883979817597979826601699613073652498874727229970257092630592766159480011348114375622683568740454309623084160476870407765563785767469075386384966043077998417509332322103405686945143287479358516667232491854761525220219674533850691065639564272337732687271629996072038919226346129767463019702094910275047662373047380960654015846066410635203680814465384027134277997913162917709154922555129609950844988195540621666237797024093574321373612327714740461046245231878739651346794710043026689325938534913042629823445435112342163941539467094615860987166402038621116481936818970776539288644802121724309956646110499865145504781829020865484550709618162486657500361101283298350290367764961431371768798326286165066885615437994333459195213329420727110196990526776768860568314775304074101752253313702343365822614448299477462923599680623005647071852756779655923528495578019202157402223026790228554445582561894029172411813506406735897285189759046470155655532545410937428518910480332881113895830382212032148918278740699866102844055879847806455884501116776202728274907815463360004582490885326130500176049477161401705128586903534092454517528264835835257430013912850533182106363304107933185677126448783029472102942400866966483335482425505775638551945035032473882744732857537347371292117155767714373043778033957049895367194549477895181104731005397599986184923567988868469988671109734511384901383775606819776244321731131653826398051825886928842127133609769705061113116105040002481959214020829829660882386847109728885064256547477085199338101193249184740028787636717409379856804782673494926780244685368789518244138942466940766739921738676717952087237423835358946488820917587778938718369331605157154577209582383868492527496754649058489963308365990402125007474555779140319160481150700749596519079213544885296078494692201848913789521929233915614281193485899171926645357102056716773625185095873490126958923780577252671388191830541381343360019673026071850185713422601981187468397122767723687947942128903522402854236792799476009009244582380226888244576182175558060007949688921904720818401616745625944256915635021727022522738907854051200745544824017886689738662266753582236752554869481565054160530165654297232229549803661543586270254844909033709732092159270134295877933949777849592161738321517022369180552676415186435470725913773480290662249054400226935064467047966373272411266737705031029917568523061648112842175240961618163833715620679010264529618215737664524215992356353555427294965544716799558913499046529523498999136906581216228826597742151568045031469671320675485994593463047885892920408505035221511117486714575907458915659480522428713184955148102177976715012741366528130907758153204175097280383008130345809626471604750655766113225532607691004264715070692696981469007773974110715362755942960872612989453408678631964271213065020217936398868482547165707098158772321512749767704238722875265035758839792944419377691906128460327391045069565863507033900354346730720640622390545091311271312790733175732866150262196340470976981112697266595639772243983471867402828198377549018412041426924635392299711189759740063220710278910856741094138105774367758811585863698219227951735348101137704808279113804812258108355666844784315812320407683584909727757100380398257105040313771227599347286838996581094103924730546397040311595868758907343514347315052050253206929940783889644950633082316555778160672651782321680125785372246867380593739798000277323684100902071076858675301163397878216709735415844340422608939451775842732175945154422157111476177655522329259246741487356650961728518902659035945405703520821031736029000262116561243200601365296032305196019221040613784291219611100902136723567889653311177539532316202343377690523400114329086138356839434892913276515575065077218022012289146899839304632193624396368992307672089718721907053545089481920870380377414057822356401746838685544806249222392884900535669464187558977328871348756761506052998880743477806636062965693513718401646542411546720824106636795483479816505812002279185668539753259090750512418465749086485006009802739849411865826344098875298008742777636230213251631331581875803605760172287336653395508993694180058618370454850492218306742230700168995398911879930463710863235752159644612483963951694207445310213691472785862782161243830060578531427654864097159288313937941962530076048941151201936448864113546249256532355989460241426611164300234177218191756974716400648827706610755591243522118225129721769086616938748560132125836858725931403025140046541212170086507544143897163666570721414850491226232191805939232778533947784202729012659632802422298778697119385037001354870159123663149211662647863585096514955625608218493277754336928377267731340768856551119589193851059165443056158366480221806858903291260594892462995805993240687414176492125243004572216348743429962804033956947285846732092645354729493782568462717198704791719303687828072717370857515423254338903341645747956217520160146884725045855854649886982773637532264008968462933054096243238227761801374746425410374758913701127670400013439384275017795587432529094942211663297204385122828022092552296544924849974361114287493305750656047593078555389117558285976377537383285233403169207105498473408685837988222005677141568868633476235052897240859721093118533708133362509792696846715190119449896792264741274793937080270828416587240621219216429852310432455226249369411050244258291838710294973276190931194569443842154820340813571030727407625944290199825094933804622849588735622036804337342113814392845218460440039908274722303843056102333686028223667453331226853274741431100538108885078150769831793014624336171715536718733732963365572552755350379296956511797374626472260356033612696193420626467470944264510711466317230281201905132729328363665073263201203443502219280434479055829974365590362964853190301789393790444349383263297653552054838457188031397823248541322830203141999410455356527445720431845700978904601052863823544063287742297701884417413375856346372462618954737314752372524594586433722919129501336060845079044831147367718030370021444940989006378546956775715456447310856666788618113550535527713885462369140809823046564617426156289249687645429230970560383305783485705125843317555910094079371079468031084527356100075151182618574824388577296040269018225230398733304809920899865899722784434246041963482405081146916217213805064682436527700196191292790628832163928333635987429907243971900947990510597077691896280703568658478453800404054437513297356777258257439243327367786074100822922758873185251022157033351491876574070546905601131084293342611404208338611590944146353700944628847796553186641212155827524944157490509108501885672912424512068667926829043046130172484743876066134804264998936241564836186274249371340059480834193554004672009194634872196056042220306153689762055131762081199284415001658394451028591297738400387636145235494403693227733183135790582215279016539920082327409889563740696739274115772630619123790188017359117536839124417920219737492367666754977425717037019586838534019782129495660773652758201494586964891306179486581283566387752601678427558716238825117377542741478125211634842424191326779547190161173022826660104718272115185773002150137041368711417971470446820189490649620480456327321897393167155707032078549788610897460236175740922271172133756761068388882734317797070922675133157575304438314792763843508736974657608731295900388178394382754005906572890080238704797782903029010183630255036838315257109622126701239508895259046580974167294755770742246318853859369914592328930394878236564829645772349276129137764897788179363111927323454840954221182619986572357388553421854552868447897367318963374268541821073656374926902497911750669547960304881122827812402788164708731820923675940731872580418819411589988985692528374544233685655056580560715066869669584137544519649283152390279314965556977174660597145163056344153027335027667954180722006405290208791407069524124683560368714939027748924590678045936584455021329513304706019230365468930605411101948970060418798615224417785169076220634750927090363194871366019455345040835130508118975231986328276171584965548916708732384972248132228849568910486769082423043869805678103656740560857727440461178538017608242943596484491774078461812558909096587972705984370908473732847627765423892607189656553049303014061530460910953296134261493108137749190422923382873663355555881054748355900196122618620556211934661189708663552012825482019585653995353856807326652458249747691646421798715300893252489855117362214073664197834573397227033288981724950111443375740863833641291931832203954085282840441882437465604216074780268510573495744243740865357574412101002835853300529857153450114493467174052068954714868179004608288963966928252654683308026508184454632201478094476674287645632117636838636236412673582604747564133080648590305426140907105578176055042098132351838503094625770790697699652329184490030779946707605540959748607132105614701552559908898470090537053442477510947343617758101147312388836564579364053842067893705123961043899847850445625458320880586290232247070731920640725537939166893943719674792481719574968480374834920692160990951384412093334425796485004868747554837168711595883897714510719899489425633299722899615640075124124169708799672185775834996374868197657731156743703316682444960019998190772853711790202565033090045429228240500405188324243761602925723615269311710792760397609676008630000267459570175798035843294875175297917114858319461303621755796500667932803595930514253788357001572774519696259949807942295326537706391825136840101933016578201577222965585631678463154749091743615186782783430037913651877444086887388416411114276410689960779345195582270028176488642085932974387040658493866346823818097352472906863812932351170208603075468515606320614459680575191727424529031627474037188945194827683864136347829725903909842771256089302864928916633089628895677404999772157387225559356585568103456433733406774300042222590916489157899977942539712762249674671990558446589441246704368423116127549662242489351133549133007353614745869578984736916295243027067200012436302804003451546595201079516260633033085432513217447082544314547235728340428424574061949088269191712594012542418095078276931599689416320387560219245135899015727374625467646040931359972863470672182036919291041279452373728095849617546984765329539597626306252011000580544340894924080294201764493584170834242892593592960103018732783057260183971844256828188928940917595577333051120457251172919410642107010629302021089883667506361904659250407826016308790625390235860372528592219812170970711455424839273005412167221439331084182763268402802002772785215030099583410285348836741880169693437594685955077490369372543042259482178181631342971465017236659136975139445124398694047899874705671512366743552697834886036839390430758016759191465297230326397095003721822798163222705238618863731044641403486341254949071565351209852069670576497049832980149292604249488499362617290718725454825528512157697006615421893934239916790869028638910088644793986689919845167369350120585549934762963902215852152993010113678823252111656280011017739127188953306927968747607875806399984330392435994251680794574228995573156983282819568785907357854144634721810297344841989477775386263400862326895015270385044559678798187087232919112304271704022302663862596268254582659747441027110744508129148887316624359194663764096170468856848401221347695006190756110127508620884687459759339264235099317328204156132984032112419225673571093899338887601184399280643950048951815635275081392725856967064880175808576309136949821784430671621059755295296334276084578805305624094156180182539125871587189005819312685488165752742614507542612994882581440444494180402056906862921307940118337877008117442839856221197959082064053871850526609378772998732372902902974707388285991421993226013484264351282843789484849123425026497848869838316231669647111449666185079379137092987681021579159229386602435640993129288708185584338014317668793881013894293104684103220178510518834369992337063543039235779732594354829109878613211190203294955854478053647274558779971441418543797353669441943720893388606208214906471981803090846006725642592352263850460318024314310263121723500528376207590943484455006677683924013469797364189943229324812344456345400918231925120981787575117743446222197938590118589869540564305019125958672075698000163064755279819737208504960524609048266134952552738477163729892947524139506275045508640527803762862401290109656605473360856265073102096086318878422789328313228852933328184868493778452706534132102070322705137879417985653225796661958374254981849462303553475355765294303588368713713307164342548826425194098730887623506541228466518277677725748523853770094260127543602151279835791952851057657364741478325865391434856853835748606341745381789550653314922710859647303500350272505123406364782555244674183258541951491264829868451252783428925384512538420661452359168725311604873181931202753045996379234114906426550961874215058551412208838128902051498636584115819990145126313799130499173989291876429945440723040765216593157153828829552638021448291760708124326237858433385047536402440430484108250743554854185681633900214987747225769098200623444941243618388021144716618038490341049723887308597348215364576350544327326036808862335728411974380900004405207327710117148598436113695966302742203666900118130502332574113328820549594040035669755319083614264893059777482726190871428853981396188252658007261699194225217197207149125943138155899883790774922087053942478884528373890431978175800513727295945757845621519821597802091555388018606823668194735064645882156423918641280276768421208295391469910744719048550270214889278470220928925894141260027004859710866963428773761133819464531272942078720363588025050692750447468264445982977019411938468926154682049314194998602483702658189129388903163170336031986932468170557228965508107075932247862338582793262777462037601055472242793935858467514879912927757741690967651009547822450373101846498766493271151199073924695241885249188333854584802603401474643960688139376869604743007423489802635018789874612543525188765722078202424689231117179775233260869401107059399741481601632477770451134495420933829401449046154433831670583399235080654249675014383579738817906159638546382670627007109065669019581463263916350679915357801514122330379749727851846463479537778743116713826028222774837152817685645517868928657429305920101638532206797191807984403389283296781023128668181254663419665191195853001988404807633247379911377688493747054132397623256093550916409095989164859160823052231150864032471879087272332107350057703359404208753354775446645733408195382927174740628879029846883218476820684328495732416166163359467460643878468829572618792592907483052810832664178620677402173276361020764978944989423536403452711473735912214979591450538320009331577137288967103344124239077869470660107452576506348448405845846182530242184863191355528454744471645300030772958083414434154144841690107076308547290367594534518600172838884909478568278619500843998057075096835157585942524762135050345515660648288734286181646596360472540540496608427440225947744363398534420259536996945646075199052420575842042447005153004383069528377642369186085436508206353705858405137623487387739289622062046835695749167448257808695582931996133255256513820575420138693400876982808326457666985088317088647235557687824558501316143247904923011247143635144129772190164596356633903600475210228917899867484964961630063039701974409475548235446573188156553252539409969370847545990802567824215259378291436615043918181417024795969285260720365982743575534584625052821914304819381070047732809688045412278532765862720567733496833435880471066472785941139365663099829863180369979666553168413250499412793732056232036874122141029118261027796215615950571410168028485979130342288962161386501588809025466890103331444418309660933232173482797260674605053285169505683401867503823788384577050331066032466704725111710646742516448931314849412540422667398340504686688692109269718189008415169711621041291365594109701083313973323569952871013690459291436102926389329945247297821538403228661008512036159353324516571274266063045193165071946472609046302804175147377616464647975563709957343149167055040686923864595282961371154429999862867424977193498281858905433108958144523999601166243863675426350966788475778725174463527213896068546662866537487212283172489948761965779020192163984667536902527331971071592981761414391269957981890729837353565705507062344125465399380172478172466620752084980065353032717031526903642774512994135749507316139850268196839971491691225774203223056562472822344204670130982574826251510524648433115525366693164991844154179816484473298436998601613220965377814655947282043250497569041006310599571845671080191732725165206488177984330434955373597154291825754892897400693688848276385693060985545752194141773171987371256880500260959034033604622084766380222999516001998762252740980968589542164559234914837277896973295307614519850013862379458909824734136043697458402795395871757362805041362179394948214346175780669947592403250127985481299549703956015774287071658544089920888779427072266766404892909971761508158127549991786410318138127931889037437164330420227272760673273314926989271821893650997119474477639649994979472572795383395984406222619781785555836925105804037456102832711726566524837705966048468336968891379026936871978500585431467121929781665290903477555026367589944509490581815611423965740740482646505651170482051110308359515601619097060790727911097474359116466166863743202723298122234852236332911662369179000653809095576856497323820697999860207003364813715733902383588680488635575045205615876459313428469450062509869750659784530448112134969927237108302098873424684452240088661036210678450003948336916883232750075141192215238478860957911945982263527415939544649380732560014734982799291132018941842960124563539716627152167226068034083186664706135027395020887544484609550199306235497071093501420549966362870480249510580616203972619750336970329058168926644061255191858431961606299665093386705950180009916250868821428414507129601670412317808905436088697269060672855747567472599594599228290200129408103298449662266698865806126175809047505516664551422971328563154471210771665008531975139479547992225376274664478232462241742407851749941247357811085143803530003597293915693662005757075861340217200332730284826844418692849282060375183386686673202863658712045100294160593919858741025178296410421071106940019939848357742310363674781405080507791264625164141362230923426103623122199029265051539494101102025442825114105586543990148008315008155388611650953170588801763638477109370169593358554727998950403373772456305166243679615317065981288361366662338120519340717281311231532289582754813865326098589913392461280310750218306866207643972031626586116993118094768416541119037850577105480724527549037209789687419039394048611688773523180449937076078042967477903024937371332080761668041652810972136055750060121617477248357575799296704858562336041896772997900007481455782618377923914165836339125136903187100354534221015572979920441598176282292944530387534189430727478976798931534283979140285008052703288972750392262095553337563412820374253593510884048264284436508938651165022314378687275419244475228067411311779010017426912447895041745702108548556165393449379610936202013331777560689947600199820413252294664560613545649128933224240692072278750408782720087125514325074759176014398333061365454468565881030846664591292455899833011024193046878717583384099419580395560292779509553805799693973305180504933507041144555501102186191084083816923924909466148929429650682617874116925506874586901314756183213045057266152673277882117994551874713330376461439152629276765850850357303156403869895195749633286239635942445883443998964195337209143527314235527235422243531329770643152704830580720313691859172986001399637937328520361907592482478475668128666262227367333432362658122279362230065628674671273478519428518826736769245830105816415695120044725869750418283411362991347377412406772190723066899678849028116007877830558749471583302240124905130034252519404513665283871192118380759356256781362622063845166842919754399351091539345570732637958991852882261534447662648819833017850156167170786795824268168618852501925654039043579673920108006635924712356837361412891765348570975743125265817015641717389797206711820646052368834381578300553648189733469388354004326077957442599067871148739340123230921234014390866239387015330991312514412315928046974164544697090192549596648812250742005215493319077783051619270922466118037098901085343966830371875260405586706628366172587147246250954971290977581617911817093441463988811074887882890838228263326506356608883480406747100907907178679425100567731927684420524211076896382522506032088674455134008696199905155036763564354779536298556681132411541318572913212119264020415837902998691739950200381723788259352122903761109996220813026536941283987020196379256747176469827601154925700135349295733187514341515056046247377895856822226135820740171904535225217562196874695940045828065326876592781246295195515375488592328363195372138849148213802916260484636990022721732062377313983001444081282273784928028754485566944200785229611681397354539400847305503893126201916244540884769078358532719735790403103142757504499361675072385890102692218560861612378711887456230247831079734067750011125131019740658541149164673369672744649503169298897168507813975623077853736631485358831936603188571724463943106463176280808268550696154734523160545441531127220856008868452051477625998038784185278852875069956926011725178962083517465474293603860094225367278495333087447221298924309025929077279651461503925469672169751779373502103916169300639819732636445927931814029579418601852910962606853429144209707801770414446863258571465293696275887580585864647574198580004921380712343503229337367802724777392536863889644627943411747104044538502879821809614925590675911402429330029994239820558414723570370671247590950671912766832949525977166407245168435981761339924145071035032417225899731243165553656267374499671128993561272241244208780601027789994553668903829083373682011591961216378871981302735545380080173213967582377509804567546665021337248143108067684837043230388617419235205044863317401189751447194026565241340676781279983402236449071928365678246918001134176827100934395557696780206964571136556712922526667969078061509118484738421379579832936035564258423873924022547939261630401381426240985348094358292111365428907661965209953422869928819679861238068343477320289458715941541184675997202349003681918945363422827092474342891645017430408180130521560743478374422321491334732186104902051392100833862588223295832090585676941046696088610472419399725699271455127619209634786461953461883959817178695961047687692449849164743803959835908245522109218548605013549119002101295368788478465487834337348485708669578423560839762900933435827783085155528552048478061222110001018418877936128207495408243906188078266251919716981434723760473873258146053869956827861308108662156378847445811008799973010094991952358836874845748011695607084904609094720246747387189864573670776349137241249622406704723658248109360698039041324920345302445595173520207246262782113679432278248766250607273977016184182610963691295748962547680526289217880672388037755207605893484960914318502879833247982560946155615629775017760611771897718791814250080869493631716394366097231950850080962459163320340847493061917949434594869694534489101431352651613041840016301343057479550536866812076732623857346719013064207277383755803804233633828128535101993361951839204721525930905114873030058773906680818446148444256154635808290138249896626651909304933878703081721798600843324303129442900893446324942140905719188784396967927178569360961988284285823162505096739236928278757692680889907014356821630033528804525362522823886094994890643852353623548882202985063548449264072499112975135353411612897827187391690036816311335307644866583818450460506856428401638273937354365701440598202091110029636813173470414885868204306719757245638634643473705718357095603815853357736979051056482805679642007769574319114641801965540354973224730354109858473493669347797490022348825530248233737135740174572923632516572935167732424077329035168765763168503528186931933089825504308868575019171602635765198763127727951346810462396220453959614364942558130469824364567765949969703295832902869742093355198850194309946592479337932036965336118732890727365488098511833434291138917050227578606433104744703143983316561436355784365746274220105519049963100534895145459663565156657803001450906184708496422284502844613765525709737479281119840732079701663949269262365034673904140254462084458520102624575816963063169162739925044325830523381455683425372976361754200876782109759219425026620446846147421643997382916541593865663109355400871698011015047433905534819840803452663719403630261755592666030437907750696641557993082266093210735876846695124051069241892393406055330520070699008705872593247255662793291552246542206171861570107483584849813407404312495621662273898984350447394957854131370957059058355239646431576441874561035915753367908881044494952754495591065962862904599184091964717153850353218440448966444444473791972264820262718625201325649506806010325244071920782945260026447840701861768416759897001597016676316667750086550895514674856263708388204027737562361196282241405220811598302270275885278079455873645708942975591552573634498802676450488754571380334384846481763924655093848976977362131375440965770048993390723229173861487868797947164635651803183885212223376718160193535230412013859295263204246082926235430160273901310113779540708291694510551916998378403062428020142410245837341676206846060428613292744521537134207869336508655131167541485693445893286075529582521326237657627164062175478268518876417020419443993525650413259341448495942034228698857161296204461941638389686614740097806925627685031939241981319130117297027468908480061143903883317752542500395122865881727234309856186223072525797991121052225756506303678414076009075538952734766733785463574854663051703476236358732873531606064941833251415165962210069034990161789875305100387671541212892461962037619984123827416416772192144189409515607533817053091727515190301557492495978689954112326665414936167785941230350117791447774929611699150324045475744380228989932265012057144383872192838038444666324048009268687965308484045878240152677974105228248461248020710953258278665282059661940720020677592559011560137862871994698019860682323645618702328123094156091501715544372236518943937164343702432698617093123773153585748249167750346142857868267607568807580196868242551079126182901583473129837999543110191356285994293481129800824820915907526736080303000990593312786660901013284190788047330386829576717007354556811116794068425496213562461090353572789882150277489486211601864959477164617255880020685994185426301647171705617854262822920629415052513611575655775997208245194018138526524880290243875533164416765764573721102884374640623456284870641687152911145927443601310286366466372453553736492194608648024537041062482514617919778567685979909417315482633861662542923104767496377944611287826646548355187666835614534596854946960373436062242129555377029270074326121546877489147284901139060727357703845333014368250746944828334242709065190278808035699804890575178913033372261261914648380208890877014875485856662667270784174884071506815058056437783065843585429617379239086036580023071370469533813275041743729230396228385631668326655975426754316545904539416734447205720964682315844149402453579987200757297024879207982229202539802089124620472018208192998590966874732827923737890661364033198216000467794576657095678311983722818862020389156357425626362343010879233139134752744876390591710603212542180562614423599506501717251559275245699624270387358720890790812800945996415205180052887042493286198481990059140286669439904239305612755186798500608158803107390477975597431272184692157375005685348065919062673717533109620887379387558296732047704234496650213329372007576007886757230364769400281503244001018868181415894936660826748427649521355541173470587553139979350746974954088548719457794478012621796368792714689440808589130976455285113496050573558739999912132541878917106510952965183695067830634774964439465838234239300162029427478762849511820630413805399113258578291063851859101175293726794520558137442621362988413220479955992651132649882378336595044004815107125587162437142771714916905633949584410329690900734533666594637914423237944179836527488810478341264086551580965482113787147134585372042751917219540170788000838202551129640808611494136017041019777229861221089779327153820186926689846049891572247267328809510627668321006750655278547305776998675531079107559443255015210695983847021066673027895349981051973511369739223547238037996877874669586788959472086406324849635299476561093419106316474975193954827897862068525129930037538537957849544292926248386388841006992860272669348269158654849488797980985144600212693619597203672777373637624662085739974217731961701705958727177852196782188075754087139192148949467744317063661971721907056521839275102191284238256422660762968658378811793162729186620920213980080571280331847842706695653207336764641366286468566794211261313670680281023369236774300233711979664099948184047434844614474841081705518489309555808845201640792249303263098229858843588929133532421977585848596676994570901083770564160257397122965999486731149007247716225846815938216024540946153094354280369924212823989804119064089518839997703536240368254760433430777703980550408484801838066269931247022677484295728157333802374118817872700026400350749318149763687090673544831593618568661779091758967719764314920962222644659194539013850108181778401625882833581751310042516487970778020978402221284342875447970376864598178353445181168200612860830485635355456624859210206090139256232537153727406320731881266830964521570415922339835453584545229251637518022391895477567888849890165469648365256948561275275569993643042604950003094115610069507375468974416716437944462815328945105204581414618877254080841462721460189861806457721424217928881361667984530275380544967612379666976846131666789783608584255497287567051683159136489200949513676436661041707696181800301304817660591439600589992944401191215581094088875670952559459747841496796553197443266913915490580503208677391937655566226283428755139733640246207102954758321673131577935368689561948106676025070260202158434574177746275773799321821843064548798877467905329299149187543022471416122952489661924686773739643633232934649585068810557870915053575968669201737325914143925804980936076082203045987264535471727695842572419117578078438059760426806229864467222244891460966782607008487410000421558855199718088896461897014259983764972118169969752990049421645037561441640168494409445316647079311226551387098363404192050555911421446686165486504096217415749952762881841868345500153645571624914292145657217387254964656366819100992198699064841796752259197252155936905350127218873327043560949984828799453062766113095326744177956507252537482547956474753902339440050189725420260398139669878723674719925376937784605090997228056634920760170117320101697702707889954504230849068106665733584999146184428775320791610136344546932549655846690160848783346628194178472865338364248033680078256222154859529862437217756330528726276488847871949669036625711720664898427062679497666876449096905453941368650895840720859158957484644945900436571788363637977016201370027383756539019975870341820423581251687550337468614123215504033144629273289393403872394357151901481198896288993776540038613567811770517295980089755958754823544724661806020870221949768736314298080027074487229294745123975173576952430474895595038077953671123980092397722679693304159770923410627740624444786026401602527144596625337902073249731393179689743235963338135957903343824325335539009900570389354194947356395675696261068278514490506612054165121264264649746031690648317318796326598629640818441564116735527300655220451786551190167395372915963064313051241654906507308581699193503714389578973498906346656430354500914771458760537801669791607759089293722136010247585584482281308197338131097877379817454308799447598336979480995638752012948432722589848260014600305931899014151235532015212629086299934898003181653602678778193433293158825713634264134481034730818918273428851173051428179114131100268525429702756510048587798425310875534720193961859507607427308853854312404734277384888926413514472630964635023187565337437419883409586664923588453526187802176523457697629174474213252209512287702163239036544252508110322636938687898007792045469237581196712306924504655304505473369138791675290891113681017729281295643320814374960661063166023752799258041886642970802853970405005749545000310293266949944080777837707182161621830207342302493729267813788115194987202132607840744117802236199619110502088963023167501514589453480692195386459982020507254449880933775234818396048499895925498488978476765214982257816733217725104238235001335168354887312310767374679910254556800924867168850521950226035285976718012622740256868797803776100786031514729440405271603284264479655056363981290420652398688837258654779016934011799886918208530638278522486682043901672733705990925274597673993367350210681780346354108194878939863764403890717289978511688207695823545596757148034404332299395001477277229538037578655940924734091587422268546535003009199782514113695394004586618943277994405522605270173997748323672506560638954838924484595969270688424151377264386409950127234642820311879125862660382079743412026612097532104989720218942625129404926606646818067285850520080622293444250389738701947750299476638590239540086799984613151610578643421724151238912772351310084039829735561868863847392146878882483981691864919130859467089836804855191007427010559335474182766906377817365899718575473548128712095474146430301775382516579296083339718183914156421789032751149079611569636384564153236089997425181537011561541522283572165955318929948763511145447065281041230956819161841028726556442753352519628336577519434097374090545373968419118906083399875505098707418027216691876304116358276581653618701881259076885775375582395095948494058684489764675772638035840816977685781385016673563747491473435340767761344899615818799094876883164157864464571142048549450769262934170829085412198107517447663130299278781424162035528213821715072470976053711480010039704632354028110261809067088847314875676594086029760653905810071643336546414242274714002109541613952291227421780119587496817470962089575714168530932696211442762094938918658135420521461685784970529176387554873884855710257939257294369608415908039558682729557581083367977953652401393658031785485660824776008581525323916854835580275662019674889223489918731656343580176174090591930498912808591228504250326776458207361744192908440523235263444594483350638775786729001042982559463900280568817058926641019989292879586393866745144073482030915909054212652968281077752886564917217770308224492233460085161525045365332434226237217578587671328425060965400910679256936921995211960051498314039722163334714183537614918879377292216290021691371861112171037218153922195874279229319013399227381981853680749477845433073996635598158460694417409905807889921397686029443870746103543036608471784459043819574820540544863848608850187111037956166809730219538226126490384050288441747879165333272972632960188021435414357213176634220496533653219391762465081013427327499210783225744271673508006544065291616453504587052494022006950497162479860007165215219052154897130841623635902716409742189524768215083124695225567127170676187693186091365718173436552013121206551408001403553824879344440148512849352283878190688159271370372812353679294637459061268910455455196021285085217874111320824348471596390898544873419732842611157742246302449834001964472058082027326840071928083570428716586847656971906819419016810655865371480223178324567951217642897215418408197258274717634038263797659443403789059197201451176194389905166664323640410439095228867478670967627587818937857473278751158907662395434107780989236026020123987477188250542096700680786673979247247091639982122798480113620217131530350366201427173085661889398701371428036607367001657967343031573853496960280245923446996465170720376064209328187634693083189992393032294533269436776812083307661794866372147272760964595632334327707901749783148783319158357178496554221849114054070807867624246560508912390834553027837874382659200145589610802675267173036953775017391071146430654198708974105444347251565987330243249313818904842544200359377670337638140122107635425966835911439702288560226961621893678341444154279403186196762902520247349041274502893340379946017953397271585667884487620767918044488847639697947910762957844900092478862628408944123612234171389268049785064793752348074862393153696852192059140330617990465859566785290110315337269348301154201215742223467068347645111059817150496160029427475274972939277666009869463864151106286568096898166315450407440313816882120911663455873532798610280195614144991224014983843653944313025429720644532266773527498744659295591272218015981705034266900493260010162509688382142595990164438176494940610622835808745692728374187237030892788306395313440781414453161354233593300816453709388256817874624145712699554966509086255436197564906010179686988883169005928280761971542924432588090562613283353376501952592638356845200336720216982332793378400860666976956853011811800160408401006155907223297290173904405001139121791537250055711465113823782212570327818444885476067849277634871718979008580822912752617427865896257231768739862574258215909331425086078644336887201651207290671581030334797939880428647877139299734549603829924176796364045588687916062176012498962157570205056619827264237713229441492618554953411347847988023281678329551788801286009754196610443723134770573920826368564767274223212777293785974004473708909022830753978184591194031965394622933864696601800401003964167945378583150845848113519664903467328668969819857027499156231372175493946864361514110191575603903845901880419885383265491035380755575902117249226505547077425016829909244157282068722925211557088836794922443610067855587422672799336235362454008175407561549521926682702657513951134090805435570767367428156179438504419131188120784057828199767180904888598767159628551582143065340779227512068670416552042844697265351926973298603672829790494915280604964226909593209533317581167943834645449496160710207412359837816853190605174671044562677434632090466511550739523690551810337404256806464239659287637271040113031611496811336094335400874597133708554748576531628310342033984289345371113755730957700356651267237691729430705986906823332374420877362729106068653749904176545539160426143372399513499991426695440202749180040232051911417009164688274834917770944209911043903414088516461516751729260424265606439970374361164040270726456764533647079093318664877539467669653441028229241969113968956551604189528038979599763958315622490768703108770144619758021960549755840601347912325851411731295603407382195028048957616246736807148501423222268471038085315981930167753666876516314851554116206707516731526001678239797599420800859920322603917296952849106365189327103496588144386430700003996365403519865189827719561649230289761456068154291272719015269787715452679514504866621076966289977123388247115901960174318147637069699900016826007555433055663743856870886074896843798050789788771174935187379988619718590393837066371866681128759575752337390436912070393809739966438876258697545091517295866577179884411846089633072014524858449568322291694545287248187576413197822108553530517455739070393836690316068475969594850826497745824746611551098293611088735161102642085036533771850977748341977090217414594795476052416406672599216544400798120323810186331449842115489750799695078350290472145909760288272686512824558385103516075632029296401099598156611174256532681413169642373438292676431506207843035003081539173995601848544695703629453736179397146464386455964379602793430987827502600580848770547295636511662693720200237541300962975686224207578473426908386857131433287054905357183731176742204253658714567325524510664205523008409099320455123049052818509176414112606604050289599339127306649496724093713475108324993507463967043189485819058225988935318496150273917968876198358292568456810642594437855782575556696450879567585175648411103761875729419378778161355726258430111975072224960265955598995414338354556603608225725184718915656849883546706979732585141814787807920417276623713326456637620530642214738839033343780474705961272996442900261754321612167583483401555440337562917768111252950665611321637009089224206890154126502217790366918407851386514566587713139990678392962426393231178210247575572016585411097522331377839618125760898550203751457175294184888608280926625897681253021313556061499328560144859400640331422785108818261583769495011088261606791535435903856721858365025856657564170721362126008723832309703151065531597348392180443205498182561136822040664863934959260295228609986239036612372299412632174419253317470573984779498895281330523479896949341766533518834485580978980732246062010657409111150257170720989349614500523097544317493421773251485900923445738777659100237405607132050548383217510735139460135291301744231170219505777857328736624465199797419851604429998208966642715782105683218175237859730907742573671223481466315926749703081024861571157689706919907469331164102791170888377217295504509532676315827108205084383550044804765944883308305904758648439714027323578319178686250912452289978549390997115914524811678717517045186422853356221849368580701703849102927992586596363005357601305234505832247498264065116662079537521727968027643285139997550958335325929462921662685138846037764206078229782486605232229708586130892935639455579214550468743973575271331071633090530271524940088634857154070647535412789398712011565873315754594050252129906825770904011352147969130602861484238238476327754109813667883690042503577138953663885883147215862358916813992991894319019816899276462067703131858119284659662842055464098099748774050614505446982176055903598640483804572964868867984096624376615270634094986930826813682449418307299345860016345838108993751441924499409195762056588903902970053179565757778057471853606427797435015387891773944917840508284124635307680322121282305464394852300266120439726087175049692799009920731071825379698894350975067874614441767019411772578421221636220884110700604261596229767319628369419482301747131545413589833670390519849178446053417557941137370823173906403801450016306221060368713020479531890728918737607126483201931132144506275326607972531058469575705642889903540438848721680192102154072022935575952573668124260389766227654165770569792016237415225905993015226274639270984249992642746260073306400752178967092237417875075752331224038231707197154362159078392473523616368614923481272659058575669525818260637880147960684181077510827937976281907665063622871213107790951399595117666607200465087706263527192308186236088907654805700098055947803805094024483519429393219254932640604560018074145238725558639974159336096645791421195386627493085400745791080730273494459924615583814197695914514904697267272144941648933592148217943734045005413490554473313245238653707750222557511081765985874047625093060006744889075830535335617446111939228852990663850511874149373191237274686387449880003723427023565653890321533054013929991020204677257872302078364461060181194046911242752523158216608644198902803314733728442484964044945563304698972185724323585169063539374554639653896248607502935963070684520725941419666281932728124008169225946221924767043467263270605012972533473356191339616183780349522458435498458546517795559629572486736028425456843683862320794244946737260922303022540365202439680667851333205148288438798883462052961381371337059831885689027512684342366747106635897006467791827134209859148796430557252128546897721238695266653186772372950526920845559138113646225638692566762157175600698043379615215495418408581064936303813798272885620801877338770711496848152107423663235568516041203851774217289774537392420880696914261111383204763038635060045461481173766945336325863066552992643268724773809585792532113045391612629761605318317034736908479006653885535759590527830982666845598226099303967653080389289154256348761920089378502782506302655443882182735809338517896730387241780745107149404859965741834958946322612964860228177775185810920881253703349209197699637600227718864803421056522120231548961900945884654467490381100063241669932290086592309951758752301010686570473316975648105751545752691904331579978119165919301119958960854760395777861019843599529981374682693206626198406444066845928534033901319753815815735851830103824676690125173917837438408869983646395080976996816582469564727339642752168587808905227838669579134717871839650422544153583925865581280991726471202549401493114106824388786868658667196742170256203447167377489695779979756232823989825600501638260636882105409271432297086600370310595881519178997352527548717113776216004922048336950814725779356856394216317138111126557305326245148468999151369340107452858424173436101872070353976662840013218192374699852589530720535834812104402250019827349445518103838776708891247427074260052458067535933631238529423309187553150478277447551163065784464649341084573901535022748342412483640307036767945712190824520628188543826599227308645885199198386983996934825517692298659281322345447488990034680830706229622110174953102935689569447385022332754735535570323408984424185990422769206978948402771118933522857906956385491542966767933022662878856221323889064892606806004150384726196291025949686280647412678712498685158944458030924574893235537950642955131844294229435841741230447304307741965112849959099507843505366730554390175435343922510753675513560543731516889386154521414964677945736621190783043345293988546342042934038075295665605508620399330904488128857426437876340686372250033829612116686420233700755988852949329752404088714601118017236369685791336122041048720189031908155971149765665121900992272200457452629927547696576471941697767066773264726952064217767834214835884462474713472517391225079314778683149361732134077997740281496971528478990142190278332725200234331094445171390528461417435438015131368574672480356697113526341829818979512783465648421314410932390726289609451570690983347482408128257056847311970859370723242922076580588829398867930093113930223917536350389903125283644621771785063961982834707411521088136548241481831102508856018876143987481845506832719053433624262753290137515895122880312759146763237010472416392739742169162151690260461558832188738702538515992881193852469903380732775759737673776311882920270414389024193627338570014548415431898526754886094513867776236108026904471868325380270498015165038738934346409050634102574154896858245369603722917137187254038928553519324930115778778435548806712164786230722103019300345258487673078452193859150779416929279780461686066077111208915259181590784225868744404556273253010782033488638305545431905325477342643375155478224758174677134330079771575558760796476379610646283940835030741131097762777054042867135165212530311697460094176232852638178230713698880760398823791044769018839877678397219882790501045992502122504461192987822412441825809212884240385189783905109751877990754366235671767596249139906277713694390975250598112323645621688112915694584771521796595433315643118808646310355984042896670570530361952664597612972369418492877001023982037318240057160663984771126697180107992707816981130518809937722797311980033344974647071552916840859818696755948557081063578356864896888874331279747433624036965037333105489609802516131808232428189255012624997191751632094834645649996676110547855339800588148839475157518639494672177556016967546742093568173874086967510042302399759056111061688366566147590277760925513608983239668656083867158383471187147143136251195245066769980939788377201296694568191565127456087895167214548239774324290272202923777439105857749223573884444435236429824724034967309261481916058082799194074160232310210255160286233051030460909742649123158140452143753553306302130252771450733710443046762040834245206988729100098014149041011964296861000404476863543742198940858997029821287954738694896075197721989331436822487223256023970937280307885568510447833384496711903573554969508287219426421680505980333411182857506899290485812937815593006992071331722665294069774464349359382916931374445757053280806063944179210069389240909290656989100034527170870232534139623186657534839850863258486810231837917932953977915597450317547176597873193546334067077684314941013491615392442717218691031227560639530887577966074040668131662983100333730661796171761359260017164419035263787844713688592842233705700880152890016517522164409383953898302006151985094142423855747745793744700715477895133441782027748452786837145159093152483769352041679711068799449936844904109858481286436421657777967868091147343586279873676082441230784737841542732121280414812973767668626276748524916456630456943625278011649212050022900646704308031615075131995790437726774843552414134497459551723901752495521744374750820616104477828864285439192606975214210526003090005229229889984387714086754192044843705400285661719732321162067282368320685127832515516090182707954303863362496206780314968956463631331763972633384458584092693255022111768655191025343482444903199039642557848660982313369610500301300194209797423868795128919188271424622896036062723421781592732572135720443370624549254609656158521510163114790118894758955376883891454705778961101083671563964308523512245168509036143164915352642905578006732052895843934541564385427857120655062116055209877741277376398266851195472987020526793249648383418425437308143611917187662518558197936210782480239882696964742154265626109016615757210501369164921344794851277636420124049647737581123858258415928722117541767892181605340214769284859133631117621945717809761080223421413747527808579236687613364919146627862296896653356609103321717759567076738713533598192711521745463154141870934574955950078987876727197686625094642058524426337552459756560796177598562923157272408938182924694616029001333722180652216866973417149698277247695840615554531404998318421592793040009514904784964437985728064889616386955526784132158061431300431435719273226272267441713725606595167556042969315740991842017821014068908231937967158439180350342138069488087519102410231999790301551433695150181387038987685052947082484912333907308931981017331057699660787658447705038653603647759103259010615210182585808396295871854134807905979190380526302432932802062199160701883267521239345883963133693340633252384587105801828319097151208343393346541344354613962827055301428527726972440752516481169651490044184049203879657282755530917975562011454932753517524771682593692395340953599925363305705778672355696671165731814898355974102180902264588726156193848834135056880304615932010739019058089113249866715052305856935695034522121245725694314707306220888834483932765909484724486327652591079922079887656430993487315981312239020382232159064832633063145957464700125610964997305113232087657255232085540444429778685674735342400156345414750647573621410081153251382652316146721448267259997402332932535551549271243765769546374763326228503017280629454573321001227598408665770890847038077835039162687684664861332899639170454228937875885460488726424516505675027405915075546809839058300859799545208876684444128466842151879073386762875065329887763831575124236081494952969271197176028378622423441270557260651556192969151187906923426836018591749706806197616877813757140509881077265569499410921534137105282511331114134059626657608592007596882695057150084947643869399123901066062978029018583143393862743023600545736170349099777399940890710191339802959666287077971885440051424096099807446084599126807003606547326981816930788956585800828013805826632671057928937103671024251146093997587743433912641802935992377515678672237283785403228452031470663125796954663414586482609854394658846431205421601335688154548110700941964799524931219039266657473364033888103360459633887955397898004615244857747367150845633309053328495886538458863796020170529190263452284012640085687648103640087546844088874984034221446093155926812950184032863610861413474521157941376751300672559882187652822914307507046892145761450758243889331315390720268632581380013939909507954888143673312479874268632441224362280946116589161175209513360473883106029344495687992543012106582211336984842216247646903180006281654496101928636837524586767594409471890589819496619602103571522303087998794752662750525076324980133639375109016880438254423296198657030456341275090018901593532138216921697022429692686308795059491284095742361450713838616214103405062542128256473100863881026846366989249160651133900489659360908713392366279077039920268763340386723926175720143023116184262388401232991818008476681859119812112383435720059997881803072465288721498698968451423046414813502965408367996388779992278287177096677719399684730572775569952417574265941642111345183775887075939661034442807164791203184848117182628296889825425168765632971680391925018050720649028344201538758728557888778516765401826574632796626819070080903662034720281857775692219943883266213840989508709183710291335912223486036361956257193824244267385385464680043940752356568291178224601931577068330069202282368036497361445704844953773393198853474363015395798015255714460018869078032111680054524093352279373002686857553900052901636192847625233481846415844223208984533127644944376567813936527031063527479775093752806109140375451918115456499191967294586778544875960642971433625384721327205851392009476987188376334566129754247124280560687908175152620425180299996664996712793019690073781095051537925409800676134145624437704039525921990207049985991167354360652167862262527272531426678102592652424640205015393452662943080999086352147243978121169391600135533825141446266470704257765948011839884452530534162383111928610707192147898469264525299677304011746017468193138364712701472779557716832395237794606466778587706141593029799109026667384442132521641849699255687427162786150094771698028221953055305256544187945361485594153228209074305749976421144981340135988992679726921833999182661805420346268739834108416283902289590928153376794948343688414726660441535197837137492051046397179983754906264327494586405891820325017607739376791152501925922806200629532536364984908983909748967449568766616933972162065583428394574321753300252865254086995088321406256002366093082081851593252067204283495412080337933164396733558012944084924309514294197358432167095324333322546030662335769385079128921907761785069134230364512026668161562714314719327648379889589695744512535848817226083416296409605306019978878849830328009867760130620399860487995654025105132788749696278549601058325223072753324633446217316097966769734205767302207211911203903192461794111993574242852426462036948036089349918446417889500801664924125856566815240402533662983061188011339075378940040661859431745492529633512255331261800802808993198783688489399334927443893778642181023361840268019428811119114785229727754974386696428304644650397142255675441993952102698279656628617952427755936479311297380314151206391863774570034631202735037467316852419249677658716710773340826846527349980259616170369260087667405219635789454667747896808960862506510046496602212923133716226140735066474086464139338954728522823670341840535498338578066604268534491950834883201059538986662652715881696444970111452199983101724509020375831673262277299888170043360994254996023076950504065506569770377789349009078380338328303591719243914768085747276995346227215058457069079654852683624740997200560243579950500561688590628255333625536515863938280720474008763339230130973622822350006803537103119032707391214699748272930545809743542164068200256372176373024384058454991364114412957543184441470243030313979803618466686505922570773443797319828928095022343753522847396123425298403732780458781092822891921275685225764661959002192791644465752200301014241747097663139639904272882464933477726437926834491321143657959050197435967775386481859907486747244897065851415687946923560101964591560153402211972499907664841089350951111256932715704172229023696064467092281472730179036944143733824813598531487194412426492089839776332236401625454413754182524923395036119534996504656818985149020872510881963830023447739970669088006810645343389197470362543331705685831594414557152798014283500576877392577927708562565113223769500097536732141271262082918606816753773757946019171280648018667421879355886788065234157445157618317763566503979527069817949907608189513657730756997915922138885880939858280762872679372272261844731851156869452609625789904896675424626646585251384652588430376660752106119974735585037263515398603861132298133884693280774791294924256421530192322453607594010182075845579018995205662256100323780331687488180398605281274825255309761774490110716932056636685931631130372825725314574651188082244526143020957973612953770592335985632542624178124543059334848260863512747481258692531345602117982644128044319613629959433579070573146212309401605019911201506965369767149992022708480120540889241476646441898912723970435187778380845532964182092917465172139311239287618672567039416785199028154203409929106437628541804870869141576726797452539073849470888442429823355388374098095905923399111454709269504789053652143597117308930652630528298054530316004506939641809068983758552241984957556788606750613367974905389952716624922717763679293089590096241367022411888746819553020921150785231497062211994788299729057130311081179403196055242200323032032011131819657579847008269671420076317068550050665820151986652451412682310565761630846712466114248300188827730061517454441425948743152274880231346745022327894788586344367246660402855424053048349581579134508363353881074484016797016202605175835653946342409322628467675051770005275884216296895288236478234467812254614754282255907936111611826866300243723592193689653905997474609563662410146435112662088263891388038430708067789081868565618069107669483481751238621887356308502048362350689532755782157770963562086365151612724900546681561551675732390834215823884958676626738725773773312890411511535780534549167708537222995786869325924690931887954433591380396764604417005689483735151231224204909403876561097441014836415084514343957248130016098657529426325571065787261944012257130810112323384945625668004559930817716996741928220250221989547030221241590934234367764781209749235824421463642411333234876109071775425839303652313454159011984445470493628622611625883747340229163597185291227030727215310443170373119538886654040185434910977823474422588526685171220855568827946722876670720892352579562628278695046868766943685123820615260520215946026917356008096034435660087213849274176187896214523353216570152245009563396566964498856699736342714293003216370661233750346126904860496679437938261288075259196090046717434096352727784236367522568176485357617139152319689928128075055246332290687246872597692663682741078383048223847084544348839447460053573175694680054815401962276177150564822004313386747673582801803353868349605326740978805113498196054761987763913437016822383180136414777842631553872571212193384873677459249967128929465453458861923394798203956424463021214711622003738462969394392092118405601792381572029311277349197724333575408545126041593840428184611023802281191640348159580666149951093698834383869158569719499092434752674198128422772452139601141372305120569878271187139459055942060985724060746777222280175865652397750547545580785211594661696599632767580489262231027754571617234639272357157014721013702400005555538291591161843984121443877930072072391120942213602964640228407742980534160666028217218922785388675510353748181209598582499804175352212189570502728815620108339625759202580675787492879549520723154542098920189850436929512318351259810280651575462604088849893341077738176770275483975830964703302312624260795846801069556624662168923192239779835150785251829191960189851664951788314653836638446213567854155028493219804087477281297770256534605317670238606487031417492010977998506684598215642871601502494985680407331516830746942313262365924776906537659504196714566628332933987669882063567731521121303141575336689249504552589776959736073784360174006388620280900313664293798064766282281988764460787872435088497632465554871178848503612177598443826849068593709292254157630022432427762168177374245510689306404711331840095210653098281659296367638383436303545974308027767911746708914046015664028661629806677897122679952161361341289239341736136303817251946380219597400320571567167602356797487110688167793687941027300319546385893853308693909603469350611114108375721027329073660100341283895742817297332227286756320670576841605964581673674420180768778129303060493470169015646422370023728257335655289044804754931464921981870676180733020178609023826919827283683772768584147437804696721435667777759461048801523042236328212054600295237936251301108512621261095452168496212785474214992323890260393378843637987535822011609804492372361596795801041331589779692193362573444088511304690311998621876263714197221378338279565079992808300382902756411583188647134976161781456079042565824367157581724488047378545547182482791149787463853024100944847885364265458166558686481744863414797422346285284016296382282772101836088206782720262423914848925306356374635058993317978970813018360552134357812079703524537740576810096834609446351904756677507687555880922165886364869325320166705642321620631094515934129722301511515506063576628508955778860977015150835661524619237393708605642163850397552125042915151348007513311646755302730807938049516208108882103418006528903581610319218002099200812909203457676824990240686753744208722873003683535259720862001912184056381687666794615711156804611332909997334832204248598798500527840188046044241277283839330082253347413422372177571697230620623652537003504806177134677243592555206241389638870599543502407755901055264990306740148224545216623898528233783645975853364571717596077676488090802585189813172850551659050387752076757650271270626377096456224086803882124577548487329673277504214488603445728218462460828454806353707336952263680649760052216978020131531158142425258507511192583585478507676959246552847388602449822332708635589791001050454195442414243075758191437056157921015521580418043584865184278850177291884583975475645190043118180432751292541050334314766885384393033823094501780088259761062205329772876846780705968060297803487979071561772655434262485073750207672856886703830967035554276830072096196577742551889547989130236320564263108539932406313089141211112787393893725258825286406466771922373351527969975214987340423192558109103321742702611774867959932459241938705179607389432183388934456193725411069750705189816665074048700318760797541261698288382269496718339879047210981181922702322124868539958911260814480393972673504558348625723694848923321999061262633410513649784394087413905830446431898852536405591932423609382714561910835266993050297404498211940380709690413628737203330250380792560471617553431506721824870059228514122545563151791154393829959138896308534212170541448397143971196032943511191377632500532866171365378259575861481370116113397544569372002363175727557560362080676883594844972855515448156695008483158084570897691878406075159133694020359686697745432525568614771062590821269867107553387574660710109236939288192001395822312239665367704406476829243855348770591374566660565589950590541165652533735638643717469880841630788464889641911222235693243711466049082018375543082658599716044111717441967224943259669282034069311527674587207459831436869030578963911747854385995260767697977791484091007138936781584824774188256144545316690864294945201935388887730064144892536920093343082636079569058633450114914674890338105426408638432641503230871649102218075658890327731604818506019085824054202502242572117109387195523837323886160945963005430330876743389489070642532541609011810825881909339186204306046742110570319214856617667666782408575515342195816213267347115954006942992578385471962216907717282020251598213666109818415475933592638049863649528307668673589999020487452269834708851810061840466686088797781640241631132957923608080505544416298825218409588238498113060684966389388236093223058343770150787378419322986232717573178370299406252922226553378415185882565545970579412330411060970848430921630117410232711824089756764180601346879436525171409170499650203043344769942871474582348658503906148796682231521593907679138653976586642812391757633542311897169306182262714084008941891788844175897157644816717287063638067286005599842978500698551994496839412595134566278829176362333241775110316214318030027438155409301108769612064862625856312523129388791985651551032689706021496972166367694306365471060334649379676079161139704244560990219566011869865777028946415595524769945254611782316085359706738553402930881590158621752085989795587809498156990761372125975604700431369814686842381232618730048644283791705481416206240036958571099112972707138974889040448030275975910065984200369571285585004531112584154715949576519467288271061815997742105463898851371639607300156135505230163025973983725110618453084404946811668933255332007943180226543745214795988502211929324495895793605108874188277986821141263004393582773162629827119234638685662077629464770092709706193844634693361327710791871281773870205269615750309236918085083994957970803375228795070191622364984396948601579954039303777308433413823784887413732820877364156593579727493310551930787801798841291319819632868383403009685802771669858786557891593995204034621195070586789477109494588795470386071714050456166609218675438823316162922194030256354781605807575751721990376363150353419877775486608340860576468740192429440672829415308698166632006735863036048648668881322504764328615574384813145488337697588125975168445014291984010551459563275067576330070539569928194824577292102955564130423299670195611045768331094027531689330622887763810178821563971840627089043876269900353976634736323042301665572144714313070150532278534992261442897637393805598283531701595248651975670486330244098509122475363693575174558715609168068474460916099028804833207587288673620178739039984934456139597200399336391604778066841108921836389715442926668559268715770833999948313254983482104060476060165524319977793729142284291486389022100795647228767155283020469138570551219166679339283197837957162718759449965677331394060213975974996438779453272661526144087558294850261055492720758801615799243653239793827074609070951244058823327554937973412699887372291991946962851840874514500359516374489345861980006666047350170450800328892110890634200272980225207022735352071700641601183579440390495483282815800750432454532092907951941000808914903667976641446234062805883968777257186233463538323658355796497919543295975317722055129602520570721159482332319186884729288359939381427315824671144502225816856131152375643915051355462738281398862933746358895560381817903741377784377916610000889365330482065674717954266947641373163703445824729569166289168077592631158963056202814136543304846868934661124273448420150698002464146447315490468723731011442479285683896639549184077063179981139742735169479888599344981913532662743659000322674028897513052803164673872027583180019562028793483566086512088171310450902681041655503893934331127471791938789185798683522018489161548931381559817772945524066535285954026996146016606851608160500387942093438606906755629545330299711183336242885041564892682159893588092846230964823600429472508740172833527545350572759975064722797434707517792571772226193053112018974496886534037368151662989639453053528578370515019076799420613650232332898309537208048142410106932669089254596575256968351668367078843972489450495568901646454884059625014804684983351193847219179920904387258471703193050491595851511830849621202038022561208234861627556950746189572775369998648643043345957968647434985179218724042289704200347584806574355623146413255233952944992257299467212184086084474495431584109749540512296506788781327626358871100617002592929905273999799947170007498389557138024703156840151115932937708191629892071289909732271304459465949547523837910457105887964035749957181274829032476169637971273111568607594893766318829532599399807636185923523210410168166131292042892567709105445905451832992853346728327077495503389778682164318488017081703331602731606307022199627564346504366084172415384469319931378736387168294162422629854181610303367927898444329722500945182395343611606862428083428575245977024767796369652635862281077237241690112675952751858557175154649245023958039053210951378899659277459303277282047638506730496344544655069614197132188263743989103581371758538141738894079542765103251337864791683770753394778882824730359447453528330061565854715509634399099665165839009488440893542881473247072299271896336083993367502773623469102306823312593477742811820680018673114697769050499463623117968565852962138920510256960519832318946357809883464412256991858929383415807808712050093142040905307358969224570857637095235046979248845810943133202743707406332243218021096825928059713554352766547721425386102651684006936122728744047215782565229411807597160124325902442050276776018565899852171572931554553925203580773133030444436534093035315217364633082000834810754247655551361721436541711974929156981752163283250314036692720593223152721702402443802771984962765768544582205543638869693900307043643225522391872017175318495329626532233512534557135205691844753089036976999745496956969019864537269305027358801754353369544403381482613847999981807426598886595239541707099590659566250863005481881977644743264507760916241506922742130740892042952804547507794342544858168850866042811705142258604879160525391785379841894612464871113078729099072396062256701929618592447768813042490126777504168073405961039177593880837738377164232592970112107650759105912217954145022802574448956172342718715387879126950373090508927778829147623825637011904569111008356298786787335027093193932014724459734850589559995303612283886975144904272301799733963650851635476396585474579804162584494953326857459830449604974757473899807346357368485193399462179382699723597613044801605022110298735786781028476283523310695920860404343502208391850048808350301341294211684364866485721961407541617247019497006516712298830444751153684943080192038134044430783621048986665935418760381935408964589957612137230774260554026477207241923510218456622835442477441240639012768738287405103835104250806479834060758200199058529052239458090218067396267717520151803297886868270038629335223282938232221997180467997270505002418202206334975992524369089545955758551103095840885764239427204084299439533783556102528425374031064119207287342556452420360153802308052074862719330007472968299073015121563690320714780787321074992681696355354713766536725156932522353457135252570133814750827777300303713021438228887662060283303330721295973784264103473430917014606262020910067919203165770803591400583111389396066244653477206777241758267541827256584631076041593071988091686681462443739328139160033418665714400665871890432731509293155285195129550652119420743764360691624187163217078033509461750066458983880553332736331491913625033763916545238662379126452235459101265503519790870307270037054982659433433792803168616579316892646606506790839917241539944699556403749222536333777441232712345430193285694034770190021267715750325690929357338329906253550488967420306996139551203224415302144462999477939107309434853385284743036617320680883493861008650702450982217538832275918414667554081283489371985745391448708940241088335610169095988113410770517579795714903854348150418682600065600602026642400290705489301802431219158244667167842497112908764809937255884256675106286420131102674620686611910818993333922485379199067469380635183299504729043563548066763873385706297099951490839783701426130915014157036904619801412313823208323930555892016397573340676181639841704086782746151387575118666152371546150107252509443117468463442557836951098602028701350792916464382156032301530177417727795512561486360680817990885721201494130703305757670423539608799224542536514612688329403960005370056641840134187457389612206356761559793369132492804702422838951284402764983144596056143970539004767520801677301078269248563574834816366270157638233774845147370471077615393015053490652857242674557985871968649745581926227674080390764564882660393344602740634129501618412033892211222234094232755004957566616538226313009094637511390839042244534867288622958056174471869738162188200440703606090292828886852395701525579332563317381818278506325667622613842183492186162387373990153685496681666711054942414292954898170213626357763824651293436372130983290795691707451507642712553011325641538514373905243234694137382251016197974281118797387312368330615314825936243416353287416536913712180761030644628906830452715860302987749678911535515445252290969147069046690767856343098471295045952279379427559812101330317193141466578521287017198229674372597157552564440977165631331626053626174595109822661404608460426762722360272421453647901496198376257109192913619119724797968072903653421551550680276609752286767075088641614456879769850932794690348941122868558380249870169959540621591418457748245161757867256464250150188159365759609783726864021749432769896098137027467474253957148630357537291704767496297013521312852801135840025489638134199066723142868716529549196262455413311597424532538395356215612199131775325202257142070581487725936141723483427304887620799274641346004383610330996931051579918789031829852666974243343664597372850288216734864066681887688862424512705193907632022009056522040445215174221047798810159131470120292904453674267552591380408661891344531095424859190089142085511593435418887749017472754269863680669923967323418909074494460449505318668189539959274920705609473693472257895044010799891158824253764703516546837266408903876228907189519983529645189271379814283555289083413747809393056716323857176468721774869399387262708195150437432720140671127932821816025785797069603388094394281433008725053405816749901185040914477246820364496700695821999527630862029985973851841214936221988233611831759972184042892993355874813790349249202148360054955864317995528350196958632020769472156585598325385898166843896485243586250795778609500756607399163073597631057123322218667030230233332249789706208060885831885452665870198538620348960697245940617805534001512283401446635818387822498055918021719805380325307851159468893207696060057091946524644308293554549130985123129614267535257012123716960260449473518124105670185993142986958069134391899017567271112092703506350303442900781388313774919773631355757868788506980997903748892601208105726173227256390188840975254526019624758229855404423975486958044077628690249045670031653362428503989417524892822589398203592776889006913026002138763743712591766195709849081067469948241580300213856828347495298410222875911691945411252347951613764946833201846653604144036733933213091605566367539932437169754108637257432856226373178540410683233895699728846393382613633412530519572252740694857038020994579645042940457872681604540238989203078643696824918959435787839042068673231808406914970605651095333461192357670875256406505491631643158571960365786675266811087984033762661089037878779730327878299099959589369585508498161140623591962523018308995676230709755971703371809154941423181808574410429452714390309230395809106143111748913431755750292597724411979839329876504098609171963178410253028426187838515986167148124183374671125448860019236285998244438416566738243736653010566934155228954770300678922463252117301653489896053559717612219884413143813912515679630632483131702123304355241857461887594649845922433311441438755520262848093959764123144964655223722386285505543491975478510370906139649577790290205000027196470130435701092853130795033007249867543662876247939092631281094684605340007613635871677147873790695746247217877370971179783091943886875591364493148599285443943657103812359689168545170818083976008586935208746107271199061368833433700138690691405733044292775812409953482342773691215105808035056033279021413842069179968162575441000996193537024140799659334311957880571051683363076239023404811754380535070782851894163129802582234149054444588163315779266058111969930150376697715726843564655743725016224140430885196544071875094964304550674891702443475251711931445311003341963080214889014907744947609229320388789084659257411520739185349634225765080128752520641493783910784754569318552394702833338147163895998295711450931165065471779152031656555379058419198521585051488004506110827045705952923673633075985772891338759695014404387390121127101595967725332044477501620816754877182097278119152737318720676239334602491927083936977699156449051442924799787646277789440629017566668545653821844596687184681750148258031496526768942161113373713691175297356784158669975293749344719087138627075768794318274457768637064903662620604817607167440212047244176273756029284630838469602659243402211109909000450428707347602979575058395650569407166206140631764661888026272560267985436676139406285436857299350906540183825143202582967269591551925601965592158839938100113175252099391974175266485359948270511427807424452953620471802163527800473308262207410978486935529969181648788767517188113119537204220632779535064063768365037217753394358598950216899230714674627546640770942319843023894102436520611079102466695175849524729948331435679054895651611670842143266911583919834321710305121659564756652946167612940152006247646903125167613448857248660160252640835821024584449433704814388816071491027955418519053938799932921141379172669496433909711109781064249538146020210184458674645530641208552892609063334858165734228372695700830941936609983201415396827990485998247693369829851844675996283982492587882725102830796057460830819619607124602065036603992461767030378537903972601670754043609873625867855414527784793466621277831711987436659843486247591335814163349009584459592595264813145528324894385890156649470223022743007494656358338707136527596140733881485832890788918097512465103971656494234276535371905484401719055005308535332776313427481513934592441213617903712457103851583785234264800417615522105368048657169955047884697581461985657439157560571718593539990912329795128426696789037423479990176489012573930155552004931528989027200029961275887276692552377010547137718894634079191095805874756823462233361394193255457210377875517657929611959071342380982905513050100878054428092353655807434009671032139620782983447711822984527657579124983670108190799818674775641206921261602019566289074471600951792389940028808922274220476843711179561191098473753465367523643261795149363997595752560704230458517292944770698288325593519579414536245459543251201520114102503496071490306457887186866787235435857676004059734330867196019316530915200436978154118935857080499751221431870370978628670494579247312751123090428927964158584782573417996407254891056485249301664546045543153235286025487387994291861082464697330657000572302813693389624004271192697199212013807064468570346762817248875997853156316027184313248622412812313269031225459214510982599753045971067386089507889905714650074529869488153318055202522774617146170409000539315906081475405447999353612761003407387421565567749623557256447998868619243671057603447169663348289116507345556639956443680181242747914523647798818935782594802846410502081477754033050319420522322187516026729094326509450759274034599764308585652327114546260423920862932595186596431337636524032759209705855655345012324526977053969281971186890530119623346812186890884657303187466402591775174708348142411307216363700004101076840290418634256087201707930543564443819504990200399595001101211508814541446968770992695215443418519004696212650241159856463911819551050097281419723690804746453474441092309793591705594863975129337704601309398405811758110924857847484734398615149127505847154686985403064007816476573561926136749594150386052599052718904762353963393903929588381936095100517799633788824321018446856992415781784359556857910991385222810558520790051236391211638716077671945324690946040147606427314111023995468712455899068941337690927770078003181321658558842171506969807317105405654163327460491132257627177427212451851693950056719427559840854910684287441170672956589580124661500762254232175812710339598071708827728727390758207705841929534961763536182602860747412358313373562409729663055611902002476418987173830033549438434603194959575701734550029453073010843577497139510555923266265367260926215411487965770824494655333184606179360854451209150291944944813197157890034342685474482591194915205022976336524751798089016903426136308326174508413614865657690105665880276096570581343710854844704582270275162977732960936267334652550454202236572836779962109388426051285601387652670053421172865980024951494590616582924342529595248025673412861099157541295905677282933603227675189012328179316478252227536195345571491791524345762766607709669519832983518574686844954332368918598350634132458007858950970071041981912084843584122333755406042084439933534817732417487259689870026030792941297536703657226543203406734513403738733780437146832887522714420127750235092899542882428962190689678630851052328317035704677549780726614220732129536174812639955004078938198894473287775424124051330151171769168091416873856520050633470453196275557896745926383597500748605352447029859594197358583028186918651056798011898109062038372280609853171093835256055300494057507961059153286103771297037685001847428493053642607469407516438008661153913702983903701887344482498553148659578135989781988833506546736970387570071335612724613014980269486160755444390687938092522955728582346303173631023364615478365693833230552142214391788584893414463906381672702404644053079507950339646925182919857346636476592426699094026607964937729021143490933575635119554146997571516720979631621286375079254606419132511162377903296720288982181966723203855706038013481541795801947531506304203120510346463927031945653103132598502365666334138214907764827830739405713217063565328699946897342912303678233029872659423361002549718193983325119903657507468939004352113572545555803388653020257637886956650405342811433659696585287378611330225276833686334241557841766873276700924328569115514693258539702898131748503493221646436538521103556721592157703977678177940300016174245744608934579707643663172964141386061380328636327275475131166878279354581629584183720272561866696695950579440844595272646029408144114334104742582695738244967788011322469193928006879128074211402095541199657180605727349865415965335328051308721564092497003143187718278040957331300928559627167343438407719931084053419329836470501201548355892571020715937938637599926729614031060465692687650072653075394935697763208501736024610637702521153077329420596128780131293345672489513665691683679054405229486461237744955800358933551768066066349309713913350825383158364591595063014321097490109227324489510278445689380733888581526854095335187912344216612296780591373728250469733381453358830844256920713000462795066841497902306202173429721330123734155963086511976740179834378861227940007277297178871712560886086369780850366142401512165843524521552693404100323699506445059205907517717612419004716274828678935628536093422554635852710667348077759758203926248676761218788215648630552218210862140008274942007940824646998746692056845654857519329270851808010387965489118626427703175132457828127608026012512880323462231225771151506780567580455756486003322362181310270162210198742764258243208961873082747103839461732791153319785575677464761786339976925950884945059949317002287404951068036527625236126944324314078570922464059035777686920626675341192275457564272614423549989759467781251503821420511628224277684258955823020981560474715473135642373317490592495830022609982892707610486985226170375085679450405002915726325525972740733940415929784478490419469271901082320906199274862051378371049702511597482242318293919951255982847375861677086932127048563926459214418759021784227538136182322739951017368034178255620092641426657967013916671372759273529335922094597318635843618444646252624306335372334274645075889114916627061153874849503410852806044280846917221985797384049990125250707724670503497260442164707259088163148054358825381030452500280007444537004115954593553241945071772177989807596217901304757318426120481864308271826403425156671804975239188823870881756763146410558469576083057528259502754951124095914396726156522788186970695822958385740929299170199233292802792612991223552897813330450360444329739617476565681209890137813939344733533021330601999803941309696001948200641695953568838832031809538731599540806803580404579761952741164889133602951441643501148174474231680570167036464431990859758750063212888944657088991282902879435138067824913909467481944879166071721168227549613952567453230895340039422182747522304785795510672484280645321840727896326001748957967789536624731571654770929673055203186727795222351040376713640549404179968976688025186955967668858026077288398460793772874545663247759669712293821444772899219270494405503889149648070241440637345941341444515961899759194260900429306535663567613543509176351809498414419383977380060718236125259380199821973153123176235581040245279064846932659912288792492147457955596351926022375573592044618887547633307523204170619857717615986116221095206890571953767020240152477310883597403665902978065334133243848761806590092166172903278849916666606355526907070028865246647516283833049066716991596199703462997040814467625060353509418916271002776297529847654314533304032492878221105592155696411700598533894821939442651881426465269746960340498066910302246737274633799435145229001376679611473131056449484936717715475581385484013944261759866509276326526645203854202203883066050556990414159055749383160361962400077312576277420470626360162638720674854861058949877231329240329204270172354180528877204621504999451274576546657350161328592476509180596889017818522224308625061349095619912257938415497838122294348785984912271217197083382190372948325219514693286906973183983274653672671908889521862457563079180966300050307305373806358082379236556618765464742930288516629685077809389634745682760990669444126886679703919783078433987506588237324843261971779735963035242330876057870955589260597460897073527580887520905131666321760846797394053777730828851243789177837627367051859773223506512741513907270325953192669401676150187401663277211907571641627537163558987426895913965266144086793713876593407348419639310283273606798478782610869504966241188913180777784169155199761830462226464366103526519162745339140899650947447500213816285857689517563550674049366128745602117991952116867226740724475502550537144275310044083435663875547243813765865533217852551895604487599938589491390441030440206652443757248239221662246061043583773120904765826201423753779313662158086936055631449741765146437431313057943402870132807009211570228660017181289410253124557712632324783489700722833545125721599276151662731967070562041386883913896210808589159311473270936886538601269390575783996723723860220296133815544536401512682204381096125511511111904252030026633177086565882998442058769596465748013821269714102682701562840429597392432876836429837463088866478189115481167146579668046500941820412008106335837623724798178314578379369857507287993405146666549892751416279041802206238998094267258856813182209484693708712773825052933854409414980480661522610347501173912027826966972939014311980593220860128535512360152259111244187781238190833468239072762072532856312812809980021486311604298256840857589364707382403325224000771456094976200322488371739221201195095068313284814343162047277739878806898651524078153625470248928937839174347833707896742472320814830926238140516293332026462153198972069476274961363663267335388248226374967556622783825624092168161840713611424211473119056357727916894412558147838197774797477041332978280933924900874313428014272600814545035283070832955826824101150803587094713488160453630340244388995910118638219818537028955674468285100688204823996903128019504490171087085654967276009235894373996106711978183143515384026876636951994203843772081758880367092419450912725148971318749998285283482710271754044850969734139850537966221351212387468213327916346326662916471097970505255538985070666176696572908459673796343444757749563377244618493379951933687969986421547914879785383180299284644786375367295114534392708360163875905568345353355192226808178956265214113741363671976067197636137651238757029767370283086900411695153561515625475031857747775629303346969609088807055010403450421103258484286715556687248518849875022491096211839897917386850422712481561997771248351123452592041016210806619293858863150681566236831477811564787453331855981696173433703385955685582453022002277924762202747572764432921112581235525755512366623742301931079002001860217452763009665214756641852836352767379772557200015700852703535932269666082040441173606041219314006171854836836484248822678916382751391447888148089473313893397151899437325756225056086461672754103073184853427858917207324230103781934337479949030569855428003345907870971732402448716653727879752220228660052319985931340918827443639921804348351402713590085107170388483810284282631483438892129664634779938153871709980281196954875108900592605851614627494267786542286643460130602959826126055314904203914927239907951005068376092743815091888575490169403653171051795353603731357392521277963357941909985925482188730344595853256354559576629271021561391072004239002828472216055562065916878557684676236450698065944339353787166108574735309103117314108550109730002209862898833708692205089124383416074410940805783192067277074483045406128020533663624447250751925202866227364470168211505125803337454329194372700843562795668584375611837014085013919938082970453785345526869717587321747402345702862396311155402586159232391026384256921269357376158729932431043534448175220075560915869282341133849564136640817695375620674767118414090241277852776593015660824300905550515706086204094745259330725114923955118221566311621365479308380752347145780172360771475453336844581996067250256331100333431711603425715378515122252259167766405744612788798847826337682972890630681657003145563202845752139623153549125680663218897475433207361422214516353402027425720513914349752253975189363023895672870729697245986310481260484003374893209415684886543315209498852197369789016090191142810189808224583089628565077801761777350781692284340743367328879884483743062594528377310167094448215670610086061302639259305460902493571723155535952970548927871744023092988430657788417885157859452347873348793685739259696667221252664877124534342527140721995153421504852659999536920412033865295523094620670811882209728295653871865726425899670341254922540380894889976424666902507591465704664965199373551381300147862040942864699891982686769971135673026148353685102009866063441390664103875549895225828098707574259324507623032545306187455835985975374533235218731029214457049416864709253838564056747974097278600827571558120077617973115046842947259047312450729632304201035503640181124012238567582208161107287354277201363260530154103572342152638935749014422054596278743827457680874369416790845122406157478120249549362797031550085073689394177464687896955420337537359744087833661999937440256397869022300540711315275400806997057076725981795920843303542611082231324663559342090139299106050046661969053944601228868677528808007957863225124151684198759332244268039026720219957945789881084287332051563504280823460543920160074429364038264353470996890815552984090384961352506851769853090895878962145879643105215762245455029862772317808296140799074212699858562949784924240075004760950094098572274538626529765730434942460050594926336787385342621717402164066661150623365288836900291191488436586393340637064486382857274631325590276967302149885297973112134357740739386660934108696710407112403541078947961316463404027975474020347258276265686438459114832430862274497352934494542954197023820354039341288746525241070984998351999001752039411766022098876770207814854205421600110140579208494438347066600559399615692535945438539496958381250759389567605847723987843076930083055523768103758191069167924855917970044263852642659905547401040001197614761755935397569003834480427005054025433589130058853001309143079264833020578183061596742887572052058972823158083723969037728159773498613124526390830151606000284239809775117683300159659486507611841401783948049429324879855705917743222779202681962183366965635546860279977197065112015323525764798260262088432349871527328621303328119083412913783014302279083446394939986480557537694542979993376696264220894033283096201729024063805222516159730974964529718445438916637779152489792500300256427386897711687513035457307026792616302030385113388829207306740999244673016155388253214484638306358118549271351038250084515261938186627054131103672897647078766065267575369374349954622635719345806357520582785649008428654708239975661651351282533310033271506031507529179285870369834970808453918241708166807307285688750957537566457294896213115722952445714732992859208068519632134997716751384372082424056152149067546261071946635570867162603861875050530620638219136738561190504585472387265300067236411144006432204850185616145268081616067183101705714676106753739140639807076577256975512085331944362993279385717471535905947839804439573840075572683123448017278785093380741341202079799292449014414129224437531926937997927508186363483098150167964084933257568974000653579961298447368869476092425493978295762673975804622111020154676254746413835768423521282974807973797186459297795937196099575247168065842720453152700323877784747420522682075597258999012929489476433003280319842305822567537459486968589376685057110720959296431554862181723797959174587831283177004281996636837172530515043220708232743491407836808296283726214008401491528493550924021700510246183300729538263652158901476659415651360924367315228594089324399022508579612665731866941682927417780206422203946525632078554220537293623285791537817711825089830142120649730959965834693744312167093332720289873051084818812176925947080170352100408127250627644219467135088844649798090570972610052601555031966052910124756481890360239633908313540749294763383232191433941521757745705251908171028528288206663537917969015811283549637497455738947709422860772100769556806266921129936170938452146916810389393967972347531494599654055912027782931750673252398856339444855137448432929935878526753284806309951188803094593510821107113155877189924535219809940657155898597563995790461274313571446924520746969528536114680498597932569049284772259575749427913811539780516145392476696085528756854233277886164663689938638958907249490313223249903648607980429004305526662216045495894746516553316469444497468426108135535415409609892666366252553040139328490264839824739616778409769072519264107117560951735531479320757722346161656741032531338815014234485871311819119907717252872214276807692467480656656020318639049377748763882159368585541082054833833810130525657037685925841535282913110069913747805709486071598764629539440874011689004838641158359471199182567973937216097519327059040077535602325513238054853976381001522680426795592821158641855885136448954131863638234208624003727247164009580588625227011553825079004688750258380482489821950496151462083496775560443534124337001731583942567220342045145386398843630516965825497039674971863714890657673884875662465164954801396745965385897443492205001957912161073470700567840160284101567034808958534790300783650620417020567479003156865332576761979243426094924169360080695023769556723091483289271052752373138971363202463089342426469776491641557169293043369049393622718202698806057803260152694870377709730174402641189150258375889911580268318935711302149780987952363619942297716830262536871561862551570328945306863093798385009651475219070873182233476419937501735542247468696037835648447300681542300269602828694670542214267447838592253542372047370892077328041073442607034584722928491456420896812436599099753083744605773224900355518150061006753013301091820059369611309895830487388788508914402369382170190331002012822702250513313805831679057068186680240414588840346933850306919249736609482315981006207738034948394321865055833011307282504183723624625976126367032945393619222854604141563941642527783277145128700037718944551748549478766808983511707050168819150865271227707192453797741310996627322239685737078576537052393831486546491173734540615799529511800049625326601474637318820412698506971066498668800253508677855432870601398089249076928349988343783133076021668079122437927149179790536692164459780272837865606725970544685817385214420034585938743537811397094557083544921038146080223679826780051798455376424027156359492894379057101663372717789395181229976193658579844970890307518443880634848687949024390141569131762751240676967712811169542148258762836944190675865154396893774851962979997159032885096705198779487151799748038333540474740859755512280440576802308907646550312764563500967426219018597395064531476289035930201921575456025794507837313793270402218686075280693086736474037158098479000371464337741761207857702924433651077467499734944746505942496479579064587422236496106246989080194724269580198477987268830775333535951303747539147566981251655492135659094213605787405656560355741824731782959486293034935910185967673797136043537843529322005891551623697473500462217305982888849172227386416651992123718263484751886637501808124147719989864168291276820186900763162222550345948851774501315489174801482248875580421210339774035840039193195627559573061629444403213510982090884977974694407202955740124392639097769219807222496115313459433565175379067936892077808280021247009013942624225221317533850815871955767000822406631478203134529095538278984557792583573537355008126606424159220245383743005483732630837416614610547880655349300228595034858367399929176596370207700359497007456630261074763954166305626860617047696260908653574622139857117411113176441216115931565047753125781697291169373069055231692807860395800463601087280826765441724462723146497715196828947257687475531704556273506347575547404563758706999610782680720662771822670913536165534803956880490936020216448982080340291031132581644659274083049930697514053742363267943785229258374646630404335787723860402394851003843062980681685809710304831383397586757927441752979244075625210852107958146878682534498453544573709203155084595847501817205483110034983562673434136431443527869298862172841935379457639355851882011639179199245683931977224826361166263359325062773195115654666556326981188034050379745982996470794698061935035513925919899113556462958093313134633983715310466566217549313452460388416280524136682611760478243567751937167480500624297470859443476244224784578108720641382083709798088946984012103708084177904100063132156478336014764306341057016793889149666421285356084509759435959644636704903759745359466059977360264304896703155443787308989678539661028325557700388920583158783910093576547242536473735143154511509577601008620606389010295095637474394436075165163713292504863733290800919884013914739965188174531117552294354509816477138677519536151548635584178614843626483639127128813908995816274375278600006239051100550600450214122567087553383831907732616113380169916161666406739064591970955591318774904688231736296777164072491626781260943131482337268330428482650950498340538518435687687678239869858043160660583693027689573473023826833522595315495848219781076638683026060592755389068690312509729370434284331776288339867800218402355272680280293893789586246290353008941813896056701325699134321620023054245561292594709965819819000526219181058454526078781870846120199205669899735623027191000093914205917490685346066520708550062386940618323021090731645156113901096749082571377170983247151179269840845639908285613895800800631204191680471451244726365418721386706709174911905603356127587832505334985355207603053486527344393744482298908545561347068865120003833603322243843670941847112878322315082528213720816429918750469962160088193628201034156574775683299282682838926870188515734483255118737197436047037108109190016711255181813675970042136498872553880338548484862593539677833776902733203772313005714511049893447675252603800459846891872307999874922304395400604782001737972426921590919047154207007293328322288235935762532288586079615483031003291735328537928944630314824897444399726332092776610737461176499867125007272738003929570799492228859926996173892637538481933487274971201248401578463306642548980499078562473158515285459268538046956041436939437475310194957998016652687346566719376428321919113740793800114736413797883756796239818479259845419988059607077859084815768837081361882459632338081738401427976357277704296235057685023497902147581382490251930704113943925132988772936304922803197575339512547989950836686170883581538391928757116805878225368917976376297604797634776880395647416196973261377148737847634309859811703683288754558630558810688567080069827858847146829803007182440489166261523580994248650947480380659729268345929648950206900430598858240121920157558211238316954069366480184643150221996696940206775662433289301125824353960989544214191443991632580623474761520187693392445431863978746500091055280272954692579422432938962118017797539803876618194454488726246282614357312550075985539680299097566377939431237971467564757142654173108774718038512284376982192444474753664276797185689095539689356236054190816195133294530273213277360564766654947008429888076921431124529894354758924145175370703396172803576062490400876782460584874359655815129477515450598168747784795177164136969810570618658328576442478007210131650672065500297121196947978424764183192304070387842695977492080828553539451636074413350856498461360514284878699870972680970680447068142128792712360227772146137409069513553358744984165487440931591014214848257407622678183552907143875197359885983052056074534599686382973097573536589257724349098431486340530946710653466109918228083272571987017163202884311695230544468015929439734679206648119344739594416361390350735211426894561852275629474078949133180740006316856604880088055058336574422132477908390818706084313076241493481212887061254267597145277010098251404295890008013517931440190335145282743909815224773621160085426715328209499440248974020082980506596316363587752188490025914753294989819916307818357834673428123840215675691470651044687599357650862606354331979828122739390667307398883953878933124535998914309122679027447116846432612441690260322382635794142180306993433472307256243022568599373984940330939779917269806777364708941527328012299420508597337257832123833150235073693829260302476548912162243736708979066915390934928387196950330971475731025048404910702270102248192690339636794444712805447400173499793309791080406852841696949438599199392611189413071005209169091273189382688799574287042371264002246634183811772818582149551535653455738525785629367825699435844723152314304980881553900474832777213260335625951063820323290920014548892422261497835543367302817840247122394826251558106105466976291236737319245677000420812699611178650898801719518209824702469760273562423820416818093604125923607438735947849495133967571362642555457309513776077816636211427156434594442215437124429974694169473967408484531642163252816956227505587966737164786929332283764757393797000704299179315478483043897168793606931195105987250099310808639327039849431549913168278362505221477107806131827536858592752944449979593365106024564708521594978471987110803917730950122300814411600221009524478400404115798763541924628440483308007256331147086132018793726614213415849139571163815260438305185435050101900764830911225228201383679488860460801185470828534196519676883892942601340729748564910682485975826423053109436117823919620392154046373834949580432569031233068752851935204869973100378982090687851736845581234993265827011494813465252878638126610075500711634607325964805523323043434703468666173206250355683182553811528712566934976932738803556542611878303605432272156941645735657628144171293514014954584810512028463269507085913190066684947068535953493153582226015971024443242150256176170298496287771875757444805669895740968419802098084945896987732021820383342736972543251597920881345944209135332775104915704876768337835157622018714736551864609615321582202072404230121570414120096288627388378879967377868675790640330393223255195069914393842262571271443368960782153785058120802525397792290198230784129860208289476541308572780458061112889186035093897053030967114943303188923294563234071805584714043910450375513234934179626387347108980907788736737673435962938003712848769744722712506232795252368937718482805739258958951256901161207419421564610468565578015225202526256035508936286493356916413169150303608365296040293292530268709848902059934431446460659411331725259456513144087599105683622021219524785051642721523559039230026662927578777091402285359615839508595460596467767273406562392025484258072271174929410806957814884776017724632509420170371012195624725485686008934579802957159077583095805280275663708452975438576837298305873132605946066910435969156864236201807545940103528515880606556498441749939107798597359390382771375728487936817068906360294053536524536353158229998872379439481044788561495905109402608089666139040926107929786685762477804952750404373906045064466075653449052214609009515647281682325336877992755732649076048276571946893311273733079854146448290306982570399147073694764692698591630557444613849563543273547252539299518324053767552916745318822486046173417271745736081253488950411653380329714221953455800471724419856650897691379096213177000275301058152019651916776227955239598114671957209985234105393557633731489455851211372291256348779705474550787765106124644734364510145928818254461517565362277356472674911493159023397129790149353194423985403055983176628442261846941868270592670443166021888477898299974837937325871323586648775556972466698797396634736126435239422290056399557638984178605562129934492169744713143950779921710845534672106527965596026170628053881365103521805073555163015605231871233681064083034746627997627199741968479818315223225289187858413940323397086934576676720353604019869737072231926947359404002271983949157292211568966213211278680217143603359626661951268790943516340141239845667157106590969784128597309388166648050753308760801062226536083886373700215379929035827804213415445182666675658301689888278362427042189408411559514542066174226406462818146968418373710579618633106294523815444775769025882053749857962580633188525079473951694328842717738954518167524362291225531662774376058746542957249227887611377024273390840502454795524190085632704487608875708393456223361247447365543097468053823458207437621594953220911177243470904032251764505180354566078591881509383873156502872550618002547685949541127166727246508557002277926402610450873444544273159880963378301456559130578784895568514423552826366937885090853828776896355626489633588415720043379009948182788845502949925680550019805563390348781329410115098369226426254096675235261868802238932942086968196245842681550184170524569752393215807051855605214904342338346360518988888607999979844428480471099295282749028907207467033332520862664974836783521613294351106259494005621716542400228678091784330114290332587166587333062746409373267731150714766644530827172284685187164533155908520630662673645980293906813397949097296672242673616938341796557320325402558263151064730305525711544927118425815027183165314354415220077447921686216713952674749603877462146740804111913118781880125160918379105325546328021527065843137425427839595572475661997088154788715934702112471080065719279512376224145181484737873723126064186318712452135428657348337264629004914013349313447363041643261929626774526060434104042195686167554193788283431744627729885817419234052353376499503656685341462353224687656880705558657123903013864596703982763591611117030485467745482600410994471753965373759503327082171371623712938283597280755848377190229300457440084569760604224469094126226603975766252179428516762112152017601558559506744125062475494908296133324742792315093540202509946638888467742215358693842948930078132181477299808104838003696666166904355508912764595768962814216222465795377976522260713555617874619240847241423844433741861267512422896146462072084353911287928380370547716896598833447091454729193415455378843558750570074841094949470175358982205067326102532780378553176116219140281099264140579850770872640689057235405161072288122550506462738276031501933430451207568377122256221710498767618705094882182003268902880370977358527884073476369511176795184757171129923112117963359198029568274179710156864989274735127000198438877476398937396410189833732279623568855822847473311108087586470372311713422513716071784894240328413736397379323086234744534529984431196721781332084556156421459072162762918994861652206226848949897387219210765875726146498559241009225692591192912654852062401886944176635567863946895294857731344814565506653385907926755083112821139316244646930170508349518294506123410317633757584374051185525139119047403542576976040926496670444785026858690779087635419171871382040964670145135118277510403453980091752738567004936604994938318800577050869095599192288226757095217144625583480845336284175332241365863631591694350964815248913531952545893452269391339505875509973790720509209038073925872154934082246714004470859252557006399737091324674655547001980501926256090541770624656404790803271371624304621868830255291127951714382994666259704349401497098282955695922988925156428385825030637683978188525458924756082858772689178536216609263930392668311778446619381279931112089397316491022490912864924636190805430227443303332067619882803629540298136998151411918976411152295886402782801297419677486611333459027959931182974869554736661450956288061079794206237789669117415000962428075308130966704144581087446157514773799170061882633741123838558318540311006156983903718164821309911080682654814159990168074971581817850420662482009019568940883863340734141996908595214954445109343112702447850104744152666893189273086838061061799169008080749202982249842971807366799257465264299865475224415306715518181331183613176911722853356762249887978311653551434118727652116107296141586866828316224883398727806539152507254035643263407895665168481259236522384748485707519899020076104249293517255880470642638511714006288988302896441979780147235531270015416656434171386693036478920324470904445680557453192478148787527377056319325692291410252218420933506004135721579901884110286092743128403340149227985473358569041735522836633033717942794826782993089509728194172662598449815722686949631424729101311588518567417592653953243235313974736469024597639768698721273685125576369251169210862290295374152355693766092082889809104574814234251767852360173440849440182082197582029785035783646197920218057050793093855432356874342790227286148551377464477205996393403306980532588138481708889961757698962697846362931643757531879760589283060012520667014601350942925339269319273684057162744666995071751518544203602976169556399702290922076914635016927706204005335213925549658413332221934462305656374240208569134333054859798578028541485694495229521869490108784244730209981386102854955648385034111088662199836570900979702234016851867798851932928059556362818960362733141482161895573172535404188719789786530954508763630503280745663522209904695310851446524188305681553156397759614792503132415699687623078279895964605972164523439114552423998870128750294359558094551923512594821795485548729799317364527069037488968670676382549374448637251715616009167234352562644413878351911441984389364875564862308053038744473735907771759874549284073154096176413414107757495666170246373016692852046365947054457120925592939085647727073243952772518285337205705360007678390905356280012986476446125267692944360453299515318998781910642834264349044535715212102363047493694012301455772389430933235328254625584452070108506612536546276721330723497764840489811190449684847276975267683761829603337884507824053566632071679649216517956960187223030111765120219236769415728693508345319186466719477581403306058947399700757716519879792675723950326316972713464334642424942674916592918085461826561399407689378096662800602804236965708556078345758744446677893358319429867832230476086358495187329370706082058181471529514426199702100991293722894958475884064037349602194767920354574579109495299325275484916109564001125193217820945057251429433970024658336805535371776170423619781494471927445834211460628053174761838717853607368132672218449343286154613487959898255277335748029029814376228195320205979958172312870755410377876372596101464578704923806790554287850870448367222214842896914361821334504411983318804679510518657160928723347961813144144923371765381467308231024900295473732421316457040395239594398567159599928064357454352220536208491920004436897894047182416778232963139235445201549221458880656199759390091256140132804143095963828776776495198260895536235865310924698760080636875590805959782814968502856640607944644203467156823471304617728908073767718177711136520966758059818540628465446560766031786541369347640147765197775005306388138246669086515468671424487295409374684641491101779571295802220773061871600523349671388455792703934642907761017115965442099663350996846076602734089691098376572022595458160073562199048875698655012680561512867293924840709620121301914003151747545424351086968365642807247213277531036924833806204649445692204122446822982795094998189513286254265993178974932001959618207425519087054196356496258992669007817792148609112566884420379987075544414350633386922677597141464523446376159815191426111337049311952139028134415814952652012884248743350082578023391526957074631258120453750152288133427708744773673075520609429109860246351392176467031712043636197888479915346194426982216598371077027915221818496086167326872292399959860438046607060223741122111190417126518930208290463073654310437470588213374728164964941859450222840174767357437445854375761029045625599868601430581862391142765778157292615450173043857145477900967389262764689898933929293769391574033371720960024468267883198147274951991467217390157737064796810697399079850333968755239639081027762924902424451293934389859299630125916531354504839185121025530300044682746470648358570442656353074400283144073351752982443729754355825171760618511235966040108210912201318874891612213717414244740423420893563666891451294292292370967769916358169333530778611575829131302161060914993306935250876228938370268210673160411330504712203060992354986360973463678038756453230048018543081235776536610920061298732682358640713610171060879857361962414875237251756170025625724795365073179926183921421115659865475653871300386921742874208109637163182942999674984962032286748547571327649508869364535070083515276026324421500574939479327162802915733909952252249323107827241208029831543569728526958443670286047188699199595365092862925557954658205661069886663047755424946049659266815095241422761830384731690945745027862242438376053640603006464588754758109899244576211309898147144308882412114099694884609849199459067890382480386038317512974088359702115420665835052725573766750479316856429926817117201065362515935318662644975123034099561945988348497334679965959173775138198750144973737275249191167880096175815453509518581287858910974268378216266157196860791290823779592678954439414775709220949169368067758252246002204467447993909802573933324282686887945412880221671954537916260128114018560368866324754321118931733477370655907394009660311406424540671177703623089404949736397678577768649368509995003141217204408915914289334734075878302365969283779866512258135137187560231250232247334306395769900888793949130951589473141933051746439772562400951675879337950657130138595436541292845076272434489388682812939908204324641318130256470939283382811883189837048730109315037763875609949512527502451193944810803767985254176741281761388332913344214425678142070396723514644281616551421276518902459850975909093498846391850735763019404737400294512836854431691365245694448198680448582736895586084015735856842747131771135862650620095069920787413471532906015345721425432759503068539263438929369550355786512215062178451064339055950645841666937584904209614656181352740799299810050795370802218015479378424121754429420284148449134333041443355448762107879775467744975170880900966571379493388151009378261334698691983082345570959918108854107196403039276887610794798411035804572078565090845897861602426437089557342220399741376792919049154040330593034451320442882653186497513439912067803986616498033803950772257845965727368001694357463190630232584754408524304222929447691227139036879508438313932730227801260988462921128468863367345530321186797946965466685244650620285243257759789588486440414051427910712935872975770817445140898756395665098061426142682587726279587789693342677634526676520356259523931241819244466217471505387894894646421140094957549921241907511838381308803581939772421145214916586465221129572370135986854998752456017852690555002239000807907846320152936195295566757412191593847814109375594884475775860948549468070236138985219119470108419533603540459480774811022224119637308504178095402772594212032585649812913636462781003076760721459755115395394933293483669154145800120335249820301292220993035419156930246470532187878429471551597183840776727800142148486337732009983203569919412314320382011776866778548793303244750374725072200648574262275608168868420977689001446701658327165114915230066706097840939049456662484600294898812467953542601394063973157131141433552745400223710316128322073112468025508327589176029323894840753320738392280141900456186227101692596661529456133020431166735322124779387376153572422268897552791031785880366963826317472815444487884745734036281325830210353291176261020727448327718087554788315260697009699836969877556395393849032634844859633537081687288981159426444260768155485268425060400617420701952166468852326621067707383757163608165765461387914310194038241040129096076085513282246647480369207325884517723521990854757934144317205214308103384082948015000264607840731746670182484303251624523536525826538292055386499680532288608707067444797772630297503920959096541743524072603638438823854517408982821712152368992230077611041285212970659417525354598960878634826168850391688625788368199362798357870071123756540388841411219088907228282987858429943215020284517561050501183386090192613038465747743412756872250370964758262778409537985705147661521558373619869339719645869554454957887478763225818359414821154715332655848605358305810721683322198507686614088126795635656098915089587729441762728305082643169643597439898867283217963829246046546793027787140058406186045417787368185847484597577826373800165860516488590805532774009426609752875597291952309928656184687887418500175290337056293369690332210295138485245497934233004311298671968541153522623122351455719146116864252748010597840867987728521538672150050147228876821630251462367037557183892626092493916304242204210777274217087283930952395085024032692056723925360721343983092583747662570135896826935843845806437107026236283828062377453204062240337306551854411504551994975137939491631184785969327019300218061492982045193541923956348973939459175885207204983138978342127044125669337953502503622156945132312861128560413292263938352517973823130222211046213451445153861154705630956279780549956616880627079115820284526803569028730897529650702168178175942189401884348101684522682387703589454733914839629329471232198928668372890264319865965059780945232544062662264871551709066597957648374616427991867362507900926590894286301597474538210249815780029714988674324769144212393213153260160347541402460598977456321000070867765994768264252306611643838293479980461090598682141951384529457363126883038763107481820661303811688954524388528333792721605607603078906464438421547222928410931151061268923926893269148180350075075143739237114810690019735880431548164778268615345672724114237929596001678884602743236863731683509214773573682951375820885871835892245164286890401007681924906159918895274992071507408838267531931238825603645693836443196207992774770805497075051857960855232227291698220318481220123986913811232263266679718375577893508188686463293083619203306002780548187178552810894767766830115458841453620481007791388730916691775736399003745016605780978219340327129764092045436678282049576188707837928050715836442778440767511877921664306164163807291355003622919424947681385669108643798465270090599854208336793625757222022236933188165973580373948892243684316438168370589762482341787157477419211914374273209105855513202495288498391927977605457049969776655165292269879103585375636093912339141839798737405809896582437210007713164942247834308926249722998508133895712321741904454801006027383338146898905175806584227669490177664258934144689048876050304302313335618670682380876534571142518299966879748413060731126891412488280415281107033164867036516057324091508723080983021567587351440081550778703688816766969440359787926159784321582058869247155176216455758180696990975190558557256628797966100310303479432483289934566495588195843677116500380946065001534497728945443508055946572296991562738937855739663538569995448841928125395590470498792785461713455144582333044364233505595310332407404573134518947796759141626615418384995136021829283255076972056829300082780847194624095246937682167227176177982426410502543129824267095414647365680997160063341509956361179714571986061501250047608495282242641880163207267306757890132340792071375728927197934883297763592556069342859631847611649155587174158330727110074825762939631721458802009462903370212671458477108822593735649123972415478455804701439796736127782320017766792557683061630536445947424545506685770660323242401284842474717962297832514718833406883646005867505195513208941536568784662415424410828720555352253338880599561516442977062226928424489994571334007340488146619529746351744553553389385579779372676155207521327851046539714702650331475082807356901613462466210228172486604628489501887402733510906654928994387333742791579050508136456728806224783447625045801645708189482999526498826447431251035818116397080059446410242691721811168464985981252228631396815929952406103094951740347638508840341505691486340806828889843058300540240236186361805640921087464370915104187535026898120942788213886800782365757082581473598520556900577817072140230693894968356615177074173342080685474472562876285695832143141564397055167214672554727600016784957286360802227968941521296947655384110215978525041071680892015046471243610728835726847774991892973172750825820294566605931996833752012244702127312687183827472793805350298374101108726923198705550501853043341203596981403196566766650276619993278562086698824482739097599290079906638496033591287797375317458772473900470919441574227292911266307849488813264877875214940435509792973706292351020362209615698432733676854286126895764925494813605865920573527113314684808859200236368190014236556216912926338086487608989220785450282946839574518116456444357066287032528428020459187394953900475496035946194437214102954379775156411854392400340826730008195138345373852979807661086831375557340013943061563892258480885699458133354201472538488783500707929505096686878635243388158333603127209911012563515419180894240105439108826903623959079281234672407736295038712971406938610521246573002904682847867274764613637638191146107310770561206541837107185508687834240585536678824076273133909524136532087528390979597003774985210148779031926142576945509711807628286263764219955314969271660275060811254423329897678585064015937679811554874430991324764035127369693592850722321104072963577355506780590970987257707850969623587657272873475069644402673861227961937565759871304641473996068658847399927885793285189643187117291906206286164010918286827763068138224550878065232644196645064424464360587677570063557403286483642262477955910182781766769592250782119403174024351898114550472590811599938196397040224865625916699387972233638164898739840583939074292162378143662416566268896031861281742178608424560412579391547950537040958524927108974836174902579714340753107473101172888020165838297900185690692187598601924352120768949773750544306010627312266586225044770913809696092679709080147617565350556533563423870501114617022451012416912276684226664976209432142776064190218637412591507408610861668887258580230488970140285478869922946068237564096082187922318710951281679944155113125010152424073913580113223313588093320116215252331093195150246062607938411031079193749149633282855997119456691336830179514327452506958930763369695083466790120936267775958688399045958712003657439772799523773782962877358079924311595598785138963782282570523871952740510965233437715174395882376016067897530609514241635829446252298118921483069265871113078132406048409611707187546093754300601393652568074866089874196264925563756904464576612477289043005888053565659924158096924439146788507955719228814656600759833817236833548926790113092500453073909045474589999297763704720336752317008241830167925469520042034013424856177352022206154898348086601406005051635646442332883899086287625210560904783623346477493015417460884469143243593300676515930228235299847831269297608533450710599726936000089604818584433947181321404244324349911531559666211636059786985899075322521093112220387282228800438257846891876224872114063721248384149683812478943757010939704941534723410966520151701117033311120150233455463228345290386085692113783333057315579482581223253130797198957815262328989937735266711089332433083032637091121465806148765197369168285599847472116947635168336203091303449822451477049722258817664660834356394400748297950935147107107956235538403791124512086986064689253258771110968640119993321320305550673773837371358478300164219185439616926215953510034507025593554001851954257444205035854332228193063349350966569176541280903999185479661558343365240043556289523914234288597283408348204491564573396814882778090362010102169166368768807947792424986950888025432747591822792903927139636777175691623082739155299811737184740921702372820142859374943398767813962687980476173859485068212716250452829080425715967797293689051164403827851127596192842690196085143401459276506238805017076796529122660477363022493754707999789662560927041510003719782405050784152497897361593807934650836380337941339428271885415802411865485870863419343184279421703902284984421963739526696562461992783938155513030109953978802204797206018174129470028426422652481580642207826703070649027576467608386919093503768276020817274065670538784955997276195345860573072018297114704562045381699251277008478122960970406632998024582162668238390363230446226175564796757337175183837912303976703590679771432719720264635115662192169473631762861676019791505076829452973820796862968643249219188720862258906300604600733273355131856104154712621634550690836688701283342663539796469824927880883905722798889359929963389977796841524726334442729219788015529710431910594262460269538696009979653515325120116372238186211571021620656678232570503844883977433417545528250115543792784769859182056532263911123746916090858782476183919400494007551768463986887115080562170271685112179844086543646910281423159278430934802927658693169243056381487545493063253699197005799639744958164718380127238027603785304941673323007638902276189518446981751395662207158613096721455800010103384611705076344899046432673376754459064746212610164839939938867744614573951302121869636606051098019662290115207356050860403541551471446978167239641041802420467098415863228871076871383216915262953941645023897169361217482007941154827683805678607859995923343653617274654003173018310891953347581902759307983784079015131215210890058023533912915743888814810458713926317496612784472232620683420593763643769117891023928874918810849954633838510890028890848116553950777349432903212005379174194192213252596916132500405016041590367178385017005583626611987373700254512504553418432262157891673958281784624134413881928548046375243921911296943479200030224620127299599876510383113472991007242321493731118864428490329848111701824347342767758162595776633789284792001832876215011991937184470898515286547502994715606162342921451140942837679869244881077611047987539084512053200249408011703010548653410579091868211408963044534056562308247115309195995991355754989419609296439204946191886047447563421998048638262037392292890031274020781329986193376270263407094758992224179492996382200113264179725433833904549364680245606133920738134428414984414459242354497350141572768329488412701359002923435071144090936681788438766894693048184083721876274340180876642583872291490050430616627621789722679494604137223683954893881910815461190133846226678588150952158945053969349272366505191291597181265891648537597542208225786483452586380103831515656962978058475046631761945056817605544768840598970974514472583232292675865842117686387323540242074935559087814919233621263355291888088142535524077494645206968314267808916698267793072825536439854625577549654319623480269634128618650540671237599468252369528423478926711610251527567265250948597502717259910838154167466787563036793841905785662547391154845878407148758528018840331233335439024614437856417984418540722255784688813517204685512756626860467228204011319195156330656879694645876231272383805030283103696523221551305399980456949238943051366950948113407231676578216877452148868109526535241135442142502989715106176494136641147100568291935758409327835735238309057991842668896600814104963411074127808438087957882934190142955801555317925944406386988952354540338834205177475901630437154257229664716043777175252027609960742869797109608099367838765410716739798552747905868746146432622366723699352802797000965996268414997916860732353496762065496249605725639005556420039841697494368554385299626182188021410503520350626062571085737730584646948087125576456531686589512127626919014300671354476634124820037977357441385881983985695095413909020232019651234242782487453822090787854915415774098802295984263902546177779500028450554860056625724409147115332887743862548120458899137881243296110973814136565959303185852498869621876216714393010204612078582014683376311684222693242689996250534516656509221184534785497977104091206147110549291864588638584183629405362361900289754965365567550094684306080212163625972477386532787635565735768393664980169615713697026871009617859019119579251127194966593593652509408924420300420917711183116555850204827471265108341423814087079993263200389313387183391296115673987725666317250326910679475174194157118450301303971922883842259150558904319225602286455233164006449152590114788539360084823041317540677770973864646706757056928751383872940935424920820679304678871290810920563421244148202652075044761101062396761815770885533292248265502577997487885248065936293726176958980277241524227108941001126406282720552794343423635584062362014774336670200460576398999393645624139074929918986350597862642042107676878791653118771935635962945468017780722883453918751113958008231141363502561612136922281022172348451299922694441657622514595549683406847337727610156896297412214411286866227717550697659221271507721648515566244323293044053803731932156934453993937124552653631845338544529365213518279412880408163864783459219099544885242908598003744614313213702355743191869649895846399753372219379791268760095564806992030198024158581751189358687846595813539027951265473569453977086339971543531144226379888609295857050287204812925729324151630175372335868224390693761782891402779751926320072006614529429088762001142708792076099413629830633927876408026983314388724442053009668823151452925208970980186218689796053011638263113256231499666869873249803505594267879754938551645363708190723337702924324384655818164644250710148225747492867677997740170378821274724580964737026023849770396071009851834022757495203071577969567529036939890245802130128794353270344062474942442414435418875400326088823432328416813036419005641482201897505701842782391963848667007568092137012645877437260008122282039394042033177621760338944540726541086813868212280722494750397345794475000855801406107050762463252445822331516918782187767400650149088875145269131494779203427783876274979452258159301186580224037393228069403986024945662088309674810363870919129925510379067507604176465154288561610548509041069560968412603086247456109590673756822652821605041322871799764766411171930798472458694336680289732079118183595347881326225430680010837340743581293404230804824901666706460412077761860083357889672389644353227414786633884348349337984065033623752652987496193066174513814606401903241888617794173316785271882179358635633178937719943520160227349481968316549523207477004828109641388226230834949885909718182375085406212099030876824296091302830070985616832147704898672272279384696330491739831420179961401077434577537087387535566079363168592450287080131722417530762055714853347534669957520941048709780575776115233198962727112272081775310658526051147494961938131288042320034127274494397430333403143192351857410597198778762878681070829238782897636997955659810337006697149006286236642456630446109182659999515260250016876663018926027666745475884761265107528852834624220724645882891539737574933932491587897809218548868322216607706015632583427448555822580583685540475848681397210012029404463471363748630451695696377063031381554524111437348213268533458896092833154582022257228670237108961861649320984469587573145644805131267765837293550912355774251738276716808280321007844684606484785200620530060032555801886255285321699772515498908219222233510001016784566041410782043717388815704715868207072967374913606988480875997724316270650615289583920467298182847403607105109642859787900956978814052555014874369081686034783132098392156548006532438076255827779494588010457515677759071784330558887003781399642977144766721657585852015665134933220013764719423086249694382096950707051535442795075273926137374365647890899299944159062363758513545330596488925583184110553263171281365649601433971666528600326098093565580977134197432959472852481623892133654533240543354104523259371745119494999131481189852744639229786036166114596170187939526339069386430856555466106552410191424209612502909069195121108232135290152704347629856862251647259631793869733979820169321347305613087087287160353208839129235056860996667943931584435097421414626575025815338868674486905548473168060278860397938860674018099763434249721044775594752890325645332471715435851631102066722354279936287685661554786120024270961689206872652425853019627399124827432048025542923350470017100787158251815182974851914580916003044932516773191820710925856805932325738368532623173551703217941056440158075819148171903744069613569002409494212889561549929691267193000424790182055097000719963447905760163635837567893042559637535322508995820896207939398114025320030309625751422946900380695657728226748518959982072116874362372611526997474867336665420080470891355083281549383727704223451482466332090650836334958732218317802594554098715378939121917622648101768907159942915187548834389637876040121833307791928620310105940255683350248499540948645857065956804969492790768463865107378706284829335146106364150767940872072913452466687378651186494272121319893414292533399694897855397198911042979450811539957013549999126804829153383352101590285284330511907005094315982082162220853577254429860973512798271899940200844607775663611565213895846060611184656030030542795059142243499910823516237919209879654762101505374012523939321325719447314183609956583333943400459857795886210858669778527893574891783501230175521926033536080982513645085792513187283044167151087052125921585130814565489507027096180430405024229075036213361824311708837099554064311189483103145684786384750995944586981223561346003093851419837162847684120667987000583566879830534105588634275653970336260148043757118272534668329651118344328846277326941922065137334385284236371682749660520040982128483851243561419390941833556111411358875410528135235646850252827469325005497262181101046553258096256237164672838103959496732320882546215883187597597390347048276805358351499803626726659236061496846292516545406485347744352844934181813521251751031421051655377251194987851783662264571674940983883903127057920679781167495479808517645401771306086970310792818991346442235103787703271199195003926474261363668191449502877199780433699117151166383229095774885800767998517117707453534212372878887028462223396542202335928802252151894577919002446507037217659207374328897448432480795004743795744621305580233415519460971851821956082415060789608321474697153037948071060951890290954345051955789842314566148858720033227230893151265249426900929172500796082707310394897917967036512265964508720203160297733694108523693727688753256664215655495379508034439309037608380354533524702791845615094979062590065912254731956053243002098120339337786941951743978248714394522747210015692352494980858101446231339996963874606463653820988888302710045871799110585152358585611180532692792757898905701661869421027724970268168156182159962556027178782641588514656551670151980884627254334885569269933777775125880441399686937484107665094027765909473752312034540560190997741299658717353335025610099033795805056898141449313688141804720377760298326461223116874438735333070973054708207440682344055439382622683287257916435887347580011887717387336337296614921835300055906092608515578615976461937894024956327106901936056346425601557216650428635466554318037810990902769605205410049809772166306740128482314106901483359474380539875911377793675511962627195326949433090381781949606482329013903927957103613369682138690119598044618053814529115043310376447397901445967886866473628567627979716608864226501602211282989436542150657449436682859818508167007394780833141972324762586381032447679586322781612162827306511133554792489095106215221532405822858630727744988978473362302457878067164342711873859571307147855764389760484957133304073968115212400964667622661737524447658229450558419787094364661321597189112059811012367504079423206962330185635732096112993684780767141209587171887710687594690654989155312996331806422451752619514972585795011193962917108627187411551730450888804103733624460945253420878256219910729157078456570705279770450228584339181497746459246468631749667170584338963810247826712914165575436619430842026496978749143411548282381999726171992370579623305637589277664370994923584611042398642588375675396285217898748484096993041125803627644627070993183617451618504016988986752103957319680658682155575148718063413221033390277800096365387895077974341010510977499179152961718073775268820890054606506614941562379266950361366263058716740722030539354944333053603591949558662454140468194677412091981286147876654325455983337787588075919480171668577724765098364476222180234087128225929629159378290731161537268539397215971584174953952672977123206692002327129102772431422450772193461452024792737168763749744027208339531751918495619729283299978226092659114496646140303624693385438393480577530302915825038138400534527108831650599029519603659959607155826727512950492238695768096538469573417821868269574648169320225590218473575387058619925132454302613743734866562287072495342112411006952142542881211536795257410244905903132840361263253041025891400886678854743675413020233078039575698311629627430140165625806958573681209769124813192058836547274727207275086269496244328616638591077052178450765035694379524593989607529016697301755648364381401440347129445062983657764100429414353163049691512453241715418341534751080106743929667109343369496905523774857819396755324929962103873079033641311517884977953833015068681450359626070209075453558826225960006042889050855651709627423771762366440165424271173615767459825469941299056556246820735084236972266789544999002388110472685528322601831016776245132445520342712690126019288301347429455019492400056440426392980164080709693030885376850177036400640392677892989044524193609018517128309365887024389124721964720696974455717689666425560335322349249358256704676574097478395483893765696592810446532400914608616362030204800941451369204514545894371317875804215549432614115288971380402206527143710358901619670503903528643856042498358796484773615651745988360271180460849325574052083661107076322194008178487272109521785891680807824311998491978662566653776326582254920920836229997136661880453609426246061282481255004933344697183068125943092849498804231183513238563870400536991246310409303918846955775408905286723685973464595467699685913224403986899021863859238886669935913286614060526319493697949951284545659062206584606717411534003215754137143991017540867922913717218324333947078211607737762019764044474088917379759498001668128040051632318185568168879137902205251614899105982306869483523887290238641707115136843070482337231568506468152816520598360779803774974482641724786998391665064579654750679780382797685482310929165488211749641137750907159039423004559940199756441295716040119843635527233305588764449149895366081485128770822607354331039130007039484595686270736354318502570013056718057800957526927129271055999003377018128737381573512270046066933797160012115007900678192033702667933582732638870620358697182435477003151204562451930316634070849525636044962732693452140110821702473142789331430261362499560751825114040504811066671887982495598561918685739665938742130489053680726884858734805444325731729000611969769711767269231243182111719915795469059214804704628270904899324635858413598017082027028843990348810806463498314018022777637439732606437312587713469319851121414591175084638282989736057121829229174347117868701348236332700398360530711414575121035894571097145018024301646774291028403858918253257609468821496525846104147271097009152232603183531522846525171957793372914524820743423088418963198611182335421484821769147759823380787236014971228578398091262818267826951587341385235255474418765707474973754250261596780532439614025324068763331948793598271186175506496924510654113777947155625803391846021514126869451436864033653811159689112522260490902693643738277502411156661209941043193546526946084087253265065828634464938434593433660579580772210400003458723737478743393684852690380490402467217393997215457693594692113394845114954230635925658046662986072467697923176721836334665517031832720394888925263347637908486926862824261835533834621603072750596476801323204752870688737928655633441997306630584954343021558874769912406077150129844316804226238293684173665378164167931857447999269394775705258410729281812796523003192073315968026916504978405160100379604780408013970223234343691718146012569478271405532643195961900801235871804840694496350175702810077637230832038245349089741880546010058409582204503842765202225960841421606864404280847296322580899279947953942232473246983043574754933234612016784080119137892669525341769285733132585726739796183693893005269741258046960037812458510316806949781029382386083244003222268507524748721232258725793308095072698966379133301237546006032336120510470174082208642311831354120318053323686749946154994767207011072143732408468241525159569830158366735080405882921818146351649702174527761907906330701300163190832224599086085572109279730603337868354135754956107200463647345214793690444923357735742252188905304546598490054614167234565287980357465014099110337948005720446034837574466960140610564596627926234336352893563428744511604316328966237797989430070768115834860233728710937482725245803422259039806505558798337893795043331540564666853291918830816724791919689096865538262365191512110864671366735100911628301602980419017742685446060937928456738166024277192114312225892369298468640729954488632974376261429342725154912736363777814962586537243122255752915922845822154429428104263491667164437946149053849804522687499178025726891382928079255798781219010655909382775999080387170126125326152064678741865562416718656075707893832480687110219501066613917977604345396849636076639040258135235167611261893833236894003842316348939059612157089500840026822597931956052190665587484094656806458721807686296974525056118016330877098362106976639761720025830815764083156296374068506200004362883398336653888060244525404057507844893891983082742726563610960185457439751120658565224591159870691587913465629627652141079571667374728873490453795640946124566587937240540302838675206488001331331885130064897471202893590997366107105732670977654044517088203124108337044972744893265348546830436566593735440907970527359283545784614821187018259220996130634042871558488627381347870024662121386848291159483380996999158254392288370886922606235621164182378400770062567898180298423192202798311067654700767373892311502759452797771530869739040372707235394825212202029972872277123330454518931991480277926657167997417491516527099261811926980475183530876242087512916283591516508665505196194560174386349520385091278308553293815803890712170376872109674025902739265436381861172211228484651400198315817786634462993242791504035427271767142697748153534121897169248649825133903124720650379620849238698943511838120016135404638452004604097341512722147051535033229371477999675730730352009431284595901496925651903102340006504993956669694066009468330756061966701992579232837301496329922934971442606677223712118567324254818524569777729732650248219181210068896427000789387189812723356045324663545983786067867127668341090454669578111397798845331218005669452017126521519918367421013316302029542931660692662381562508701622194692182396724270373869987814492575196179980065260711700191222824052016619634141585271822202542210007096395978273044913069640000778475866543793095124610385438319681862135644042118418090814578053040574077767655082511566725291860982049816530843029207411019057129367289575853637631692188948259054139941738267442286306661550358825346590459141660699446224688074672768285968397025969074221804647852799210884994818109545328574385410340114846862600157436448985866470665943021664126198090706146544376951742180422520181821174237034247231213103289984272882847014393590339474157042231025239447465225476781961866587386208743522068928637783860679562764784773189259172173866358281372552317217361472124382280690328202328592622195840065124914901578462638105540570004824199160962751353591503102828907449387147954274122310694595579840504083478301180271153937459673706423593621145858658735812591863854296828554230881245405748052892591070224637914413172617836358559436630628584492377619034798315214190441861905176215371688367255475043741345827862954619937191835928672598665165164508562013634191851589306746116324109087639819728017340167480308761412517256346732704014689469246893213151671832035792558827429270491982278714157527831411868937222524845335273557284294007876310132472006353858661483280321397918773580687310473138853675379052636980178075646420316564174572902252933654013253783886075556046184965150500754904123724327192930918670906477903940552101629013956533761798955260264671863344998043674022143093051177921447386412597370966048557343879194689885666277381944665403013294099186129190878080558238026645796902521575990783653936372955033245395516892187008405928533718174960923046131921211611071632579868539398141324561671611271669685443284447566454561478782397053482097156114984743402851935155832147744300428919307414653333190113586067998743023309390409414990052087141733347430364580291191426598617309594738050972677268901254179089620282578216650557980151020764602633931430209937548116424223214802750585052556373973396836461194471886354431022790852111060241478252669348645578085852247657227198977600709381655672002236134600676258180231757947574280066372004638090913819716462870278623235354030533647157374716839420982038534480834292832875597063567746309589277503849423121870218714831375559312307122775398982352186822361224443312513154627685149675119687023741251593800488758623270074771194330751285096919614764580561762299047102608312552054195894310729970299599340808618010312124289921791419427045126418791167251721923748085909618071673942984001430971803538827812495180452244970942453134282464678864295942941888187125029649590399336040832612717810366489547990657992579844463134083201110216103324392607112535742834592493715653180355284348843088986900588217999780391600030784290929819815272068837441592452958170297226125837884076800348299144528203662034124607764078758866889104857101790320100893152696545763080742580183087367153818571103541248098441300199506725097226134231422112341493654786248795626844285465372396047222231415981416607424173658261252030888053512697913003167502422843551347068419742049158195146180565030182307622914322509569597342262055901625315760053121743813355442382871693649246234106385208328950213139379899863648457507365068027832429797230780409621870516513069416117468627209078865829352475317891784764855827808353625609282953356589148387102154527459916334359010979482338727582382888413058959435701221626439689400516040724908578306377673875374392494728693100200857984218922435547650977744739184926813017822812624743660262546991560722935455126398341290607924980221961756789380183289860519649470465027855252554925981626227796524563180896497833001951762791677726985321148763917818609832279996322398211931502080993965375325257287463712841771202250823639986053007170758610040111563462754115718324215190399411492806422317066379171519827813124819947751768888862146328847868511827022245131345725706872713791510136977490156874424163428237530411578626882290507228064303058889152611701725980430361885788540189132933160917930007538031081423520697328665294457810133398844847219823862282908816799192217799390155694198849163784613612535974055112248251733510206914559795569662848145041426393069235431543514092675667654760233544553511338594059015731245491711816669386831923258530246004776982006808728056139397826718686712045546978795814012313460961199052454134144755222340524549101587994325988161756563665517044743915694093132939544607121775106633019598808308604649554054787577152019438229941045356201714197910002150764110705741250406361098495064378662436926796686778021804114376314336321659439931105818008496686504912480775584277115609962631628890686563191348658982816115147358429881312079779552936346156400022806654767077772400879068613698867642322792226565055738753891050286549307076263150569463200699677652465812571834445411071848101999627883853305698928925162058392072545616513478818351321774373729914931699547140423996066028603370145777125693584789088970441980105797437971723257315117329152563727809050914112354626360297275070188619234177880919223162550777249655143180132367590475084713405643863834235732764455457953345741684271344451819898178038396736845498673398277907803725103121893941365610711795489815627979646432406880478229772854337633907494545729440891549205947839223251868654616829678027631670992168583662043968181661491370231419406567393606741033836112968890540340802146932255354217561213087819718536572861613391348331778850786549202793515997508001604039957271328947092510915351661052201840718695324028224441957442335403435079218482588831478930886937324057390544638047725625659801683811460031364913224216879777804568204841875167182284877676487715430655233048603535678051158100466949896584206509172062789660367104297690603796581700636778701804888111227363412913725393070169559653439779204180653600904025823006547249716666024370847410172861427095740433017395815145420646780268960549370935224367389536567926273213021582794302372189171310791578143329676382868316031650444759743611249421779809781230291209842052321247821632273724178346676302665027623449634485504856519143854407483679383441238463499572654669497000026094737840364015615805692319251187232545331485142668765531978871734551444066791025333518051527074562200502129791145622453371848524147066852478066195487704458958821635988885872151530458865908977960380308005575315892344520251791508691110046515363947701314957742306681555617749576353038504158314249428597175755620468658768774552108267559929629010362478441756888616244496924960375093177258652457530736837703914571889495448941291485874210346302379480557864422494211140608468192080551947530822514081287803623458673909417509961534832763475538308466280328109648869425890071444571399683808764843716975578838845581537347950481837645503412938793607402031225740204614509493898847898631837598849619036308364380555786211357359290019711042305487472470307534197906258686339027837776802930773344375256249473472656646717004822788003719334300957097008595093921792669881543419676710500620300121041264165597717078490405611162528341440750222916492410344688307035013091036125507382804247357188664853651839176179338706130236362674414781407257651170758787042578737253717312170679772552578738679099794606719297592532388793440982019217521479924557518927105290707437248271431951410493605001695414072976867402459774511816610409192800144465811546212070447059703308143203971421850433182684876697979274609353338833386345010295871803415786781463311820773535259035458843741771624382539657283782245313390606661073448545573329242974573367950416536713726354725292716825574195701782500446502805030942505382351232801239050987877287177256197803022070614320455332704096465555499064702482146743732498311754056242590457423355798702819505565513706634304508865450682509528324438069802116557855928597916492417089306766809476902001821636364307407276621878473126198711603217008719500419286853146217515490473322699029368420698402519539717323021079051381280836052110546069866067673299032575732791289644019307847732754231337381416895826703518108625074760776194522549858942769749445674123064390906821901969704955375635153928265038688833577972722925087864204523086652980192831453866342332766419191955454250429019674496581663778379847498570728761963515960344426535060111638111306360734677162146255673126176771686044813653091115398278126631047188479679154307419349767067017095830831661317991390640544412889833034279513762058977045209431924034415108603452552452653828751348289429143643550193498353795239377262087322538668604315170110177350902781675518851439421269439527096325487165701940756326104719095530382151778783810243327926559092997823354650876478014715670204061374020777021017400040147239651233087562679894169495238799678344818370633080107998295057677302371971596253422660639222518672095248072575437247488977856860486293469595592088393624908652564964033860047426048326095312299437017803539938311814206043962310023759291836649880351000081540103440983437169461483569010052509018655570004498852874392496130729850828010945550198636652525127719936896639396285505039644886657897321403861623024310582721275206904177320836226196303726970112376406648497052857002110046708270541081038279635780641353442763383440830005487671015079058084244361618703861866037907231601999734560361268671744441749378310169507221607706622890264624683924660526507345356001101849640366512102501113248275221759082939016834313669114888455914159936257276369786791615727062737317874175336157943350201161689852335716982337865508067078092042347137101961772607607419025009558611542790581412721608926492576656661658334405785830401226839296706154398215139670626907856930567374179127087658469881615326832355339408986348614390510803831294850636290659347535984831665216240687580437008506307825376366424538182275124610460036692059461510271173174609362187046231248203032446451813681178717460199881329780543396781107638684153704197491824721560567120080233320634015146929615363519929529065866306507126177643787853624413535444149919955137063405947474105510990408550165844414342250353080100569888357267442394615279377588074107032431840177779105530079319221509924605175421270183491614996085633916013536907551277789739467691191079141172138595336386188671907390332137596734727226601824791296566642363726536336631683688805393852652387280364337529871594473455212541344524767898466967797820955565099378119610784844880511269292431775989525077941551082144048851117577655648779682479713730781524687411009080967154431013890741595066698088760987005828222459911394874984862081887700387916724172079890428680931079879902045375506269875404618579598247722722733124883677536980882416367604767969473505411588048229427447263872208635870807406960823969651729008782843676428214689216733065427759611460462013030487644241362521487735493228524153696152611065684338620592770693337708707720340672461431342272718446452177048782492331863481988840824650999618914961739295881930497851404058854847978127817271195352892985915854604085011208066165573145452176702987429961555239254929533299786965613370570468542546467717477389562913037969842368490765462905537027475132920429495822200052214547407216957503503296598818793330831613557430753746556766833447931571908173957605194655609361905122171354334509721552159226546948137404405231691360347200548565415478818964622456157846832319385410656648671945348213514928631147637774292962014560067218312645635917202924671756903474137764532411547082489473441138122055336902106304088234939468902192685350526579527876946199493978517395611439391520082398045048555505545515775630144503370995779146766378128115926252858297589907475507136300139327420481844647633369113290613137870506035887825755095695420507424280904549355161912585979463814240835556732665417332456467109373214768046160313382329217661224919663406999151754586415302772517065536696676150114614205916638298225734719528142507222792216426714863465272602094685160248355636044603071206955714982001333464735394530309125834600654544668077946161253919594277757871405373470749062975435965780930727160078084901511618855638635182982819018010515265249260668120135322595481144480259194522888886553917154150318928761842636823550983034580575506646247607354039760840387647921221892277691654799324020618223860580422763454409905947379100268869415501247997906900794613062521900553766791562697229876948246477012269740446251368296694687438990799621911664951812420182888415613114258627630539334775548142498718912012798404908203300598757346394502261231365605953972059513089799350124792401366484545047461698395739920688280016944438134469543707748681235372927263183250183815270563115339939610369907855010994418484829753665724353800739812913406494082593090094054634007832384975089771460249690502909739402331111885487197520592940312084781934162527584847976456834002239567097222009418824031535570816012763787900151389175135455274783470673518996582793853467427136098174091826151250773259402921596255934166899760781803999018783627131896155054879437551011616905073584062457500091095721956090757296320593784591785334642096814068043312743000306901457192025454498877093111768123917448180741960097936805995188955916551457098505220046087966956316108884357750819203489556044079258715494513249694570731408219751564371520218664430288101867654780876632174889147523216703013443634078151118969039305128471035639361503078095879469655583927486477275950130790381765847635414818306007879482220959163684661461242222103322990667129654674937930147294454979705779977935460462345794542313420899673981616581625686620147201237168429200698397159362678217255165440616267296232704999427583582426043968010320428376402704328321753135489504811977623446672881296362215727181058877595303523225327933809073007281381948843627536253999403213336229370357254760549797377281848386045548435575641660548681349053365655368965914830139803220108625016896621073040650534649513947228065793435118050992776079699763548060474543536826444417766712794164174460648317808016005476356954824310692292190999372597502893932323803629131645402341833347898120097675861940342723283248793602300280391188270506647785741635569039476506942607995231183503366084629432811901785084690809274026103496170728728020109984852041631142784338558566454200620936861868955700251241245243164301054290470154476984561658048006016177650139282926752084721967158205084580774451735076452779150167714109809567629493720369198870652776118689399225554927580799017008378837386161622749356431737982287983942982757030291292087318983695154936908791267873697292241948826978710131132046115217948010208628283280825405154271313870451075866327970477982409776214459879206320137285971667439227628224761811577718769987559594197769175019343962598491847341131637525530241780012475789255155829645074983317150618371892986423027773488668343106543632246782443388903055233152789292508418521665550767490396216997364700476183989964922262076375614567846364747546120926318254378823858137260736892581734532145118677806981834934292120586036726464643581517050112071927134945843457999971234208203566344148960465565150051889076360448721436294930883322985682601108223932114638198862053798905541172153405979846073013008351731951038830931506764505602503648149414951756147531302665171878788366817008945814543885611881218394275780880015228796214881994362210358789739121197545983175076920108345770620589182110837960695335123276401455530796850999399399677936563540271410819884232233711974244850325899976230621842156290402679260093402137943416942338749475347693832288067820650591609370225076537512895696949054143756154091400666670190245288229470316404306090189200149174946152929810338991767700554977685091105616885517735854816176963779330417265616366541154981395687732326254393668389624199700614483793463730679890312462620337134795281219866151131615409086972983737551990213110805665226732909303331145224579652988342051159477424749410413628156223600407651313254882982939349944193606265339399017056549254456123818809517167953603540398632795282094191856687372111657930824204566891359920959927192800005901862842709467950170274021703147087220919281025772869066593276460509633885533007457059457665464144406457346844402861527168938071469934042758633333654595644453180366116355464820345017051099281387331100185162032919634602369117868151956741161588518117148480227018890676788327579756243698122843239568925564798569294208982961376849531619194705255641796197750697088479599103132380064381633675427787933240706050332373404640689826275584885236760728002408143996143162708584920674784378969284598174606323227795813865177122292049823537595856246583729811821180343927879007653066126936492262042171070877779847240046099221456240558276671246361794335592224890541915124690755213220887242051054270924637047833130869799006658205816628398491664216401386171824635663057638165611154371583751177783985337824312988846475469222980665255569534335102514505504395791993951884612010819098392083247212203643602596990843855376509708332266285899859156754338734406313090103251589581223223317416578840393745878595002710227117183706702270757580109319557246373388085342506855499900573188005266489963749143413509057777903833667325410699380151588835351971862169454961694743715894825863745750390650608648645755599185452320079037404466160717453034250291717512228212320354409959025815900547491048445500328003518318405561919708127480943545197789585389997802127595641055516829268993643906358798362663254010547711998101302252005016311659671647518922202783533310802330757978609410689102750155352319253214500815009525578392405640954834792427459721302188149375265323847749266471105123433612288756951781421779523016116455239134659654375595863344737419566289033253752102975221866094410433009322647133728941701664955486874499933298008445078746171050859419336268206529986145747882143860069091167107431542548121590281497466798945661482971123118993567220902747353864127013385716484239915222255590555634579439946698935558158199989644154622800309714540976451823422795562379259460226617596288821038124358328781578671087667404517593465927337865850685525936373448307724293957698002788781157917490864365952561221646898902682552341965690706243270371380968994921100077739503529713679534845383664800132581912858739505040357170129471284119735490592786535560869916564506338848125070067908418943814911440270370171779132963730756322427860009794675099033972905251060570349292984035881462401926289829812686702695866959830097076128707432639036659532505627150454193326126860730603928377035002430087340056015185469140020500573052028709818958278774285585155211540447104135000909980313651806862581350885376055667315180060778590316677522568347132454019686531047299617734030030523923872872761253794841003399046574601731615183323519433367872119413113662108454605773151666785143510554017553941565936407374186423237375293841704352592722865062016647832776994373878632163638110892409269632033032575926717372455693833643865874111372431520108353760765082904692951960837425476557402950902029845155961642407200901472045411084902634579731198342401956221763676402829228203858143789828279740629498598637211516041632028990653729271805198006066734092743932485321807459927844200991751995072380186571853109666455820225365901461252199513473071251871629381151045507923704456256772985062990236084264063420179966220659548293108092775735467151477013937150898851347074611510139141560430832929452466259106105750077908731413925862941565634424293684630163962205661030127917204295466685192475513935214188234465565313023049525796100271535455773066125424663267112015497124237919707852974988685747811934660519493017470270794217877590249987436372240173549786411703385238165021041279230699059758489365035895419887574952455142987496980403963343375126349163501301272048590942088601348257950856344849504409866318275191595543794555393022370483680105668557922425164711255898412641650740628334987546196862372709765452455537239722291293389426394693806940742334519624858817643744675216164655373602254357651264625782769092710966668747248950748003702090094265758194505827597573841753733143799659176144373487675141030056046836726418342481562673538768796001709030609430304700402128899122521349344963776855095700563383826569949175265753734293123087523980313432795267454922892157327758537872575317991607386882853246392969023201444635946239434436351416882509156177175342980882830877375028498466214992799857727352557071654007294323404284193699938799546709641939626981040170205024804138427578132124900067719824210735390757751433573282061603802794193806806610553109352569612279080143240136727919395348904369625153219386582480432606901303284806819143666292429664533373731285658653184740524272069990412610488200222689926616658072868728468724149526395108878648795548407192235739347591881752139395710208836878247124148862934720415578938570538462413167462412515851279973495152592882184111536174313498049059729527011286399632659364464230283454920786926161953599403780592703309954452770192428153974751850013317537673249053102791146850024432573554269547448062108926471627142053023931182012735210539704261696101876209103803059259354735643313620337585600181112480934768682190140029453707451089391346929753357892564795924670761054926841014681001502385578099943983938304182352460749755714681194424567924239898570571053335512617072829654327030247216596295310405663193419767565654495008361733437171271338377541388381357879426917564384349837612470248994773111472206431329070763572969286599443428336212904511937780096950131043793633063360778628140516705401079481610719107315543196387555776175708857326729890109188128922342131209423593558801593485194226118139982501167185670461688718281433784490125955491035050023458380475718683951623015492713261893898561118442733168831760478804815859637644745397433983473401017723904682204894151256606289504793781743659777016027371791581094348357339046218319218943643163654338347171660787930595384694383923532485558428642880582372550578940793766305813715017533922958472594972637030864324660233097190984526921923458194183625219432286329952135061507185471602094090152047463274830840406882211037066513112002252403290105783853506383201485777834686810261246662189428903152377652830972672803927767848251443887324432637559234309972037613656025446062590505194981927747998656275180176691220664888820543929565786227287162603361006556019519843266002032968336852708010385309300933882411184583103278502191680390099368801649545711581295807371522562092796477980740615509802227975712231516897240907131519084588109454581366011446043443926821518396318548468529914622004301782239382346448816253272542129341348326821647322392187233332019683223740905751180899355106796586346685677694791179630110357902067830732497444243701137773087822277014489533271283136264697898913487535883785140524802842205516468316312276676716447726924697286669676015863386517095592800809829250286116956724197570745512091002576217373409439282668009620579927696846539417930681557030950282333100234617346313150931284518806095884102656689000333105082485105078046462907773417319940637842140373817091387951430956155637863318223748693124056415141775568202342461762967268687390343834263479074187148970106915871933982755494486628276728014280900340487473072478608955135292900092427261970282216580361368293780329361028185895915828451337326767152491866072755214086624987635984316692377707253990127376543472094559237208552116238089942889113655548293158169248550472429712286720662321837238289710568427430022524595045919313660395949908035725621870528245459190504886743821660604668058539220053037100205555347715832540408966906512040625404003864049938952279523175102221506696006503568858020001099673197284248509030803389449283692803877727672496495083144719703323041826910971334572601223601075416225377246941995685006436741227837435590576096576202619423930677007276339320066175928832411970758980923737164851775997793772303849505858048142259642796042709605966290749908946061548121171661654483029864597527504378873479473541579371885324754058475809628909844185136754724297841417576347683209501949441514122199793097990746504238167322646543215896447254969817917291465589361542529878490615620376763703087669659619874307653361514904071908868346506869863743380799263806314851461915308911653624367610179663189754747643123519464201587949456771395892733783930352339119680648635194533915045375187668514202507340050582607935623470427689456691523067730789313816645293967888658958563720347685745659107188533764494507840168175390243555448692703322340253928232076659629837342234331361561755949065739437287143214714540677987500204837146154907705812656634589084101596843975637271878325002979308877060858947047564894875424772371624441296168743347154042819352631963548317664831732565991613593079870673123780036281851391162767242160565406526638143583134786366261385864946095537101823429148948889908522453113815072326298311694331707556661735190352004623551041235801433562938860105083122909089475249639003496644803212125264144381472933907923784686817411364728101837897237714234079562040661698232450437655792876128315304472504716727788870539056539862165755823838847539501655274752467518640400549328155905650583210709005011516241718361898216466383322914385396215230863578826415131376895888258452875281923853779174820284801733466857863010997277283981134536818698955384439866646897494958304085393914972035383537150280883716479898156917138447302009447689105631962942247464726477291420068568601533665640913225803316555562932973520133145340783719877871012016564317068704008358806351196080297339386435748044997340200298706035783597036121749226310445522248762925406716373434100230140798329577483761351974290951245107953921006436853650990710556222831435881549832982005690129231150485851616473724428008803647392761330307005055039361347783918698224158362001327471865163128175265685597918498353909291241347553321862126358901647037240499594923773652524036161232871273313800176948703585809557884506342923537454265132814018598996692736605320751886887806792938179402710800035445409589479058989861191755589136302711146607375125613788575842491742541556090015263335761673074889476798079065963100529343972485667592574981304015843890294806538467268628965835675360424298082449905053242200657654326054453295482657221460938546220121618911269633579014829148432127425026705307045565982310763580114951836347240496266019337713649350835922882833058087858511722217843717210954444419805161564808442592533580496106452522100112751888653297107798782200032051627243101061184316490565270453615999479195890117365399722385997981370939508596189402681437871634767631288884099766204600281399679347138285425868346782119458752585593754807849859392847372858919098130261380991450353703936954982179982264478626225818011836322938995374613816489853291005273374416401742642490199396324815734435878909675841493719074642092790368000436233795055914642775948227571631495657506405415626855259373593270033757913157519777973701690988429696618254169982812463544188065817228330287415515610806610916484653278415776128658163197771597348128475566051793019927592526392944039542361137197644440970591238895139659387586679088684780382911280733961088063569791185188437328252679553557006223765652090769840724487485351824819056268275102898376465937650626055788161392608474376010937596829089315470885667817018856253938589065497589842915169881877502613083023996266625012961855842956592110663228225384069638457632197745299959183909198390592233577566299458981307049823231247542163137094644953275483722736972324828312767244010364047241999077557500185639687075930665874919689420395868149866443288306791227764815184372596639168265002770640749086163273546659549527888709950900817657542729691419892963757375426416525146627240977438710382649251286783558016046157171598523262091383953417634246647706216944101372081821842568988846427807798449803364856020847921843793714635132760891457078887706132155908406972099287714590515177679516444427558246417552401727570524262355948253642033806659797983390528787576421681849113760446392972484882545266660005789331291147912305904379518907185881270426058334123950870065346357340294591213763341608923122882326710090434948699645859002301353153343743651664156547279339628545559535124957465189591428937113924613359746319520047686545023554640435687869275300996539787922790886388620714900566159130704744819302594723768341427405890096631379023797690923097206071423050865895999876424456294890135942250858471070503686813887137098557088217119998838791344751525040083396808091865479675074124205537369557149998736959996282960826573402757234321409747951551810695154494936073272839287601144593301204353708200115725076414520359808499005715364182952754762928823954043686200020538107931048381028108113435680853213314100227559120688440213292297532936944666012485837455450614956658478424801963981846092317977772347262878552276145400118278658103314561403953885616335465261536817085174173474927878939322576540830359754053221488453060347150854792743781081661145752080143862838113127089854571544761469598056072275810632149759550719511572206450612715106615031481793908969065469645458185438624328502563262572436875660877265100471965673663795668769054532349853699405609715478984824702591013324544963516265546538437889290066677660683945321099501949065321067843503237525376145663613276234385083342853910337774049790597654041577687542700566049965566989895015339603586159109303636627470472332106150112923628847349255894331330116782606953673078930715502952822985057253265475510219965521686501580323591475904766018657446645705119416004538587795262555875504908414489038251009472731879895148066405474620443792815101068810419880554785580166653259827438854068705456420784707496534554670011667785895494420048341283710014428254746946681541972155241108736053122727942281645228188756210554220306454507902974698633960051212556363084123890930874163481955288110816007942365082180527513065946223083141581757404512408960857271216705597432063664305540723414936110306836973890841330447160604810803120243864517434720241253239187763100574626658411641446284605534631789546300257316961898765232171874807884052036112998622915771894394703233242809587439185193738969413883748812766784055986930607554784324178970389663099380664668357960332777689250826318092407841502064026438296100733082961251644633486899563434159921681566804105494806994852528871830411158897373034048542375677511227639121877482067341046406322266106600259890021389422837051930601271344344658226631980622491633229895969680961922629002351663146622108165268978088145798025699542320613875468959206709285531460688504622940125219161865270953946741633798491449643394877186450291626095128285945054286089513144058193754752833567228698831280136615961801074955957349583100081604961408852708989215615622253217532988028091094388267446797586197612929814629444089054642455178216271427476296574302636862088514352802192827134045395242126515129308531318457603275437859254863037752666974285022349792752106544322419924012294691892232470488676421351672406406343626542979347157800909969899853786811990252471386067616739208177993357920588926562360603963296864929405336475082535094427934349887721142126118598552847553416062931946264003527835382261420687226806759627719290708649705892848734471839954300370064147754403376059236709058859934184792636909533561876080919019540406438505421889174882685471688655042468973452969468009990589302355087118687432914012386030669069014860328490066066434300866868291123457534369740240017703319008117286768018993346725258991097038742213653359437506798301962480041535286048090405359025243081879464143450824369889710605028266479957974174736844316662034712903253385043885414039863923545223028379117606646080782780031322136326603238787084313451150593423298245484333074100858963431421119691413242212489859448197951559511563806448564963339671957709643725237453492242792393511682658410244778569929739513295512117021101078675553579173119710387101785356586197859967603483239350942860152836329244785964231303228473262140829424690466121283424027573844404259880471507820749928581989251752177231061821227631624237252683953456571189945853914153756598782102150934896083213727231716004605425835106716728167112431994258165581386677113077411151762197408081529695338812109283931964552546626732774818286715791652168195551534251393306761534916485525513998212574412187819179618927962658670294553149104665016678823317918314740000541925344626636274857589115407290053621392903652045038007228570350965239037854523342817228835167469737786374556493125637661753324413606541846736950588381403632912658123449852284442673033071657977906995877562350265447906996853149532199187421740391862314090546232540880244391637547087512218252307292954946797563464513284750815902632397142984214126139492898687368642261894968852266623723378991888843078836144201799709992555014472848336492821819818560680258625495048521250831658502568070543858481706672354372256910220259397398360094195674388981541230441162354203140624551238232690527798043941117208289321202568401042896668026940303461555825900367221517533517035850987407019971739172126134561306180360697576831856909111266418313992137205989381461049401800070911846182488961549439409252563319686995155267855180159922819324289774214984309275879431310072526269356582168711636549901359965644679929058559558520862458718915493821763479198539827445070787711914803722568845971213456447962368298136680941692953066488605851528265666845822394171573559336947751141631120155937415640176457210054404202832557559617802592930688773388810789630732023808302789153566622125925959936257052441650142920613959374518950086023519327772648524460942614788167090857350904739286800262682854632186776726187112844938148729172694761236245185176550941340530039403570724063715536658545602040780660530601009269945252967966109946997122576640085276036443026017541938118738952835373709403380822501285473891117759104718228213197934385933093800639791015848626891741720251117951179353371474456162092141018564864509153527872193999226181463722868486871859518069144031136977030596230308520931586594959766588785033030803792950216216177737070763621069335034325041750969617737832228218981271627433229007624225359743423362398168898131569464939138721428497606413927805561344556576454999040423955120670374690472886625886886979014312070892885296816321857236876313040748138178134600872033215611643347128457121639776732298815585307572541443878803688135671224614208622610816916256183621880956293454277565703521694146039957213614344692662733710261605212596139791510560694506162844775929648706085367980445876828937057446104143314474399513632013086369429812749602110746506987104426686226815120290360965704850660456596471920144914696197092239633984330479350836432213558535853814753178508109722156201075141326512175076089665981659052855437682163447829942314815805884245003169128251475725376469970605296503113238025678771336203764835609103262078361868357221247297392416781776609716925128764544201596229390893655590405085595127125480111919906293207145741300683164925586853781360797859341296547236258840151052605761704444202376183998709257588129383669423931403414984030435777737685896479472537224834497294238445135282295946646089404087836107227049678994145239136897355596721891623586470358190005342777645695249182006845337937228729172192997236492945686713139787915382187311122216694992995841319611046655392551319451233581882846466402664335883600464898874933135560367795884142878984494154950595936949983148046654342831537120300250678393331471904906622866941611023258148355691594374078753810243622713209677433311543336247682001631368956302716006361979811838999312272708985262488053995021508738058163438410734218286379267006186823338592276332260981800828131926418259455372713175129657967243748840853421609584601388866742237455995317193880878122674244460379339900561801406826043248069264533130820134345354549802088243220093944579214614808133887891677060261039055650855665522104547414581576144924906568100324603700183161514764870775060354357975087282759484438903753701436351520441804204017030899566224675078515070775907227068334844235537533560515443256963830223159102336312771442748290964377955397340611040266642325804498901289502918632883268192890758869109367074086741720968145793918972388119008507519001545208435344145104459471926615556563555798719173280464176116228637548848406528694550387568318846252375134717768873362510600011826390765121610221531183133601577403249782501118568645155668726636766502786788193591855216402063694510393902121549706052085548867755811451250432961909597454219512605461359680141124649690228822389141437192144783206310023000841662117571986463802094688322793688025894387462404692053377682273670344601149018732102065550167139511473451374234731318422335241070693263397370623884217946718429214630349207313534445854118398227933442614576906611246941477042230877539305200524612183881101605341265281432703759588477845134668668975042106302085497590174759705914750729211788064047530369617886380237876775412970168350938828559458578020469520207186164238082076984924985085094176047742797766656851080797038476767926197303910407294892322079072835520780199448275067665905085935478321794021568145516026273503081161852849564725318945760551553595900086430627248563168343722826167914406006695047532338690658636657619037984967231640014406422294646305787302380550645694292456505929686321838794995788793514972743272104126406364103536072745824808413002890322502313140471644354724227195263319252768029613493652248437036753128311022705083023976860405361680361732624502000667450809628069962530518596609257146853076561394040025734326506179979917091246659483040804530145706954576774807147193733969296160078125363232529690458380707305028443286211268579130102357397890379989628405484990131579171165868510573604756427879555502808003944010806810166975103659274246198524513772242436652376658639904739961749404515175251873180406302221013351927886102689780701006336245782278975823293450040666006058812066064450007274805751243752838922437893612172167208785378433462756851698839207076111841710699127266185112552157175220464062226491237917384993530567266879961677001498794629761284553353752429778510118792748574067315199191362744534992564144644497152863394165509931055030704256530410886484462558771057791336385329721870434971986239687694861432659728909913096273194149414985390206918902714013778606933351030928572378582151047996431399506166431019726327822099756731726187890561213869126870815117628989652069350198228528923090447319301550943339148623415458969569928329875259180893989004299811422204791935886531408017926425586566889013216908717628063082736098938248955794192547574198361783627262002953961634960375667853419165304023712697944773180210972620831824156632519540250523243604940525032901603657589873745031348722265097680194896414760957223536400607118586872621501882800390022545307628379697115828620590973948467990806008883069919902604661239160285371705390101814907549810277723801784809884595255249469849503144083805872075998532779992206838691332111367698687174608016515257564237928731489657502793734287036133183623713318997913884183920598629076312562783712824786429929643740051937762747516337499292443734861540800209827025702095897217701736797312814108344795393709556636415764510323715391055598263394408954020226657892199959992123692104513140956372079791604487187837474082228933621784831318024634433561235461531089289562447656889139711821385671415349175844712535453073681961485502032646465923515765485558267940344467689324662647768451304004184148027255090388870995817327762379966963699229386833339478416660101027702921798402796962145903266442437834920428139564760281986249659169542872913002271214292380458314493974808306935389467596239964510850476628263799021100549558684869910965504808151268785594591511725715072913793807279503003184535456582430924399193893519718310986876487796387084565905063253468985259631309883304171673225243083653797469758642924202531065576534903968321572805865914497093259794315190389746075986065039523525125880569614841746023231327578094384862533359231337000796328707529716432075739929161531522431138451548691325696251480587180866234039869285320726345636456877294759022005475743564303750863298365481912544865534107723900924144070450977792754547570381630325250913539329853835369519575729086586811992213911409788833252342688160182429614386484377308448530670744392024870733399532182806533128665876743846700186875439321655298682243754228249608017945115312676827565665805840267856097279188134969660423667608168254417355510316366229941292048289138621398878453695110207172835804557544836060625438391437208830165959443419262349712489244101323675391402672421004546710018284289152624249530438576132638849554531351515042368535358445182997049581140581624434100325496757124982585605795091254970833165814587879967782215766498346568831065638176162088262305592540900990048873182568470825106950714160309387568897896152341117838881422122393046431949786539998719183712958035105663266552199700451757540216605229666658937214235331062620228994289792837140614305752089154369090453366342018065380123276148297137047800631129045260314743140496980737234658400355530079943785725458437441808207885407913084947058920171371749850557299846916126362844728768662234837354139957217479990047149552315863970508434840431667036033213847649975508957402310744314465882592431818780014656977039900445038526860072625457050486845847483599032833144220984508544941034861276480413720948394177742463021030803446873372206995974056631670846798210879979417715362974003369002655178663216600700358760460939843937281721957823652364003722833801159541485988115983588008416274593296907259124957796556742147966758337312229954589275767072674645279360103193356795802587944374985014290463545003842684730967474735404870259510721183795979208814497987248488708258236987777451840628857359368149607965836159514106488860239808551565359609153445423459824108552131871685521049165819191748216710575075989428191513083429959554980878423188299224410202347659458835851394244500529983818647691174888154895319703847693948128088847671565207010149470311210630990795827829734857844914763862359609951902157300879294991445192154107423671196005078530406118831444462793427233726516970787420597413705778962518765705012946359662173479847111132167008058298770659835093557492722636937439840394497776869919780489868878096902520866686380466236740195755277039685431791425536903879099268463596671523906352627102109803382979412802017609823952736553162797391541547889143133515699177700060157765088736166898981692296701956714110462568035864293511993544909141824964161346707839497052533718161068352376219219178376321298681426057416700112281090680925191598750145514866512097622353234433951733916306349524162688870567559076353611943423509974774917167164494483891318478607944877755071171875964009494768356671385869054422562671262857406619541589191676154702158003773310991005139850459373834865561622578816269627856821366744048134055340169491111900991833109618810654505663872741216679502987131736840530633286395065805712955552200673579472831462467689690157441045248584392745419164474523519208157615638039343246243363296962264211565238900887141223578263108348036328700780194212384991318273291233507629531117626728284049403813745170298210280477458772503004870530844904462648014537414848553480686248229474004294526162915493872709431899551818587669905182468476303533574376890355933848898738829310101611374913932485437993352949558815231147737512930905095613936593777925122370932177267312852492930711191139855977826335013712511668764399563716612857576925995752729556572141845307517440175344486438355526459263613179486358555877999349544645017872655038805878650588676979855436179615443633971429616167117222342823605726353948880326421010011382599895958460236338245350902779866151646219674372953939274466083523290835814597737133781501368279512459726943741991287100849532138930685688827200204604024881214682019857613552778864943051413415065268393281485495997873851572112435677811183374082253431831796583668771233484443986629223151434390483743343806193617886510137258804769253969560028997431873930063895994046060345743443201513735934587638982154862048999395168141948938160215275739733681614968204013599620508563831867675065752766166390806604984759359238963745396543172468874080558611064877564739489260214475042407186589275910629594217204939443876470199024617162505158453364044006357316053800715225831288345746603194470935250527950848706264759689440939768414922480689364024625648613922622528089141524951196345855092594006178684569927148054826925792871833334285142229892768950703834281642949596938070841911256852462064988463088681467155578651699227704197622624368576480531400131707686171220482587147776623637580612255251206613838997125413236421181267349200362883632582967174020477317330159614146633838357177950650330999430792050492385974577620979426680827276365766844803418090734206420225381340955372450318102192844854557363281989332130087821750614240036365499636053222649809007192164401489342646612987233089328487128530425928161947671635181454386405833188955576865719001679755841849412098298047246870700526026377281916883436404381213264792192944943058353983872511937218367414780608701456706414644406908768780077912814477402756131087728111923487516707433621815595470627881038608234723735166990515721183117830489044209281003070446862679175506114497255518232066175203819042697033073529587924990385832465841921263757723129770526311622133008230498757188144570767776996913240391294710856744568203914722029296517015828747310663268900908338867728299509055919546660894308160065810810115639361371969544721041628314864137269332439837005893046553805518375306936728880901449571958228710837981728388846066686737166487974611703698873275725474888179059681423692051077299436223671599419860874219365721483232527822550822531113180953162688305415454230769759894959369805396808397410877044484618863933094814333905777569384979289249943982772603622039239367516426455777666443277542807631876351601497936742167013314866491840310765272000870796552476078748741828214675913739239915740819356372833464254271197731022127323006409249443364888296683751566072579416783014395339961806557952971958150061356495016072192990457971932909612810593030433800565773147686658495764344982210479809804888389713809816622432628054407564369702898003372715383577428600657853773402354205726833762572851584225788294949550421612839428749726082586735334803939262140022562386307678896503920969979027333618115687960198251985511126032386819205484517617360948635400373073415590514460413806760006965940417753961557015958384666724503781788930050765261854302839974415590111621020261083108945886347989537387185346760119188572079686332187540183792844161688969254468495833280012293906114460455137968297987844224073314052780213184576488783680856494936304199517320014963639137019714570602269446689774216518778442239848221434390525783534843834620964248257117393560435306369857808749197331373814643054188974146455951048565183618767178343217306128398772192152164032716508950052213594145427105711969580334080616260607687325532834063884837406967409952378109616922917519073353696353737039388788610528102078930091383054018190967766582189552147477605843917779014334771870295621745329297848058671799665519252313498748507616462429648981776998369626548435088422217354563733940847741253007932661215902169312916143385452135147937330975657889585323794444699761234407379497156495861481009146907855397000566464214414703353006262582663439714122295927543776895760796195695867894850773390854436697345865435057573095243873764143002323828169133593578681257755851433019803727468918450257348557416618825165231903537330858093801511541169235481472817913410128139899482612913390213749877802111282921880780554022873793964154975756431094560545426559835017823898623819457270648825638637745366480163166390552334297575306723593047708895546615671875772546265304799820655608058753376276361100863170120016272029550393749781636519308472304731892377596134011339096337248179292637891328567494427360563324164878546868729251708605072153182135032995804077255437056799862816354681759988976018399290799525148706738192035439522656828296852054941886821852062530531229965673295439574528734064142023125251274548877500076145264325079798130082631072678996610620741160470153215575356739633585220436940320420253309981451012898098926922869040537216638887737102493370688339043159754603905494184325786679203049633610777390446662574860521684920008840584770249489698045484254736099275990174994276947546810619799763798801947116719346084175328645595814823476914265993236646145083685219150310199458588593424902793576114553302384010452874957636855840045296586566137303469946189346526765041559245466417065761734616373985518170368619343500021750392076071120838936430689404269115383248037899020641215728758764843292803666447267684110994175011523166956738345251830208315319268254546310985480136310289020530364135598325720330370360093093563196080805341746075949464189872090150226484615434217523434555816624411736678393327478657209995950929540337816558563201251316457083466094487878804905913566718403796403474541466840368752400784592396512166969342939446581293676591192035052089991168059713065577305277365859575425950415214572130174517433803219211192826340511534838052740153603480322557743030025122045209584402120438657990597518261975644054457053800180818352322483502656759835671953223796524964073441838606097465703668025252231608908523019988390878570706627008189808761576922214605930126158876695731860617237577592205910499452347421788134280600113345465542492142164022461292356744980212773035309545298210363679734429760041603396033167597544099169668482532555833017675784348651732488233682148130828996390590394833305358342286507588439718461055212796475169329604563361867400411056169383972098408863135386761525400450481983443419870908362672305609890736559197066619343753780036253437210415821652731144419533925234184696904467282022067235554446666516392219737102125229779118383461562222453946591249907034168736020249534614296970634214875708850996417951319803671639278215896078400347774611719201307420152328680201261490829896465318684264653433611953729927311940747680316872803775167140745362982041180724053715035802412027772289154768203925287005331401639415212206981834948949076307083222271895362382703415457955085285034785853687077050676373556490693331835218991882470681138610775749584257943043647022284182510993169596735164456749178854661645709769266967427960747559665792559493350896368160167052369960310677960014885339308171723622831724184674463690823696817312328350406926423292125193995938912797950647353927531156590380699792637048424256196859709304924151201412583478259364586361105401953425961601420975491249194148777257903971076983771727290499658971040921270518637308254727156875889542798695435006608078756835723182236728612664875441134581273283168904255688573836200331865678413614477382485644441565401192584750901138808113226218236968473359105232180724825418329292402389817117565364662170279758153281810886622924435182438599033006344025366807140264272409606589101341620379288775509667905813770415391819415311932907514430564594108040497464936662173726228938113341074204605707648145254562249248167558706010253760502997416312637491973647990403618635727182304473370373855436627602901695947899874465313486357357599850000758295050814538527542417915943387477597293142852026099876856401653238298064129767525596305053113896800053380724615016861795706423503163707161159684759954029512265781408880998070910289291835439767411621431341881379928868282546147738320751885435152474753624808318382543956464110292152276842310585170171045149083184815549377488057210554184707670035613270458668792048418659140496243134801300270735992411734961712151120534275155568099237161652058007066648993588590567656345052998087325577048380297360505357566903176515544454851843270921781005449205693325750811260188977405184302049488960150564296150641839744856351870699027295703753745194353390329182305862922913688303933039554789370944687868617646175110487259949454238349867831545034422356383634767909716472994346223590154191651624283195450066865554289449854109357268118483697422470745651246364854873899462064113795895447169611952267841846940053230118575449278576661975497249060073149313879240059048370292148359689780324598120458409451470806977286563023784040628128646411382799760560261607993757434983549108851221297052461364171888176211523827105149515954914114515659587926189578703976245391891797959859304670013660941965041114619846318833157552399610419065068396677766194044472993039767102068091423816365998634466211068601271223535903658265342260198896344160195381120718153380482162757431110031438456642259493299971477196180809233064274457334905267101619412283686932184990397205865176178231195902686089450753595127854937288256042030395963814022415166911463977531258086194896514005616803492799111760337908625513435069044970577492504092132252186849074350745634110374226837565842323674315596349943422643148347598046480939338896808711781058050792795933603059002110664851804363746917887909269430359572730632314035311128245137522101339906097397540438219753946382859330889313676842724713558170059706715009363347972144058261557193506051622140588129308775933211057111367258383580616105691111478757127590166836597865926445238409692576716114504372118471450167346330346868042727697857310623372930632106979596692965422373609285095832750211684854318409505154085966354059241864856392036884728023935484003933485717569502179349758576636446937020460860551202545019881500501591815149344949135126210319593348110740373298274864449555483465778132674326075785542248795262013416186257761115730022479010895533493838524103411485859216636677864223609174735941735187729447446407628392130169707453201043109370163755485169542548487293050739600122410031923001001444060721365700740371926072865170942236882165547234247916550241854163739984745109844657713338810185490722391087075987312753991417348373528070213177910317102231765580197401348782898910658584305866740980843833493304033473379766606613053646398795462043194295691349309122687305840767130423518799270872751530466002639836897736575305647470769937305858992614928862365237903394030316179807437258392267557078289939993289519872428005758046733785477965088524229974147082014105106127831828623897326511572022669125204308495076274100333512202495075990137502901295235922123426328481562666263224680930084355770740004376949149794269721178840123479808551087717665231765006718873781116284132607050880903287621717861371542184399587133769108914366480487938241489566622913815559584000508017781316592893263841208001657968918202506391041512048891993365435780149841005592352809349647926130964199126614701947173503049835571158422470598551852330560017605930131533145483139972995023060790539359462410700522569191673997051628064307702748632943723065383816146629233917764737215979948159118317249141235912345086426151594348996464150914969582861838126775574492618410127899730481488510148809161582278445367450589198957027926935342513615175278558628411603107164906346721552506080309604940845144559651499073461662241392834559723323463936694652032767798046030947777145792917127398212771888199315423867245805966017417522182592260488021088266132044965283820259755600452051717042418552219116324274896370823621155786744728400134566289990098335802885251769539685445310851907833315016041678032032279749143292509995984342964727432845344673108295177246722167250043483840278341164544337943942975137311281915355624642547119233766211790967694047106214113479420865298737964734034252202705849592772367969989132204421056181742458397640604525903366861278948647284278850737927884400390186840541041594113539338976038768530581742249006744816145990800658203216947433551279651029610255757604239240347048294847730639466905986494473083273114530935611341656770173225483800304229308874792609570868501161005904759564579242862070555098412493012667738158200081381356900690997207878426994994077085964421844311824022195372031002187465101114871092416408679712017408795514399065140321713001039729660562365777731660825756704640261211341394694929745060818574434411013633711302156213255102557285621606528139789388048680418171174714841194360818863597902811677694841413717545266484537662456021093278519566652678636827623309712602379198815725543220126683172765486830829798303295316135493545464289769433972407111211940155136308641120505949485581926964487658111894488261954467822229134906739323278020753803011536534245197689484853455781373639192534275192714227986057041010020714973440388407237830082605667816637892138249783784388157078683009356387325066975467920417114036275171485655578482159905558037399843986159930341801121052606693251211509978736855667751415500194560005066623742586731052853067674755482628183886237758123497229440196213230082775388600084121785522200966184134794594884833636389697371041206760588524482196480175330913545707483565446886930312236936539767740439740895436731095641709950803166932571066185913689438230992854648847097261600147849156165824849040007842263708773014516442678982795635174242658864206639856748161449028694507132130878974895952960774840144043082392700428482705348799987129299201136111209865570919653297131759861738618106330201150673074899793713432585825166234216862709612619661945198189184567605200292583816019217154583532697669875730716894766421882222873021715234191880462467979684059211599788801464512457294401435910648575839562789904594148960052765421843540392679364862995490147070259119952459985936396325191001608190834427995757595858377730895934637256131657189478792593764985190928705354071197735481255259211205942901178876804240179137890433979419105180618788026171241829408207277707016976049059221904762553555654631846194658754685771326904358746280840078849094571230674244932193877074115377875857232768678347479227750366737015902706717519763796006179900728168732280937710707586995291192562226648597579329480873197423301146324534810272762591071137014402342626422234577699824170721223306263568991395520417137414411039120931851418335790216893145955638424307384909260061765248612837222106856755800699247040149802149023983790896205202691938223317496973165075732363520600606306795847949509739804103083593204082290617381832802627316754690368302232253572539730154966312815669639703678171292523570522644198893043144310616432128330304580085139069753908910234788126580811666610758006767535966553301578799935604051740684861502465129835552462464169617032970814453959247535281146874074259498537724945406743192108147104482751359976750393938520298307611344315405408140419691388288560553612726240908866314913774707771727170893730762267687110034391204582160209478126553324688997312757731484279994435673208933333661978458780122304897057133621171447409219183462869359716087010167348242883725810940912118123521324474179189899261906484274993037642817669420375656917360371225266251911397675256169401273556568475749304268733003063325265988704809747876824500459431315561319559976323175701033986300328447449497327326866478887354703945487170352625102750633770319957151703975488986703634892269329764878813497698504475010128647016152268855685573247063011065831555068695190200224034954721131060092688407079169911361661587405101196468751294643603190306011808828147634295096804419554847286259739772563409834087693386660263482166670867680091479413957525017759663486908624612201087845257217674542348157524270593463966008353500025021706522919026178719962846127144300807818725104771422206186408817826439798954263533095718350035180760775277172123400313315475469948095199780091634325059468695146752952214054367353485803801327995878561944909789894205698990297519248906218687414145895681287605849406677261254981203005509458722255849749615581852908372625418924464386823910929334180422524213599334703690677087332829640126479181157630587778440679371934546795476908774447673171844879343923842514780586020697534467191101047684898580824848504196913284434044214542699536788097108936332673148488512737997739524164182847200475745067769102042679304430881694198702165463082890510772932229573114624793327606990883570784822452902945300415707968806815562871554648745562659489821265774834767759980555869940229366310652969906362855982822713479123755042676762996618072398153569112344045609932816113772228537334950287920583205926386658074509322739934418191636073647969764383682617145729087248784677221344903217553900056100968930202479349656198961575046129342659558279783732932150941548720623097459086962792342865218403924934067916774913286967748165719158534311088615983536737524412278142353037533168325671655056251815225892790942247743584761133444222203779217987333316460919442891794679824308915595778194973462450808983377187855759553435600985751322863932666796644103687063035503854702860321876342046090314842596648737640863696378075452237945630357329919370329768019407453928592219132370563268164124319727200421080563123099502931265730332024469895190005713881129863925581609050474368484894478673376305884176116677013321701676941634502995118204649655931791496889823538221110019874563267767306428987519818077866604281482679480452593374174365543070861022072164658370878728976719337774805454227740650626579403059421210973678485275314383799721032740377016491482706086697816504698068120582977659418429870339066660410386971889471728098325731503907488432287812892701109830481431672372535754846300501995183977610805436406431619320697824269148258449630788022897182878207965006475584078358068408627334042343051117110707279954297364193392488269959308009090051630460463388892454325289165065247358515440068750806064005033368954018366504164073881213284811361523628918347123105185729991463773328784811581129910315007807096536317834363023959412926422401923137966561335638675992519659462217495863922523745532676062135340863651338817867654156911281645044090336906848284147997624787120084220383583943162436547678617831205292775714914978322857725008734456991239915558682010951011952130320241875583799005044138914571371385305018073915505793829221359121188045325676935605262911811612851407683149066442523445722309790540430636445778626613841450619580983279833019752423919022296113391657235420650288157926428156749146114382049271218411233912764254299678228828724177406119718484256778197262569344545296499726320093807641745461120200669835021999944099465209997931217403300467333149840479599136553263762930242128516842716745459123719536642784173683849701331058317686458310657627283998983358586454447056811715488681483465338302803431355397924333387740557617925385258565094829560393438972800549167230030982406601097304265394568961952349719160300213559441614467507508603829583832094201414163032592765020995356996452995507912858472013726988222678757124120889938410533437933786132453740359413834385936926069647907132232646018594899375282200339795280876837111085537231270783114269317645309186435876608681073008009333015097888999569556281847441694579903993309235991507519489231908906306126425653707692064509713697196466088420820879276084115897504187701871662125817571638802596519940014766556130804398287698739581957530500197345760247877904715954057251109676530917036218600749247105652698332646652419302372718926723087377742641494083624924184757367330888820048822323961872610929229561028872610935541816379275762161194233439250685621939875080441877945509724400999163253849778373090504043778486489307527661814829122928081548125426815516913905063866419603655512982517079097007263854960769830502479781957668492873492384402199804731330926584013227609512436591249732531765486886336172514345740587831909251296183018210711804173048148177291042428396042346712636249083741616334739947213649724407075834081271804491749745699867663248532966274146398693744794973985557451437080991086852682871320785936915821470784778965036176912051084265598003102061239849349977014692331264236567784550797131034100834968075828268233106050525436116328579523180301523049223073663954974808030769253563491088776267804884831184115232483281512341656955181578196013759466577888784060839081735349420323486368351723646143591213994387299161466744150357387154179780536119643512731000988236706869019134066708355805413940907222824125661390702031643272596139578871888828651708791955580757265283928044814572442005969977554361697998411944909071555607857323212780573918290014041789809466752800897558067063371351758279163942179942701400403158878108160710139810345195425884576427555762155504804618425799986755236547519775368262373569994616804005193967014710928191651513407877967575569630793202848744552030292521227699625840117252388632827167504901596236784136963561179138103556033312757033957626749611796622630065095859922355690180592777799758273156307354512523322960885194684754088956651379576557032437380688831816882316889054002636891310145325485574661488918967457693516770949688719616186265670567997447919497997143369108912272132558728548476952354312449849414164746027171205514101006761211955939933746718159209894710120966953273730718701041440926128331793327950042053308754123275744705055020472360720947384094868083038535177317323802821134362224761079727636319706622507341299725029532127300040079904800679478801266646195675295938751525079350306070935771469977562565526104423975233614264078276262921676295760560932902112068223687326127015763668411952842833552683238679734123990750178530187575886126177062931139483968171081980092276473582929521586043338450629445831928755091043595221029392318749057388562621975426690750707273189298248709024657588093259839015084192814774109529454257721321201698468919428530937019453016636259824752900273397853365582126380949046627401579416793768674860492063521787150914881549753683098866549310310603715427770874640947673601187770365138016527572856797218359720495993567254761442850461927613728157040493386320545704165055314141100216485762503285258269414754875176950156674162909395221619588018033577460021387905796427679541304550811532946510028135575209362059821129754021126803835354565869501751179487525383973566249470483563739684268676331696314864362422712321393738835426304075087262087581803595227921103862866234858611074562013598815288910037713148030520459939689540195707000465978195715333499896808229535413520055892845104948784193274505195486284823386187677846536829760366920804511601312368072848747901485452962856250145428977611954061242175433427353099609464202092469182379711161696343918767320571448429938484334706521223401689272714649179945785129435770906453043501526915101035544869065368762174006142603303786227324623249786343063110420308472914009888230693803980286624105013555139624126523626190626159993248519829391969538691995243208471157419191765212375649423747134218996325225270117321630265778835597528837569008446232379362684608337511072233986065962908552551688785531833417546067898494450663121321784382210232708458439250917949519751736517252743833092608063942284180540956266130175608993391235932285719045463215399396713732157151042081275205603680956778276040705071896771343292192880546192298935225489874464821287719907543769453062742590653364060942343110154955207076334835210854559690193247516005150840806163453913429683986935393365561388295232417519488373058458495202687645087127481542757819843767173300168038881127508678768149282363050980187631827982343708602821679079794092874992633967641863590662108341531217648286146991081483390140221672822701577984908760530325816220348296221119400000148528062581679578758904146777645359586749597153057693056990724804227597914831784129404735377078716438150275924889630790910186983554272550591636919330520984246132799877679670134779420533677835337288899647224913523701971662386353055491290225242785745462504822363060337393847195213531926143721505219662413922837812140917902154280047097003205990300325167622818764372238602974468980630745569616565308858360862244920660427294287314969073888898649458305848408065283181927701477436477579868362617260392247402394443354014843746442500263598289051157322008958797977526579138609721877283256808895995588172859133044578234548420332210847473894801541979743842578877602158716668105027698612484600783040867408807630090540467442364100799250971165714369289656964690907918395771889851284065826259050771541988589390927650902060271672975356650381198572326338864658151262703949904600951384014198172965699019678287391857019043247983257458239736880435786682981782189828478320139007939268003806208531572641276187183619634860583634627155275269037092175241350412576122400917254788956006618979416574406014232828839358261408909834788371649170512811080258462929534773410671780684987966010101471128314470873073702601653548842659717890304515008081279555538181568650150862092891107153490785988809096839479485093019025105729531206324726389388971119675668173898179855304315233954638043234360150704243028036266689000771197397688194051678830523128193986913017228858787611981692817241685522891827126788975640192533264625698544477074352332700107088108096268773870388155785508200917800563173021387549358723119510261809420482182356259456820168299984925168563331827357644763637099773937779775989139884320166971022466647489737361646003226479513898605315489559217924155576006538148511336848160831902818199779277464216534704583096630041359070926180760194122696747079422866518205255069645999561727653943733730656765024563456732303215503045671185369548013926557672303455899949664994255430115746245770057954240683689514661344893689957192324667942143119220988677536444849289716293267600311133088686352016085823273852660814442860806810733753992956322570899252732927438668801383375466076527363588738260262131707221157398928284435448002731903103170378493741254270631304008457594321437159288313384987171234540537644374542639690758088982510219305632538735664278133041176662478040939330751409327888019584936723512382264407162234370783535518788139600735718036452258349682521652549811733650424652892184687401929494953339274845229243525065043950952605740095001961559727717385420268001686585352195965170383151669239257322748472663487225948716903034222220655865382769722080363401697079176934164749486964475869583884494308858296323206076522149106075498266554228506491784996485852765701030589310835693390119637311947120315332575718316189913969695972377204029235718002926046478433685844846934741252302194085773244859248945150837973890630080712335911314974509505648524462270287791977521619126965953470495047066112393525512201977093962123266799996367882002959001811147602492490694707639100987866586459772654690111146142902049245932656559675347641824968031693890019935518528475388991002285662642014346028113095943617983140567121435953386021480761849487586427036057541527809860941811654079734885831489458196134511251020317975949478958504482039892829743695136512584485871640369315377787432929330856934168075691148285397588848103780994899422222421182764493243315497720562462109437007748648722998042635504461201052676267387495873847952666688307016327226476990252763006461867373389735779078851893024345731773072800306103689308483849848847911427110010068863996262398928514773844118367767311802726448941319661369295318199189662683146317557891291700275293443364617627446390838174755917694344762994976694022301933829010271433127246674292903858095301818996706603005382169903004376144822075106286125995566054887345511840230759511483020825258818484463993466474391624885268275589394360114161700464994840070800286240669996140628050281467008337901665215833545924278591791126565577382063494372952549290247098988620334238396621182462353605187472474700350226922275944076366817829495302497767989968665389166254288482237420132730817005767091230459976832507512049210898843620368268180082403983192031736595739133746260219261119907115015587808516430670343368100944375045318909618858486722372994949476413354885272245391028450651706015643732489736970820397951275237767777560812969225722803645535566370979547842607005799454901232266477515475146063027751447956509506861323175669705052658443383947903564306390586804613821086286886696376102269116418251090317277277458229627073127411978581674862051608798244889665286629700806074895228344469891732029141239495119329945387556787344060306395280871691088460332963149929332882367426571647323054307667241080979766352908728621472828216873048619873482585008225432837101428293638180877487357646140559380782214059567433442060782186824776871533288591065757410799558492972204117864159666619690448633812388399714972950128268029946203184869945151610125982762261168259162021101911808874690304184642735616529169427096173738858682736406683622773447977388574108688497938454797998615170658171596984093674452275762159440162240692395427626569311908731111487301467101818545299427042426629444666929371050867987529793909355041409084052945894272729186619942037255705441418966699890529021378264194586462820367881858427917759325231222850979814297104393357952306047283101204834864083757631585535581051508230070278775515563817822701575271597059612969095604857501528878707094572992565265591196357675817747812431074856604370753803102416532577577052222251086294223737685526643020157776532860340021344848212570988714470377403900836451669117356789582182661173453837641851161522467038704362648564324230332897558441470979845532604452619198956682654946810250609539814447890431777070662178781697482020395698075985650634414440150634042190776568073030571567114747126753936395320026873507336076351652435402972741108326165975037569401686751373359748074019129723895674999027998025173745886431808131297614888962371377877371756630561297776759925872732378210774490939977253323249487609775693015960746736175684085470720041664561734159320985276269520564198070992144186197604150908260451815504836624980716310430178462462672413939688926159888945834746975094694468493472784605027841900998947023623244498962327026183063795540377284293344475429962544661249123907660393543462861044031160625519113192388580017565570271673041614026866243540846839386475354083391050751857743372402920307082626940953084917508134864486345189357191918465247850527871674064153241051068315049258616373340268659623179169480599666778688096983683131637712096501154774592091176073400999307207314859135020885875195179429803366403811639032767603746223250230680936660593449454305717965403422236316589336766777965241466816647558858835219521693441529653958259443476319729905193163807721312661180712127285255100337038680783378478849320759453734199483879835947595878971986310032825605226337798369447783329449130222247741955443222496440988123265737998636710155552625432583440235297566754388214419677428935002611798387752580476599465691199044744408592896390076430667563870501688077321949221739264243564725648056876499799324833379109812220242719518581914024019551655225731253992264762655463257340931792758723040451585634351053535907739253243282762443723794574161545469479523782251810593019452527248005346829891841647291533749545711917479074571844567394877402677222985410808270534910509290025945197602636279310926242423735960806883441973757213896827717957595396171365490348764167889945177789690327409619102737541429036101814443076766111199088820707012904775801010607265226308427763370481556124511026787587176369161621181501017872187166824609637125462552765442308706460736776840414860716650194459978116301218584643429988434332316564761006967741383569118765920266527736224599127537574178164221720597530907226049255772569839052731211784292294083429647463623482685334261321320011392021259656331620137696390589064320680745586331759719698671392115859661538990536483527160355157242691213729582524404511517557108260881790280604096516487176765706226150031985218023500484606645732082482629622280753961989271800272370518701067372491198394314363854237444685457702369605368995496385768612863827192609652653124438961766539836742469216592421411807957515068828861744405647099835804098702817884731963834810922028581977681842746058613608724127637171276830020661307259774820276488971145840098581996942918912312793000952961355911852496191834970092729030200385638950403239387741608798934563704825098016079564506184957572388669918739439583424179049012260434078265391506043623125768174828154138757197899729564499699485401659280977125304071921621049728241151647585949455678479669996269966295588155338782632576279295225159751377224077981057223321013193090083076292387150920170285262867435659690394842553801776129606118646866750713536556163829388737252143828139229247257571630423750546430702022885112146399397465296275388360299608238424118128433952880495427017812198372796429350787974699461904628021559613985078208042185102936593638636588800742820148470886650225080419692514512700951963168904889252294291158489194932392112537434142341899945763230983211248673005779888041632245109202031489216188535611043627013679021071844823251634947281938582860855800438451175494667563656534090349251444187880606770610238171448611277546082727342160581172111360183535859218757217945988540678775850568714546772800447812184621734933775066020893317562721420036076594504347643917388554834935590625317575880673439712119978435514397849502113812252950816708034395367119923304453114763580248910708251608297322180331246608920032384295560653836518527963705789440080008953719698157074737644932415191757268141021600624630088654094505889328914129003282940249051247493549921463454567667535990007658308980396894555794203271554432441987601978672071783295005915850268370371859524813369214970232018685760560628062661190246692404827974428133189179430048251572962621683167903765333116264986964438597774275998096612580269037688763528614172820847417507663685655009440892904938105333744213136867759947319083472824006464532628817531109646051682229402354956636312685061135094439326533701555173737037494956351713723611595780517676917760066523996339592101585451564939754234749585785009812955488245418367623430617426497782642955835093727531676478256523064882686246829431756981200133555257130296457544847762272739781518477323669882039224317140218380503446978162650644305781772336471257968205076466113788241626700117626513230481376538709810290296951680319339307050763341196876775123161647759376298589358305886355437608191285433111775674527576770167612832191629325887115057891170860683389650339757798351916371693100670481045637608373360167131301747386448094513440368048262841417586779675587294033703370274265410688363376214107547672841807341312587394567902718319065955039822367268641674396160361406811176009827822447310570058149055791358814916510875661414312987275812779852090583123734434459178585077566337478650778152106844164913427140456900620019587334372993177567039290080230688423552321156791501821471489965475975097563688036034040291936646636140440632746158321746818610355065199241706120980495846640951527581487508051809309857402225967393660385226002967461690207991722116946590072803417428935260178933169744030821971242039292347026849362897406115244474027128294480948991523697366924551268691363106261852506742298187371620683123745122046084984343968986876220176015851310299362251194449813191352875484413983615530728889398113857265604821235005342683287784035123735705472846426559613595434852202391043235892378073902152741854341126792632991046670182536712557464452747898005004486179460265944018374025763685212618198451534302169272612838458704309343232685914254586682941327673051098674854413182075311119583459559699961334419979282596414708823870597862186077046367013393747416822735049012081028368929339642338606007815992032638731749982220992414731686263069763299380879146724911497493918151166214616617197649653422409317382872290316748011694400900389789426018124491937788442347676869366965613461042901826541511191478544423426387694123323222202469261417204394317679263128415105945719302993881399603407700451307238254408249709591180768831587185547222907728820357710970593951864840951958665616871352805238395471213810194617602038940096870571385916132415242854972691191117529536343845586483464806434088722893201444750945199521782785475427957883037224357681766542951348891237421247294008903780223284761903016577948733874237259276725243831520318652992695917804665285752535419834643955255726686263646109249454016455518247138932246158451524866881463179282296016896052448835232841686416631939230233282327788400585110274015017004254773412366023425198510116315854987379418685493418516211173803250006017202386318267502464754503461569638016512912269749206117601139021031123299777639314583616431353865594873489087191399246632481873769845802628700139617650655685415201930125791775062103654483700313236057234759581130034494509073990251767464346055721840063948784119248507446746820278199517420303306203945140090622047580841683456982474894099385029528278008894949411532866211067460288420155561941611490401263214601698602959291019761222004976493150641162564932082598564917972183467226721826626385309420838410678297842059878884554897745485196321615398586870300139290489331843937449686775462631502631530818165403506448681553472238368034488668436245346565078326250342698209207779365065832670386825368404366835052644209359657303859721078153075523266490924568699346541382671773028703790126093264063499271371033913559499535162971515277573581089431578191413109592175467303785942555968450584025053155065190846012422059025725096813708726209801896204340810509981443657395392226355965907841746164296986418764420752772799466736365329806287854590556199887395694047799875581215285955756448720982014046408294583778814809756093048604048140822954004307135018565926963321975186980562743793409346980384075676924375406654020633896265800052178819942717679463005413970892304729616210414897338465781902005464552936466317944939533110402983768040425118270239681810092281856200372869857333687365323723655731130071746189416032409125966836076759972386281617045616603631730971268896004493717460640533457651599839817636159919826442387686092805996557549191720143575748911937294490792818384336208828931021978653743274203990034869961445225959297555229305403035334250097987925527901238216207532467170999104834345139935038590660361084589397607172609158792001906445777091043565060642374224167340482914983487532685513773715504449799070443209168307837674810035989645191185289834198265191177769672959237924222996623918512730888059599912515521665549086486385053171178995814255171646119627425162304308925490504528702600428137882399053468254049713555133851775568450610341248921880037018240384268309522524744510340563815057547532946510836414021166712215484322117984936744270943309162106795313240111114851903689576218077117156639825078111981635247563947670476850613650460373719873221571291048034953407010987597269037867761706354214437499469025275328260331692110629175163279601704002787605656629634387352082294519478753874215356242102119894255163272174451691438625401103101539028122880130732020389282419868197449216239353952983234863359438481589613338502873016953738398999888514163689834187439390252636191147240635298491182795912677922239325601252600233217808081825060281913542049080420944918853198169698137494474565410830488239280402525793955020897207232597463770049274993462432451342553834127095854126325645560868256632161713909480180841556447762816374466782799994382491998344404075085061409849916356562590075845495726542603316212745845311617232558875342117135384992843824986632762616311040954910061559216039125026650622870112469666295029880197903333562469631465127076524307640320482854991226755448268092097150375674059983110375301336980599949481654474366974702365290683864204957047528626187383145988228474015899631563757477161154059746521233308078783324203842715085771945348862268363196792815649325906277355661177462602705782215054386698103528712845224217606462322171709482404625247449186180606870089844777626289114487639544485655469818931119515051640960308805301193545752017277671945076882238818880596414054973935588853898979590596361703449772147800226259235078625635980926424184839724818213858980026931638926366610793458008766037877937964134588913736476744173609459497259272989157870042611844967856949104851640268538603111254265656742421207564747547102660926600074434885948147713888226924305612184927173376027987902344696049831217529423588954894080187323752353693762861313515663536774264081144937384134979593952190423331577610815187612454301772224327758432913558408937245629791846693505551909692742311566890237262538443409542170806324893880159766976520725349751873015763213390299839630015234214817470501005535849425102529513076450410375248814625851130448024167800496552525635625281706478750924796012076538703145823229017477074490732321421712452068387015470056966766908652259850829806301333093257723622270278486127677867587830486966454015174539270029331838500434051259957389972030128081266036057279694498447521725886317771817306782033028226909093082256140610543625256844112510732535693322387797401962961083970844726439990832886523537200829871795925313599378220483862999634870199075687143090296314981798704978652250795410283610014989835319744508347320128076965144855118019745286825806450223027427428761159676323398267306178062367483205497480274899399851839762556191175264527844397267103935777394216293339969315143043575606615443122697368118528234919046556079049042498336923349045488757130108706930830686807624058829160033755581594827892264253440730703301568810427477827790074339318638866434706282046991579690725739062542719066757841343789470873081287337906040782017184692585029922437430231993307821885645514815103104123041987774618828813087027027726679451375779106717525141336494218560173253264193149903875424629964158735768866546487124902696396344317511663483236105676129012889509012801762236824812268174342841786096667059706121956003809557913350557098433537648722626444444431773183934805938769733046663447571681903603760723064977169293969677652389397661025952249568218869406691632416382398898212541757422903736565041374766084316438040524651751259897477526407348862390007891602847327497491288625930904980420256265991213294460124275893670912613896180822396473647705508966760122796333538233433381606723267319208650866485086664446716579588877142216544117489880283192450666133966479198769029661286368131950415937852260023273264582922826731371416267083976135251069539913270147028131536605945750880740286453363403145408030227274552065887148481151421786159987967083018399492070814853780489575462317301124651665213251539296888445347210999151254681080296352462869874361268918242127772218337830679891908743888252699227768070942000011066026720532601708682584934576938171313126249461634378059072127228810108545166562362704376000352042022479164490069275691000545411327114419414117773680794060846259368922711913846052108864497829945080591701865210946435648729189923371888538197550153559131107046740452397752019609248616235954270862781136979742896997249357475247840533146369427178463458361025902657637791810348311094899699835106803861632814615982268378278845964881872018681158780514305772726520445730337146976054171959124354440849199090881233400702770089997015297023738770376405448067162812185627643924828357111679077473404880689601681932019868464757793680196636109562132231867348159733694960098403944999402303120436208452811110887402576591183725821554128820883102264269368279628905694522706424177293957579852706756713610187921934598008472125955737609436793782212788926409270908447811331916259507035002174539388889954032130321638244765020304837146054786412879645158797502380874032990988305789763519163765232732032077358240044947225885780849762385860788449618933729181379228533090732363310608494055000998174451810939568150872380061003474537909894993725577586108244647842356625672866190623421061213697561500601071490326221758530454979655694488736162317934402257927554284761253203574417094169685527568559273343022451816888037265191230681262481945311322872289228610666360802751984502128461477219929554120776207170800156311533887162254521347061416070478687350253428950609754230669795842985309241235398298604418238915939369775969215613669844005325897766958647524753497076520586889935444461709217792916363187053242200615528696791881817463306844364769262202877607855230353625845039437324610910622390392774772424534622574204055872162425631055021492321015997463389190981329159313212393529535070893159329666327706198987824023685103792736535350339028689732053566072148685598083348086848671492147094501078479992423367811122141273400863790105131993446198416968162919477751604196984267031083209177922607425807801236781230230034051335330662493260170801195005315279204594336638007166263276316186602060789736898846215862890384372631742122481873096574241449986822057253584783104090919983707098122733965114298748790931298047162742727141997598528491125375298166258100279511654699419322933011494611511826577578866093415644477208251250729741525488287745846299621451230772134726219538152451610661804092950355111614542491582120274431580768287357810682060772439619158460058331584118797429732903108565218583453715970296687269669025603495472256399857952187620636203136980888013128419783283403319022311401418158908692232106737882383975485120529828224507250628673889472750197724249886161792660628835365675949373851260807001103670071293109006327867221788194723090012574166739565807494038543092333245309626702871065151406512694448881587999831335149835935397646776692758190704486877880459465167632348233707352036007030149455584745966367552368470757367991588807538783128513833072158781384167821570501671687376049651345865469121910219252085930125149198497767542607723302761105111881309167755966207237155043759863453523920876922005564392002384952051915809156086431177010194208567801987325812199567562512746571552471028154651746418380252686123510439442278232976579213697071438759805713645278097700432804002980549592145660396469222716107198848901808311664333410358605513139160457028528698096384818802676697836770167789392842970469148841289486410798051923854699925215558895956029190888283852634837991464277911100428329380495885138940787118782691242935789159022799689556794438489171032342294044666035840848650197913877642110548364440031976090001080951797358843215704432438387593846204636063345531352727225736655038952517813102680821827400282771997227256568176511373742555826309500735869273156689637072004682676994905083382063850427363640010764765162443126091736708511489739244473685733268254152221635368333698022864589125662023302239065377862311250546223857661606227472819074320627148465065871754254347047382327875951315748182892833494365342848072450757969666361727804799991127922607459034721625168699954762767674880457697837346741617346604593735001599958835200358526475877320651968492262155376811749051932985524431856400930545512889546588381184396587732524101600792408242627089185354032338391529509432118900551826479532975049269130679092562551035541408280721992956872008621729869611921539664601630262904924556021485485786923953792175368062255509914615567387208460245413431586838155373920277877118353864026221281268146230866575771551059631917443957745650090427208136116373478634093417251710302625959485662803579747472828153155428080051006999421469504205835160045028693073573592138457809317256888969387132517265630601902665862409352398263263015452346032386312341087934530833576138941544721673116824144708727306670997058611086033952517923111866753193570437640951199515114076678275120849972246719498215931073041834231527318210954057539149114568384531736452800514991495186268067266145540550918463769295259358062889947019989067366775998937127561627487973759086521943576324542792546208483557974179747395040493804788254223601555869478927985298429912002874666886122410109965797408567476383319415046172274166236901083624104107119739080325049339652282559939642743574497090435471479676427384606813517505059301401314458067130257988386384920337678902844288212057904655433778668742967809144144812976916454891383375207581884294785739454322606970723951047780327332433844649519199530279551571610597154239070663252043519338363039843519375268737301840189539457923470579823174762593178012413243594914603559388294863370482436168912374307802973622076331384300844750443521757228296906528848797665301343941126075760002953446758613872497888502672659032188185044861676088502706036658125497014255398653631947127513643773949597882536130511633032904714912738740108926089147738291717057821518106006586556358910941017895321908417664916528154109613594148594382118504177690403945408621635332077190006691980001228984293258474009905473061727556502449613424314633776953934102105532495994451935190455145370602667628184916114450271303207662953383089735368893935233187159537491507363655721568542837528220880629378842131183482859966966408695653337744057919053260133442720270760789313853319461795339440257104983467190447641310367613209658127418812618990007744141515435680100703701177065815075526924037498418132509960139856208766679584848281393347602717964076067032666231292980653921089882268456628761796159545172435604431766109752361200819327369696131347898557670146842930154313679111122722145006448020695099221289962849746226722811022114139625606610609554451552275718228953233062317155146279170251017065751726854776210153676485199683737217989043950113145275153616548317946375512089268174710261794258173210774682483655180507799894264468145142915648949045174601793573429497154443680557595972817185162019804102043995194285860122470555874990595084526562838714093373456994970378190595457291238877281795123065547264904762673079802700956299435782938322914489050562945492345782575473649260930791265280717255688994834955822086725039785238516589731279838246910205029658622364064633742082868033653563283665104920989812750472984683789889021163374055579658727721441677794864872111308986699985102076955246133582043039285038041039771315375387554156594440427593837146676868317697880693256430029318728545430944524354096508915861866058838674477939368245536496136706546676381985369992162243127228630490840715440159477069436116511671294710351275463192007729441980402076567994514505710671604262128854166298950819896972785513193006060360193910848453301106973707405987910282355670465325084803938638554900728467723760977346952354608746612519484118942011009275643318751344969144710598681537481244661625179489034686067963698074268442090513643837329659374390480759097146742297918308174818765928323231978363496644003429462539425697951223524382887371013785278078586077493227656376772541501154380308875725586467913911897106900450718017411316248256375333258117155018683006791189339077005092556351017801649025927343051868572188722432438009792103962875008114439139784541984784925990090259024499971114855535201623967195514507699198133108954791358624325519964868201915962589315780129557763059505305355914168484993322236795267205296510044979493231130713205149022895166329486870200149779997628575718242650178131052816901266375373993035041399642768126280337638472719777930591452576612758064421215682822867879558051868730291452028210411366943389979724306993882932626748173262048242230703827532497319787590322156911114699929573121891000880864715950934334649408042063105148337044819251005699907720586124426620128178174782732791817537241810014679719896155070146375776512706803523334308527653611771588110107894204533506587141294550414384214497751512093841670677543736455142322093998360148672854575801311985995832583160409156993545437779698700038634955502212978426677104306803333324161679403303692467696237229279632794193488178152011724492988201496751654567725988018166005653464654556829438559944178615942082658641123268670124602697401528940744929682800467699396266371855419959020940163821323554693284224963101956277609092101709124902078581422803771407807350321161332008951243513282539194506492303418211014729364176970694818899902005727350019261034517859769554582588157577746004762178255242065078996812570286122299451228804547181090508566982389638042452352641620024652254073991569906650367143597180241062365183332841362935065192259867675590785172514496222566939748379441215374460057954421810727927035661126381075054594589065857020238335394462431807399786197960137532906944639605063051560828293779118175606926519492595458482826568751267613473844198742345369056744142689669674981061583151875525443597824534156877950527565838017024908322720607551135274311470241208227793652076571358585755124086834757994446650270212700732100213697941381147697421300271135868283055285056685909719970752875573822031458002370982892676803244517719167392634242727902329257238122997005572573066341450903157682502591846254536922480201597216796731564739981031980994684608455416862239968462328141113069733650609412622528861260683266724761224449705616568994108319796789337038666780647018053237534299626626216347738971993327549196805718244446278529120974515379497956193311538392211456825413023876404076677909370187655120779319852002563536955336201789748841557265150282175935195302016061336607073941000843748658583415341679035324169610151661411953206073216634554474832934317125385466269260228410410984667511904000173276396595299024909294653343276364072745394423358137248866173879345085194430353517603533810479533772602453505562315547366855529580214857065969043416621221477903203388059180406386155310055401662246970832655802502724767031169349581999565061753155207678430406977483089610611837236542661799634697835442273767768967512897754397940848039383994909300821616986743272339281918376406237320055329487885127565385637975375365891966527413889245991543034011080342399519699634225909612848067816116034976215938904091470406919909823908331802207752645522225268396261732872873274747436740887592989631863465327805468942036580907652776799636565284416242676030802756227761623445577681212110431025561946913962218249901046256800878808164451193874438208585611125056227130260557302766064090420889564627165906507933266421244482486989130049452584888136602788053936639736384390150755978560144496295849063777142841181918427640155686791790777259313863848794346645666567059258782005551888201809588670033553344375690590446854239740988339763489257065221419556254624124528543517992234178020685804034820908363656104573156041665997318820555877609005822412554182635729194631782712151471634937319365411642627136815500686576400624429244005321750882067892098638786801582276061779538325847772220571991515918264598157957483393732305593940771434024653285072152613034389729829777088915537641912164584852388516642356913187529042832566862745682812913672839605730016005148957095160184225755735907781071664302629041923065298790043526778569854898089919541104692971227271987896622089748789720632486100571908674454522230227803615601646861457007238215663159980561115150732406720060489630667605571512294316376527919698835835615250766664537636851714345210288598776792559960731613119511865774946226501924618601952919140775478502366490890508246700068449461379901081455577343274391393603632318950832613170831122695190975594108788773702642900291303853175821660869392611430147241421675655044742598338990327947853467919014309315880308603625038913995927962193336818813356271840877966271924746993453278638418045696263839463176684461603326301793393767684975859484067160383267972202731320787995787420545028276902855316801548377742122196356004116243467881004993645831927333047376331089537008820960527124756403513848339514146938139449343665137139498895598907756133255794958315508037890922175414505216900481537195659509301134482094984264396752615629861815218272985101914893472895508623488133465724385904006266405589038283425353948383496360129401731801497617703463733420070699716105713207915678327351523685148224328601259955221218277589730824169797843636100537605527135910106175877937551632316068878589792266715630139836116088128345625814591853284396728436849659063282166955625126227406974426885855772283281972199702704108295702416290700550064378294999290419504021347373491936683939989544040326663795330703541509512500804732433665517254909397062413728980808147191911704509335485452560430554669886751193996939926514018942863935861732590200109736125790841786020869182543396335849670967201033054145787324448883453022746275151602019067413392914885444018871211282660881657410800507109193606740425052237820612816863483015491057496181917507151697528949404267969253410267491682631032119391833590950411420857839033185971722708197681570001996524299188432710657123309565442320566175106823598022319142391766865477227980100426727363568179811925793830905075075683323675723744759559557953996456576911365544454263178023429589075109322862266826861746240018726166191045799090241514589828220679591158191092470892891265832232990947148977085203201722506818737362474639827259983628120849239004722303244850972938539367121628417741126633368627924970561035701624180779961505434161870755093588872244276150374713099698024688955283080938486657429423659084912024052712938980414358430223104170790257395633121370684851550778113341466979634635907383075779192813824086342728431970192612373873997413598290477872277143143909794375355011923681181024940756830128903064222671932739832765955652153348220234969133713594161429778025659198501786137576713316412346016755454373543590269947467917599875850237202063241304033515104655015965714551565263051558004025456806283134927334846244789644510704881636195201622209969717587826633101807323598981376411701189815336557360244448130769890435543989728219458573226420534313938379703353026499290771250953887031236933698124195152001030633040484199945447786762780317808120874957183377662225102156816733513580481220967002580549373922787816010509392710803621341759630199270709020251928041861603741737485172030489046948156159397185954148827889315205964500557520952714051190277509316704508165204452104759804583732252645543254010367073964192073886885580205197748482619032624587563274416528863082217629604632348677204356789400783539256428059309683033869475225079968946383397237950527964385876006804308460717221114098962532035336486426461129390487170506905112077573670345873035799773654002341677625809116222304201232793092005555277595518428827945046147370141088275951392287271452458964384541451155891937583806055648006083076440236199268326296144233445871402986486708155063533895295554792752903357984089357777294256620601531212126700764434264060415995866329216869686060296915269074290374297740918398495862522377361547125259242031162019330053160106045575598779489305909487006884381404962743474365584329695943899325691401251933298848111784136130156072718372731174914542493796813386912176560936913216590352476350593458069798423222511267763398340552218600433761305983576687905517135667148464614049439377407600289046949919159483191755769555862614088876121412655753254849596544697276068246551430085552120901991230313959454073688934510723155316492145708389275116574639199725324526381758204758824189587254999754578618451296417579973480485103222313670446325007165893555593557387370553347974519615893321765867102242224819231885137961552792062965421307760657223956684419297211845201619285819824192614073266963764629822984886579069884692113330988701788096344970636832862903332705663584959143819327384846638607545154195976180957550813454807388205110896750156401300101038627818097779056263061938434176696760774392315983134759873383985625100923484989068988991172962830768928275748915583394716392022346761313358000270531606602633819868622041907760705618814804949484734165516648191092669993640177714799066665547613585493647133419599092211375060162695559095403070591487047283663453799339603778575063086581928868491285207416629023088448039577483208473464565504121951757674455880372156990764922043068618216975835474791695514274901466574265209148873446218642318002549570305212444729911777885406357662871717024828167063495024909810539422579311080780220792895007947131773430321157452578366968810070837524361776689935746094077415223455574334530871453222701425571003673695528058321045954907900902499144876822546260248983886875914658362630060804203278314580810569347992921624917710928826251939506135796592370359200011402284895360169678408432277486949151283822764653925690974991423559950164065798245913641069577060907353143199987583560222037826236469636603110085056915083707842302118536407506944379023004503803232173196240894371318521157505998742394356385402170122806518128568732207010694055886681344866053154146015176990184323421464846141717308742181073729092195274490328204959678055724604729206831161000541153992561709639527854879797926462958597706357118506956010213017647751860245679910249002937080048561946485136779445610778774057145669128458440578974453758261545474280628337534565442670210025002366493354343600536111152378108435521058888049083078614678476160512505086975392012202075213547755847430271635449670989821435558168038704270209889796560316908717615859549468875740447053067234779160564175930451388826608127792802975886736159634826774915183886958171319976535569879607363418275712056172062750728843861966528502988865858963592629359424155545321071295190974731604043281142371545100957470574140798618700684511073524542082751656318158799553974674534560848999613771951316041112483035076082642906375068049599186365015108783006006809472917611534335764663025575901795201760272316502732462887779242418745147348793873848051320609554843560063964613531414850166377220287720902630105279505332634994309936490275814699043451920777286835352350369937483532925617684794322737883431814708477029534446579163581715437022294681579066598032502770972539340253444219959462282040745225723278308878283122739683960523077073061087433864284315859379764444503368849249440093578982165830356971113341087489596783019177829059721137547422738997957391810365420876441106093786488091033890541263711554812570635799870836640810616845943842720836451115321931278866319864213268250116881376792503247395873537580470591301681369216390649006084145885520463951886793390013306141255457862641209709824725828533026474545647926031378821216315410640448938974864058984730161275021776664524391220919342822697046012169259706432620931217699571978584828362278097694506088767826794162880937774935397006334678120182814744125875043825148670758404321718721477024289501930151927712383030430373087311288168885238561577077469579360310921305951766795132422077846984772753829794037510005909651563054745592474203520490480571214034004096459420634469083004529584241214526656192324159334789355940971339749483514930195668511900436671870919151223056848789931600122660066243312957876326431952602024388261875181353163292545932756148732189094038124134246085759320184879302416445194553347994752153624804623679286186749539438056751387232107149535850858818520518333194952158913976662383707367534290054155971511072326630903764377892014852206304016720840891308791480601798712081933346355457762050983916553611307625112486295425777010114580405169034328492407103700682148972152425927263616239014720378909372272679273434154340543803368870096464925242065284118841225235880893854559528810412974092668989637127413449037344661331697989288707293009008818191651905198160505840921948477304752159963312011968147419673380213512859921168867065065319881867774044012597834640520093155670512232911098615011978914202455222159800990616875510072481458042186033434550221770090697825827880347040465915741450972148259928177353242236983551970565191688389253389554963951987327132213179707897552430325304959168608186697112272968230565836601781824462366682041805495646956633866063885819912094417639712125140642217980332847786947735937878166535559167176498480251090320391174194287884975791958014576562804338926292309016438088962505907757262769897593535068314776492399376735857460447371004397110826453100622997791833684579485810395339640549099626895656549326750527173503495066635948579264931509662576946650395384644377579637487198452678057851790884890732457001743690574896933481465417630382410089630937010585499170381800389186644944298155564092915364965537156934374014099519192990668457284575757729616400698942977098446965333739442269138308625280934969948384654546859525403095593279334136791746727157395676810603365904268260124247485176940965424771777842628107640507966241016434268356215738748815507363488230459297523264774049208208245079381842465069679331897437755486565123542311702746440173125057190850157495485061441513450790695555523635192479936437989856903039589062316293780173594213644105932514930369816150128173364850512386391516255956322375069112950190971309143468608404718650844275343862236278030408628312136478671102806946146344573337457345376857250496412269528243120150778650201617154564716693661468639044261097595480372488721228280941415875670704151092263514541461746790814856337137353270108094114945481214364735462491820082226277148098437274068736735371113909575689567088933351119073479976238369240895019745003997600021476362565015137154998851703481220266148660685304191413342916723601292328058955718124259160067302493775207213897975391520922885203385576157179146242889277092777900828791467854206209641385609271760172305804965930339455846743940650762491996343167280693767225049365685292139276748409583057651606741180771343959469395537283965739397850928881539504725975537438056955574994187430553335721443377015358117242405239490070285723020202389910181275635003899467687976712082099255869674774750204995929824653055324484459483291207286481166282836338407748685443263265306646954651626832982474196129339577322688154849693541350782778527901207007593431728610987692280089527304994302421719619621038598314297221887028008230552171035936490352478606327773900744283199844150616833173766924766586941634581724668565743582673117020600710786772873782165233784403003930906181371948659771800090245650625800074153607135976680784785004404843650192393082990417730930263714010106836891807658303888429581036739063757016463856755321490383626828237369869884332980862673109272166524140723300482963775017948642383575558811439948064716387872617390438736787958955730066377762252567204021828045887100168266712689468354971946599242433422299497478330938844408484072420916860245155581858154913191323307473329158572692062774626621858654702931566625276370614611584636878757502692306574734466964422609838634878397317810136791872611135041084897325795908889815904117892177467685964111382905053629977543821932438494339822740607829201738097496510382799036289027029293516555951422696549907577991385814201653578934833104159108386316918944787145667772504935773479344204892501463903638838112492961705710386517259893299998317345452645022957533388177281834056906598247122585721622688305360629090175993640582579121402832670134877548075312657579937151361762691186521124921526313519217514060051462682753723509556952573042097355689227610381191397185518830307843052944078485040750201289849935484082322012381485644338947269120905801231251853481727843149199980978415283872261000829301470853607752683745626110338472749715843846293608465299611546861566770788433003408414849940100671341714283375678543465462698611871802032234508091158066457874154239780390975802805262538197278967251720204538217547800592866280861006531731721571731075316171587420789027440554847897260239141726894532573748573016266367922981004009355898812214303608692858829790034477498356145623689794571744868037581340303786660049943961086043925681211822457719071268741621307130164659690574052685442538710895197473246915188211261149755786213558044140673918168666059357390746639012066745424499539941073654643160482523162916778304202948350873429770841000424367533861275880805771395242006000789035037870278237589210417249892953340857477433667027572574496072258029875988541408432326627965877554419538981733728399658586335567550215127286236623504593266396502001335141966045808968507649092669354463843444684115180446294787748810582669358620540071326562334702493869003900079130488363953494533069379941559485770867573679528788944765614970226947112668275357719798131414492157157120004715735191492557988928152854744152381943187791046602147359678786946931723549535810688223349964062414893380056606448530808615711337630856783775103255604688748181183790911281320822787419779018719945678371836290804042651080582865982792361927403405993604160984712627998801962227622491907249155151582408524723171865454555069400292078042899921588572670231191006934449552567337567928080766152401422243282014000810737199833612060265354749632726910449912425098916431034447628440574864613163978884763440734727415823273776639968947013157938541313701005067516048243386969030374202266552044840784565907919531984206840041759496286303986621465663456227723802204595062405600226404040732908519763392729826057652653880513997014037704587692300071879117877697150177989925883930797844065479624610696371936919600785106608799117422238172819027048662500608244682006210475200985000206360365393229528355082413944237000106774451844923831993592791474341915201552033874515961725484382795251210150601574051803534756835066073375004805724266496985208867510578290416439716119429647788880524772095815181384934856553878906073060393135739639617759098515670271853450010703694817326437322600850768611664460851245611053291072842323804241952151810886526237980241388323956366952018726488288306150226044519289410702655740453315756496723862682872679187222631666691789833265658330800057119650100402142152472130787269066185016817335344808681424933016171326201510357468142415672374755316886818961583758055494492128666643252545434733084432015441939332579878283218152984060913504904747010628825658776746640552949382649504978501398926714328329214949518031416793496992325971500657282468684663636420192745858994516364335568943408300159278580444519633809698656961744380438249503709827491609684027859863920923897742662301888424884472789841717839431329025717419879982904434419709032518056691916201267015207716540551871693087522228168156100708898343344337671094831150840168343358265950873006290775395201557691995408972714899054361889770113251075637540808173076160103409924511712679195479696352160666917209028445205320643726759465684190690276852315021014150085925669937048530569019759814105952233413788676737048104809109721107810775208968128599201504015806509958299454924748387987132871134516455469520331388393384220740519690581495047360498528187679538353971135588828419342469995270465519585542887274979615031310632571094119291041431246741707427366438740691861433021797578150376388692094690330774402598848134826077218391148553353594533063170924593618474811929932290217971096681112754945038592383911933957222354518835534619909645097040623610958731863742342682734527128160717234280284278979684696689415636597901962872987617113721783481910448381805450994037727374154602766252463639572464611673623160957058248507360730746576437852844386535140476602829465097819345311708203773489064917400973104020822478459416366486496031133337987061602794522661685378293379724282706106607797490250368109587971610285191889222399784873315165556238978197156209313981504490125990531068095898978827049393380051036562700071820286236132659871860859416642239006367700513723528342968588053591900262432567047201940570952861764270500796224917311909532989528619941005460422538669337481564787515665077887796895162725383800273776989644655263788333589454625006159459554241525901436821100841005425839699793312120476142769599037361896564463887892421118179162224447920310530211832129819127164084002332937333629871839996986995205337608366162323704282141750590115439315782162668757293568753038660909206547628746617464363251296934693893718087014735494103096230560882660976755593831424159931486205385660325933830654643049755336775434521153068766323252458525872997499733529716484261827542291387363247066809799069756103749572740882078151124295509999704088228242986817216529155651511468253978696000358511953903964516717850797323716697689937219400634826586201115828020981071979475043726820825492528515228224812588714019039623663997171515975499894013459688530379110072258213224487637530212476449059129743483074881154260764492721750678398299893259718506672767292010755624053331797615625136761801533159753046427207839700501527932247469393033383638988741317469589780189581168994610000646859548707639084603002286427334756466755517800546554431856413604921857737038646808094676322589198739401278561238651270187188400434011774899337362563543327165609777453418170416158162695680216723302635481257709139196637600702441473438324502199890326834420167751736379654815307064379138755432491115821282645301497020261989394548145917516071122441622495358746729523055162370066817052305624963663405293597471527418819980487183788432284360483402590230574516726419082801684256604863883106155689570201920894014268321783276704046423115041063517370374567191185863005429714097984145085640943801780995052294138356820723087184361828795023399835130984119045139127258299699031100108624588288241827337867864178591673031055194899062051727632013319966424382766113841100445563965044690551943132116598104112576406236152551585928217727261761255297972402763100628823540148240088589717587740768068361727300803383381724881886044215984317410587908759693301910004899350508235504073487859279767741538995811585119553426673727226060907376556208251748928014959581386194849559463031593519616809474295415515543091328115093757004164255445273551424283517236016647875425336750758610058662928600968158665978906291426004232659531876545523758599563974806125686841884988204549596723384145984530466502610981600578712957322640425909038097086487568989141119719437084080829661382975129996330500562099166778272548272532628391984580419496018997232899680471878833634672126250930677252413367940026608994956115628824028240580030462134169189843968447583831320504114267567818909348489182823727773548610666658521649445380285971356775981784620111674574062396486748659581207527409995801484889947148993943984402077059311124594872546481430006160939531322289331408452682490460221125830301373531812088562951549476176949921452549115723495388427012553722047004324878979774446147859132639278994869386645367385676373063227851184334865567053925819830973591081240477938276923017114978782422590921587699963339452171475841637164709439023381292298775078317964077903491421667316710810208311201858142115915354418648502226348502742054217767136296327492788415518535346878896944248731213337477969461540587395251547096509169489929394820676071112343678709730400806078526450258998144195634755973506648103750816032540797170108775835365353074578520032920749111644682994920636754612335982031290585111768606558361275412722639293550399246904060438787127000116481992623390267259811847925935235890319742917556157578793531244907364537144260749937622554767120236511033958862497626433569184541843498898956264048816003035660234838577921143979080048172814396518903487621869301931951564902900538492549025065058467844422806381174105854466226659979353921078929477423303054919064927347978846169712918191236227991781290530572936491887970286708893689020214813977642786636587565238600911011165042438524698534150132310747212774298641469843591477480904972239305652208973324338145979073770975821683413476897351507630410875184919494643628070351425421697989669990580355521211027314586178792842971667322627202520659385455870968488897127532350613032021463396154952770599599582721321759892772869893989419146531098884737294852393815482630173473893502657468016483208030632905346229296952693741064780109766460743974675776415018559434851165024573619701473466518861288275541264021117944129658672421217081084733269021037880199442260300995088561354140604317783449256968482237288116750030677035406974178420071950673534876306244250382693627295738152147532680301599455006120357432494972147352781485801667280696813893989814064854467457659124235767864487611465369798665799167353535346342520972154138765123995270621804884191314212705806568420526283365065527592534390914498215645573311069872422418778556767997587749338192379402556147501695049438236043598164164669755876568328714924851205152935559923645264419657523265971471612965983381235858019585263107339201737693835064164521255935417398986991700920798779718247705150602460295984093020831237796223169212230678481226873913216401764629922529669478309970063255911696763168375237409395952676345447556505990387569253745041668334462522414025092884768815554895329330433593852967469014091748609512468087219920533291180394530841435869752663167388053562908745392525092071982627678553971953718070375587386946410601894040328352002381700927586409043505515332020710183709851638919237761097654530466488147214963182708882888676501584440518487666266030597703335339975118685344137706066430103924011753543655380633582344443512000801329716068934975711443245506070399992639986960671228996377998082830913533560477432890784637905954774720850820344181421272415647234377146325112975781074725862945058764942823307321862676899635530216952690612113961808107673791600947218127550512077841165748452720638106854705115822727574893620569374122222669560317373529589901026784563587445094503322281276212057254610215679409779480352105897825716001336204784530689464630072050063150146649231265962556653722837936607760896538922328727200417508768762442934404540533932378930609169895152187821323440497812218405332212081203327600995768450991280216375066801669415876041569898778938716778273554091465479206772749987154605023679936004416994633255306223923520718704928835450631748679742279552611700672245048803015598585522735986393770819152254419352660081283930176590575031207067861407221110435602137394897374215833596970159404356778291513969485432507873116033487303056759495791445958117600934864339520905719992653460505907437701422356285933911210995060022997735725199750095936269231982117963156301677153746611217213063969641465463125133766236195760424535390383503823117438294875081417408970917473981806855507857567502689626281538568753269916570734815005517874178062721183552695203694008712869068680195256253472819828616490413003930087820319038352079359714111986021561643367078198746246448831560713430315189593332243942613184609734860690921142196887890429857971045823528576857253287786964768067364782165118308629228489275770813488428165121835069406708336549688149709192346982564391679696732067234468506659772777019728116867286696188386524886446832382601037476199436451773410411039047307063728467759674949698372869449885917254447679317064715405490601935673724665404599942006703504034728478342790411379151451432241198870838822525527290871296808956812283785952287280971690600320065472913349897836500127973035048467582760538895343084006884630915783449274932334829168582444239245744253863053374374261619784372952711787424783727570505252201766806811947977752397101367961475831963576604547725162445849820196210973095246495454532553614857506118777014754272512964184652225117017863561149953928396939110503730652052561324009086475381703245688581375174567633995920628133094566463944499988969344614576465857363550120653891661201963670897283448383445743042627310152315051610371246720184600036394675535612898320183449173724029136460014251260168701114241325743359005563287949240830682802497465900675938265170256651654467912198997937244171178860311294430051848253677997021210458828166274966949827476550015338810806034117182667090710113093052442207333176307503158307165329287577008220161240067015655468086102692105544467519010216072905873359594271484079368645549815405770376117816278679969011120330646979151066230817803430271466239232871916013319142088954485567180665006675275382838366623080951229424388303573689885746575322343388061503173807934435868912850916224597991674216406417620758467764739912611556030908437327600848913445020750905987606943288839483002839142202062840069106630590061587596839755311720801345777776263441922874384618880422272376664012074296099862126617125170584813151365104224084301329889306640864444303821051259362696761082298780301076673519339392901353709884503413311934650905115534998051622456139324971831234057673893594993525712683711873515746985690018130827959188869968707788878764472346251978789281218780856288733525127860105217178048031614555631098436220340768216053697526368147703991649090633105946199840459912143236197335317010786271806544199520223581575816519612888656382886359447710022371870051187376493802345538272895931837474818878094732988299240818998062999352141603630957611283525509719514917020216264581454989366723233255020488642712014741043937312595570988495203630393955683111179907600142733494499528412250257263038932607133794388730486661318170689780917514346045264097532757795298014376587205493580878664659832240498685397062755015260110862407700376579966674655443948799525034789290121408615985474757333076998375811647697692198152183031152067858680359115687051220748045486939008371614715497259306773434298303029841001258245871689372979344409996884710747197777942970663721386441547489160387259129277506177988406170477277202731711416004222161867767209045242089347759115185625484286083830325793554338553346179608811649129128294190296094643918049546451837365586936187630278644479955015141925631202105009287410709352946516622677524845828410183996862756196641132273230267892819796867960188129926974345521813373956843920046995120687554387420286786694555601693304023810705287202909493646007823688555707097381096850169638481932548662211481565890292639749516637704734077187658287934030813522351384586087247139271196690822813352083886101017324880276263434814168303500492491152076679748252036187820147051957893830452584905076677027500570530447902965693549812969324525384500189468723173328180466216601489233953102859546426666163556524794497832638199874729888082710426286568583476996279516176384924787016787087100696230746332091464221478750108020817114306500913234819251185076214954405248216182867623167626351674259827146208604702179158944864621542407855528644961723226983457161726461595993288436718573973066616379095502240538712691471531180642111682527500850720465843735471651155018459035939835302693037148121234844153349052507196031370749695871325172101584933427090367978803727834004664325264181142205268965777089690405970521715607481432818128485887025341199577738734726254016008169995189859855628937664862427591305566335540110105795826687982864455120744597681329185089582047505816895520729975329966421747764336483024168389981172561801144033650309775378328776009300265518549634585723720967838296170529467981948357852450046768083554629819895392563169542888072166494545319218906388930803170238409694453450155405301785222030675578780455554078163344916182662278772238273414349851830163119198137100320724967592797240326762042551728816553134527334639390956022838210281320761071620559791634703051282586078236737143789994125836775854031549363911828564530440929313181335106176566418236020629433882125416640664849746629679148282749998203124348115209109659082093487517120896020482316441625175791241617558209126028626812868638015773609091466126221227595693406284371024318947247281188907506375044364878958976577505393496977670599725681948436740923516420943333975590158329403360532497168117336987717929856626787366385753304573747960132197827624920881644635431714890361775451774997859708351881004090424542943957310522563903357797305566854956730700422425689868148415652426476044686838895974249012054055210661655699843473720397265350865834163649548227981167589736847617267518634182360177758091997232842422593325026605027073620636317401588179011630267334228868418642419616299462626830772357649526018991929377002618380929369999559365254603970252692460080675230296874842760455814520350704634123314979461369962458269391225471853185047239071139845150503022917280855210698343814577768834219150880711358254738300257623561191431096707848691598212933983624789070476572103041356635447161679271195598499996758024768272338006189058306799443718804060958669368252490038585196551801435500284036707293622759007334423982289727010391763033219464879880879007111933556654132843468361950992211474993165201113828442366655193072488130958807165222474999150072858015789801861067342512424941497876942152978701352931334211097941439774688603337362488699224877720770287163567186278742674620220315616328023092437374541329878624582123153702520779613364298287073107197070301624028914488530419186391323229831394779491948536928163935825900711668986113700861790388316068105613302945910991441975381324066985930257063764187367634489317715105468979494533370704322682097971929039822878174826589388156900837636497619130981360249862970448651923654066337586597852326795734453839436668939950240435384133847089176515702250769882900842049280572432545270314652614649379049434295063332304679019043730110501442937002249325203209655446549051830511794979460493727865944403271037087655198403577262873957832157185804361080513139488178415257841987516856945768273699808859669038236478178891108064620728783385568980829557653335318818036788878552213012906810618196714064859342468911798251778943958372258998119393341400147289648012386733797996935997748598558995167547326027579218083991508799111340833821066756846037565699316300084849819880385020040449597434594748288276260399875156184633992174055580664532959786469808305113132264636537354109430098697707188968340861600780721767566757910853278638673159562602110523128116906159085940476634512066337099946253122534707591743699368935627706426777608947559936835146151100423627519426155756374586744613559304049171471282099047307444649506874011947071655435262245180253010063149467010965384455029276680304694354876253436228923951221342468195991685804315747901569795573458665184907416229247226108921435476801319367832527578066984629216436086927770093047367071766633298360479656950893339972204286353566143633244636559544354243314008419619198165596512798982629933564030758943231761025569433255055252926066821115408432879451810362456656315859045659318030453374765612448952907377679820284103252696766040770810617555995928470086428143649582083391306749276375563794190988970457131656838909699630393337692619008603040227919920279072049853678646258130247812030201543901778185138573282173676384245817373955460505134666954958427957924418005644992333975815609953161564997462261524163860571337130913659252941277569952816636422838582505807534422584046046461166389090274186641224837514045535591603888450591133424443880750291601274339882971084855724653129194496123947584287388578800387335557235208967517285191744669631127454671208174449919792518777199366681016289532208474747756566049858319516731380302486665025781032328211140478830291845882912898319796073152466101979222876658359407269769752116134769646117294039663176155749836252970337215602673176398361983247826868772415502876160348594233927407228611922761870849886150740445458561883433747772485328281463963545918129863392869029455857437086419747959199881953913920243917644127442446593218866965900540093475648111974454678816947897015525039190058873887150768548600890310206742636455224173254539631386108748868512646596555961289393774266237433108189889444663035030033446473838820884597165034582940146523621923189445162234391448042782242523683344368305426392312007648730845603365049366621843819569074365824832991838526654437558626198546429920899466164993504238257278918806514013005444848977190569707536956181667007359327123180597833228915241560752373709568939555057662627681632887500231712188371492066034221236279547362982514855643315662151855171873390165754267358764423214654192096902863505864624371665401280938864300213713953315622539741985930618074779899656761592913836449586023971105376457066466766220674237123798894814168877929518625802343112219623115530152525906123164792994641328938021475313149092726880029403623776811777321081620620466281729317469116303188097061439857757666945571125956143645797207376127026736932900840950932487167095658394639537325954153499178840971404569353579066777576414395544777169882182615806407810945147395632803666538785373118621636809443375871243069242014645098870821963897092370569474231812255040084347008804908727382300558578381963984316179655764865280720487823359471455488451627261455581418367264612022943225560333109295061114524793265096496670380033046120061602820993560144652516910938641284980039089189801547041009512605420764277671337402922456738958462371297773214513339805500390397800718095711264282091614267045425590482517583779175605889577861351927955591772030134343527799777822427530940640802442025002379114756874806517053298075312939339072641720180682634718583290298842468019174681493101174204584071880366076224827725527767915179801146628552936687765320141454279873149212478116982816223906245277252567832992447431195501247565274131668842847406278204815921568234350661367815812428207280025821428122228057165240553963473437531748988706679420610757325889736412341214532013060124755396111539920844730002104926556271939624884425051919742649747901649948340372359677243502887331451122212949321199402128037619767636589370862774596070070788264625285184887897320430409655223320560884980595846320776854521734402280815116835186935674997281364985236820615701062257695937446056802080464894089321711796972279219142042624366302478465380811924302584798989948501408373995805326096804956082806602812813498287652701681349822216463088825217220098052009617565519153112048964580912277013760919288716896157175707094954688233564215334815448430228149404034785974393477424209689726027933286893394659812300966671642867287237467372745076042326829524382676529338794813639560914944829633331028937527068838513466570960835698440793511066553300871470524792849652930366237514155564415157074060364523656763682092812936253694673377762525830075244248909829771005618330334515910112505571933579471660904180659039505488333380881318971500053115821265669403106069719052383516446433466245544013873175136498905335319674667294716226078773346214401432896556400911606268810128879926944484653066043644420032100023199440951811878859215509644510481237192543873448038738044291999214372835690980330227759420590421292255255337799775427574742142764027012237923613966538979317212954217483551873417779887045149544644614879988170659042581757016215622657642753664364639217973190071921790109410850567167806280145778217609165740811788936876171168227123363493830264336440339043602815043440498954760866127806129801138402671039750687987853429255631717334974229386869641838991163473489506816947895753366132560919630979457651008782259083921350864315272774870544768256202579881594829070932578032518057265405485297008428835756778686156939765073027304939515991743310899999549517428948448379954133752546740655906722415670532279613181261176329053435406535964942305716447573434171112931119579846617446661202477074413254732729562739528647531981269068549635811738925203488826267512300933834964239700650130449856317987217914525409772978065427682071296729243310041162613764741234543276752880508571452577225665169624970454170075812766613665238778304645797206386572429304589086210222600450579426364186086010364307586375229407578604474403600258615833055399143860220362328081797077317184226421302846499730142992466606139583099663287088178316963295245329836577897228944711010815827437918211123300774390420522507727553113882063377626089832349721984457223152046662313541935775598282053011443802968066450451132278316597839193591113358884769432560464533962872006523436782280914597375372375453580184614231471783967739533842940132659305656288384293963068073790848073462599780276689371477907108625036735272284137161377222929743394889391693255586805262840217745934323050691744164793674847506165270320568826430471318661106538652348519785506270835330339337505500176557497340873264731172336132574254731598628042642403871288618717257707143327633608515441792581920081624127937353761018426668954673120506337157760792701153864129394374824027592776222149378259868021046370281280547956087559701677140819493305628473218832042383676764578614470133969256289160918075330859310458530266651389440748609176443644132437379447932783608296942125151540323088409300436749387789533013534606365729765160513314198806533368373528636604760881104315230221138392799873242926471111396255594263360741118932259325801489042727214870580904552325513288796734463871939508704701751543112734967639847098428647891945136675747690414928009609892357012996160554536248394792627054513603815429198830014224717170210113436991438470265765314501818676735123641472382142349228973094393059490167695853759427735939661499739241440145480847986010754230927348080163908686799930395344666194420556616385401385055303378322813107508901874614414810557914827347445372993982705907852034340134544047663110829451194866076968893812537925535452356970828792978004536452063271518622138780087913258543159876756861978128647743315842908132533916910516786260902900079647971381605918951788118398069485280070586776961434408317809932341382291815585723621915852645080705205288880415028538585878678519521779539779646366684008108821618755029891198915986752838267002037774173121449685550737928844339255076811414533906956369068651597320189611548643303501872934018940501533311832387339540794695689379214578437115277232132210765996210612757546178266137825039297033933133771194063368167384211998277128399034226918726458256267232241491900560706005572929608659728451162427929217693983156787544504400014040730286010245369314479195028410196571520780020723957949257855150147137126561403410755438813789316186851710862767876263915126870832123465833252691185691703493602735734737648655379495977510675736747878350374130348515219584084437595414866231495947171487013343149392677796518833896353023313987824783524555427569150606600598539757089645641416875386622488077614600468029352743621271466533929047964520915141454850384078869599024932960439700490120484278815300767622577753200583171570446087755541234005183206092998648654185099088770657174854789764387150280601977156243257974931066556388690765182380115441439038890710604985719935651775629128046076915624820703537898678646597348019862719398535326996250944666224707989501214754616538628584410107272749289927971854283825334201477578618398504560935259488975759353145879352584768002021188298017015926496177022060419415382412586498076425816565282141509885213325856078414766953400127564930858749681268409370796857228851748816891164436412411731048179009695720883634273003863362288308558669263344590952726597990858287344013653154153196318840838620193744125585610863605289731145685412260591404019967395644351130656486659656664932100184809582536048237781700255918568225811865851360018419877247901862614055688989566338813166867673909150499234388181574027493104511189645859219967901973134683732908114352285016340949081228788332129291594798734188225318982467978373278556434367463825899692959027497861696066318948492123870720552687538532301069804293446976091304709072611641433366015902410046120158922780710053453498029947371139985766668904709049706587145754858164634213133012548790218171773309235929235112655830561174097650965977931756569773540209079766991794800037953453406481711426832435158441184846747534314431685449444237425803409872224405424061158912752060901560852008167758414852040392388100658794980378618170486689287045011307535772052440763908917609504048633117097288303790106459524578363395966432925448003629173945219015362758040948503617513765426774392009463709881386429423299151390698773701325717088661376781949119778971929664477903878048707050490815815028700562829705683078796215761501007915139802442673301028923476851402226459785740529489659122891948639141572480894059289309518178929260061106417075381258422656965579558802850495770251735803709031954799636522149940353688605790821288689776172664035393951880023951158119856464655574509234830833436567652398284156857549532172009027420262609657523983866709186175245117443096315192668597586429276458333148378150600806617292188839046864177077670481930041506087414363099538359405928127321885711272242406013154863694827936720658263379279438921409878277485554888360330353454761541796889696381606160642920829153927577350042887762971945804526266208365052062453335391304006733924821456092969413509383179960744122614235199775639030529564115491279557647764239245120958128283047252147984510148385284836642474360578218020713224998772597260192704923593026968460831271140996572577543711408821256250714617560007727572255732492705248998222249857041524645326793730332051082184451377566541938285264845858344612639423717884697109938591881441880434164200646270512526202144128326248863091629908589401036873247986770092472742574288828001221254543658291023936979631350423034248044058112629316296629292520959642717261264869343096242551222463535763280264515541243907607147242062989068768385638217453303238909493671622630384697680867064601050458768767949382972736742466123863110779718544111548209745365944786344324936178029421772834349627228693546899359708986818191934274335901885075078322864291857960592060671679087430849699848433622830974128529286375917020139153608149346674074190594554956626264320969740208169756106843738211976070562697520883582395038319141364445282475872190649713758976307147211637013404888783456580241626425875463756076385152748369810764891345517429007937788369134091194170089075515761264047451633076448548862769015807861364166837853777887901690314522566442854862442579309038621551120271256749007445134643985599107062931556121863767168788717125798724112497052041827061917969010342462581471903162283658127849440024277708793371971057755763449046889349766107880369690597679695235115895238790486932507040168528977793002052349815841438374732760069207617660175099368300450993347713854591904114430224174832604364722113355333850212115915475474242913176685415342092501485301317918159085347538785925634310710616553978519018491529277420721157894702815933602058015566682780534292982541587758155783088168307191468241817952620101457914284393378275090933445473996521051283992224647773751095328688581604573166546992119864187662978251626390728317225440104106303095791294783319740236619624542614894005650381125011863007668190639561342527137411615110273008552648631502734006431208923644639382114726259921023131937625547009575585482519529327227724507683437093398437145257415674405320603548685111990001623596781535301834575446450466434976800649710607750641091133463725352876458056913079906603899608701897135147356336638139685691270093509090069402192222675857890694149276093064704589792873650495102037527518158847575870400181761127989053834328933347865995419945893658834523538317790926248981256084868768184112585671433532125538162337158949892577854492009644714135780808416555037196018661688198909318943513612849982482698042452488784086597250649397817693309487398701051019200726324107559618146550396230217658785288529345384761388713053306574113099964553125577446856559824960342563577114118297062147920006704959743098888366954877591823286437290308937737481810065145513077552348416642432760537607962954649690072598697242617740986616484804424469875756868998619086944795924095686237137264298023805998217889904678058140004082648624253202225650495353053299791989932891728470228745325448276212499000796274716093234064340429187356266317798957787460178045399783085636562810950331400110994426654016636491046736843064859661346715398083144368780293322033403329178852285003590085829212947013940525164605392085573030806287544186528736224143178028177881886828935522249887533903580234114331575522342441468432495818247673851553937530679161348244926909597370399024458120886425687183473063737476727220268658314297072012964762566105155635455513960971600406659697050190839503805763769309756399334297807018944425670193173841879570701228646144150176577343079082115466946317716449166685453625816844694768956541854596628988481413850851921581175365828601619721930000863121240828189507458271326099788304126286757693802849240244282517873167502035678452447293338309193343753463834650865260351616340987604446530697881228518472540547612959590364378687450791952754653938786023094041692285529638098947486368016520776942329058650836249531950647642148121110793829508830099240762661157332809803619223590489599835522660357403137652833268987191872681582288075594068193151132305523927479500103764319603123475307855036393273848311132118043703431277993181547777011708788742434984804114892664725074554293149679176407129066504725575019504760376116458561963816779840204440193908104157035785432053948298850787345804069504453694522401645649432921566770821823973288036441842068787199591539659443253969507547281414851577774676983656004403087207884568177818834682376614449185420344406212737781120310914422235834233355784696988930711004143481565670942969867834356296440856294817503640336094484379538545086969877685895784677440277086472173977329324947001744966842051803892363666201516183716195835104712157927548695980325237974623109269110513042066181142751148184787330428131226370547243023944424663338141013407707309648760740504866268723654525138142773203426344349289609927842815634370604153086630875643244109943613726842603433537675872655035917734330072974771939495750500218683859796434150909537410402878097677217063519898187412871361462375141182091778908928163967040995901014297326526353902708811946667071236033227717713734210270993059906326727178822442491319619222642946274339196876923614320901894881347582210843964848491049755750358782218714584123994718955819668056911457271932490487475469472742334358673507917332453323435384461021488841701887032914758895046489409051527257828330966493200288607877302198838010567034063693135478010959965742043450524979052190800844633934780261948033980035768732802688730888413463141005753122454150734811454400099969527294351306209350357002754717025790851480491537857014650081611765669963071747513111011145203563389127016988854909106371146144408002287087734012790716768909601534551095005337052921227730774843087682384104517042718742322407115086629364175591349775121259502683375484658609939203606870824683183997692941694056027338745304388028662916658850720991160456766211075074663209694807708059269051428904447290338588149452925132371273194403939876191453636872628193668887925738609707208386633228968609869860280467591634918606358778439590127831749232433527248846137868684256192231047668462871450217236027643535409834450899448441535420174441759988973812429396723886477394445851569526616830639272123757535534721169864217859795655920846203126705403363004735191130183908404203051983146548592399296195579229970289640845672065940974922138426353655499789492135237308567178344105128158133805128844616379421679820519811014927253842114496430757462981822574068231350323560999715167874062404795595072354774456275280417873740909615380467556511601557582072019749620999271554825001835304277437214259925254741011354353903297689296584144323107561744078972773599227467699951001123968992779132760112350590328226366013572004538079308966557935582913236363508712106384828419102278389358158543549521468113009410602158376395892130194533887747030017549517545530765323727366458709630999668775847333381617859592254861326412657556343448000293706003338815615963390898459954770613934630354547249644547688815645673317728155285155583108690038159926769212254077196343263193679830104264140171352965924599036893268130912092027009196341534363306412999885133379634410770288309724162342682451588132274293628506602929734915147479596048037751292666576898436340440008677048638106542387397762632176903051622093926980179333681717265051656180796976412096443354133329995915113478937865294072832127608788028982410372447004458482940413502893504535280381948218956775944048582400641175576404701673252486560455835002048278337814500996514450697255943976776604011773766551060182257740401876387228912051238736229198498715175952065003944412532964585747541270978796515194544307191282487243127085161142519546028819024170658189418532976766229197364370491909157879961238505664311405210895664647947345287178911474051292792512686469624350967222128947003107024587681983041768961702016054685745137158247523036541348675862193772050018369168561119734252612183981658193330011735187262743310688096601274630084239748445222542277053616189190823668338299748844451485403496150703347782803234704706221616798099519125788432586982219085801618476637890320049717732622301342249477313923306594326108600327678943904521178660174647164143122734144580118833014622997605046407774035504714971719768303893245292942492956215003029422981913153121164851052787799705278818594644425294186071075664174107451287110561344743584210731284728189993722695986498047739638146159396318076802493871897476547315969567468066047767859870882855818843597445777046136408750930311591848163309155339764809925972253478870663323131043284577718439163671942044982769386218026789501283233221469753532099292695301490868878776186317919352355521289234875925609450982920447379267473109109048479574090908344269146491609315084715478459931261234554540290927086856098867237530019408969629672946401605219546859539094865667584810894661655234998564281398466369927848749889943040234770322251797793321468406292807695048186863361443826806720389725629652820306241314705740052683798821995044594966607225822844131829435252802454063052597440116585925900814549404463184070491707995341631736791020037239145528436558109822101847545874724549704060405388851769515827240513504279298965509999668826907519791211835007966886873299713113188199691258210439754158619918200663901929321335165901962149204040986603108699662159946296857088152259330168794364464123082521145514703044803174238675595722729108490237162255323065587922510407895693225080130730695907200344179390102956557491050047199950710179901090971820945029830138839870433832195447798467426252894975073869449131009562599059501704459848084587966097311074409907580307768590912003609753914200272382739799241155500806262865118823326001765565734298132010961341789070835826968047407256754144308602721024837726115808808872527140969947638000254411328608285248457948032498129593264963650951597889483240815124023584135697000263071291400670095438770261644782517185651749939724838133144312720243152781113947296897265116690283254011013726899784497656309021705569833170561485618363818259998199057864365801484631504207032227426974804950579768704099091781771108061598101726288792953663265430707005754530904416998516636827561795533840806382581686313198803297748799978244082962426754646042861501196769883190221915602508046531060206516552403079096372589563880682313928700291055153596943740265324359910864209070746265049090870896661849469578175045540353195559184931154681003899365193133689553010059741542677138084574366962679938624754005656654066460837702336936353649059287191017636633314205215933626596654568289619238110799338731681527941427018972607516168613232841389584886003260061648206463119369491491688188218345978711764125807046537760417705157192065657885541772031626292767895297760345331171548123506253714938421964790868759237678065151670997343946681379032524580726515153115512133581291988106063653367533842432816665931728877579536059294649244949460581246228699628716942980216303209393325834796292028072782897764509290556865293370148911290823394942631961789999798861246460681580669000150191060000792602352439678239359368795621360822903209259120062406867601224696443590519261131872244588583932087229508232758197062305380767594499352586104363370570636027096481021894237420584693557918641721609240520775802336006930681916172291718106304831047408139970170923384367148407535594505054406591129843397100592941503779491111196506248719525759560869532570239797768412996818862618111576973557100325536157217272068508966478575376687651405644151315105951286038616887053873471553251965690465935743400702000682938158533371653288294499078400516463030675761347896950452387817624973568219294847215601200174985840354276405248109452162775804474793244738328680840615026663572548509251530913666690116893343543947026454682582069897397678618261445965576607839768163807573427710179459553371755570491747043598522443789097589165851721488004985194998148739101837301933589258885260510865206920771526909907600839238163937793575537435692359697158252081890015186681311635299704705566765930093898365009730391070552170000152580387899452409664558385236409066911712830108687446449582326563660212760052751933825200033784913114843594330903119237124222077054716998826897436130930287234979234301063889375914604159451611410320983917768535075207033530256777419697910625536026864242073989509286996720500509481692591217721251276930852440213524291331089174479753600748839518397720714138144617402246169242784135338604770545043163704301181051923952469124146791664994675650460306605312392007332014347000978252298896677108198853805605888306576915810126768299219122484814683815119006176000792369102313111547296589671073982268067793626000381337786833502489523146304726999436444657176114823154228604712649993510871447515380267050110972227577582923910953324135014076012727171417104673442520821669898682276972642031104481201782382185646684860839616053890348269073683944008120537722218232283182856364799491794402285180919123107909704261275590476670147384394217749611295241348192885661129588116792198563989471568432756303532406782330500649321767161373048352102745104094458162074088612400520434576307820173424618932268817386396172481623521923384903326524314687973219797675751361643160352198416699608785146942943739337402987158188397685686460169180176493769242091594869709099657530513242878636294982995619887643654621597350167883902028453393306863373141472054169226555924038833505308356410282678204217370974508542231436546520281410243744355363518871342029712940147713863736392333840570763596849061990068030695099111517233109088447186853850834437258510321483449703662215032969132086337778351103547616544939883318615732476252358532688383710025477734246584840760890776369268596135484479166720374726959253586131184292698817331801495825546240996218146697402297074751120831183556443872818504872253345481754603164866807837231750027378287095170032719733125476008711274566554943618101933111434894925444538847469636116002736942914462865071976807511258895750213924970049144481974365849924994149294269361791878299884391398298631705953394153903998546967947582130286983860837219000852976805547524484707961852392246408840912010660731813614845022076468930373394794110364668189716258129332289021785874541802755922131963733065130935533739948043544153511677344064579505254187221795127848861103054070230145336551571863444330394485074497089534316735660232686261029125524150951981313422628452685437252809840797012841229446160283710089089250015367001177170226169536453620691330044645125849046666082571910794158015375979707107388840611868675507533633463052390549925479331615157045330405456604922295059476912805447983199398113492412085094884297557907362673059208168118530576795628197157622216860337549655063983245624614332189962077533496094576292038870700955658887558200146120730487412602898486939054724864465629241393788549140047232650976263538607007131633336249775370017837828424751116713191203302853838047679574459206342745309564191134921512043515473525348678070380867487271348368412948048125968919233915486282895934332031062978845689072465469566253074870820666319488830030406392084626580421144308983824598240417563876088879266414021308325118518578963875565495108720024165527249694813592270454984971910285970653008274762699243497046371635235035245277474761905224025213781258300041016904871603998674452709408135123301004501038815837020870421483085132281346806081853699273043285010770459121037683310916400486873015654912356752848760113656108841417251115332986665756806602493344092335254916095291912217841507486873774340005984908835408153914986057753634624645247465364663501111817812931412175681398219961352314577125086890275509067350948762724752715551071536727279809349100922122005642242241468376316169565819957627152965643851317927622544547119836278211474525417987936854839932085334306563674302568008738292117578410296964334559723434870105444782310499277047691461602181078293130636962891831550740726288351371172840899704104938914153799282463404579924463941025934233045004504711573931539955320009823594357951174165513731103346288002025891831048292113050178830226957125623755618997794582294665157734878886460456451419365396583145068788037182575282856497285929060790971150547930289143683849386395733979866071493707407285532601406640824438461784287886377153943558722130036755244138894924307160540882245543788096233910158418109102332575100744734622098064508741668280737028392856630033695529107992840802998109514749013246737077823012581392754726265309913246050732064383140813457610240122204422172445848741663341437667186426184622941660498762810092740189107125832855322100320636891973641439734545986925567417669941649418387119539320925264616073492678508021651138191288918270583540144599895107174997829291392973036663329225041630563251579099428193597835033715421582120515903669420603671679957734789588395199113692634136892269951401458417520812483873337565129338903091104537211750203574485618471988470147548128858644131102630239364096359854413998865929847159462784359700699439618459313727347623936275624173888064662318104298574289129739529920910536727595793254211190842240650367743845758924665070041788522639065168209988477202499779391277700531219341750496970771480700026002115622241370716478794349553015820210319788387769595933322187068691014131674960473960271286120579021134566316421032152712392439563172924351338570129055963395932301489407625484829605949151360177574868651211614285864823689098954847168958619377194393283763088376714001991121085327265082198117564061705651435319467659214404705977358579253672907204403008276169036696899726252890765668508093282684136812685160252984205386330595525266620805878424610474210090993437467109938564105047619981166546974819110196293695719409023961975730651041956007737914501993656657225607309411105474785175375035719742682806287960490557857912063776633421423021323699872634472787341622395038379177326196099020992603669664709975400169557554054503793000889333986029317085243538171148498151957773110011619776237347961830936771584393363248849972056122607984691787758176347149877996872049086367874042828170815951815261213107753524104356349628903631713873263522774686598400360289146608125160859389855949406959134886336023507577712385032171119313739843609415842942383732654019075050180386204000969165645419520630183883100319169844941173707472962652659407035778819099549476651206597631399767396640339233565594492569739480924388135260505382830321671944342205814682385999552629635591002912182279457696670933306041447472976594003269529023998231552337657598013453127432688032977026559785132148203592528951328662495572475720070210259470100285163570772666449116920936259579430177700813380890993400247978274955444191946369331145816973173203926106605367988157831058180662503283945102766093195737851966656999338990539009249659130400713528498640460238156789943551228967021711883346214088610170153461287086327433480257616086104174192702613792739278401092155319466776955296930139377383582456106709842918095400001643267525339451289639174620735409673935579573234934516387704881507294964980249012761049906658508236752264417532070684885547199624794851639787483336048576196617883945940421513349872259490704791899880063969909429818021924601698780169619739968652739636812659452938269261067559981197514254478686699167674569959813103318814003879222441316321490773888895238462593749530998922793408686345943490211059134915102161173289481352201672143689470834724824073417661784845095449676102639717970272710808631479814854365785112902176661630327241562601764106203023462818317401963383748452369410691208360815319620511048928370292534521550267152850569463257951658960675783297139285912674256667517098811587932225505690466095802725222463966506994058797882398259188795935539341357839290467364252300947113055381820263460373096508462466100079785576219096780847581172311985360602676026668108444344847085311734833878605205217464158776739319640742432959005985142044992411988188592373594280321127377136116762009740334637733602822985931227935088083712301328753601636006310775854112156288812336947937010394443263405443662818984062326278432917089910071441163159349723511463613263129767564967086601145695800672195827406924092717857709959486331531028003812719994417157729165686105813825034029778053602910078703162538343326966900161175482077912954313484555846841686999674404682512104119022464490404227842920990759773190950824450717456391805524778863762853764433744492570249248512454503374613963400555731650314672399709282986061525412475223039988738390225112961061540392479562699516003947324787171931764432106462123528693473568659476317977240651911313911829352277814783420503383215912816729488819063473835369872515905213603715620150501960002580100786154002665418403634061729992235648501391113174701043172414801234720202809125296025336626433025892176832070305326753608923368919653991320305885960726384286647985201209887737232025793599571829853695483904919562143659860666981234707287257184941223908956652567497514711379946633210877981729496430460482793377500418749135338613733270586287400003679454347874197564562906025845725018924239216580111129496942477751037859366015684270946713967568511439381413757673648095274252925587706411768462565278989677380538689880592909073407863099921775869975569590774506978554952018827589306772680144959812519843929408467432110071255095680023385379261761018430213803806424564125459283064243111345902800642082303753125876396029800409066379589247964169014023150781395010367792674393610133859319249597121245974614727995969607659227293733621486439045192495268255520896618409216507935434015160502234079775324989493927801833551257896986520698828332432604530347625831827478774058388085082915973909537280262265102368166096640396240515808707985366956611754374403794324472497731604544570255488744193188359303873228979878204636184612633133541529887012378414383556737198476390017562566107928517700315726488216385444695486649095705585483279507861745714877122831022280254095348608041864384394432199185479587871790411678992607687037528091699679235835287460970881507947676893946908836370277258687623648638751579807788793984318556125349496503969672705856478965881213854950953406474484679670800085417473794399315907838627002843135285331942655100756184962565117608182618218100283100989292418982507066414624069197154968431713333971525246371217230502972428345188685945272816770593573978417068661796694399162698893276807986422211386388284325592817908777860857021543502613162735527148988969465897394524238786658800989418595992625100036963390442809311647624263219888148633245428777759416955505351462337758891637818655644319320699416482161575859730296181773470666781004359487883158216975137523071569658833077194881192340749147415086519364313520117864816508066719102184185151922333135455830262162495990736905750799522625075085753497178755340751834851048714451739177780569716441342965366970830871463136443257510208130127949013628243333639282981557919493836862280922693314029039774702611674346434290921836724759444019828955876200099239480495163605883128912952573620216836472971669945583351350895385308268416877818238580899859684270917238849901705193826683132658178279986613589055792340507968866383629379700330566756028252769419773846779058353435633571757494673224396982428955197921426230278981120065033124206811194306456809662186728693842057595615861883453745165762215785193966001809232559368635558360638068024946849554766700076139852964023013658112638007418325674255295924297290265930147345023500492394779134557056924645821770134745215120679507432447891104800700313308119805921815532316150284116764818837452111566104800083335769190068426973021182319200297382511621101395458478230499370419648826449918927990502550717188150214465968932884751666803286435975122963983935379466865306031024117015187700552061234008544816817510285252186115296122827189052723529565873771704909057479979301098336343151211311300150699406754560622158061135315291562521764471534635985586844081113809482313484087945181968034345842076247361016075565074889940999596250035098524154283981622323893706578121332387789310441802315230315065168912074349713962124127952186121364490822862753249189782647003714908003841088821195751172742732999866113363309138933512113781662999619449147698929583267538116167811660050763716089194438303132578588006611591920487613471095324723701725853962514476421682209923121766764328206105276130325695340514090068413936716985135697080441449489574253260181618459023814656196402597310690263184957417956347637286453528656610637712925429558250817341149876122926322479650377939659575027808050602463248924789318274283088899916217119732913796717370672001891968144877645562142415715088319995793102253113439479613841829528158851953393800654267942044945314066545248543546202637037022585644925710441594514621986796902130290084157999973420413853769806788271205723507526582439438860575068148941905813533771155213078582600133356081732955676864271926863743969191996452665276919766170402094161781524682329113795780189748163100041373791233198313654976716167390471960950156666100716113817234702732583056319530803821712634581868402037803036371355275339421765844179640958472315127747121740611943786089224554661917197869289285789630417798008775194128142107724403713440113732165240749006967745833036023969785472568358214850414797065238016178525745195341330196744024035057515117341431759643448520939183163938082658400129578001498570166127033588080691317160990375576348368901063352255940002967917070129119955030521098892711713913496784286287317035311302812527516119624140935124924818904046123502696391555357928477567142136147244510666122743975769237237604382463085472816230909774486496400522504897855433304042666577214574699449679384674469852272095518013322051925472450393899477326482803138246602662269620178699732354090353957084426143759316073481172465451032242333188355098556955652328663791395319574058871738699239016551034555539228661352409833085659754376638471452974681987257056020716984606862395269899789424456755476941633624701584403792450610277730055001069658239539294348287747691363753817893958442699368700473382233968232121269803195269917199479017788816703593693682695560532452539480698655221121526803390069842580213277954229965007764947573025770246796089347021253893081150940987062152857365267357612463065299848564394786109427518516103569268963197032726381900699776407259609586188069659063617499512725019127299962802524867702260615991600926379200266231043392586682244882473038390155694098500908095318847699792862755221610769287138670779418506606444630408024294600394503705463509772422917143775523549453038348290362936536532123949533197626373529733412096070574779725269456374329936903917362931158675328619398605039286600438061808312292512417238372070320700013672581290914659104967186769600035627008627653949929345468220735054306814184627078204957871209163669634384046976832545133451552505741807201886373653985456255485751819586711756339037748713493229881416025439461049625207132318035990203365165582641071239695926344204306718246503734169160444619506856818994087173051716484207604460640714959713153779629605213678150180338720765586222083799562150661188383136742847455292618363759406344706691282567925879003045441294491896619936997515866206087790389098015948133459627886746923122196275407721058957681213136237121689525546629751771494293758612579678360618348293672345018698515209682919046052277514669080365018293852758893919769252681046941321115020765735790642814263968987946160424486354899417625626273626733191984226025589576802701265216741833021770991754622210233447001423202905970007065950948097958884872362621315663916739421259357831250303464411073462949719639546744258671739552529667125513288669970702819577583332185099245551087875256330752822387052491449458606974602619090496420164317735703340981474081700291060994639585722344649247411850555302893674472476917982675049082343286589688220064290582213790757191538065478337722072521402053347122731789086788308925879974866555361031605202901488778315809356179537858470303246508539426671008642154728957387973785839375129181423891142137982118026583354009220611673119554070532848356675756024007715701216243572735233678783091856580225035450505294795837046448309511272783127210858382768608044611455214129311426422757316105649812136162732583064215485770229884673246942286779045209169791207615335365546912987006726243402792403360406753388452350615374279534465246859328211889017128410964053385571145682014274316928735354414405114544929959537154712431980855577731776377695669886653214247926960918560158728755362147383968457751184921947038659585293786901595032771633645289698708082736578738151643124725761881926845126717118051692034610758538047300370892867099155818724408094281086387689807078499263286177091325122366963931080250818257753988551934113960623336364393729133672727512867339643995322826718224187736399587852076082906189158113079746620734222479572314398854114471060398279910608983478426315927645532520922915091900126900458480431031808823195824297522297570191176623464148833841338233337907035828472701557688402033893584327178880489265157430941926967935461244469453036960924966994493391392550617571368763894790550166142759975160523475542235890740311671769261440937830800966096530118445638701966410252565270418088213458100946873225887586588340886486470307780685906992136348673403437052581035019425673846828737712678997913470441800277281556271793614301081632708504853593801793593151089448576127038251556960043314014942769852513263639558099520097784690608281826553858530842970614913053859484244023025766002575109521115979018320777049314024476844754882754349711251819026372180854590126306885155119024774397687501077194997319601375555861778224182495817152766454528509057476955968446533911063868698063132322676097575673644412230220116458458754083159533007655016137272418926572269698707127808163660785406106433380953286319287461638847342209953493697116346425320444910603833013262518687333862975061932349966142927873706321876936046144148554542950281362413721245970517127245644712522418852140009624965897792818487470514866940199787600253328242698018240766919239648316326654269889588107082887383748764127535134152333547282137545104053246435233114925648559375864591020809983590783073176608301394703053272262554997694335449451756753241736812633015871329226018925543205195649089942436132441810219322167341798790306796031975561008807197221218830014177164710184320636823147128069973571711718188351837258710955440782939573477859737112091605303234534979366991388899069267117634459766318969274320227531739736643905064091954713326977934921315902833165403133057334194343720005170018474331679258760896678072977706405275433992929070188768241452955440124956882424324863410276819289651623711954184239985256325183215558374651760854092911623855286958762556003440879095725474997792467948107261919988459488519051769180939570733077952031812098771862811139987884747279865189715555372219129322408728389513835747560681363360258115827624166230080456911249210034435602430994529748172708230140904964928267099017464455693419196431102276534209670800788525032487530899288783462126842938501159203662363751550276696022627871803622320541534102573777239990576327457998317831562612586812251069921853825554088874701052163334976051587397817370245522784616872947771051924368530600577933113817545870819565245001430886586328384968369198509686491164283772719912357557168244447675052092314603522914104707812550269376031525801811905542638250796242025229206441534820875367415048488286521448965714528303091237682062477036173067842972191724722848072901720527124831094054583574178656913387091216159760317400162990432652342994339914681211253826904903981521933628166252403660541949650315352471509518583063422104056368290566798331730828395135858055697635680768230567741285440926366869407705122375722784006571498385471851266894007931528211071916323759208955412449429674759800586931288935151604707707052671576313998201546339242414128541948704311233353268182334655076085329258661644540082715917876571245751217766120222981023536842565627667252316072238400482167339361823872390765893992217973977964021171252489641530864642147255959279741586038596020233400144055831547315914303508543359396113381673688117378907550406882861119376438534195792986441598647806870499619897802370896314805953132708327017018777040052807014940688692276063948576069809532758929574523778631464755277077700037465739590746561921343617631283724860664568600002739790759827486705359582153306367593256800963485332614232668264380360373688725789600085381872307078936884925608901245613075972723868573808618153388517918746954414671781992387910995495225358838352549663849435022947764973107819578806857014623312962847802306518551593910523193655025211571385963686162921771224192130848660729818283732537161101696861780310728662134299564178705752825161847374206637326411374542246731256214597158962400649408259570159653769765811712230334129313019096233475608008645172736659846759890926177124426411232708735413727175238391027741616597097045025910672216877558374912493619095490257948038760441944304539385269454797120067499018447614477272702697664860491851376946871249835380416919342209501133520501410216280418430405558978825800380371098793309338667058090947680919630891939148302737440502787580901556177935021856766194878773970657508253687584123834950775138024345058145180184481918919192199791713587536461962935626834302820036464683542085998731744119224741847521768949331738294397682722740440532037491302098731383965293945386124892848608252760535879291810394709395977401067302171987260958622166857389451528972421826067227647566092897567988221021101793992041454422538682633041273326740272750959377618237318000597121223317338850498876891575195249374318335172584956551868175131892512012208047828669654594292727094565583302710402753797304939385053814045598502018685606004511323440773090036489116849175685117954117685662759493750377771462271426805310684975301067060194698533618188748952839518019678720360678336588299825732490980242792804928859025343807641207494516511488371297511293308348397802604159793436072084634317841809992546460754134040328436769267604111874270592765872311515695059111620987178503687053293089427500710950859312774573553774204045487722022536714862288099616697684029085142976997110854391064532888391695230913278000375735516951042886880515718809488055780913168887215934253434111884834381697120612892744098740071341879808806664143035090925591790542025317753715764691242397853401054363614576688668981360835781795434887236966414539478621231024736230402285662680766914214321618345786525831485332596172054372471619694917101222115822114004651360759564371211603215365336259777021254174060534794184390738721281427714616395039938147884133276862595281175019957540377201278200476334626745237422524432897175051575567837229157256054707439571639009127938577164259465802792547654125377402351877933554131017725412082347864398357557105136463187434992227092104614011479472089159517272268736116052025920538486740622561275761549611488809755016453917849227667120589673800473080899720910651348497844811907634444108755866310997137310034620324445371610472971627089957265632064666877705373951915557455620288155902797234091186356519936227135338691460775115707151897616434996191010103869321276597644177234018560593723616288557495199392098933805267065365347195668026994946734759030123282371796536287217783529544095428407219298737463935352946136724096860094037074915426236107251200013435542168040988245998711556067418020562556878605614350559887010981674699865247647800936622993846348684651313516556205108767492903190607598016945171616241041523996192460771565221604298306386023834325617987085867050967594292303583245422104985491112430241232103917090991168468565205814900813295851857113878943968883790760475004253620048624843613409443337403776846741770175431679760145938766598594728392442847799290807358899403875692291362252466021034723441539778587710428445439569979750889394038856337816942831290445200252606041947245123601655564923455203455941800160789213407430671193306124321323713334867839722314534151700407561596405970262241067594613234314013845589168841018899978453721822158730633309923628064225999062620843992525946246393535506314510348858800697558547348377627111155298583219935680770277677563777462057500574309741717947516987860692427507495157836748555610875383128769178661812334599872517616491718827906337973104503339977939249009422085211310556634819052881792708956914907500486547313435645301021920229458393428548161117688217177399916660568449262030871351586719079353496038268768094699318716609900346733443960164109785152076567604677853126837135335159993567482959097129152029174092668593999062320676255789177604689377188821275995942766110269179184273008903954521284639506540930050518431796399267323374522590563389392268303555439373073527177221016986715703149173217428278768090085924645394727603666949951966495806198981578346217438149951090055372239782550408538224422939657956922831259372085132640211449865647884746476229207608959458192220755603097433662602531687811717729367813556412971508931895438641196052401536857660250081992282647295257619973222292739777293583283970510150606275251153914704804718237239154939756224801563181345501248128582012094262400333567036246791514795137176636097397687911986130667210372712591128518668540435799854479398409944675135694648644487988549792554063546833127234407531942204991042437974578685295295131280786913287833136563013267181663637827994974653427984309756759432329414820056242873769912427413226992751537994934481161210299177768001579398556930656967309274795316006770442610070500186098711929883636439741399239554759956140881454234096004835177869427030717877096984507110270750666334042716839652068224129288797786760768535086706660637550495607087147764848563171093832517572784495538917203463923276364017287966035585333958435670030705075726298881805549372063417035498297432081291264067177760368928298915353561076018212485377733459902037355367246585076363174109608381158617713960434532653297030574470353734437710387248699070425045521478578262959819946154419722186833334542104326360847615949981751810013067652616590924622748727407158323872455380529154560003264253757139292840841135095234556652745312283183016660649403905568828178899615599617887513393394910725294830437455569377943194275609798645084020626454972485588783543428627869065175108457067580367886808370396372874632743242802542128177626156088195302758667842099874831176558936965283100763986612467173846539140818622869538030940903469975368364993270024511930316083824537641762128756852197048575802800628295296377495343603958455905296697624276058157810793137622915847411647839918247672115338792995386215160816842018263235598208557199083560740282197123922120140592329247706713589779843415253899173740776359982359800522992091162628408797771522492633920735392523062338161565031018441337962207458268152098055395758303815631437597844549485252295575468199188621879646880428410148995793742461324238782051578901221481482381128520829691716184790874442858663486285271231398056330060175288842476750482977708727509975475612682954722575032381857817772344580172607560757454022705536423309309003399010278875642134344790269984550700272440101121189453058318482869987784442983318032496577282168871818332166080515697135701609322429946114671646755959978370638251097741785035687526542216792026513062404734013949891198968034597504318132964043658057694063874232961282967841962599415869053287898106077895669377930034687196323603241477456027899318097412499145462476758546416297593336103576048836014594102366647023427171277387122093742118335845976261098741901674853926299427476931696972218532288536394307614066312963068850586850630064339041644094474628353729197496603905241981344802457131525388833135662482455692508197568537718354850387214104811523696702206048654733494549271512155539006047399960220121491636853782636434125066386810402894683479294172387652639185107571593458131895393888059813368015365445184359635283391243573594703567563406102694763576924721351184769463390946793902413728357330035092450105951522261981099788779918901671591251786647146275176759281860895156455159547111140919397440660530037275091093565187579606361527172250625879793270995602412256156111206252658675433452106258763593215223579635714063995112379814492670452541687364390076988114666330311654945600666910678747877707211302738567670822530311969830956884380860829828608327679954786809055110497860238599826798488289126938453410678622790958699106050963199347385235389070554175254933698640063859641492398009328486621245538242529278071880383280518688531119131318635918082459921415712589709797778689729352546435635712006835942267860511270639671673906924804005200139911422049300746277160170901912639309835347240099818096738328641978893945043308148347545767763242403882874416935160915020135242513180903017109557231245909607916170799063998220265449972095131699736876054735408402082043949347163767821446218652842856543294194398789192985991090205328955750623681619395537907644291638026572451626485426127823694838267853181833445611516013577988938619304976632845231174605774849904925152382295602545456017702271239414160915000578111772075775795275453644724969914316188631172828064336601481757588251655464272983601643014979675187644716457532345142231558044121235833696284442827964619531558598876140364232664193791391672546897238708882389407445164053711607683957529587202852749592490688873755185400035269871565629391327947090610184095799879068268809975852610298311127201547105996704603727816116053466001430513063715568731906722208984767570670456907763881911570813052904143641003528040047103473857202450075639437878299169782536274851582195402894482477381469694028632822359471107609562598910334957070511281391024484027931471786564067515775390330543601350466853669780901233584307251028301812469697173119763892448902577473416282373266832486706773651964037174476379071277976360527979652797463311260041832436471034109624986201590031118443233068271259613003877260126118709798093736504894828664802150764253767021624324300201103189572716645713530283027831763447616753680919579430688377546863374242656091375756500866455806487288664602560219549872090748873435313235943900028090346870553806755881231416968285680026828494404648952554353181095595171806953400283917476001773584954841058593875563054906979499422484559642562590956057021642098730626330844313657685621584764297054418218203274213261913930707654528698596147170518699774855512615304794570699900281042276837401126238540916613647708262734042710613610246436630982999686920674462012861665536725164128803146450118586463911565110951643610827391111560518610016187209778784933995794838938955852443085395632553332139420697342492936603899819970671305825881079157004349096425905398296486211277193880045651781343734526587334449050959587592372839514276964266308363436866978143109659586018011110054880255385274714986316427247490010206658048342406335960812943560749570073616327778039514007208711803286344965704175528971047293894082102134789539687880752430888150924871505493613323088898732660714954872084836749807927340140149144491193262110563628093563650705891367188395805264696927419121103996596205422642254339748284421088754322260948875588333138969721316011557363581794195696684817967230865895349597868114470292080946511682305944528203677117473667291731895226152797478095541876084560961635865712460039206601489749755331028728686036752031179367473849416736269257273265673260071010972096793484163847282452752220724804185627474346475426735511269374855469734073338661449695520138703821586622494737076193091012140396844794537505752671505493735236594901659160958514804658175612013749959446893312396871260002621995604935356941337642308664405960743533935432986958799300876953758313804579713545147909214388988880634772750021903681219930313120863798351083699063261075694137328878323813331979393292975561231694107092525458779144440922608388651145665571386595700305194450917154023822232876001346387766481211887835050420847161869117462130442704920339428805419444750370406550039080642279954306245961555419962742760362260503134625932195758863434248906308345137097307080472959588323179822366059407100645777776595235943392920294917332658597057077614092068792169760642210397877170846861359562423720620777651999469962621432984790603883226697393387799787863110497403516300432906758930857075664889970043657509956113944489893022041309970518288366207990695394469842677693630635595928701710023598580217280700765039647665735611559844449309210041167934601857394148600073592538558505923064809544848775495170421247362457948021446762351327474665469922335148760003733982855860449554273196170206930601028334640735527263827585911328834466544174988535836494818863059999869561588225714256596480610872066392994750435304545813091694957679039345660139171895804793801565900584728294620827933584653681457340821005104034685632528346763591265235512439817338627967593192473773918175217225834357881279667267327225806733065056373150795935514108440973708632332710919347105644033105085494557524491770194640417716611007053247484444298036739834627672057780643191937945270101142147001296011373737192997987897291301896032232714984662105313233270377510716488481234282578079737123417190653538476385063790614557888714383256945183361520098153666250126989406818614560495431378853354370451495418287649278941714049836600007749669443716092370357504288324985764574631717065593311074810853992616192401832397796539890989640066964175474229719463174206706938234365996141202367260195958248957740296757702509924628905360714763015723202765529816268168796752694367785506258357365902749735769394661876256941344436434857139843361636549336142354297989791107183457537880372791522030984034682697587384823805759789834744540631639647816188688433447239949943482792483172762217822584547174883903201188210753065644895662069109878011953742042408554243050879399735525297499378566778405627208284687864104129602347962990669024200120577121495368388832789839110037955270063700426915794755118090899272086940132948873512636725193711012553700468259212037675460144100301973629214222894872791911982962264429590802008022490421032450566422240204212122589532733577155586499084694041269296976102038780753613823313021039929140660125502264125052867413419697472424547798292328329781662151533744489021508717158370967865967329645165962242700957293477637295818832298678745922508877668670834361236952796612225701132136801611040729339889606639503403209233695673528720661087655295633644159410420855122885023718164514166256672337463541423917877601448505117371093536154388067590068664751501891555086574639409562594248949507151770966920549426899321297071507524746617228180929938479034945653956026843834094924662111091851246538232992986652765195231552148548395976882312276990734541703064719106641059844534988364764274352806024882085313901970576809434465792351529310227642312278859547101709008328642046628349020754710316288170299900405492946931029649803942189529906868577348983565911729086289189539880506592674010574299331645023927530991231249928933891030134942045752424001191998202967455797435665900261222383063593601511328893762609839836486054750411906912460904579005292499567114006806291204277664119789867264222319991505534167321391266743787868586879970326946937423586136082542136789466027282196695337736155403604300770513893073950987666807324834407379919916051816985778237145652478537468343570066791108775042469190512652830429452218319943428542702199854268839178032660838193080490259349308392001908668991554884949038324355214064424259596518148354751514692097437185504120664642832283267600382850687272402815069959839879511643668653015101463343405015010254181291120256680562421254299983174580030058518365873711992473253208519853638152424697889779369684121756175590803005837391112125516481059427593686332184493442818065614552818222537127372861710161851537627672511026883133458661442113217498749657936235740575943363300074734874758937101431742767927908479357237054336590363629018704274147801158480538709809555698331137497152975669167391470384850239625801168895463311993928508349598870022738229372876111408637471824744945229789952744994040617642048008894336298326376448424352842576906284033135948335908844338136103256403867553795625066782487156987376836235340579033661229358765609489403177360373862141671310510475096327358259151423983449751408806522254255115433666181741385107921970472193447633545994087117844357190882810994502288474177044429942496371142689057745598197197435300063072381824613908218955555107963048030386951955073520993599307685529142667009185398781914247715891885050575326952901717890254996943099525652864223796512543935378210849008098769047339018652310197414062640307403109148641271178509923862224398048150391702565053510493426954197611113036073341999471082522716947375256703981349386543594358933633574269811646826741417193374701608006642093652133521982541318627313987469017149424267413759467392560597863375120093079328692267954260855481888919416395391703437959246362265024900345343772301594289286914717897984367281914562569181932486333318316112596167149750625027980091047716394956652051042451711288431532940029296556967947946976531559704514627087687940423648971200546946244399860881208702364899449000838205742959548805896082030408954991346494299462298941525941889609522357444251790149051217250795879070350930323064616549099155791118601284685608902274610335549006363065705581244700985452291060507156909200130303088676972713423655030480715684085910642464363549012252812306966954550404159549510972980717392424787565317977300008746537477545830822136900506672238794174188186416197672761357703538017174606321363697751755467461557287289774948065312263992766967230553648537777326877296410956701853398521463475628735983337500489398682487026254455241265836672096805369288736255332005433165730817555591971888092264380449471190047067360659238693050897865447323184263818321076614526869907200215623034489026643349437260650212845440452036176967741829358460537585816636699833041282510774154401818656042609622640437151478217372807732920653584218152692799122666125937749467990613824930352541537782354108686947081824499394096212665866563284820666940690513299498893009427992545831127445345602556067445348718318882187121677939558202916784573160536901373887942558234127143058308937209632924267309003645957625260604064981041092087255860370401880202387204067164771140691343058491580728036249382388656362928389613296522825142930055726515722763639135447526868973854257397102380532557563721973817275371534310568744119309034948383425715548594980732305119195002224625696837392240674357027121294377146091226455116348540496360150823341864727972079836472556691876374454117611823627487929813390874697253223191992609157875357179958961616856657741348452993375794689269754544754389497294971419741428196853689841411704176753892455026333513438715726983456696134925008905682935646682269815210292887463606565358914820798793231174770707858157829913394597876317428305223615743717433255247682956431233332440193401748740769384951005039768511894517439474986941903255763122075575259486099929695580250398028961730177346061526498017851696721562546428205125046073622025477787141078232662248921724603038570857151373776317269646699992000502314181924203222239637332825091895260689838668088853881299531683000699790081730388928907686504373195151743533098199737325689792691065950034399358922052839637208750636225776027452999186807969263712147049295060851483687570418475063163357373513926394204705804176264634457586700111522641770705529274658706668004413369481179858605487454596549195193521864026807318378883273959926229077351010083621875335269826937001148346571029239191771117024383876858279079771614133736336419181396893060099840943151484333937362648184980323165384277010789949087272400980614052487677706504662686527645082582547815410650118416164413615272630035686627412225526685894517128780711593281671089419133020373495747600102411204835899297602577884469351322715923554700454694015970461984465547144508828685411105625389016266471440313631229819287233460542512048846801587477146804338781248230109797168439741808628081922575040833757041875367976328614430016359509951477698262358132628302469250011591879185457989110477077341346427099872726073150265367519334328310715457132371175385893263775409840025569865014615192500766356336258181703967950223555285643800449956611616449098433694186403601087085327880077423772517079131000645360658940745037034936022020787633803005668402958869756903492817268568997072622904511366303979937525947990903595323002772333637604954194475971086090721884407618299385278696889100960308089424611170451108686197327837620761856277874688768244459975055491573710627339065608604577532998750923015081711507138700943482158075414232847698288057399391358809615756664031884733881073761803022872267230679330787274131834192224582759468388644220693765455796368465702825964153966416321492840969754468389677227748847899131583696064313434376598619191347587995367596873068608938426088105925577797595146824685794478227201544447177829935833419112115711233413815770326396741731076954771759426637990381995768033452414691409030131683908595262797773435174466652008333004907216263781111213182931986752668451483742267007513200696399459033103567541545112258512453926876679134374550830362222570403790399760228375316338935825511063603134389650632845382963009434574845644221822213486586875843832598970738132461912590878092612862467588396544118366608920646602692809925653541087109760653501580406941444889126907694992666949219710497343659570620499306281559191821253484798557264668628040121061684654402636892220910391606522123369818899261589958968341571589522242751776216613362768028808455563419792866929780415847003940003876308504896357878858569977949862298103103676610514912681708809297707451047148494523431822811084334863401450571014269025756146263707654291095309824212420175999742037436652776032157501702330258777315936461760992910386771557597927141936737148299106704742093446256008502357381583297984988909591401217798093804468085051089421092043623145955559858128240749283825373320521113520391033333382757004713961586532581960218588845313998623432889528448066278994759586221555054898986299070724963768175975792141975393986470440627303735273080443553916011001625595793417173030085260302025132243475923974468581607284045500363651182247033571081752088243555086570174459573879611895082440654460250537031463648909183113169060052163255253363331177008855710853919780781309813892932470807680413080880520425187982593651409492081200274696544374440281202970407462537338308256867444160534116474319959952591162657849501340103295395154681774127932028487882235130272965634633643923869878903052685031909159582636716728374652999678414791338198240589718554171977218751437279997675483764399837985747053707299396893057945593811973478131168083605158089447159426184805594191281250948911419767115534262865499993535835512257157834794382175886755417067235795613398438158586284982111989147634513437107118289332701605984566720314346176441167508582116053268429351108977510281991511928170170715747310306603034697420369988467433775631257851943679326579474752562872600722142757063162243905074002906752025089563776634737367572121879934505936831981684344320855132599265245484571690843984493643005581444389458229656838082876346762380831410533645234495333674473054519272787781033108595180667394571002781209081537916216482146186392834309562842821053796213370999721840345304657621186294537471527862257302058145415277989693645831354656076836517962357935141518139040828729749095026990453146192625311794850978482437439308411835141525267061745775120341951205929356513584010347896630970465405225424251473522321361025910807178830630717626660811477800217542514025302967559670063547985384913246749386711852448927990231976973494047985543479477839278915287409522994804917530614536524698217573770815718882071196527384794872794060885522720452907771904282854111239864571871340490997828876562410596002530469597783114040450157369704153293383027665006637507442348304687745451291245023558483657364089922339639941232056608396234929462137589216920735875403099412131129035665700244471331413393016770429726135629507111083748493942201310569112258513571133215078310585890794652783060317434589505535974266351242871371354533868370820170908292495938943739600359000380568534673130536024364217337599548824684213554402190144903410079711133520772163319866558661486464493966184060274113414086406958158662173074482781165804327860773061096159520013114737487078967787821049830836439559339365532693663120024658511574176468253934053606383404198189402956592663209305974375228801369819455174770465203809934758178741593811355365469591537273512911966039310072197047124301643576754325159135135168886289266973525097369226989190023809538747183651373052286347350157536874655438855465075128403676325996316717249627367283343987214462669542093619102802080969697110278758287983697655455925092676133573634147890299543132198157901364256501492177906312968987802079880707050221182301127264246381473464195944202628163876681744776776330290092431357847082726283681772263570164722111278728624710388483006513717346913442711406013667526453565443497566163929738330882512043340435951161233466591460754740663912329844464669106367472490834945722795770898899394795907782216188864049358321882049458399646499037313403568885417077022493731477385651350063195913666714090811562101718810733824105905691587935197079973421004428912237071620997819490112482557391946030421074563344882305741410351464253358721216212249053336883036576982993377875140450216538385768652405442785637302270371003909604503733047395187466302009764839213346746696761204115171493093126793514527875590662448670208372315681395933917763317114324562880298667214133288069519158903618448877101067381564644538751441995236358423911999941207266070316884343419026469355657441207730608858114221341629050293535864045095033152581397104501171776004886915420519302983630956131478919339594779862838732608862852999988213735771556884493821786279391615330080390220705530936728461501478498850033181975800817265541325627820385134641302193809805894298486115883246989342543998675516408632090103523093632224415781626761674422612243565391236301886787355181668865847549994587136576444150884333835775576941806138838777553828670968169025620851696020756452796692633689351012094702698370066720430535670161401753251541514050071773504273977449897281697859576923581797433855880980681459564319261538218199332145063890914274968772103287576284961379797798990288065770872206747578376547166146436059366709752172732206791346655267722069474517273539194251030472823670164642350704482230173558955512190715141933429175346847039876611693832777771418727940165874366851299056487132080199504369947033743147879214339062500139428874502887049343691375885313444260602982338014118808629847520086405282518753865890498976856824874798064193616832739653516528972204901778660728376418308482529561918930444211832524180021711990783358988077923825699065216899851634819588172867057585740454899127730034362076685488264374915025592723760304158882475206445187130104368624865948402971265938991202347654902839244413490259163709327137982689984698432494039860775733325560395264967549305987455754694909901194342457724103953070400961416037495946380724678800913668183272159681452214916600107361196940365139077288076716973033681484017456088721356538818357374508662431905773826859230269252601193872975738294601866125077881578763335678298528346826886064649889345310879572113839370398410189078432763271012601435179432647244539419215343568264280793636337582898176084388367367336190390278431003497405057985299453922812791949904706632853826879304913010736288754898713437451546215072301182561124909923718327790534721958283880090200138616674546722041318460741874181933130758943679032963220783437828352315467234776791663821402755051945069699616100758043672952094192032191413562493579960908799119397644179549219818721019890552078539443588157522827420596017388723673149259858645293372020579888184007095055363631535848716802153992785144907197064834408842792261513313035193659954934916536459401993001246950061860851221361328597475407560883737990257525143266930754749435640104395635407142803132097222999278725053905057797812166271032801837729321578178598302623424234010317815570894552196472469934499381403413278510160302654059666737725792976461695698379932555425562634554728799109972518143877159313396271329739635159757209847192346049056095806825914630423595556125287267521529315484554293513321055984822420442877857023489583546887730558391155671877160204704896694898831659455790281629135791833259691344847997225737390184723559601621297300780839668107132287562337664694788221858817721313248328275405081878261537791398766248659889421290139871000228505534010779580553219168233093000229515969669788308908771264564691717463923560522443531154343804814693389835543579033906045854636424940958181120595434350226216610628503015036142714537365838833079896086712457298058390580044595638565405662202821075226538829550946233951324394135205088971918647254722068709171035391273693109510682379747711354512132910770151478612285278847928278544918024761508462807101838373602948969786926917045001010607535547634120737612205351993233864639239514489519966057999504802963291141504796800248352707521600737457882363613171266562405267622499549260841317513159310050672927161114708549819922469912857855232959803894224520404137865643323804558040219863406930690227426367828925335280622574558440296795074680186776925060626629814911643844300545087266582143258641977479309577930222021039985008081254794645962681392818483857540529144900362721616512278887771394434241833334131976075163967259864279856626549585185328689547650301756768092602437855029118140675143926191715840975451842642619754137652384952570994593265325429059813089624306891315678687684352284202134529010123175122016530343202315641491907992471956705052225108535420554288499016328895946519156279502578990862271761068135579013269133985506317748192182129991273012935317739225026182303359921586317250138659760606934712678851595565369276562252720766016264136181992847059271197020484807033348045592195416859115485785006839762541198442684043218761937081276917561313978847208222350221575798206587987301667871474869565474639887352525727346760275322230343099261710068241633535121826174182985171735753918876546071482573326277518475260082912569898221434887434985993074656846271478434676342119711122832645632719073894153093506568106357337735878681252194825277609193579646550508787700091996824721270849036390368937610512862379285441265717143165862920463156635984664395436156834975514655068598714160559976330075696537785199681405345640304448977379702877742788981253012117216044090507543311414393084923314181373033636729654047762036167882791370659259911306678212997213090474618388442606899856042933514605171524226661105338849019593977007982708720219257642108844895718098836523255062880711637329629520879766828195510999339976394745576189273246735785830934887766612775663508756788009635731713088670288228862312975463592575548924919719472120999602632006693747267699415662667317861481846307266757589473415921683785012694558113888114817778345176666500583653661815463483231146793308174027635617565110103261997174360435862002982350158867307964253437062124959169697882629805646551506173314336662873616474700551766375212748446752739932836886002404512658462111359256138992273836652515294199114503832794305658478975146828300284724072123684469068726496441867808281611518147590856495059477277810847738417147622284013518776325998688054122730249305877757196282670130338670000837733148141452568629295147605018437348438748492227136288804598043935519913115491449697925137467944112513777370646626758377108359694589543695094466693800232645128836541604441877352258373658843929385189451906344105156896100841622670467620426475989693122285889220096035877265575795215326191649929424729098875855749008481670207517031651382296552912720084227965092527946854443757135943679458963348358425813330588619599661047941541803238148063095909276733922296289353711816246150343030620677781592771391557811061051008261278830505010685895334001274211854672281710812719195364488810329108409546809612467503175326095232098064761747539490961260935005231332934609543697708038203838321407519734771067515553250065772879729146149139954805128937286147147118613852801046807983371705078930020867565507273449055560346875160194317818589369609583806745808690824467078800534195848391002323654299105527794242036726847217244221499227017604145046165864035248648186760871394418892085989330658619924078562684486026141765487453515335399567903094132099104572714897996316841432535980959730430483857582380152836102862014015917959195335034221611526800879852375874041022995415050301203183891741945699396545055507940302189167295123456627317041394725034380884406079918428374191512880650388824439869594810004376035329511622499313247344427445352158294794693918354281605485198284568482309779646152385458564768162009943657640861778127048237838817361326081411919021549575713144215645612004822836987739729631438397984024460191452033172915473522411754571366899257103540578310517294678959621066820878001496765126823453681702279860194038628902833283738383631455172877667775361364785569826884570449478682659507194318635998496920859947724424100055772630055189070868810944205067700738940823790057659912258231077923989608040143808657255577282059971459402135138420029609945225472481324105661510508763979641062949736258528921313796728888068958102188518324358850297657964681518148912211827588973184071748094540734261839115255862277769006709269420308338086301216306936346586887124934530520284688597152124775408116951550037585309246795563808028163819344755492215612201928177067033691536016575130037770599304443359311740998735455240239471284474077330432446912424861483521968822171677099016669126011791236470635479327616681383827803903628105071755991589694853573273023163613055930654794402679104695241965342494666756310955900983540909249130833427935284555315168447764469205378050131736665305535359245647222560796797473188634491058662660482435008533809877707986419403558392683643132444725310076995692883262944953201755423699894498886661530314288592782892622816136030515725890857055046646746638040431741259552241303465883149322185789107175868110300720101337128563195913137399303277487583019026210617456162871944078204617850292737800781938057706955563376631629118140435323729150915715237670362672274338670840625003009623018767442983047758794128017968003572953608257728440439666118211613855070800867362472184163239554118322536469650133787408048175411878850409002776293633747377942027599165157134676949028545610723178211355819854428615411443509428616539907641697519326030248244086333189224567012900938690050499728241965462584019488644264925065362057772528974236403488179778828058871939722804190728665715880372779955771323650406583431463346462919308522676158593297215816624770124323822424156417772404792328954407736688832702243925129385834527463886585658161429537583346010076671215643146777813529010238139945266327204589722618202661431745530645771685557056401258516019950698275589117414115312767127203964330360822106274769830215844329726456828290642824239819299038158409106805620719827355406957306839881195810438062454028364154543196151907314814237934788510339291836215954230214553333853605768256726094354947646259487188577018177925743180636817946507539774810424786444868092548398437092623266101288389292251316723028222731452826878336187119035485264764758220434385255741452616620059077357059779768096735623577566929082123259688165345835827156697091013557122007032960757731002667125980488174179730700067037608894612237731824829730838345964521125557996907534389653160596533652613038983301066421730988337773688349913118534144083474488065839880887954418218814503226960797758506540136331947581063350376027992660474022661898408229918676071189072220961263247828308481659701573663576552318819252613138688540683903970922273017966581652439760620273171755087697909891260518833043841733754904752248730033453253066083494337052682672056421685123738258158529459817354435719813373900424236580918121246714986848376316168544624281789433506331199446495926421532802797970299394091653802957073560243200183441547388800738874284032417302819653905606522975315750641419452219690408489923154987885466589920481706638119573224546492555355581528378026519834611062629623172580751030133364256831400970919354095406029953022314658847349493544562401183177245189255251137624615706829959818829107329798491092055318223397479726281082544879306811321113271309101746344532113395897397765676552981244628470757533241958891017137303192359392238424698755264087758966986146208363884680176797281249465313359381810224156835762883485314881677408435736110867082764793137633255472208812965665251782970820904366725799448564944989035972799608192565625727092146902198317878540461523924327222125223921316922606471002092347011225030382461970148608121838782820442230597420306070545096969750901583577058570190193774921969114209552157182992041253858326419803257429745671589502469372093019493633244151850446193200917320919735335050030237889019061511451901788880342585529175979636612271959697446339219213145817032177491283175419281896367575170104055771684190450550988846662438759861020821210900727498235305354575614574525506054767419168500797816662427820500364974471732207707908901533228280629401010377995312936009517026631332202937798288375121930081189840330974478552371056908741386484415865873875793291638294492786090260724430324399807857238843264429949321555959121869356968887671709786756869139700871710034020456243072349707742902551679618741418976599096614795112957641018037351712900395743812012315432740768429129067537239745956535104612060633144817811284160771839031613870204997661030993102704727270592490107800291013078394068895144871028328195771684210198643369313325328485503209661099145778478661238463190534035217748416565606748168311761261705628850090308038341677970500433203314216574424438218304736148317765118495066518607464937755549293932757386487954081835932348037885932383783065990949977433056303885917432497503710846857598759133245156479405931106902883984931954597579889560870751537245786329661630861307979849577907493963459400162483068247612563655137051504757678489600783486364396583095547577201404007971429500751388826274068857121260761837984400310483204217605717753618373089455489096958458810079394474612020955174874661238785231171015562844301859133317006827724022653272391504237320766816863506576887501048575887770146867852489793936539002001596062031512420886790025951251171324470138165213377005170684394439781371096871695995426952277052217518492168769141092147646059293556297742494181586493117869548700556115197144702240756911963666264194652367838000140759977202134014054540247944284752875981372138804396725416344043414129888989712001406855695026869045789898429371999946055826120464149497139028240873659051529231959620291898119860345342407767768290188660258267569707172592288512926809319489380792353426884396818688674609103737076058573911904592614743989455010977011521868709536784230718620746613979366071332308354677159671533283538556428797837422542892324103946872730170461382713632082888753514255284435170459943145173274345116247497252147915378399348190604047281315917488090378094849536781499246153177967400574632327251537173797842406689885546969007674693087897698588373265929990316639105300361858507744983651725051215778321769177711818460366495990193816755537428901465264970534459196587437575659819267942476121950424791940068676349347106866774484938630753362765868426227795247955020282390738033811858828605954362483776009776637745193200667544012262788373552895368225813744574765815863924641561948228265235012196216624813420552452865187764751507558542990297623492456530552714050330726097641957025946747089984795373261651446947505559604399844484144716255988323103139925300317893845966594683286385666640358553391126779645196873498028428102833101845681429161269945585901086471539260935584661008563222492594753008415411861415607793178836980778740506847226891176048709664363401783134834365896765827865746439383735741839077046909958226563786154003522042201761426902001296065466008604010104606139991895353696433922764014780925929584728470746992673475874090439389970183738014620323238354826445451580950691361144162904791429357185675909244133868509373460040594475265446431323439868247591198781951990939628038883708430008539447000431237481641982125494848573605868872859307666598661326583352199424523970588927015677988800714991902705421295727034933584847973768772721777837595317353303616739233890535927322716038254903623530373074531422076086787174725018807630409279279204275144976379862258304408231280079551263906290391366762433408906308776871561942867554178993333141064020977471177215935118621494343365634276412896781558823741284941830643462619999736974045208831317572964991615003191072029566953172033779415400627395117870060713174833004103833547735908235403900498997679383125373351475161819891570594329918730915915333606412312905502829608464296225660501120244522096015978630121540777591934460411710151246891005769830139578472218536786673318758253618649086878136479037472414046390190688982493186290891549045584372731238270111676493163733084935179014802481107837066038244429795475367116706558870875727422010279310247235307253477112606623622640433843397382534197765388128527658954974197624605902312605903692181069914844586794532756551612647961178031522852111547707998329256654305136346768852770414110990581558693456367630637347185769778322653060170506898925761616633203264079668678864481371451750137111668188084950756148274652463122451890656053278811145958631927762794141573984702577265153106850360482939710392724643221901560070792308335341343563805406319655804115861807962133362361500770544635522520865040794259358891221194078105149960801538592220727406502285992101369537618672321390975517772673344085212289916655190470763273638406537138573009335115325215943316590178779707908297232465529599587135371826562906564872397136887681211211659084149153879707823487860874574985791801253910801086942069161239603507294097504862044657831016736038568304653632569526942685397102982814885923728020971727018206805953114653131413962373344829398050383263502614240403362510996645035008901746893962618290280083940332694624568959075192373265395108567381424739089812198851336609151408298821683859424041145815871892025509258464893843462347740104904191207566191482448862166205887028111419566834212508600147974425889644965554990721979719956439274290618085634334811312343082062781723958912063334621114356082399788299636769943452808123468302093365212562273620708676340836839099254042916098482287708722906538581451730720343246278397725958793227373377810115201451752869500040228390775339611836741253727041897206675906496849226070849904583299043534864736289465126175891755824377211692564795377639230213545431381831514424668165130181352128995227868447034700124157873247766034320329375049276020245171674057924993047411614359996504728283367360264776824966210136029557550258731305206707542158040221368689634776954103931006143231927797255308322449959733422828571654073732161832848258329906054749283121847559527322336185371136301469516377079591764643767052107702526414132045952641912605160401033729327661120372006242455579525651691506128379876694094028025070012102292096502098877941817692936760357402174924324899995995539946335202740132202923226748858582644513465037073569848111227437046809975007255835768803898115878070513014734756183486704420743960894825243266484384078350399026657220820822373680784733150156289388481490371561822602975212152765525482459378725317097951219348019154775271332860564093183389614510741267947454157606884267466880555756940765380639207764740831660794928832276534357533103096213135910607099265986311964292784152495682546928172784313243842142582001623049265383568832835555214365543746462422403457459573791743319241160513421382741235307430441652915586457505206280432849328827424011065877027379375369285092104300395834618205941838594230161470629380697267082354248150096518234400298638524766300048805439454585111351849776959189669928516686606489487248688707175421366936134071355349158307547412835619605967233336611977729074128154396092007791292759255941702295073652961009700490803450859408991481491779748095156823173631888740088015650103949863342597626597864963869998292491409658867225547114351337768421042370993926730211321373560996075058258385815174764631898166981970990175774288913438176380529050591811307860792756829978126361699943104049710596161901808651114147241636623774072690607894021267977269026915258015485141134819451944445205766806741083017760190467880381035674476710164013814255406954173226646854669185441137550795004381607136419457244820482796836330683181757312613517488871969570853165474110235377239935934532082659228276863627903427265046168701882684489755451533214519429995629929473161256045073262952841910783089055708879024317076739183878232852236924617529455890926233668475571453964578209211557682955439431766519174438124887034668383228682177092589319692070643730678204802887241102872220585675256731733505087761844681549508549516219128016783628183617807837095305267835213857361780813035861942372494427672716689197118409770557508795861497232619823832852998715310508601970562664095559900166930554731843339423985424802865635648256868687680393473613219659386670319688690294200191008670639511441651800324891947060454330489073308422820610597310475053797644215390594008178947641186903734837410853729755133240252635600536819579946860895442669815878663737784165092831326718458538176463399567948486007933031888370350181913540017983819446509429864294905414649584577115596774227071427355154555373421199203114551922241975918389911271147109284642635607432748885122408485792480746687357217680062534485195172330708494032337111735870995604783751399289884390749048705199174176101030109491562513920423131443439204847002666346761486187289388005052566393814585754720312382950420423434249464382742876723513209909504074978935055858562596442866593577928456403738166150502349425475080106444851112154866032414461699966559930531835318500692386699942186253609503573506840908118093356776032303271017228244379218573943860126492485381008451491439662353513600625763114444095052670865134153407032210620742419455352588474732526902465434594606313041143429085681557098696234810972773523684575505681912166103180764111093824623851700967232540119643686149195355698589033137676223287304330930686680813957486161194528279412192091820399631045907932528226408956898556439207477840733355506823532629250161170875109474729819356547829332155306309738732003707336868230047915891682354901654973461068135987906624286714232082301384107130068280791893264345308247310825591572062120685321695190577651556824899497968112890760311876201560539835658367257558765817466272519405545526420969942737160366164094241404033090730490702314906289465693307283208949113879540055209396190208031325014492106020653270703469042845366002388141678183604095816559322390716690812128112797845553331702764416760864074693376211465097715126748437770915130343968508444321135194387269620423849189130557460057652732357288991973442317438877243524457747410327980970553385222888131738090639124915877999362009287614164393675141967235303916146194235431556382209991741219239269400803275836875938002453404076507828382256684845054027095748204806504411465265179968405288983681386317005676659164835345975255917063148230054150701623317460943117419766000319025300319547933170254137507517264901061757065031932476678132734437833097082190480578902612240021820097862801185707062180719528006354795752479897984956279751713265131962086586209896782341201211704930478989884103192108381110504466586950773690670699460625264449491713669238092025703087222914877281569174357073922328390249374581854612379748678529143501961584807189762127923360973825736898325910466477680465942684001564027721965500578082469710809390163528373463253359094989282373982551750711081681295632284069777679840253412067819898971300571224452628815543209863073486101837014880570438078450436716877773516105709780179449980969622132208204179215471738048591428964564536426943061761154318843356041451277886033268124896534420135808137597770548948248071983064662869794572461218960038837939310533493179195677096413222423263742239149515608553292721131013080272311777239243633485429432599065742452418680601168326201747789860462624593470366507694484361124615214265658899981724591403780542040502808387162372822795581109284051181412791526969799389870328751802708482393321641722740172329658137702456484810458227877217254741095222844357816905207215290108495972261681113696140950542994127168982502364735886891171516316257075699987392870141904900853392462153811433888107258425865241572361324755456228433791223728186254001302066498068073374719959351881731811738442993738250153595860209723906413810365685929843348519917542733689728686713812909641206245780894935310414403816079132470726782370733026201259688272555324053049567618474775587476531837239177449769371699574873854443588173469236750607944343065336905973857459864501892303532809321011152653846026557056979525693927435478481408027971031260268615395020176742581198952757523805401204960196578463082620629442771368492086631739450836159224558749671147636084390664596328097623823818867460461536158881121988056188246650358129757575150926415877249568620331670230879710253027943845455703272858740216628759644536199120908969924930115448972703114655359037741935522875015793285066614422346852347239871229042078649640717191175566819444671039839149661395224170612800593825717239899108414900877148771791569385309875952249451980391056880415113893975505936451823427954783875439374335084308023420875192148445058037686185196575130317052790856699834734262799100069222552956843689834144219882607940415083292967343138108281814547727608186801097583915805810862350215171276079081548323113267832853258581295450737230088230617179136025413184640724042335646249005381130911895813819931736802433401733000261663843784253501900335973351731006802748081907857304737550631785224380064653425666012098828793449462019646289316377898356719931810216482713454874256855516587566412638846311823896575912849213789913302240244133076701595830527271952912497182598459803865125038797904817060723627828205112661304508342883474266243404110372392949821545659343728245073677032662926542314568068125758050595868421600445183199439102674868462998847192513067060023547789261985084902790956377360284946713489837212157542250016728867359344238268190317232009105353640960176493317558750293194237363041841489739284616263236189386724427734986664429521400421307035196223546019639407624238229226570110669877245580869260021856953397854889182557225203338769121271739449793488207690272845911291882440568505594601120435580744638603706676939201608887493408521513026664951926214158850584198808417918672000739558201723469098130714067922656421543507237921796525341814336527406121392760212902558904289640452158055364542792486105924317301006897028109396718686478416880010090175028640457016905275337740886627970477180705046537322305815617687481872198810901773709113794145494698443019376848153805912127154889597564877879831666153313176421443360458490765292017065518263232941340080310230713309792673558066491720015911537722687247133201878737395424941433844825955817115620430520219398835337092674570327285704872939449911710417625295841497974698086540384336493336668174968097225430620458584648890276280171422282866955589751354727033703248392854086847917851227779934683588829611935333194598102377709221107602411884231172711082112914746904868193573938858259488174640859438808268945846530423792399924723685572679206881597703465831665828344451435823406572574052425359181957176542285661316456161931861012790166598515020721897571193720362122714828403852867770667417469442686815473509928504398494770764582182045685584980371119614863428941554605121055624278428468599529833372194344508028389513927444920599160235198144777060754815489821899043085920255621599781161449368275051564381486337023632089081511255619681071540235551132548920047412190508653625112286881697433201286739507392418655471548388203871810831580453689097396498588997983919262784464547801473771160748960585078468532692828143966017671432811548336489403658016735914644391869822403284559271550619407677086440900461820144319103723522610972913341035327118837847615994391881876063848328257244871660786217173080583880668071799291673182511070850704714232256932597784996950468631395944733703151389353546770578111955361862265749271755011344329829195890762170261576314664191987780965688534343290867091301980165373927011868432522103010103878961512377377414903292750281632348482336827431727795138659071131010887619590254214671148235955273229648779246986806013088881161060837876602640567430746348289451656830913930338864952375209203816291837670044699938460347419444926946256576762612898309014873459546161416004864533980462398531637950489795125282527653952548225686552336585048942703804439647550824991681425778087415796570513445817124862070625973771153406364112539663397341404565590232992372167775234867815203452334687318797424839700362324949748985824628417267838378682114692609863764000621910824619343478806564167031249584863560551431282294919069150550699826232536182038146292055309328627449431797612752260383309189098499824704905244631520197996096989868963874198088144994911310847091769153698893421948857767231799030802077904858843154602654802115501667841204946046435860370428077386440517913013911169870880189085487111436029362121862457719637145253026135790748104573724080711651708980939363859163553708172727383421513405164648716682718095905994139193147092329173569839802537258287855121876187056874872260900960629181414419946540670476967024181543378962630688278054259600293678577380608277141272397383572507580789338846612285724056024556296341737719950577594282332166940683142483627637713005766124204712269116037798585183795878442440853282918505104155330060650428112487491026585872339700706170990765576673657978142582725882226211861134267281956934110014900999059832840514858911669304480187948824044540914787587014690129067105811242159000081040715934427508805042623677148875033386402773664882684139996299693887730788918684419374724626489541394139090828525370656623508476625648221636544523351649899860922240987077667879421561166108658996285662010951580460898357369184148471166819002503127475587718347584639161641335058727760843176105104831736090812318312448038454477015058418112108556976620594105304312248772027028386641451205608144271819928183148083857267781856260518579615742004706973269320507442902736574664957804025218909112987247096115508516043393005269846102269730901278443401432368632629935202093170460684140410277134845169606933555993488181568946496752078734536099519027740332398634058366137009441373901705935038439919707538115915932827440191700992215258479622324956443989482671597685434081906643218900657215790949077488310418259741653683446966956591809929987980084246796850025025150752278189226740453527971657290056905766405954740273865052443451918092202939408256951868709783069839500861991265864653755864067799886607794023154169690542416608000328960758308798059295011669107105618483562822323385494629409478104642004251964948649584156840792702543518871096791074647068941976534103589231540803773964250374269957380009691392735104630103670697006894384851431079909589867584794018132603653535737483812168717782855685306357482807476745507063159830338072195367311112515519205263635837900230617629752488636973438657198477244083636534893088637281215172333526814317993953425718781143351814312183625546909226524110626718609997427871632010654160904745221394819870472759208338917917137550314420589001895308446069945335432754890350547326010090284519932731963095376662005599511484250312734282143282380834351236685211669754087509724197615103340280528345323677369583692796964972895795515025027550265527420945588554655692314920735001831760839439392446892154175629220120007243005733538893791888919874779328383380684946948511514487781080036770199876199872533210154146608314528136419244790715099034083634916332433869158153170718852074611139679659068219100197611772859046385088742539952342681308177596414086896002559368810410935908102183089034322874561422192975785686723178653914491197540231067155070114796256827643134657240194646583716471870559591875961446558265273202712362747893390835983019673267348704461786927048009939727604792404598686085174282372854359211617074628978653774268327689627104217716004417631116894549052669457581656796217898274179380861589680670688405709757847167296934285642252055490722518522696987515452455192475351685823222332644159472705985674639811354972778766622390652529529284148460210335007643471404174932780774724788176330739528178959193421779252826078528724135011038327711645755561356949642068624693006238708958894817117498414118783722264162819334336317601722729736080158191921758948240481442354992306821621883475978905246193600009208435516904168547705404247946046651497137669066626395576024443702476315565763968105390428103904196205895936130685340078201258881889154833405466961679304967878775335566398727341988369817253261309651454256117228503254275372118271231533107508135993433103116225215169126573193550136366421527192276141469999802844916700607448268638246318314976039516859705957985536457455017149130608374675717826300424127534359797141309799852305476903794579383523115412010588134946088854359420153402285156234347792995000241478067459331790562689367026958723350792210585829159630231238368124464069326709179975303699719590718034217648807317129324906840224829036261403752812923336128015313287898134877266359290570622046899473783496700062315552711711811727716452449496221206480889135847738659238357859545733686327984489874829408954135112338613144013672706422794190254086410636462164392429984016126799561839980388920511743665775609623957415379261736928338337457270531066738614565489728160994550448551721064801401430453464051295140446213626446547424600840832712425386639936601177164199780451477199034130323402777400474296072729644371443905492499537743854606039539187902576997333350060611958687166670184825720269953472262881894834574685769716297492862913926904763940255380611663175763018127182086937956801656975745273665924782327308831160315404203363720540014001082696853301303711616038835389549168183958733482523620398520518020508999886787580651536209127432297934270853252670276519486185847144071488055660321518614982679046775908350614804500340377987397939313515310352322019095825317296458192616875386131595335851493565163233219650778829232073035975279852806853610137356148237478834290643622218709168554505521238954462591317635169397966017646137828485723371370773433577692190460107702649327510479188733695568304115164123766676775844531875644593086324490790469145585220039823303811591055537925836539531722193245141117240985694304325405074519167737983479001637087248084880619965508222039417935071897715748397588473513351753473913750106288900942136237824921876090021792307620950911002023658551202511778698148238069906845952730245979348490227201234998117184944815443788153298404492253935460985847775998215757539095953300207729267618880323659884930285391643538972357622606055945660173248621019499690452665820166183907286738792220132875105536879278115417671410034274019947459051606586422711926580330977968510345469936605851661815943144354032185772214456068627832203431807104764562572333661375663266373713970862638826680965979431357228998925124511687175747557907280001704475586282256284151979391741336497089956262764936532143913537607106726106631860754756343282842780018910011631329827038302824489449232229293193757649874544755694287283038545791764352054031121557465523577478067998181068530045709758229998873363742259977785917534622640736625006677886287226220714866654322773007790005540690772049887559903565049649606448145421864963792395670487503357838506569794506144100182083927319227396047609627768422335547491445727665654921993155377892906240688008718575065531505015189841343502813603412887286905488492578924318928845226449355361602539535904480517961900840563993835823634287567539714750897993133645014275882859444393479044442623179053277631899518248309464819567144604942118422904840876399947173271208733140449758446196920077471135087813824366393795318559385310757775513414722991294694059579705741628573273477036634877516771578376153533558964544026184374976630640496276186110901241197059359862833900080558502859710966425986312299245919548799302615412399121013615255226481267112255111916724543536117699475025878130801224214007369769776586981748929543422673395435994867849986769403543185465247453727126712513908646355889739208337825870114497250264604780256161571827946003778529562005531764848630235728418935919818532770673503055685648042823670495915007872978261301447600298771094437016967578972042795802626718564070805440800049916809845480088845599768256174203127575443052788692863272027407822580818547205189773900124164311406708524883130119655689503154207973962984412426682173607619059504185721837660239396634519983627284504451577735410319800531263149233683758564915297925279512782175083422227906045720421571542272370228778049359252270097783445414730872670474839372077908877255939399358162243352614247365225343027129223673253576670373831479379704630305082866397357717407840845078686403137539446154838246064122157697849890367799501812261901759146566701340622157261551039251798329813575796142443463290547067142247540422395718605746069668947657543532651263971717719237757117002261226531860084204040843161660166675174474502265967083905407937969667334198032542124979593121879239125615671846629803107429375934850259295878294135749586200868494995338387224706430162059295276647017484580565225478733028169041812563375934024372084563265110480063325357972904607288183613069914142513311747959411884026987954213464902429428361532088206681487140943297993950599209284333313261189199970369829063251474112749427143935469427699477955714379938991331017228165793557040191229354393093252258816913669280668669572992375607869460430064143866590978921034232038771522153768055304572406302349944892934771760715674061126509473961791906575930228523265608861315501466438204743994579459136183977585709498821721954773041730014493927089652989415851132754859155430306857722987483844399813130487744427119818212295875494773036682996494127453110797453397973547660095376368862173336809817317080165242488961226387077039464761505997179531843608881306317301052057412224680089851006329915379049339285936878411834886814482599824968605165669397176829108271658446172085972944230957601018573660547938329969125297081614282106195973602723355158262613930825158625863052046791526940204331921301500906713159973128821276297601018705969518465232075928627898412874358006354576425582221110679706015455949043554673245399665153905209136541284479310535330359496744467407834497688870719988747098287453637826278528589945817260086022878543933390547489575567907248431120946382129218385479644767650932504626695218944730173086630893531527631507552747504981043991493190373168024540115213949933468888092940831502621844347727334013763895971535621577334416953224367436991010176300265879629558378635276546386052646318070582309583782993112090995058059837700146185920524097110210775443666452857105314112362628049287135588698263904224507429784318667071314319973155844535307448685170384661761212981632313415440201554230827842057006675660206121057123926732722300452303094307647339554484900792365579730391557938299830045117657898921352231088526338386280585373677575627956641891237651553817032558467087723346066779317823811520501346032492019772098440780622348143789713778237204390642777437392625415454365151534177211193345299856511897752196911931304601331291058678263730212594323101415494200785214657809922750343381327833105238851247473972874317098630839764779082232505121756412493471165379864955666861941234631274289543422701672651137614260719601601654816853770963092317210018238041129546195712162382617246528265618285758464441351653976001368468083442309007723624693425287677209240890132650102732150974888644123787619412360947627664388343687716566339143741732695766685684797207321529404063241337921552783898542397560676429020169867787137698343430344088083164352795887927600508790475400454913101146816219553316515850152675853413074139555921519395363751703751811774807507004133892062162588491240289731365449374154990863709995439822547897917870516127581763022786202062455447800476057913923070885744650274638830867404975354157985738741415941654952356329431412184275001374213295015440711555588470381802410698306311462368673351811130496215460017481073537946646810824719949373358900883526541343154011638781499564510026332993824638255356671437815326239699816767894389311213204015163096852397756313919804895491560263672818061843157845878854788030933539890762877589382821035506080588821782876076438850207948667833346271335487632919077400562867645548821384850822101316808696994631184439712745466321186932885266243761287010357465576929976237002498252240357645727626891781271946701817327294870333487663007168646857096280036185680692397309735051947235140269617055904996173697367269577674888250932146270087287860174752600602171673043134504155436684232244126756481749249823551155042795251023026915627924742914994326901883758900039981187162608624855798184464963932220034818853220632283033576347239031337195733385501083884545031403501788252459401030061105480001503822198830323184982644106577682200488109803008306460916200560189126755904148455842845250017548832989807594873159542521521705577849208187629160622476595349708838374415061952905719998885404197658945228366602636578205678340875650048056525362668402884149996682749521104643981218571792144994390855665077081904159947408877574691983869892515087588219460246362579603601864091210221079937254652155190457024945304088975573413967061049078079410999224315849063961466745151977843679644023852759876338295657667725683876782768794535037590116342205470266313334098048823818062263020574782499675845459161276687950966222195295201581347604003897629967966380430583951519720235537080188647773165042732825783974902868523065065309581851611597120942813895647539506848263331669627614680815584443607314122333480833622887349708959411181273403318392271058644532852146589549540544399980431436816008098128562267753888807349317509714127006921418547941328476978756476484942947818775149481010593696227612354491684137794875508255868442996798468177734852882658771488662781477564438929807671832495472908133060308200761333408061308520234543824957396135762919203578254026940893628477045379804597465867395042308686525253631424325533253619222731984191959551354457473756816479751923408054107088598196223827397451051539116006387791561190974871103874855842932373497833727367927408286496814046866772019212322522959209279196099904570190229209031503216544482396022658614526241260429503652596088202737949297711214179424971505203813208845238077018573322111130588259179940080360209959590127466930142089042185894740172288167785848712394230901677409692622233644094525576565524217236274928500765959599298419191797540701912940654215517585591859485368456085726845324422143550687405044533074799151427571048696207077079024417139699626357625389679449702642897404018493122934014476689471570228287936158675895711109187919416308494026231163854118740783014640792115023167033206589561540707151728677157247764688578654814299430442151377578835081098556507820576835363628351348813859659553826379627771596033519165269282614600975631474429103079385060824700142038213913512085318971829367707903023932855747830515856933607124043017153486246761103379168467446766926078027065197494963210404580693167911239516974369775913977339572529025619064838701788638083657807860610269102465364251121974443559930087096849073433435949823940602330894838214795610358005093569436650877252243066728223891057212804872920634809106762001518360872916982524331929418074469756869922228071951091763025130510039037803638778466805852678847143125476861585377408909015822856722014958768396870844239492264268249275013370167383333767029266027538735831627166572558797671447400226984068782027094336049364928516949706307105980654332751433037732921441131409755268020814204410455801422723638149694169479805688419412168143021115472698591556810645704638441809013593920324344489155405619128477587330941673906829567582279215047803015124833631238547166782249777785617174084661135987160221107548683883385802008912683185634245445219986996322968236083068751271805860134753018509348093127660831252322518018135081249199174031913651630469527999455485355620155987436991340438101650853185553418330149142603828224868943620561975989156735917586277845581742234444022317938246492086405502131435219211967360730481599503259240205224169477516564114330156491112626791882079350134828796094964884885966583079695635245798190091874986892146130355384783355199043081669217885255937836951830572683292645930251382485409534621429722529476421494652984264811959638614974254854128910386264580831882816772734425458247060152856805237065011153449072322443022256377885828886669013177811896983856801105060429273629489843036768321574763721399321223591753787191317858395789476858622835309261738741340625036530836355741861639224116760453419698204319835381810279664877194107075763187345849191449265878807980854569450696655824169150345754902160583001222655049009375979765600712813182233202342931009961184282889691041109130716313198056691599433884781121782645590008255203467516505438335835245107513194745544526535817761688845753478566607617508219779258591206006747829658073067610624089551880270411702703595362620136422485991550621531010103480625644838947655752251553538471715763443899187417622346415286700509517021589687724724793971767774692081615412809776795593683569980193651639519436597678195999742433351482392645946955270955737161581194875524623636706739780649366203263476890236509951375286909291377285741074562583541866090301312518785694369729938456115937693341812678725357132113212319516534693718959771633931854406913203147804917709680571791136474621191250139280689001803904510998955666096719457675460906123278305794923065863039074122835637934883008364386236996801828584551916933004457883386140009834138604148944393981856047147929331368526012305407712924923609388199207089798276853789767277809536048348120752997443619864531594843931910651097210952682491474394554416293811803899927827353628042919054607807251126174756098819020270129606721922468067965529313014072074652824136170445839262085454648434083304684430057460723332407506866613357182801842171767913901777295449412383854745828758269082920227767716453773662081632293598132671528743494566317383162199671582055481696119764585708110640707276335416528720005310753625016696105134068179511843465401470795698350816081393834377095355757558954180583926490978854015145595905622260557860298891466102878331386378705867220116403207024443752231117704654992685065874071398946860452608670256707777560939796097454327135286277182213108508225924882371362857818796638982690934102012621006907384845696357185589209601832462190374400627143944316298985025243869709273626084741701057067044200241599410907354280759411992543579466141580318349644525864397246135226997465085106695295870319462244925085678908506224433687149679410326946709074880986022093175396926167815481706222172715513009010081560590170847461123145707058912444794917142761437192564029190288439776542012923399931449065057185437467969875432938012075363630389881310014630179422836498817046546711006806711066847977372248748100741597484318724523640459519883068722575515243887744860060933124265697206990737580018768675523339457091873349411975155377618960616094171754096278748985586072221436730282516198400910568627992929822197553743528356086240785088430468678316900931530022386099745082538941801523947366764438588777571672662633492157748515896060667517018483105828668661209860552224702617000865718696725442375592394616686654585392103330067387632901447089039853679502070313600775982205443575359153872375762313006722350797411824782183840402702728694238879443691193376052954195598379310003888117337925406242381985169243970396781475225086796122112279882485224206103774589500452417056776964240229309379108898164193196928211042969682121193291761352879642942559863460010111135267788430469494411522105081459306715081935465415222641503801598732486515725919509795103760431446593940573860318459313391675166488262893746660295536682729992891273763430839705602569855680305619646087487901424338904749139162188161255882356386828413258693320821335207962776592640016164380206879935715651776782511147822042317805204628524847490844595406215120678002059057974501599412529081798330416583759308112674300504114492923916426852485017411799582463651625607319395637241822558078967512381759199981831158683771626326071484761894452112635999650057632740603352104649222465342501276414619249384425289394557406095489152534194431200030908103931137975783367149797112666136927721077508876247898148142931043408967686722320031780595264220501966121733612035860993962254132449253890864833858690309969324995467979576377195353574055538386466105451208716003328233088173941903930638414507538611003920916375979157893142552659072633109458313331142457426835676086220842776796952011007982129059636349079515444467444943314719261113393085787877931183375870889540313217426778448241771972646374889813137998217586606703701363810391016180026498479670034971114565131387708621328031123083874019862527721307219158856169221619152353785503977650289230485251030286165400127323739428157286899738490849378317862899347757523969040345822190146810331287750803929357343009115878564836566359193640940414293087695703521262699313654809529548440425936572157632131575797791961767795023631533028811041924365721291982774016060739588878613728012303777307636926072414865883292446272201002648163987364272869907814114040874380699626920814162741308969946761447654067992080534069319033496409010558633502948117345974115109514421906015006329584180578713102338999831748722162964576062231362865431624457182868717121155971596158950962953589513323393358935760320064864885885688112443076063188598460297304300625789555541860099303421709170138673298103127422174681880014825011125371020184002245248536580056609628272543653558602619128769350614409131621150871537727547653003466916445966422059032880824389275928712096884271638941534743990444247382548187505194214786568393196010995872131598420300438133747762606394722210667869265875522012283369958188284644580670021149820860496633125086242700989220216575200142029526838271062979326630981121551613339939396158541624319472794603151261493804406524145443459069394081629060371454056063088634058852065259328303809987397646915828867630291382698943419393027431293420124378973327307583769225163977937006425769712664363838609233547519342560992865670916187547368276435641205400394220042173493743437992980341874642930475344402232478732144317383207203061561118156439302214552854471472814709279696284751336787745732287585508856432536486693232663162203475130234478089333125403897205139353811969572198235010604268156532215291274279021800821406768789240523705148735427587589625823496238254232748637804469201032740112521428684631101580308709992803274829943993975321535095935799548853136352878695936164497730738805006035068336570774409099960331751626790722300906889507242786817415934747165283465487580291290710685723220060747553946814407576081384820784411749267827147630401480963198561283158675717762544052518754992894333663979898925748995913044175527709474812102164028698232408497049014470167998231370913227059187507461529762688356332381699083218915689389427521812770380662164882027278201023715759154975284466477794842406729409275892892175276771198347815731676797436547912506837086581138656267355785754253281721723622514283635123736507624388132041452292425427149834796322081859274068816863777021357231848741729271311615837939392111780336962342583085886637020793256298467247622242717773754925030597557347997016260403855489662589140518810359553009242207213332657733322860077994853674968712590898355194051459682906496239004054052716973951410436732557609684917985007888835161289366798459801532511180842566253302616541323311192624760069809875931950875879970430326256713902797888959058540682510416628530246062205843895110507780814781830219759621787305077993556446027409016521245976124538244465558942270730538296239121466036866713528268239708709231195937255141996856786057435148429500594007493215968578719183338139315816423848185623953172721269382139232515605614088550354879573900364368702805539453776810699633368611782169793613724311598981709798342714692210675310969544193976195395076408041336269117902779336405107629854187424745884825613616174237068237806325615327955041895750054213395321593886167144188831161856434267603331097156116614118953816868472302131890956599962184005295026544970999644930309035437332377876486100889579006115627962107650982091033212072632249483936322948932690585315460894410215059798103713543586109630208307393365169415232245250841279667383938909136539508218698732443766995521533195873797591640503089839133021441929316762523900504315328548284042368250572476232707051918352127110481634354873714612825399866269137498901619016483652186670957219064841587163843302280525075773506219908506513044538618133532969337011171972251447596811725960673632688268396596305265986952845656398851668003772572679627211537239171741231253301198161922238713760524220232745296068197772373849734390578771098965314011518121803080313348291872671186998119101830871783890336603065636372708489273229792455659698144167783693832889981108638090490893114339527892606435042087821111816749598982526352959617839879103899832530866875166489242064268643056772430346496144367742722960670472815406044412209041054465584371036583337376734904235848093258514231796886938221986831963899449167792210730450510812274341273197066204578614848022157072842326380472103064082818034605451600706950430372827402823235523233482770283848221196040227137220939923373563905257514239342594590892529742441036197824052326748853399031436853652664529281440111107616756555282450761583155886980970316787894323328541949144630683580130309397119974298342036648111665133341591670939580151424648872831767792691334992017083107631328160441925820953294459103315607574542689033163685883665874132730391727064770071316437740550820484687955212932221946103029528068792039946826391901580784932996440044960611178169694166909531162999114693576923776655477337938829702030159642294929031382987752248219224583216913405231898983010601452574617996561449511158790389670509647373837535970514209975272076164512201245160196497438932323130689133113873333330510291462674916812790477039059973407996608032796846268513001147905778597498525221164911536298482759432552918019726489974283663914303321413285222374160009719415472014962474413020239194914648698009245184376683858471565479792609311331895796561938009646903672960412300677995630639594248295180353435754662869901465319400204843699941461628040048238681471914951119494351416405431713380934482011312241676263666274347572633869440188292701528710107299085585100535222639586142068661319705924696384405210827577059296711629832850501784542407281640930452370272169477742230117161711877724453621197878606740555902038555444984125494748533940616407129519187796757666459804846537986434422151143173427470938428959445786438698227659126072958317454194232319506094125584049584296721665257728397015397102572165029941296035631018006340870623211150239425546104151508039220168455221837723629627320020533816600913929221125809415035141469275545729159082818988499597264028182891830365559594768482987535834972837444805647130368988355968706584360183899456169318914516172880933136983728731879936038129237214551705987204495635921412699700376913441799570003631634891320796517419634484843608751273062328642255378366919730077045262969472926459367247743656162037515982981039829380109415672725855418856109854563823090182901017540462891297230769838242768647785591904808240220163706429065448129417750107160881470937969833874377415281891047447993418593198763822267324969961181155143958155219161309692424570538688714199134995430512074475581648335592328170662229903518962258327351550265636730731936764371479926517606866904709492189465928875891375276938136785943178358372853105398066531503690979111981856467797910301074030064841745274899042478391608318660688247564385197239096905529040336042145160528375836096924151570288414997451039768715014559242854138636728517217784639255240274938822411641317746268217413600101816552500235667853362582427157433267450457969520978654049535770719525691247507141288611991530545503026697589326749058829712003701507543709669391470621660644676930038593771821445103928174723111792692367302149791487008032166174032839906021371291725375329329889833358185362356079161051460388835745392894968888019655417363345223019879620410388209820055355726823372373989908420912272163698860210930829900461555993198226265904389498248457168342529840066257535170322501161875901552882132835910963083811037752501935965697146940910282204802405022077754127609347123745739856829311831729616828505083140902287430953376033634824548339275063639545601765858857307611768684223938264433807303987959770976264971165428254407653056467279802961877825641849179681725642740587194102495126806894363434656776167068493405284368045245872515761110494873071253647926462504108767904150408617098119961512885914871734287155688906931287069334800731357272311678657101431176903051787011050325700790592354894655452199881960500518569200753496209828938368724021222657852041650698125881823500756105900986391246640742472916588373366699758830049506957066560090212710425390275503557597350082912000670694932008793325580650294441291748209942827278746579318180913316880850044345798798781123752785440096490073844925858554260179609475643213215821990624901556613641460110842495148005470725583903878684827805126024844329150111957493879009829786823458529802202133451926485054923762481945323645700576473062664485516163725855743255357626196922822076097697869351657106716886376707474809801723890739579922291259321069998545413616960770281829667303892322305281814907169536889344060187650239673824302212354102400196976692916433911847774775626126997816558262352631893115922411335430500477152734463374673964115888708253669639206667261211052539152819945086667425639979599203369549730431447546119823574442712154113241791261658261494751314909157635696528317100919064693609083841440758091578462608646355918968934830377988696995400991092989123976606642071583690523418449540795959984524335063339426229591882889167465127048517024978546858640721412626543480925903139962444005471481223534601598017964283029009243080609452672360207336101325053277962382604149239248574502618165050041503533959870371097899148893566549853888084113269193884111392095893394722364132506947853548521100426064425421081858541346713188130134802085924494001075658294960146959811191992112806246551059535378392903200585902048761407955995602090409537230485890319694823070364919424481814091388653036023157910704907429841415517022613746566849728299036839455160206932313184252385089999797744099781551552434748342707297798449534221203543449952436828845406991046758780002505786736787853656176190335516157811238154552120536976766784617273468634354333653555384884129153844426670275431840876334624449471290139334193602387287977530979159362597630247636359662232760561960715043562646279619209867810024313868925775206695247026955391462838712163105806940112127873685552279439120053069894346416074125750564011902912666835026878100937853250462578899696946165027396983353885843319903403421548817067136678910786061852370303463978794536960058984602162471106959921458399175153437186590969539628703287496409564093050430721238412275470898486972669916275111496135874663848647758479859182888915090021438794742107535647019178833400814681941195575811807567115757629121373884542224726055296672311401060591611015860043854831789175559038396992640114161746376812185400220889716783415420011530104400461311659252863113888071103098635070073848043827347081047025036984953781114290549874025242021372441861365178256599727597656095120612954642794574900774699808538045740014183511580523134225569415201716128490598191248385290681853129693355666210281317637252362828867565017074452985110736136242451072929940580769355636395771214270601624658292556435474847358014954785139840224609035270236091638738381368776327455458047295217933423508003865965436813331839528632969790028366846294005018450224631479247668287484101042054070142971904300537253599467780197934990214335924352763629147080526720502680945420644022289538432259506628078177715070276123084408699348595462364285329399895303702366448996607155647671852795301062109201263551225991288011677948415298720749249375558727946058480483315534195217345799574061456481748275295632218605417380380169709351562701280728526419473549836927636013845787843949729004041270002913467524932160525062174023184774902439503239691987489257385767543699239005948839057481461308389906970608551157712541868499737071784417327659849108960121608801737751541515246018982096980955679114329276726226604286456235334467420557560266314154350439951111127261945888703448952443848008702049780219930582137913587452143921998274753864538023353852250117239765493969421209097713728778020561493165233861012156363363597962701111456118417968559384790145610932734967654660839540475222179286369358241754871526928946125582636464982875341702837182949317468479139855811409939587038089961856381825561941119187251055342160222902978626990356423991552184122910628934313468937137927239335327906468336645218300223202568350144466649234064562278992035918884719200011854540839812065770472662931894243979404709129244285440698921906090028162454103559774436067732625892628879608744556032798231560093903772708909494819067619969084092320638836209929925402424045152672364029194309439392050876906206221054635347742032295118519745545751992467949387056534691138046260292312188770964061110330968497077280852765546059522768129858377342830067123348678411544977591647041360590638787857366808821536140499075042444273297671606702341911358223747680149103664690510189622712831024553377583281443618256070056648028366293356964305737933239527774457054484462128599912482698586405937027885970726882125021182001407357140937625582933290353624646061165480147227700700747341989524763348475693282652315535341294089583990603812371162252634155250714161205596647993680814348551386410307933657360849530631022751846471231802696386772826459075088153224962489204770677066783278454899049300881394425659094926142335600755324828776071630755448749003194488379108027575647606119577475221234072111567575285759998517013375205706369293745261039591954852589895575584634988309542316912476307806556784720719062038135340214150405354935168317181751657587247306270459305420554380812944470690617389212259073717965355270006678775999873415676654184709959345113215121406503112080508259239142026907617817679734491305579138277556316550651741461509349172749911713386891508114496229666666730839821815583237386385691794704670101798477948147253121555286086533951592537057278421950342459883166602602119156922655440178213313337962630957150153791568321307193771666262047188236739510684087565934033103652378859460710056211234052861424528875455866921831247423663888010945311000474314682816516942301278864343600592812826223135296486363404188408011515825110336485256457654266776255661636466063798968107202653234201876718053707932105410314068320588074929455985159303976471145024349978155465026426516298020369421288295037661251278888413312682222903118931904781156142921671225206733282881312663896397921823396501448295161587728421909988918500553769328809873030607827747502100424541124720088399334408751543226143337346214601288839226529096893081275964089246328747054182838431099913879869975127366516860007410673873831300788609816359090516506394958762784314779734516925495492903018171012533735856179771101457511654974261733374255624098876817636236170594644700322185429652868700271048455891389796765307381588291417213662907826153500652246939612965514954186558820278416008851432422545603070227309696078954905468646985819891136768844590657108902034995579465482947043307097742120632445922943012271446346976508197915847353688031824358328242645531438929202600634691913082408200923639567389361137243048322485816065526720422899854425885638170351013538642609874886619525565910353811014293007144529258724558163226506868139177688188106524508794940477585597833458307487055611749000025212976557878388177089415951164940305378468941313541938762280365447701746015349407585108620963128960322414772909581823030595736006159522882269838642747341610403611488480199783178057888354664034524031339502189216438313198010580842056042673832292054397732208201835103247659077492714571815555785346781320182976941647963896855624334201718666998891407055373121031277318985766791899152513048069872013827225790385420914983270583608081359158892490382651319555931418514351846058408071536261800511198336416767338102166673118291614308584694450057937772168591710863495939830785582156001761477737083603583773352515718505926951866843576863707597450103577936375869470363045260015179325077812036144816871856610143250028098245662123183120992390456457065215693122852230087261675973270619995206334823275905408521543602410490747338241808330217763256249751008074811803348001415928734896471026581385116780683176632138475088465248029532058236403273574876104732231220702559023949363825152818336496263370163955886185577737368764641740010184659106602258981277468231807940936345267848197537249629511086089750519354691193304164957962246694665353816546467733023722917946187531578976161120864560334154681140021936953018218092059076758110287851306522758181753159279403973212542670481348210386465257407595328166897045296719365949725492932102194694508077290558090418115155873263199466943670085820969048704712958290832878926953237800581550544661487733458569730039650768248874895116347083445421253076791896280475622194174763438691785581970968357059210509174366115470325868175833590896188110034181954743798696103531822143427136220697102531388470786426319996713401263056856160967669021843592436107985774337122063759634150220471838834401921808339690365332762980108763386672313137719691965422997554355518947954921606387759594475584846716609229235350324026302621821891024259263659035030551707029270401529945826413895288514832515351751774146954241003021557626689382817466830952338911032139317835188527753216843994343188992678886136158375086587862212105538214376244513745132213484100110861718699168103366035144955588712296212943579302875133725392408134937145998021658220927082406321927126488069433945942709450688189145745858452855611045364004922698238341760189178217909755843815118111432983408659576198570141991142228470090123449290320954661138064014997425507443309055726140132321443836101941338727026545755980552387884593060389962206690602858133038129005995754541146056888552315539407404255374284543945843513549760221001131089755759056453811563645014003513273173990562113655159304168365599426100313266071082457545332233799716870326256656382898496928148436831487578137356886435818767327659760068521666781225655755222940719620744119089242466719016481085946487506140611253234174046201525342347646990764007464515734897348826802601101358348799907451134452479375482694955816783577055133997090293372210640536308176427223514635233962323459234291463342893330672272262491394738669693253502658292518461902350085633607720197017730922290197549416739983425516624028154987710759934857829608913116247422440155337391716484104398249473127829001415613104239242743358647902190453200013030514211582813414533978768462917662738359788306943799257483150507531070042297468021276235759831804913114069436512052562673920746848333409979905948161998288473401050611224962115241737403498459911126499198817936198630986570507113765226798381599036840672531762143840808574701586240665094239039244911818164823157396003804557166852364450770776422797610979872737091022100551380185824488354499024424972520432228129218386692497867778316960197613762862889866612517171466935428004326651337739944710330180165727578425642288284422523009490515474157750182409898491042243884799246966963716212695653086582547941136148096332820607832974645996671710652056523921420691833580904881498462443610261494148195247206244524649339806569787049524050544149106871866767553287031101345676943516797428420943581898765149939718459685891811261517840132676730182150661139602797314220742758158942861017056264440953639463526814003052430755795274226674030299755656746898942024220353076316834936121720809252207015140286499905255399543909490582221452677285679087210130697493854503818587908190033238027484601334827369652249202927385017265674799046864653720242161289546898679997300594919027950590604747615045568681885542932371318647268303460055089842550887103220398821575152707714496364885625536468953480202253585986054440074139648426786917347820756514400835627488334977741501133613909094941732017922788461365642192713284169722543976196746552761402104441842593428331210480798003223516984504428381583689484324002224548936502317253114443092856313167403421295113481537420115871669843385893663915115582076072605028121305676015457821944377966543256465428041211207036362638139140371540549186260778097239363410485869077402656432150116495141614171942460918755728769353775801581703655496078593829932072704540751265535579460428112195045562815759748047605794223312148168784816896624248118643446514805304305733932481021018953343587693260802767063303765413612710679244381948485850355231319831952294209977964943618542575235135436568256468539230783060081088919939293635337354344544914164408953568866325132728675553276943902818821831298770594568255260279240545594235954693937993768744643859527171251185234996685942913521941835595668896890450438684135843355061102602172771930198357448951509786666694507235994459141932911000598253090123080211683510011658039707781700518015559000464678265528726944876052477473263649781558618196583874181896459555802698798868277107117294595287169737818557311536010221326333832738479498902469564404741100540375169210751139092275858586348735423027513219410284040164742498472191353082906854936192426771253668399176453171318415822397164856886960477697512101201428590106699059540713771773998203161686862527876562003112521229483843563201883295285757987096980021147837440302864046844892659886017634177550545817069779660826575474147647190995024034522898248201681440988485763392667615428202817204147070603206490778552381636211571435060276180725282161720848866067589791736587714413265627888085695444574527575013254585191459500569009143000029168797842056411713275891203106643701788753709341429917005341192785762922594741777066923324653873490791998525573170059146489417883522152643569340240765963579671987572795244243826598414477223997472219308774111662092585627992494122963925437956353983279760418432093252876154456217381444576911883398574149011398165974750125431290979148260944967451290205989780178163461059416039472251656847697884119766907391470425925087826616956931829035075681410663273274456038668985986898144454143033826476193571737578072278072684460118485604684579441574906798101052575958297914870677529925863120144589367812159894655540527754520712030669923564597930520057250318583092938412853771870703564921326655559004361130371597208487637519318351821359383164790012460257356701951160082473750510375610112997621927885643031592460631618845159977941454309984368695305915133820619391358597682786333597274232726076509575739159944243431065081233967266075013890099906684560001367736053075223296718374379314900752455591492446989795950067702347898688292869799117628039383495341463381889655094800767165611015932600006860571455282722822459474547889267981876969876307717048051993147768161375122118363438909736711967166848209356909610058770647604872018780149947325811351239403165350690535497940378003305165225393578173431253046610571926836105644967228448320381602437085497072213148056370616548380309388758778440380642714143667157115733168234544339924808126039263446207624400664643978837430622062681243798359405538807964966754415118299047062351971617585447222557486126334999612560377523553115398659660337425011183437405240681523514020670619698855554385854913376339816867485622746000672399054589105836875968159609607713290347197486512630299835796015063171948409691833512615649007930829150616480067185145791381404245817919365192080124126437468437838045996418925600362693190764720410569692817117644110947449712890085135838883452684419895440233177582515337110215877344819836684436236810482718469923953728965884616792986926335695360021133172218950998907016305485942325067759014185089663294379442960453898196868485050922997665507243049450409601155208462393631869992098365839455198998930301110136156447913960400508619028839991611552260952000248799377623959439213698280468283837199274939589757651227234019123330340714536299976739019004392210828086243828030162587929376934478749174839962029603106189413659369451614724165116797643548893831895232870506655745025922747095401044427999707843024169836604106891294021872047864060069414626887125418767980372433751236955879003304093445796915018328014954550292646123334684631207450004214161950116368370166950955088498520491988939263864093414389837147337736363054992115506475227001515445591404612607472022107179713987292103636302779632211762166894468371705832197002232294359229303899985062985510117365086332430996198345338721135942026138626513476460900257135384815960290719437543917345374779303670628180285598205109854062242462224240308036470113300502357491188420625217664733524077549662161213461025845856386930003706636996868615444793915229581296945069348305169651362637662052533352345469660925073575024571680315149687518306766550586759633331387831880505115985634381394480244185460058453239717212052719879122670810006168103526336547665026359791096649114715085941563028138988324959650263293374046481827892416217955154234588046996284528751682477192007628291603145913409639335423189563770249404449137741765798605911256750427355852050283841856181829131166902104964787525190535945175554393282254976828710430505646346750534701626189842747830507676349116444055809840544741515900289145930876643202063001702260517472416676047001558649326701026651493014645723558126552015248440258593696344300040567237938161311826278207044926275139629643248749934158810211060334704103435604091534819417665754818019818703796051407197175715760245270716794680636477025723214712718092300092361078727573281123936121619916779002349645898861626262180057585491630347402466799035277687394194649953233408102830848266968143718901301716832419238172785948046017497620648443202681475703733271256623312032121230312935954992792796727900239447239394842644634151290159693449504274700165594983776770438170184269953557647394856736406652645660934879422601704878755757375713195342315611531431471655758866932239895637851728735901918410304655658147345435202904118755420241357355256416755588898501164058890597826155646920971412687967405937578186100571169377066706030824316712014316954187050516160584383202440083247073089991433899577702464201083498324927740462500662892407377093204987782196930842360191731889711775561087504184837730602143816630900610459062107206051398252358620369053034972161646228833304812010604977926484302318771455551267665900327645809104679562785305479426434915923800416570606415865638465742001329406656580732289940601914450796769169704725462712512766219305686292795442039452270823506207947398575168210347316949391960567735756244870061528978932605373229471271663872892896357372977838147907268667982947389393459402663408164410674275208041415379823905722519732393756862458003390469769859294990870732303623071639586316919943973172512348960267628647570716248994054430294602380305495344128608276708872854883771986668426912403073538718894791752921730921384607626213771440663144638506984488104843077234675397730348760302696226532298914234760916496037865690691533110898769323113721252096218121985549904586830487148076948468248989073881626149339892050710591505363527411590256781300898889066820155722953737709170152157995495411680161929807244169537512872411796680475612912568859177215352493488604951090354259985185938343879330838246958200638318362304712093535823219931926704516951616126346232353681679142127293591416488599002666526065739329091333714197966220891008443526243879380013730995039656008386483063022509363465689004310350622822894118016410543946745636201537317919561762625062199264570849219027897441564204779939921758986471397297747601357208581273870903371069239032389702513907410909594752815133629216507975995303003203726104820514070862342506496205301162047521552575558936129454996821825978001545693677343589725651801340679765663270716919769270053753304651195985142103533864754591316874472365831443248709784673737571135712651644417697055822569432412034019646368494620293026401957605131038804338841251008391967280341352377756058156572847210983320136238731859631342477017597322191288774715475129676326690968762217117348169174241574479365918467704431573211448576250757018157282498793715881240514209525451085139959937841597552828469299464789781457853618955088411445988392801413857037793846301028152041232725501380208960906251904000312108713448929046415179996079515484046081394581017571172226354034762411710687105809365889002531665972315267509275157532176348134443040217412928420454750147351983831047231893145590508759426311760898429971943600145761934300918211507080833691164642674076648741374411218049136824963337053818870319781605174440587826005876090730455958789611965574406369507618773129327544524069633384863564162008335411192015243214536923105007151935869093689234248709804527817149583684433515057613779167457036775246184193468525711466223660270467557900285406298475252449489919055407510980342072475937009810238821129554768539322637301477408908721977170589536526784690475882159136092820811510568601938884298317179260227195152593577005864914034901680572895947874343690248461530412483757829540892706987046395945919971060946656987017737774024224012937561329683276045747863261476984634515595292567333218962405495099862932520325712583209941153231938848756341623770494058371297732446441114153098884483303920479201140363577030415194582904836749584722240998304024835668706467121100710707284694078146380193061526870593990675171835200644612812901709371470365885600649583797691515082807662183080740714718523935975345003537666024188453226256583024549385840608788853229215687168261746298971639913780630201106454637587693260177643574113693133474054078351927666580067900462463785135154538142527170614375071985312616647322240333407683880452837534284283338588898142123413988761076717973668789476996650540574850631116980521638243375428040815982405696330517368937300383502425108627866027875117638727443867008892291335488749142875919209687437509722908740968816201830459124022367356430147502808421633760659969938205117360275388878498965726279696759000679627072133978262254912712388673657102501756575669716792992347709390613528547212730233103759801688117928780329989777737362852499466712592958482702243313277211951091824079256944090311490075949670077918424426630112341580729702958301586170552352369306592278442699503441350262819489277842233838120414322286345460011913210177377207595226609239738928739751029543244142697082974781613935533967501686705281227616449826647362618397787910126801387844409555303026159569312583098027147051497549704105345802640936529554234165294448900248176007135570464315813290082919602955890655092109377093940126370883494407895338325749839835389758396875381262079067449802364304142813843005605916160517087181082255519226915294447022408668492691336400619434794917303925929313853836298831208923409957410684644629858540959107556243782032197257092715022538594665965853557590361012964819290285638116123141839542159140445661202214387593487884157973829248476102202182421215632582802011500595541880230645415430079404202677438340412863914772950995520812340480992269094385413476956574041780215498793853195410056191129637571849950766875368485899358642729645353757793561657482779057352080457912470744199494078433978220151520247295449418265233616022862211358975601426950737989256889252321874383730013842715609664742536211393002900757585929611718799755293646403378984397032344027906838417169946680061653765411009918103312763168850132546602252922081446943483400571137691141234772606393637451353569640106642808253359653974222923630162428682996630497019328658939606536038389630714862148613677869954244783569373157967316254396159165071388040072544347007476502585343362244932897699903943088645208898558436972805379426814578560951224694503448320547430828508540609327325407008897547802029825403990672596712065169615330047025337464966969260772963014777540056005510085595769817391026132073224486723727709391931163767932751020868436593143409767170363691009954973541215336450370313220286204537444828778842454173619889441573513445222313060682060961746294861919651449551925230058932372378943539657785056268492378051612577134192429565254799263312325136534426329732058644648134408732205605673161155377091986714043459989747601437650438209544274056294477023381506197551170205924831460671408042414265217204783629466595398024488478147953114533996362929600682320985065502363085638117069714462637776146291892561900580756825790297666511136781672086220061471671809577181543753769007904346063088155900025666821578060554122875304812668657814658886032660457161084304967502719932531434328011255069717231517479254961517104998379747433886447235367632882766418905475832995763605406172398992428104585504726556961171279281678487685357418134796035847552912697913614614136661217417672228629941385929153506473198065648943233269229726978120938397568137325784091078957828945296351567836897690692347030932641100040055013145286399804322732399951617137626995715373472012678898114445841243362494913439643832048072196118888251451265751102034307821174819222769677472570875107057389958901396148069331078415574521205287884673079004011611314036063923788522710152906339054435172862672661879145213548752842104943612823640806303719026307928399398229445385215674444864940905251430614534826973309396418614058963337760775796810916598356593708770120112798985615634820729691585145426211286452829688977040748031002258583414238712117231381178685223500080562530842364106551455424987500781797283125313390356598799688237572612514103173713778963937167354021039711503672363471135998228527350722604534499200964361629602640688587020446006166608438954947637194238203034145576890675023671255901871223677453316470885366082217491259842354838703623208063224745112650814915162033435012333092182719810538324582043836697366594939323847419144932038583772818007711628141244768830019654127297481199195699567226228081307636882799069054048449512834896465962295901833949608107601586962504307326744247113883162278517849388238057962164372317845845129109225622548691745142094495032246396068948538857044906209546818369549642737368362212878735581362129135846075493423736474418960099602724339053388522220524075321610738072675884162203369314288139107412895402845316359630985521094804109811243821432102231750808964403418864287117733597285646943756682344972867280421098360679985733671239772514701742686888400037092526178743582323871569360525735309979579999547552955486680048143027078678800489024605832758329677282902130120509215119724005254316442629112236537292917026453587713925177791069111524466479922190393535602279784588697015917744094563620211613220520550883116823354282296315232530759455548074762262217946718621791704040170496451586070421558315893389804482034425277552549067843548642836439629767996864356596045316953597320343994654045507644828155922669544601804959814246982714768305511823205281398420754564491807118602222646474368461819209040604264228072297537831410478924015833189991307750485816352994939250317001730793991764700916295848035113123090726094996722823966831886960201433949623670959639848929889772555316556064698052289350387413166505383725598072589376887188345629908603106493290018436371268153907228583881624341526884247192901661678266644960442467316273048000230608021188840037924247216409273355870675416292487905713120349232828894455368178480552992681158853839981041074267791841186588306302864379101600871491964245008307572023078396865809241435147612541945238659979502068579935489978188096172532126322827854024039676835215701795813184707123573590779558592343974548873577654300603254140447177904254664070201190655502940516894463592620174259682266161569275590069959294321461988542041100470473876236271103660511290581399020232380890794914716227801871421331968486159343707977140885247476643438305927004004489203609966184216734350310494963479664574192549441731628176695927760958710383927422975799001512354094338337348343953053448377745911808293935551449439890322067956807325121069919182859873711831441124442219255985263593287240089270353951180228207901613308750297783945417820669959659025845419785763489062835368069708526487398929018259263656948123010780933199053359355900111788148037761384153008644600214718221529120200129453440059702686840359266437461780882804997617779872959923536209045641510242627956355252361976101391187519845401308708425116915714429149873125509885325482484002389031937350347530672119086773344384642704065275269819554646780984401953152928787449295037769022943771139958621067159206931155114455351577600679807960900252500669544559237226230877130861050438349811475963900582074679791519880718232846118488376506783054319991188853469052581439207089180558770454805406595117385697813222175996209536343922898445128985060568635573197376358339018995543711298087234907746250729848064953616626168166506078765577035815710064576039024731349717681058708709213878165612005086604235317341304273834654161193775046923987926471352784837992304710131646619212697824352256411213844240501239455072563600381230767250369843768433565923489494070471568732505686711568309804917805775441333063062417895504074440164703436856137084688405463999412664953604622685644836142090288834984206392848849514196174175965130619417813556726038981468948087009317418117238803454778146611144757696433655190235958978237534557472714631617510965568345027672888298586937542499658514398005961842886206251701733249944996113539936799113461681909189805195100426802243632501261389738066707501528044776496935266929429776528153404237257065876500610593097612633096926910660371695785483739067241534195980162007160194499704187262183186436462280346387706466076067675091313817477102018311074783985470783523337736795345419812645307450049650723990276669998149714715866233994623264571734276309777946062143123578205735318155180231368386641784318318922703441829842581728046416290478195980172089905080861547454389315859543283759164072302789547640032939926882443770677471430276549426085021632686954622956395599474638844547976501830307177872702341915836874719560250075285187383585586690061947712408041634477180242502261825523474608820311627225283587620999718943014177178069271551804830883442729564806659466614029394967741490632479134426492396867887206790520119799833892350865539563744571752576834625248461022269176705267320922049429608341812416411024033902268375861029800324966626734042067944778777796341354257876259603478689802827619356183200121463519828188609559776257404814009643754046882486430230777957857359249351035711850882847147119816186551364269748521000252044413665313568152862108662027824024759408438559618257066752306148927207328570653071058308924561543360363906970859645533054404183660668275736907833764051767466864231990259120198510840006323215530727903912238876581377364217333929989338396608866905833954447478368190971512356215122088097303377822123710982444948064100786490472703912084275219000936860846837536784076063077839236118696406671126562154003375675260416786765274448148570246569888569681849999013899472641973556749894644875531345483319550255337568746988534232279078278226628684550957213699489469785237985796565814988817608213039005105284973442971082782225853378449777170715963455575482114751281560871423967140079673175666102460283146483627958914862047559550694250006781151981824041867299678294318206845433056418457762298539355433950651831993333445418817657416253343911537583590767616940661489294215897880661472594700794110271492538002791771226196107312044101957626495776626976854362074466648024643041986912212734890927660804090771419770648594908913244720089196645384111700729176944097577403429768357230856155353507087479983358266458624147100420451640002596412896502543303943348199864602380276321521512931425571606034232173263275276450078355053274043683787693915277928880012203478156162291792693030741147853110964856159935494649890949252509763976222496636332622007317369742440145602229357256326048937563388906897759266777271208556409722855004676334717769771557996042206839799289575428958957003473193688676046728029446310848014525708202558929724352035961848841177442341156499375694271379666748872442877318759760986722305394425068869909433557028744758381427641191968924852968469943323523275899755013557048839415647362214801976801904883396747860026862911615821985960646277261602008218746082269182343502276343057630101739320575424758011838227677531228433184186999234155765014334546035387184491006728361846965740957292813134136570873208807155006524299310612114619627849840866591650299124158581469546602448213014091215146261529396797214628175606300769613821309575412373472996924338363362208437935268862579299651877945675660376820646557488394357331954849543305233864409236412535909519703606254146731550788816451619932396229883583200854905837913467449710724576927605366081747690875345078284512139283318749614704393053833130661309981448156750777177287420544190918482000420948067801546481152357682843666815254025612746833884342871178662146739702721562535992727550355755381529335159623967131806112210421676938856146272378463573358586185124068363652575202885180891655485313792959237461156709458766543612785049444281962531486444647463674029231125767294622045239556916769699825409476585086637585378626470863840849635374425459330753363871268778792195946103023963754235480884434212886797236182314102409268519987601549312849252754913183655661356876199447662475105045253923565025705773371667679473537344100559038761573484877950675758393170359689877885219779373275117869435381451679414465240122583923491296640578658743433593905039051516292787920667384489876120656628282720750555868762869583984162077765359924991842732950465730870889083231606004119507779778596457943490944473622637071004636932751072464873696596005007504677194081331269517769491541949324306438168297220655585807481794471791270590239097270733956751379942120718546100313394938919976877807838069355075399993909115438908798109706567318862285293355086952989732579065368776325304297032116580259117978314359714131073333472695466974361451068105692526597030080469312340340352427398272108035605919941745488041723511295980851760688502129082984455982238565896925550848248126476538593258381581865169858694489140180752358060046706649161153494435993715949284376712372322888426801249754000163975706044421810125798464672933582424019233292692636554304502140966220883764893885442003469907579967183746126774213081304497387388329545602534842319702459813705995897812603004710496096864118494539282580163404777864737617370360874990293371320763519873790375455413196468731899107490906959789349493125586187447469043552467726764519050243963707508975649576673900852133324782195094336551586398861538376040044809992235173801544810644750719684454067835960291998654887862479329994468843686477529536956130170169882206995801181952445726371569747367019403966394499180934025020939212944938927929891074764552685358271194925253703616556874748560500601141216876170914362911673286312624031048066290009832962852725460401125981797619570904242990359182942894519094958449787778698942137103544524968057853027400646543849101819486548035382769927753365706366755771796662949566858085760212145338974257935786010334380879019985618793938148454615828049555907299748772822685583910822970038292418621692619660092838455279889425007142224888357713131822190739333344069443217502290504882896880159238735909866507093481102278741960413425584477641261795234173303121251647923766359672492513591715971183392081597762375934925731244758489887007642891613463181603573176828487025078365150511858895266196247274756341073617185661581580056243889342109121015627608856675993890977699154541158454265346521914146785629568097431496626536827021335915939102071976377756487618864636077650719384473334602900257087200545362825892641301456827362151790960238168426314717488441752434176420183056799347158727480335450585506112729983336311238203496739109142093601420828118057119420102899345439770048869835588322903108862959149384330110795375170099174615610482487652119916866424073535340559424166884983910899803033809757161586514147522302247805808381729895236020397173555709820650786955881618484825606696666438398442223657956178355459089008876150332562860927813442539896390048597127450640581091203380157967012626769530648031714315768081208016107885751753092078165399902802899706511137887562082510399491268137285236466185148871757286097865354123861688426136944879379467127340492819986384685240872800212085047741397117835791490367685825496813299828866185387796637171142153653991964174745257788747772623822801362459179509875166600052488000408826149817258949137640509571253536092862376860088169743963267555854049607461224383495065434214830577110883482792277203002379213121536861831580327341812135425791765890964151488344311150142218092356971366587734461631488014613999101194487923688445076151358360654312353158903011239515707807002144735963214552821684124877290140036649891884322824400382533753400172804620824133819304398563058919413652888452562863193637769765219778458861826518135420929102805981247403570574077935161866869363260110149584051264333886613030344426107393737225765524299237368741097223487432641008079508343504955505874625913314395763352277948283585728617745076463073704778708405875710850533988825987035373363034099441486084307351759108940601801690928067020655789820679343962003638713543452723791632594532436753565115434641946974581316804323594394619494074417290590490307329166957458270091207680443465937732392965284515959724317338661448855571676627356045322754475307799086015072924572105222057362897871845306866401744435231433184020524971189715357166717866356546708568749606865272866991507932133328409795478500001291150704159638822262748867520812324087034274498851768443251462455263375005918481272463772850982082688433005465030650783403780389636332628032575487135528574495899886024396547945506893757564864486775845418177659058589773993187071039275305087422736478102695535484324776033231181976440996263163890607925127614239738976322888694895613897393677104973705955144038888507654997810140103052313083479472524444855253355408339534965509863166434973777107154143866855861513711272136464854184584947656424365758325004833542862877595465700520562641639071899515528710087907453259981579502577871097626692666028114185256672258497474425783758276263748223520220253499545690062921022464510548500274295651896518739380011367004935423867651096194746310437206707686867599421897724767042900780615303527594987675041563620295821219418046413241454191768839988431816797988470572674924293462815273508224292408292855880225585973944933831318328248317743049678748816427859853759629305123918824793362325419777226139133076516772720387943990005842904032917819266485454877955021795169956806945869325025971876338307129589512679072383689781527589480921615600243209862401911360453834136056544666165543702389757211325073704440976675919631468196035104176198299258871897785887061653184348059160819413285946622062220676225571750933296053741744301848383665961709590069900160129237449452415158194237770366418421702610466635578892171201822404876214884790839728827296282952985143736068356564760252501834758584550656912792476068450263671564461893635307119580745891263241515657413906943812178814474248592258347070118565598219534917387331167422888462277704057090794102716623061979695846420013728453882998550274162949052527310655016670867300951529227411332546594299910263944239954006515834549591124600476848823551934854029951466983955602312449580650501263714976900366622931791025808712582091600897834897224201261564778153191881973261288793825143417920534881207512594480382976891381264518049235631740263614526423871102187039959645262473146198480560785933939285399765588684140281142399114684147750833292946051445440526659133060585298050175144729066858338941154367206847152402113554615982126289349550832856132451981601868318021495814729521603777237286151870732617552562626999133539284792903595982026003577653151516322375461427714578936139119996562754559222954544046686005525799413855575109534343959965982502306885905885961397291108794043375242434084948299896927116683753050641807057398954359899973693291254050202583448362942193435329266420403944153901533040530655896173005059075866688203529584707961431648834805537660441934609668166231020917692637919202967859016424618865882311488529376415822791921950198392752677043115391933986559221040816471543687758784007629650565911532901788792889987153728910813004662299714429093107292777485600629504399812334560547688291723876773269985407614104946841171376268617781620938940221534945586586696977721046714009719760674404604146974616526099564372663226927631442249745455471316774685254201407255935676100832516097390803937894839708821614642398225030130954498747520858341710405181726781019736923527885568571338325478580520794956258036059251864474007970813638924890262896737019663398065427053232103273449777176912266386072092213308367206946156549575284486951043420637544444678206361497564451852636737385173280182732848547280489431125645813700827749486908319381088148424996627653353375182563261088832727574962232255145019414648831685574075737535226958778146538005226714441606153130342812139235546748423325131050043295651073659013810564657453425347113366493612104267268768006045090092633200049183534649064217070087184120025748927909866455313820373443332021602056763919276331040844463631348153341676302119546578244854792817522855134997809083163384135385133117982991591986936224141868937083511379619342387897387386205030181766508646036458161176030395558067045157414696907802476043580647188524235908850668711540726498603309054657834248509379891931495388970171373508197115235705851379194155799192709454107650833972833270654478355248482297433229154169279689081965882799385407696282037660629361989877370050383817293160462360764589792745318832614450628302717668742196225827799299326802127935179488244714333228752491872676320379363454622207115746660891751031043027801626978571779726882611455475681596256927385486444787590797006851833590588991597750628504261448389918879080014591311925365903580481924443225721426972890068972573576864322357168678941454454576112807717498663979386707021151959554274492500265874900346122709951014725981305352096982053702949310250551043933212518538377748649943781944848792781138461167768475729787456969278296563073150037028132433790536789869787176653559725366977767957783822163555569689620312883943184780582662963866668751565087537897739886669254206192075598128465397068891312338920927764312705099827240551737131872957624341568301379462216397615323751032393550625621495181408172912043018526769329004746342125475011877324884010396653712248295468448724277441042512721948332489420241470655803137529559396613933453722517262510342662292301226800644477367252690694120563859880626632044725406113111586412590058532584899445345608755639283516624978885012006941139610394712946111932093484112794670529542665987275156176371637939491973084025607265851218515676283590620992076502373215295224024317747865038999334347864861270820415215721072517666431964975190804326154511906096681236567923021617165487025121788758161671316479480185494489463711187959624555745774070896512577350465126099690070906401148775877939062180552252969836210058391094504184802699165115313615727462794628544444542686670511908400683549560867659830458950202150610385970594646969549043884378932331865941922496239587789314852555683766654018027794222426177567624337181391154510827153220341211138513814431279806794155210792376813653961167159478433769279745020076103655051159716466274761069087907831943734183023951200691220927639924415552204379158092353506748641640155841262152553984464135468199587812018033136422936351291247398081733805284379726935253953187494113897065530720638470976695877831844873492932363635553256231403253090866365614629533580982645619443281153772318413377148523929535144681343673923812207433105365056247245213886692975006449121736069173474167875999661276339260658621270754278239160777896336592895325975218793181767029207953434358675268623950292524587493390032741436187103494979433202467677689398279868397451158695982248797571028652587208864946562205850797230784972942378494056508919838382418416476292404069809060937377905897909730753621176933701276689973673312969559772011025957215860771649098895319102831067170297927127400559010159797766372814647948090435093612170691387647156028816097561633588749397252345697010579858163791200509000573678655503813865197065396853122971661611549319451386291168425783798086084078715420904566409559030005670995496214005850940008934899700815015129488410551212622527768293238668794595610270985579575515101505266510635103022395595401479819690257734661638973800954623467762967504399291099068788920488336732812627226143960146733776174899487432669664319077915391920762915957693951109037380114841543554251611474765383217770856414487521660341341140398446839618058513181913556758628881267295167703693958731888411396479137660904637247514505209572167262673343660329682031918803109861134534680977763161637179143438278839521779710337444973061974014434970214120074321939950979566667193810078880501609106777769274201905838567617236850627181905857730234386946197295314286690599301289488463322281556397502371122137425447873930163777794968739170205817841823593790051070088243629792195005515727704324438399395465613265821749204025448961454373463110363733025099728209050984324348303512099212238373278111945829413429208263948465189801828377675034265649200977415463895100917643741501257489567294492412372217945912860565541504704107074788853957578346696833661741236622960644932963426797026901681190821540511992221032090474113769411859020166118236372106260868765911901376412087584311914042119282445722782954569355782100668621813395645353015348071537974181181430861915487381076759396847284450596869334943287677716657472310688462314214296254382539992133924415335400798405634257943143959050111076893934892502169224143946447236389100492224684205237042703492387236319457568131239828739229607841882130752921082687262768700975431360380625596970807837901346544276726896631258017448886908335566254996020038071711683634559596922394511778895950534607933662631748324216235699577619646360226260296724081052356277815848203721054322428323027577082807064431364197850525782671524671051785659927152730304480492626273740512487743035995927177602086321842065312858085413434621133176843851793970031215299379354872253119017024819657837740300286430699092074281932487371923958815386143828181544353212140147687658926573173915150968851780882342082034806275307764534410464900063356249285140813765387999737376523050540855141685646020082200142899112531743723490927349555723836519194525367692940892826427603391292588464531448464086850411451899627154628326926859206037501729040892436000380416237774247436117550210477000992115738720869618632483368251686368688952716182021332308745781114632067412140691300113567585639224945222521351853209265333879264058411673896553720142279080318931872993844231854705242981052328933404743631664001827772501909749991338717685752236804888898069115268796940586632409078662723063524291632933442787945149306459877299355285653733804633960503428930662218687768554516261928969215493312372694940597318503572906204141450175939545375431604943909284071250207280110421169399357806522091229876203687857528601345280656440770821358197152612482604431777626837127913920747585067595673071964919600813806855224936814946564766170139580882310055825337611791640611297591895719759757122660083024777150634143981386655030748104282654787848872154611699699606192371651074948141989158666980503855901496929204781428118305195709421456703365108445673976463705230039474238806312420524045510762052660092391187165644843908255216359691728059531066398433751402343143382474364890597396549237861508205048549125657612543214534201871591390832976787335418317019059007145239574553398581135501938990430839596684120297845480073411252114125269419336563954310368986238597797201075382547661596894242908378886971153811753700917935959533147011841729271395122108750822996943541148107429871127304065619503964632106366746710597739726270538508224215614394508748736311439926694506518272708766896139120086641383745905581124375088802139657746054792566815004122460153815826543923027972960662638725887080447043678259975934979474007667029081498657199921342184469666237255001375208774158855691456580906309694058108898443194156043368548541771623209991109790683747336703174416799828121494973969776533956556401506165070963337206813121270975633581793350592994501434015954250233282815742879841192601912745707788416985910113299985604100336548062543150823975984450458834455034560708563994556982662016961751683873675907946119331552528775018696000481882207297807292340555495016172099175122540373806992444839007781911363620846554653136483889444231969287075130753943976393997134391933909486986801414479110406514380714141349735799384012660821835511865534604363094291753055005993594486292462148447417450249172987224444630806718288827112575766120043218078976902675905725184897519295963328009898823076974965710826446861253782086304170690380543115802042972115393996421634511394195744936340433372814085234395299631797557452084956348461113156422293393279338266837938878782159223385959700913535523539535212535410108639760942306921578522737216445966316562153318882967903566562096611731073144663944065270298256046788189740236417990059368139532966073752806399887500101386145251610398085587125534935441102233991825826196696927786859441376157467247585528928759427150000978067639863272653481451572632342479225372286042380574100711095396749090638892308323167127298353183586727434487880563578697711394974834078666884727789863617377382615668636491928675943299625916112558086796670974578052671965028476074897086372395954734622592006143204118294172999588136499080705109633602567178505594302743710181227010943035447065897489116692201227315041897084240972266530300419783984323346047065893653451674300517086464293626420858775610227415495383113247595180497521099354875741028184832697437580596177261616604613194643877336824649257561104330445224031621134508427016106099552524121516696131186492876887966503414778715270592534465968905909220072702242607493124404244081573307626989742887178224894895131030020017818408108250980320403945413796408738869089430514617396333461382879413218175816027638532500227185695195335040006833375868710735859235234210097964976699735829987453167984653590868935557761149771368658065755478201955672568034624694424225712819907068217687347123749296399755669250541332181565100291039773806628920832970769819190338847400727884453473751792562971737830312980856235701378136824493920482624557998609252949720795309831199979518213538435158679576621307154879770491338038289256741572528507981117182783722017274997425272445613494173976090105432370963285170526920243074752569818491039396666654315704939680726620932836542501865522330812939923814299070682253370320955341810577278590464498688892535640202689953687083977519290513656461443946277083161217128243486797278196649827485828706401282285593416219068849386527640333331360466569126625732937770463146431598253309553648575309742119835776762831574012403164659658305660471402866715073839252021353533784455138376012629200952509015428195012613989453101755035343575758548650605412659598718013409060563457190598417025398540806969388102721825961641453781321408357205709301555408770877352359581772177544622656980429962260402863615635910510031893983592725347059803332412663099269232829045135627572409399489767192298873580842193218811254333634658968377124407529002120296462015831690567948731793316618675626028358417963756404166631178096086080335268948366464962899647654302936653569193940156439879431928365882451997443608602625874654174949123595492534477197676336336558891103782510327864952122405136010772136165416533301870195932618541714674493473951817907296170496795790235455814439140113797920554504241391627679813890309648630929906376871705593406312718038548440876233325704485842397151492467575457533008670125441310391709595318778837082687920838041820838941969645090288741046761623729460487244495670391797635534231384238318123246870122955608473435854116617132008786096608617931575435878759391246782869390750547493364657769277043478702894218316162451022259556466565867510041507019526081485711996139525714276377347302213937056912482619423917894648017431554096651109008012692585539979274385193436519470119364857958003970321502372317085414522662463894128390391230402453980888739409504419465248907094428131468760741232722650384275203894071263022633759553062207456680968770339490384805454452945117893680844362203935688826923831117435388667849726878930040955356850144123810872839539087524754629096606105797949307687764835272448093733462185465849889154138739019135281234101189580835012758518105988111748872777217710233828834861962045661608665320068378463164123515871470569263556353288024191147786395565239062208575913795982072676268802014136006514885225608806550878609176395525498331807861013285652022679456014013627484604758551510720796059900385989595816554066535147911309407049065685127676974366964772789788015781215106284504288414618406980834785332191412599832843714076674206734971466873575211100129056794577605793284663466039100744353748583911204870592621535908927993350633975551638885920838342944150456995578281655302257010231556844988437728846660659051816039493786027350750070662120263356558859018359344933911590721302437434651798943453946999609631433512819303938699123485475114533520744432807303537466655715457433829123450448731282791984301925921787998862328547620014238273472331146189494630457001283918519022075234607432629374652569451914520864918327334044992951739936451440975399083728736493925219745180015246178582443827182296339057255269467048987526477534796130325241607061355769073261033725297845472635901984698404257052482048802459821260588611415092149691277334515438241149292619901319798555226341258460958433680700174342899720691351708234238977566239188050727333557150388391247785597521554337215106636393281215595835456276342597691027977428169846605177036861234200801116932024824708221281606145523060460724341783960060637304338731300870044776795974276868817728139112224252567848063086127386548762716433991574332363861037801598251386160800049876594606069513548893281380343264349846563127910037912088337494381505069269567026472049381391026269634348165155745472363219925254894646321581768425271702586159475453676584716563122649413560283657378048632739228069720604724197091134384498698333530972305570587491873200999783738633580669796738957756642882126067205182543880803039970506860653819103657235054231037757316527525809240769099638836088294180427578650400493908660973913122152829396219381843118607792991619977340910628759597186888586779978116953110739925073179245071339410143704165929393355865733563496490879182262602666795885976780858377149480617358088558724547563153106645263787215768981341152685613046227826531496886472158310960218905692831756292679187776270739508540307996552482431997712587783095340191541359590253704822418446724379957079942013861102084571828594615142278054244490801341506748030210305772267226937985348441899913584518173120122972321621274374189790055301266089731300684463795318661739079032615955840527433306863027749620896935134367106769449532089020670096861441513120104842511474537575803984620106229692714379467021015649896369846609081353348104221291015534199376466050181195411759787187805240156501928968277955811751701233179628386914269866763412589932994228013136052922915616042331527656777594755097205886781127339350328623669848600225809251367814279541896488840042354359116499124313925590214624898101091821022220067287481119760475381376868889443041228884458895948321658934769398706133650145160639997164701667620336156206725882690729715718367275515047950261368846388281283248977180603027568499936160107223493371418683881113836951913456488104873461341548259890444415994704204894238624069926584070985651768344881031443803310780797504759646401657163978112722959377590988418975096582453179815876222695485004899234183070701996230740149985750009684425020053750877156693114041490879970081115515030200101069609656888833959360284733776977951468588843191906095215241334150438092452077979410769483425108233883665276191931326284054695158582099507924848914067817864074995438279985659181882717424696266767045700485025679520840460687878413296239073366257482024220160616963169969027491971472152499281756417889531038962218357446045871261340823170532650644012878633223388612042196680526463272711504147153405202117902205058097038656536654116676213309027330650469725520223856427585155013676385631145235184394917485359178913464039842879725062693785299497252265701580325790398956334313208762844404411272821560121451137274351708984052447112039268006105755817885820392639077105479661653066588889161357612767028679145857736451651450189426075718415623408048952912180935844903572618746476497452581785752795248834728582195822697891843395018203031659469248941446608486775698667306394460256858898465161797026183021242415462522340959616119212876296187490244855792467665446409525154066365146758663468521793937450641163624066383656038270895172273207752331026538547783777409649049549495809914766499842515027926663811974602811048867158352639335458804686021210610214745140785741293163590179455378053458062678653945443157480439426772521524283288919489669162827485392437138535170438568266032802164425139774128244294079519219268263715897455322396847780398188513937231537517906708736845970974634522361356941752113352861177071952998591912700894163539746137506963333709456109434771576881818870655031239220369620469927835023095184818078642997916223118378140564500005036857993562454555612395229062883104582489475079352848963284640715176073840157216574736484542465028985013786770713523402490588963741284064005629309269948060533255155407216438061679499156920070403656799220415019214791247817614565842487815726850798338530019633898642757052342812060763199936729269628552449204406664764834990609509266326691628506545550872260721688561086410045380533026818866761724479893024875077880819671597475800308402913075557376157140718797930972077231074468698327878290153542777902340152921318634208782800173357450287231656818791547048461445830900316293464987503936881663918571631253935528573459982086086184367670470029397389496091972827259649121587491320394427481664915356496012430244622938548378031482713174815226461576635633806681968809177459575482210234428125150153089579325323180247095189423088556944224226664864161430804656753327372955491509772116590177612501032219146430551597609209166825940216248591146682978584180557237846740394140473712347263181182283391294674527956212925233817498672863677093085675295696060760709986917844215174068950353447182364562511534467591127927642710813620332348424085148924364333976801115586667091494252179457668043983685270422696076197698426901467781252507575348727729022243265753202729018907927592018555882565791164983166870387794439965731761303599305991018074326173450662654790069381954392045109424824775399422724821860235415872138990233313365485664436198867211815187801949330838577504577053679961678514904290880646766682573825560202062872538227999015502898863071500868963540451287422235111643868294873683588949564907711889121604220570204492899577445616149247208963766431531792781223418813556286265020412821433243438344494580993204266267258476318258097918862361623588747895649372105542889523256038918503654656372791036610096544132511324070430625564123325878907504484711239204179030686457608013086637763903922563752844513129756785817762391748007261570557702199686825065044479387303821389402582166328538229027034909597277263768147761781911596851240223392411071109551050828702287159080825629712776028911750046297519565247620424479350769011309966525623786149140893326100774718776877482166439422018583313748458832146280294030763276503669519249578777131894412694744739695410915983456190983416259440610166851920682173590952447238781808844508119982932202546043793675994049360457101959917360415312587649896863370582242628202825859985063556031772866669079138400799023364364609184327742859166852209424584327623854684480046342867101199642189349613909727570678397190231348427542416895809785153930305545313277372178441947869899503894662955719373853805298507432258941774133629848882820282108653153070301859717858083067632539357958601564505010265443613424898310576172137906478657597561811666194402520027845434253129183349529539256236085294759290895836077437187227257742724397962676740241831166384136078337302262669755044494057697248312677803627112135909765088812861692902484083212351411695042470401140616714307544063699999776921942224377367402494353445888812221540749760413183970857149372100432214751302495638478500937493376475776636159305377711679391328813836560091796348895691120258031732375054788058460748460484286413440059884717662672087161272107233189426409703198392757692544844095985472732075079444259724906233762957702745065674190265867926506575442419168889057043165753974781046817138544611031726681642433116791633395490929506797046515493827510343705265146583380557118701242136256611538536282876926501564940167791342408367969867629071214872492566940663911555509805741821609823668750531048736250818938732178963565464514309844535505421562827223159496555859682352513843620420099447130224602229403060977545118687244437547967458524115140201719863936566250851632593416609133586411033793756482545503043862674665958674026758011469589177521237640525921471542638983540560876888520340327350216268558072122122072230130513271707733832000578900814313241151237607155282963483944552753827860181401747204518002084947365506787144793192988323459220216481710683601546277535972778804154992739327228037801816853175789784657916683068644615851522627645533612987289529812175868914561803626149143360041150420448991566737217166031033313129991686957170309861933060360630716693224516021443771105616808233792954543271567156980371003153066748393669404450439786881020272692033250898237370513895577774692868528594732594996763382884608829563198138463959784775688367360833305889056558595491340941020207192361230235846921893682671148269580473274797091921920549852945204613195832159533229527435118419728166212270663222953427902237720690994628314780197249666147918379504662201661994908104015771427848121404953611661809905190654635941778748695843493375918979093113369734032245611424162455475194366829304296113640252046813332839240529255151576093245949349874072629012030404549029184914478230654340216900659692040006879291749655478993128720442263380933468168061918908325230117957974981284018253648547797830726954079425001021482121668954365030733881951350598530002946761060653647527132376450357829506892785982957805319153206194608371248582484529601109321206801701798184310095067958251456194986372185225747486124084039206214479580768476205994968034629086675341148459293100120904281159579318614915602724713261450309452301548603560105198821915423312026955375660849393479726951933700972447879334510663139332976841348051481574176300403145763196154486723270147769406475302119135433683263488074207662227183968811198144306053345740001724594103620775714044201134699652326944802208750371753567289074351193079348850311719465098186812149304227175367102769270112212137281578267252313699802753355447500826038268545938547134680571810106107536207455783509470832130463618205892538754500942003146504076342912175830227998413010019504880272067643070512349207788306234526604843917630803415207728314633994384613803618028379992174115734377395110771081140573662561874000186778365890512998767923975460270710197992106461224272381323336869555248639392336665305865960599155623091691702134339485212685599615759931271171311313304896553516723589030275976561477135909059146553121924704666691987001913341677549606205826028344674261547400018361869997859765556496399684941854922303262453647616398351097821203178812848137567765350002343234957037067886457977642263551013205772753005503699369953827787477701297713710766226774597792325358177232742476066481053037667369482093941114846501974911359496926070317137853759629279564579095724335358159452949359436993321450477960396293970169549569108084882020043242025879958724830011512783317291346250832968360510808986978013050085960770889795474697931661686427123129608526910662327485384522726606252983691148842383804496222017324702986532499617939291473495346699898041126448793797415901351368033694204671431748127514378573640987160748604412587486310968317122241130112862844182645085729821913429251145778065256052546549795774818337712377224874510739882787093611554672423793433626663246400871444542543717043065219412020902063200725677731079149806932977774084057504792422880360299121985240903090563931899756230536164270590836019555455697872442511961430016114419695794657479239465269372065506020513787678368780999472558085536519576312815845163946866563975416092002020148761488861132016013513705583945542241242920114880575813152301216900215629693934853252356415302008916679710714799748034032487780901804635697000286712068721880736932899680593697982042232965525374946801904061804082804600657291569219767565135697816996225117080773855700544231049740929436050484272655830079295168458155678836393012581458947584804306094149644339470256842737418906870663722733883046382078007395532293818965754009923851995922042411779051654600821882128384249353391574128710936182568403045056242497239420459429790141052141387339986243364640260008165776291004672475021506970235369665255494380209710230527317277607622846045411314469226461095568688467621869478768345417157410160977624643612397512419612945869017492954849473099932751235734154519120394141415971845720722667924823412079766512570506048277262317302958658825358122718141611577198951196088158279210645242531329659891993697977259150788970219697929029130492046702289051866142456255971118626776673066087413099482476958206467109620507455297286699227091687873070365034148649183267774022555734810090476156000009200422029182660677902715823597838813295794871797054983913465081642855138441622611902742470567734907284429407408420770528050020980639386596129030565396445429025292610821855794039689029502964940522450005399590185298633722862072807369380923222361258841540157432627672827971138305420503835081879781220279356228356135627787793161421507048263628742414125102528375066017148628107626214657176023034512240189558738029214783472784551023294963152704087586630694949770371006304350150969044089091037567586091989562900323626803554201035760550622584220777717366947627330317658544347147173376282618504077334788901235681359554054700401153702942307154415143548586169105369713863924899915543298449147969826732086941310587356627653011127493064184993842968073345441583725794268824939190951393982842210921995360940311975510398308555809132775316208532840407631427592768688191037801400917791053603490360040405283506547551508997308464821973675912251625159346534437486076689624594160461799329146246680049483081287364936097325389822793445429285484718089350092034614749000964966545454530007039232877323833561157835238026082698791727560842433817380029468396277771325232889727685545976685229129820491187947799200069151797101658550033821229910085734346573915139320519292936583280034414814528628427040758072451543768176513762866236563735244882458074075375468196016509142971448220396506227294767892910745686367435776899258868573183360556767302731821386559977271907587311782892279357458442153565209357027686642893945694574755628949596076939998553390027116920027963700512588693406283996685502949448698969620526594163311961759679267836924546340619754255444227691251577554199253932219839858952312010925239519049814495219452018633780518910737806864568296516198648191063640565939840825790045223286819889670038417379291551775787094148109375144095721415644987930020831085543598000437673447030050478760100673641719374874564197043163360548672509336998985359346348377142703050848499263483832086647329590874154395730870607032949750452835469101791635272941171618017121577683469475285823232936445178311921940183142953090271397294686854199768918917342712106267753217588896130600215781713307408289707973498980972926830310489386212604532147811229059128088491134967267653907834407880485432558472601382168251139679048733245181027148801301807513786417061574150621147333477661447740832552163395153415040238817226191802000478010671378522252989491565065756890754959849650706085671433071093487347499018168164513558033097820864176676456033974017046737674751869536952374259830393125067245768029886766717392141244353718881430249689819897711018885849769569035638080011799887834468343841638029094630537482597117211248426868396180391646376017332390035125873543305922313564687190817859897692309794023500843792193813249331876914283156431102009454640873128838473224146444052475760679765603043357947637503947916496020203542734787169881372772271436443266478395202296945792720348387284054513857396237943375583289419911222935953815932416078673633999169115587499049653846702080364953232794403266764621620114912432047861178859373706376203134760452253286382039637708492576517055979163959232464297228107733054704129125156721469286096663260783917519563255152915769808296671881499743575891410673328828088255424069531463245914137187644541098203218282538700341431147289842943444961442298020947321155129325762868282350589262335266518616004149439584911322557228539890941977692420669763415874517959759490920640098906696749243399723346784040390976201678463330704348661971853695028311453837495759516648660312071441415574056398216746081153158981901383663684186454286004513546022940051645166041847557600474769582569021617381690990772053886448661592918393966031412340278371536066470757690160616146060472921394546994942581509453470769781902062667297321720732235951877335927342138958794816857682471162263580477565392658944343104083840019069031335828263102815686073649713008200256421400779876770771031211970983273031712149735338053917601967564037061895538205068202225397413963227704691736282769419717398449591204137860413125693614101465046218845807086151786058972644085412323834500262831823776636663665708242696386376430743510222490008731580149286914251333659189021811704906994981196060630937051047886029752719402758704898712325451465532086220712187310719589454550603228483033995102517545712765751520393762334854081202556483794595519136115592243177767072791009970286142074610475776100865432064474550671294708037095123526745766332015975780338686879788130843324260913114375110811497714956941426119037967703226662418627510188117141159661431307818324710222320253736447782090935114556776861960871540682439949974690943230665634085695565020360875719605641519965244411479475568434707951113482820799960220457366937367877703584520258706789659640886966772862503296399662702719560329760796650012545903709646696947824499140154320374686442318853398850145895000056294097570944294386385776400258452289488420596080067059009492246594049032995768950847297527682166293560187954488531728721778655220494232049315802177380061078577284179965642139726484368902527715864124482812531587593261380466817190930497689406854248720461084981371427293163130859843256594744768749734044789027446446937466080090462657906669181929528390764506838180273202930410736916511051194967863837586494774081913048549600963229313517303631449359937386739155778187795173692165104433040877657268155711827835016746197035546310888265449995512040780292198967107912252832009702158812799953230374928241433017884121771079752216674822323466938489772170612813283583788978168265663780840368004651330348135937838569852952156329534822114376581479884977076146520823987810531260946377544700610453014479425493692562204732228604041715605498673322453810372829609977444414495319886570153045793492856486927488686843973088835660466679980573544578467406219649198406704474892048331899146970237186762337196077894870302413373864213930274881781187429048654565960252507184672846138180906392250226515807513974243192639455891692859961678689416189560921757555954574130650092356992872262822814513862554436002806566422120569056813597399469677288786767495083342726981716073125897077047396353317564347518535433344536811846146800564400755761872295636000780817784224678422687363531150848902169076862935147627861291689784538257588499363704305047659757351592511117496978250325542914507756836548080208363582613003829812011216321415124595324318887022518113008794509836852765352787945652070004707808256704855507082171086979730761935703642098319979095449082458210178922541346534013834899755329438570357997951715535046216019993097356324372701983527061227786777591986620303163559976203183227159561662497349210345741353556942322548448496893246007614880065445681561013157222334284074016165998286867349168222156376806943079629731756983409779583713559860013099865999301119598012078880936209435367677406714174042680586218988800568233239401111291269542421740091609171801265335304341551159190723446444967554028879691609414700428279546081871668425316481459601517071613041585987026577255752730316902336323323582215089765820390248570020690601979453193190637526951514361039223487531630757474346656272646866113593928713304353440576942197452856260759354873294146962055460746082716907714637729494755955343551725172216949114870435419807088935510768496224558509984407502711607112392227496595047810216303250735919831765499866675997292446725525781696362803193766244171633224444001563714083478923263371461998756284401529386928156025392397564524841150870579364390876218784106834985356331794194573292834852330919946678381796708065758747679654415999783185071967637155322691245053015696822078277344516213190105073180494409542322678861936742838953719296829810655547754520159503097609643409243497379826377423305597320582881884828270010322427353126239874743340000975378207933715584699282419040543491733623559665633453689258975920880276586489657746444969556211980313212086538631729973120665173468712964659206495270694020265026667212733887611665676738785261227095689664155335576898927696576302860566625735405036884710082362889494394442655308465481787317338255479959499773573632986736660560067270801739391260803992975027742429403286273866415911500100316605560813630977280828777220453758970591131476626554497763654901558360702158193044207977882606897513636222206761694178018524881992910978706550240684103246456783705386777829451184348110007664486025888985712735036455739339793883623343477131024535210491241455266049330090067673314561153286202062231350087344730705400841703255282445612041781109400814889095234897709178181328639620525977210985753230594208997766170232116066158286616865966125802568122545057583505370299856632205860364750845343596561852826203341135637487240916292478006855401295729542775552855731561340253058717599521695199181471776911759062717386683023934059283139208210773908791025412132009294599131764012654450302574736512545025759636385850158649888175267905441716874985177027042872761223736249011829863120705512053884489680985098264253198042034872339281424595566608124894867121317838116793010997869640658578094630591381281801539899849648306915575149009475252984148908272954178764824625951726829434604371806496233940540457447641607360283007596698021913793582100360466319275187382052597384807552246113628030166194045254539890591920214446130397654184410672272374515496826022801505644721602162966859078582423239382368640826235243208139024742353097776864655217070868807114258584630122980273657196016744846841022619704592140411128414656308475306284374219135534187174214457841441389035901061972153358433306428450414511065578723348989697955656608957438060746247117653357088619983902470904287542186746472957410295360272082734839864438750436073287305824183846967118162152143720457354096748602222542545801514273664017140118523018669881883750554706076819047716627660166717320647375228149387089695020133731698046082847089269545388778691610702014191417261672496829535273594360633438627844956530919157451132430928621345749962868591701658264275269442118258374834855035740532914198827859964930339842616059043135751092332156283327958473684189933460982396452807912156752067699294939897139047638716530122892920013808850026659167845817343967439176812788546475522990398756673537918291715112780979126694990442935398660700116501408446647647578222542563431018444141930011802071736891911635971869494576226812304107509697549642623085269715043006958946997261126156807165632927454746353458742330431267505154016319640394145928799514422361421967120863571503562535238352144183998271528754791789976928577333041747213172409570324017728391126894876576969413119003004225488819639170754606062045884378977448059728963869142869232722607458239932646726963896581145015941469387403255069628743593293315779715442909064627795188342685149923401794409697124284436992715595083303090737728826420120182067518538268866010543593433078295375419875951818876067962749062804144300025360092933568953678965894100113189947193684208351490606305348555187650629855972920227286071612337183041380257341442251924235877157499517200446460481151874955505126265519598286014295272027356710934671365219154064713555942121661917528541049150628851469445607757144678728908413796432846822447754511084453775138600944990605555582912796594465187774480098858091863513447824394845606900872853937912381972954751846714471947997937379034175559648559848529326300303898210563335925362900520117669658527065218917079831024368498174252567185625637511641760668402997541202114534191171457974335133700119608754077459276358864794377626981854756072662337015507768235662498918705036983047304767420823406476836227242627207165396364789190862043177666358033291417111712820134794232207971225914123257619875801533232887791198564296562295827295725777008581733285171193114989780243312070856098854521131708031185865357144752234001234495367284927304488033781137534950980053569178947722302255583944821347518199827434698484465910886874168726627938346059876550816070288731463929864611636261754328144358592791522673042633921110507400262118953295420446149301342502347963765862929268533005770073541275531181872432421381208672484591021754672990894147390314282130888042988083687254913388590706827406167446779700845072975303677203906381468892051642109205624520613937674223299287721010456791487610038979310950380694247033124267595422120516445148113152019649557653004389817695832329317746630809544893038764692440952795880955268618290106645005881627629413589367987163984355487723051782738769926485777749113180803421891369263582975044331183441381820968932790088933662139780411488108907295537555067445845489564628537147258731043491472465745239111613757261338985120245679644060269165583266901829472736915467262003136752513994096576317881531009645668010553084007847203945735819051905097532258030309079571740444471683456233311581483405569504944231582722917615638107157309445978450466743816842612833281041183812770206347105880498764532157378029618710294491601560387500853174394035408680077087177297227130164129809753150750888969947379014409888802367561443081075470241256668262097160914786503882643471385252656785611270189781457949005450510058220427775204703452724604390203789203734619335995288192123061688241051718163810914648500470309956018106645559228152924039981091558794525257723058651856429185981271699310678163040163543280831376600855637932836272986132779956330690409251665553916118350684194552228479616685135980526712932158017331784970356242297223181080405745420484353506780786607981382200125385745938802056570453432798809303305686061339661465195413541332591906185006411074364502214564884708963346809109014987880289990967610633530672281266943820160658935342912579836531506262018989397338605383991801400729208234834479943066013557312363301006153555352948176446479604366283253840027644671068143757731814314073025125239102390110794627827627868771659780510257245666874596916809497137048981905527496814198778938199577476291932018019077683790881765085346784852254267674450372477551939971295354248046718584057701316627113652100386383470970209196394931889428772656973463378403745124888117925550197985721967336557287457687297041683735021773316734410699269276441903184929394155067726129229273439623421128733225476008685732658639153631849620407912410434989296762522418534909323303097436158205043418659941686387780356880482314246343770960700691476042058076877416886011175411301388512970431962210566789752228031720325543517298295380857434312928344374153884771082049750022356841461785406306755206954732000216744682175895131207158018290997129304310371167020306566865687956429450224899941301686192240906532733420634020465488402999475750060224100820636375448186003274241676520068326665438669765653972652405673343025870921081578400118581481325890610410859049569982631063303098309054196390556305245893567362427001799686300906232069222270694140051815015905185917537669689363465984947771316709540714434542312760748288498428010036709757642068050892498276925685169481453895033649032669113281813291259498088075634695100404524724152943122918312802967957425986759499883466089153448807167755542270206170583676786195790963127617477932539816018269361041286466280168890764452426891511427157823807551770131949826868660848932210919075521989977243475468934416207576561312948198522141065067912662815819951034142041952997233969510270205883964939470873370517869802709477006388030654655646752731073917514930138237513074481556752748167282666845074475258059942725362441079724717807057112514392233544238322901529752466859552732820361436563225620888149778461436702364002838817438657469598507584886398887597537197801670880569834327669506934830858067328422687613854423388025451333092831342282215594184855405948450840166014648096539384088948681265891513949464125476642382740242212442538670723396727272647304719909009455768910373107790877569771273168402264609200731906804495402754935409600426621637493748466714143576206285984092276001098470899759864376115703991248189693343338169814409546788161288075886300428420446563069093676378386243154717736765947583475676028754267270416085026609948732407044940213949089554565456626502977305611477462893578989334555112411083801062512391677117707953274946783873706425032342410604023343928407065183342816528264839129601901234476463149008198510457262466394525446953588265759325723644524215456225304107484489182575208321673912751268574034186688076584885704927427753052625774268568199692072736520879216977247221337690659009012291680251748807691652729508227473622912966410103831617922497821988619269699489114784993146812286245395463439255350684033120750602828728155676781631040531698867608282819092229568144558408521456771357156373075180604908164047267514823042808225678412077499439032715644722663762147263147652693293854609421480297238215515883145650440302363478772249990502635362174059412002524079543160658292876814967378774289744116283504951680905482931741383286923784812818664959557235046372924000221529934238674781318574445877633965203953655204670233915680442434776715354587076235068564820634290276430572683095093905531486342883290809581257003399238955627043990139047581903907322966989531286647389352334302884784797811649804782747397788407440695436686525433077957528644205994929855924637356342851567932677676354670268034155340856369217404166645195195122473905567140499461237033839684632826490569216434844036299665638755415099370960272383051491011559506385812238196957575925605822814219306925934426971417385149801951470724532105947021567291286740091866340434280929127672316306911807587679331295124958416300225196827866198749218519751990353559758058437329408734828113183330107311634130765043552006929041638157535588466059742269945289357829598537073804620514959764118114848635024427317181340394661432757526486870073269793284292039155671147754440374482250362756670178706347212791676944390061388067380843975610742244162899141359567693940551827627531164373478836266422390588548418692280816479295145428864831747012073099734578344535932925635985534321649277507666424370486165042210317235856145927487862845015176860528075769007149582223597204863013986662323816891866420046219021198493578044834829178621191040473318467527223221516652114521517260737905943690927069520105475473610937551034081244991930501058859695560001899696871199674462808934618047344627964308331498150832160078510735518432310155478125566979629964414066541145841038101634458069135087309476576346620603498601754964118327958479079150194564402889609690079264867338746920907148274467483399274137852229089236357617141113583216806463431274254789483362754162154167719270471675253090831599280985714222396098324800630512000165344922651229581129798168168654929203121915183984324913223984524391331133426545113726487432082276627107535318139365309447503126637165337167978408337106809818424555473390082700126136386583700360920993206879944629462533349589511123318284744866892046412806054307706034831057481909928454289950273484390319421917597412956265720021470724702453052329932780485996706194065852067112942601065027356777427201161760979226972519541222310331597577364689089261563475491744777766015406154659326030796673268764661259167715487327368097682828219946609937798143727031573548189092393100092293350045821426472209838491403023044254239175310158843978616121938458018949815902468407500495687266597001212143900675149749754918805101722861703581663617096016844550645491050566170651059422638689861802360718060420465795966254426765675440600681704113859701260115492503683808049877365606072065536215872170318261816195929427992228699588172752233598547393023703248121817482882953011216165851747877127920720499873485905014792366764585706414264567673841337406391560279836416161041335894805095006867161908084044468111130248409757420255868861909175899128771303793627048564248305358206353469897121765021408808848256568676528599261164750112825212154775395906760626256819997131992399763914476741126642722151664171413566962199964759280102602277621271848211753683564521105369274985907367101879536655960914849053844670999102264524155308615733954357861577110011620968386876025350174912263916559020697077087318729844689517790368281271781103552287894313637005000173131261208827197603594506783150131644521411991028067314941101385820178195013652058826692986669183118158531050958439422620097989662204788664726622195220131322918080610270679701484897580043539509554288656728054079266372884997832010870449730560801141103725909038681007305413172083599511169380939396511668062870654874820949938199911044863894195726072804556707674106645029097381588829056127811483199432955732883908899350570728948206581149386378437782467175131227876114296501562336356929074177396517456427393625402350776321210310900397364325505118475132818772815232615822008121241718688696648818150818602478230212757819701606348535533793667077792558012119105788865270409312389931575710054300888998127658980521308088820644984127200864342730940874099208292975817679506811557540155883981443215318952530015456582930368285454026450197347912742176563014560548750932286092713948747002931166014400586472735132043164897017494393401600754981509209453911045672403118415557480107549551947978070931824790929154289666273213848336641691338253422157147422080218331521737037557382751911962802053875731523415431594991763473670654019588657010882957708410050709354773637850360870651344145083051874363501984454424938021591393639420373222058289034471180274620998431403583387462451652684785099958736619850219968410498243695843443337717825453653943117440926504291128319788083412557152977457057004068617733349121819490713779027725396035706328677894644376306201695978497542314248727719442719641397217428885351923700068196312497257900152034285890705429508366569295350690519854734527843438796193728884741906053579349196687999468956637911371039557736523311291620464074419985686599626497049415994819200229463672329058681102282022720822293124879800073737396031325228454693098193979239171061593158619907312016868579949190456790269424116602946760711490699284725695348618563558737789967713886390786138120999716318893522934776835882998468425095623205145273116209628647691342248670145758251655853344548698298581464998348502986376894155706684756065187107176605480627593767130149876359326601306326051101022446132678033714716523922232918536536913247164960662790745110133741645815853640496887423195520279062697211257974005164571655974537827742756311496214630815028842851262146196289921130926652834513706510058441139167686082376367699412703340743859404558320061433382625522175299374550363840305769046063763052142003848488319694957928525443824033607992628581953910290564823968767733751477909662210770682377662280710862872886011374319048566335163729781216347635930021710670945576273326056673930941862934952343677633464125232995664892294305193245187316470424582044669189037785839739420952885509781054951002461418727181327838612667749959898829783695766218221056342133523402206240649000271056187560593167710268679521883828899207990478193194741251795472154675312912445689482117345498659483516270830927230012907134142498436617434670532690171768748972756518609654062762238999138887762152096585075383286302535687222376778534711898460842853223466822660761601665684573837892510441212912324609753995267207704776926335494503971680702541212311686638825256417586121730752968024254069205118750028187164376201965669855721263277489433796291496667423156935863494246963353113360870080022862206575194694432420474331032228393536059277017935991848092467814584451577721937377414231528308260568118780158680085088995292238353904589865641050578240717882405861957984006311568873281382505842967698723766311727034784365664874252599405927637837719098213247355160759018387521810931536170560894672742426948473479688333437646978721872188590561440428875804291911412021225984967271154335814413407465702719347181740967730507535979207242433322464275664387831022122394863642055088780798691675795094369053868798203525334268940421832725872146361696143224425411842330419603187636627313193758349215585709998341826637089820751936263733746409758568589031405097753294855026550229962614017221020587440377578726742435432974541163111869148044508594101062637972688078307357706545013930165417075464686267732957041349768679784228406750490507887897762798587913273932454666495706379824757050470318782359610100457077348216877196957666645359622039381484081092922334805745895953343430067962155532516756151610095712528404872978199637165583243567611221431941378178839298497979353641403969728160911990179394477463910311636106306953680242395721075993262878082687092197067419392266309709879267516378008827803098338545924571632736772953024165180952792612768422427000135324925399230256057645676389677883575536156412693604750861679320206361685398840147837271903792969339370371161154463902116799623803420780820274907897233821918083488787880176928137200022062187734472575709358481173466691260536472901529812861707525580651350517569423168512976088503697958045878635954390687249570302086164790859796153512419593250124470719931434884551059016910578381022534635102845163972281300013303171088162804918805964329946488249508873923603089141582198788391660639402157151239581813403949232354711216733426519306859455353183134977517446563834453752885159097586745184027538934434001109589107233328808138497561914360308871277396719127014218685693287020966299940880377472793655233530629892374064355008350345393921461230112161766006986135105001101145732579845437342350004703301537803419412974950102797867572538000146735145281910111614677362690020565237740922285772715030107242389795656007479101525819536507190200818495918696472305525501035903503682629729915092644065992036383119274769828101241207526455695181362278930697863480141657082819490467921987385054865800248818242796652948919337690344478183905867842882824748917207767377514316343392684736052962467881275908431331412199527653550572946698998994350823404403478245567361974941643388998991772171773382532226305810379274580347745959280527862723843465341168431163733668353636459575143150764288704726146170806380405741955605208818419890723065926735458827349222005179823101704332772415594874764591184530697615704474036408173280958129156272793494415457062767549386148625796663625948294222424214876014288326280235330180639695294267270585688642398084767985417103490265517475491045643697112149533305324662040178982140523082216535725560286370975644099591500175749258658603528003305056245347932245860309214905311019020028516260779424840143730737213500938087138692190706379182292180134121093398257430361405725432693732149788200036085687254483029437071295101615648901322448733657794502882061178443767432120481305509913016935498013853952028444284592994620484810216630975466880666891641093180380370602279125682871358550019316073314629059309295869784730722548535606190045280701726048132999130425510866477514695912384001058200880710790905036998791457830809252139323321367027101699409012338158789400624458717319665759019817857030138037586881407217215190248984388565292104576328822035480045820743544283292833886903846394731717029864466627625931517911327415575306689063794570070215137999034415963733395091668760670388601581877962196234195746006306800625178991112330563179772631436982017768040141639751221859019291373064801350703184099963248807130509958914539824754396298559832608233172090747964378190295772957709291605838428196421065296390717934377564166166758921944786109843994816556019418510901654255615329836371508001518975481823004928639337831745075458280908152401255339625750021531512624135117837802135142358369880440105422735710740188857820582552790046718311500498936024443882186175345136588108582051461982648568923880713729704385190617376321942728909692631778080885956488154222886638916995287121132650199338882055012223224145322120175381456614994210115921826912222500149314400382271769773100751569362478831194805040358013963284343555259164651870894608125681754993744482528659462660921716682662511736862648899978977648170378549935579539290260103051624453709192390215555493676573106189831738189923899309739505840192717391344963123199497467461654303095392478463755388985609034797570371596819794354729695583163223839255187199297010864275889962794196895511630495333996400103878437294432492813337494437126533245840095092145856147122931514071238072370929322272228488565944570597179581811556718359761482544423340975082424104933452755977844373029125419376799845331958170026547398290783864476320551622158281152657330350650454079287393067847277507515804939610148758336426196946175344230791492975272988748208154588494724966160265061110373691346226396961265001504077965008410841219350731664227986960974972309679668683732147124080761636961168344804456119923561192913535058511956199522053698291460802186565783901742173903973908829881563955036037177392658781356473276991957339071621145974368069468460636620350924164048496264698688941427977413366408947498806874602834640202332861114480478488901843674680703803509291845470523534305412057872002476385791297776262672159151638574275381036879893076250858883651866103912414642891198421899083339739421720356371293037555132467567918161104024577618042347513403125886297071287307737335609057275254617978828087124817972718627557834092264496704014227412807131068958970518066786567812751655149408128949794253322517985366699039994406397201572571692668622031075131694596949041402517477158561841821429949037961363607762609135478394732393974550858111505249028005535497564422904540433615377370223313014040407612973330339949566293534098381464383542194869601097733599700883924452539512674076150196793034960039774936456466392835117173733352248503532403909800679971539686581740866810644218364549935916553326948173089746449924360511458713157411972808533414930687387416518772164135118708988921214075687028419154232138736345268325488382521885268548158442204563776217044154589580685723166438007179664906876608984334302638293637278837824188804391348326186547083337577616769740396975324497396608510334500669228194293241992673451564372478060224499612026888385981735373977369529230199944264425691745278279619377453475326455882416187245640238722099159338175605558428997624608172117413874271955735009366880038890994382989152202449558593517426279559101011876666038720087708836552312766195913537674055664683030164211140276049785707840276044989988674714267180850675753999307296434613146815911945424189393084409288292241259528092463229890207198001977334411272323771989974944066613712627712992453506991662115931596280934125266333449014775230607854575374519304731799126830893742592494837522362030387990444772199944134621980765306832591523352955236365658281136764214791160584693500960628626679703662582116778447331503002144658796540849422680596117779952600862706573778553800600751513060226233417820723762486124495407025178526384064154786449429178807409752603865778494185118195751052397023869312052787380816905807919001515647908438837688194882179876755581559931547628713123247890474279191352175737383043376423212499122682933091392909977338713298198412532795215731084299840650851819364451953386530479996821980547573371291890711336053178197651839207025071188399638666305492303146060342825041173394966232959558347253356707197177575601108414436623807035488651896064669308151419949670070803694295195719520020630164820897000278811559335454916768680252980128257274449538329084828446139323893776378335421765394709572454740940019295048155789483161015639471686954957173663049335104396756180627366767152493472189323590662979777703170677236724245365045398906068608943868298365742230390854665883222424648629656266061124892474535891328149564237219621138266999767149464205142976932252848791496839838487159924187391203855969158925235131786459889398836601600311527347420804468861758293734092993886388163355467329937057743959421627879671238777420712332874077538219882925972635178348918095525386424632896383870388532906293920423402308474726041503459837845107462491451899528785451726092969786316279580643993994593125379162882468390060240442743986385799610242314060319335684418681166331117275646764529270311014843029544699417754297475113313008006671718154532088538751872967289624192771772867772306455741717600967551049779213986790254836005406239658208028004204734064162223675389827295508045142658456534706925061252596297028345172375341338341830224943660744106866948020073239841081271089761641954454029577193417720664039855138197720158137316759164505553163761556898931638173072610932290216147604261158180376028633246354097612906329658851264078566523206633134350275450890132090210608360479148792397684961686342481155189173194036996865688828562476969959811655749257558369750600136646282319204150455214339057445196125697342553096116696516638133227942966752094734023953347614804265216654782245506648949356551800038261904912892028918911491648103186437835464578926007257080339446781491392251285918277652737089032866176480762230780994468115996941872393461744097579637969590265837624070725363097644544756943264583783346840516159526563708484648968046742891416790247176219639177406957424338616993624884470201859058817909695764363322707773486852305623145252258212024994873163530388636017464262258748261853527030941911476250809187122914575877942046233786443160613603326411325269870057006429502098346366968893333723155497605776485735582724637876056779678796328525983528804153156891926979760342247477464116264778988388573409315524813672256206174571812010224606732393285809797358945026488351158671056038562450867091794065609788383443637054782155741714483816567559609320266683160072432963979616191764590648462298960019387595733540304236192596985370417326220199969064558861384864288355292130376483733300506251308255668163424091749518262066997083353234328884229885373157878343949411007529143483512141803696502595313117674764035839375768444488926982396643848556504801792544768567171429195729217444252008562568382255574753513331781991389137832598079729028713743688368853551465695199759765121853578442242661488488501274395153624286086088221671163083838896288385982247911006216218677288928847382861475473667481989476642109378401051909742885278556559347703571851211445506944733379519972002829722434702974093128610005847244875939624378169751377000380264191449376629274275663086662970850059704554418181812968572963056944347058971675878418755909669316570147092854037737014226669161549423787382760657077054254833899644260395992152104276386613767348806010454703655562376868761911207649229349160847495726372670947383607849791916060277428845563480941523016540833165708921110800513030869147765095074853007616475942473510270670399905511297992151094839942876667315894064269610955153785471927698269039054419679752453015756018471579519788632430724826482749189906175071827152207240473466752840902020886549402907209944042578284451908412750195272197939756799117252684288355003751021211347461941834519434513034888835788558687036493257504169273764691061926695608755179016366418763074346103547486885906216683103196389007915327062239559888854074896887619321218490850829211163684626020614134659065623958191585977686710326666985610223237685505889012421085391301235167694725553775658095297688134493590608190433933186696940715676499900141819880351032427768740401955387494704666997631636800951660951053062940999077525668360182866152602003047693196996080105732305710417779779640479202858237489329929193467810539131085624651062481631188869726430858299698239933684358215703243071278424259993088253077562194283193881285228714160364863256818378754751380215905850102006795984655595161602761634770393526298135747712767429792231721530629809778985830997158621341807777436002025265580677894258603650510489591325004087712745776829716708846635878319366397185871729615160453864721866476540451219965941350711015819116387778353261767835918074769383849202346268178617347056366361030305783389649053454228460684984265174274164016500532790576744718979731527776953074812888699986032736233906338533032362813647208417794189663413637901764441722096308179590213337876458875185056669665890517739976636003150956115889240986259780115072424131709874559441333520279725735371985982077876330324400461599954551421100759382932953400044711992212171997917315182082076998621158615940916057768645514838508015855157840027765966092210321521205797097937290220508442852369899216741944793188063531116205574942624431129471529948258347760612931979925350783357018926470881357528382683464992098692092070005201746664411486848599449213658288433491094249809603575362282620403721466309648368213884815755641141550531962605068908432792643150126860968944811186090640387224048487310177271188091127017667049408436953133976979995075537471265182002549812024000578468558493841593654385024109359919107310219917349526041695845156726435133062223261803629952584467033005152594740405125242067361210949937134020585337738365661520105007284093404636850144432124619556784940799630913897889571564427193300745310578407672117050396664325177796207954120852507684468903561693456303186143413559027228098886941504844109571337120737049732736125183800657843918395623378014661844608898418607061450244269567659317668895229741631815710781862109123655170580517382581590838078211870838321980062367655441319638493561967919910737850837973476240749961821949469948276602645393706355930956332086556922007515644556533531776494157959764754302775278777680174687368287320566269211921235405744128726779562074234529260934577389835515332242083129452486987455155155310713017833047428309060030355426859691379945160699410711291060649767013911514394058022047352398120530873424245605924534312072682183879143512491031167024052543033678992209465124621355993985008581504659302766476176561856641066800658404849463024880970380989914203892535492379997683642759702849619704878794607000509025505627918815130271642775354626109556066579739541127705376452167138641647737958798400570729315154588333229484857468506601742619236673183980615254189779490510300493242563513208014686872934944393545324108307247287758338437364038970223406436545998216751312816407107120389016824190803592504532641999912370145580682069533537994638540258423814591838376736861565429387579727983869432695560851466243715638079581737629942295454771965882872451953676092733967893450264758544548832142218514764462255841774964504871869838806317964863147866676065229131261814557266383058062635566932366386208030146937227062384242429312777658627117525321890395067457689349634305064921188049283640376258058279556107649041010169636459843916341839210326626112487235328482215838231799162829829922763186722118721038678038138310388159511402842737775325973564092990751422142715990611441833020273394739511356242740537176873161488271784555504305763919591927146317297260651113501129673510414054204914784738732927316975044416777643115744803418164337100884857579312456934086032584157191085781416029820744578159789650210134726923414249003520187528961066717908336465758964327404238234910229320523060129621157812612934244605583260946061831266831776742783700133547328824792616870341096057311256748456146696209476580755804753251885323553969761714814682306454131927405360454620021567067552435244189946075113233379615419717568925687500670143349612720020527956380988297715520754936326447743185888497321103565631814635992909249846584546050411855991568142974081679655811104555649914193033515562593773825564340401822172204558590057927282215884283354642498417307813128170691727237655979689193933944056238135794964375792220885033113566774293394470216003072181880656822707326595589674939865499467126930117426848400423269154796276810191778730844977233103417571859327095329916360659654720171511527107513409543144418039495716312355171394830521505118548854088780643849617452205334921307201745683257176114301215701938220398783688212771142949683541056716702879215029103854329987374657365941716637102353674296073956316441151637313977237490206813534254869364914652501351381507303786648047396686488550528903217496799058165583744355712170693387355944866252762399158394712587190752880783907658716391703839108395374176379002382002995040254955479902454520370802432451250746674611201545124290100841338403733033058073479132201666454921355762785502186546820758464498356435872352588263772353185679351547901372826288841600143624274505871808420965373590846460392591569236497688422780726381628558001866591218405988440652527722182571035179895621331204297473077740292983029191806746663866785063407554464867416435177617642912687035264943321615867251025321870308936268912771456926916285020245847711348138674328162435370897991960096578598963155686860418948690840103149730139049608301592503267832059292467077140648568908988493118075504504893648962002606924102005441154949503487802436990183285721295541528909562245810573353200923727902313646458150345481523633426045663560044804788334101190542176436630062681547485440249670993972495074111674540116686167376610906796864925957634821544186563809690757399232575112758549271205261178862093683683491397475786646462262742511894773907919944942697809663209726270114338236432353994772378035466246157691617185904043053441455434668174633550491189746173385368269903977359369379023369999145510970010807738290299400751541186707371142266387114238155701072310167933519393228189580399179908004540101445921000741525316343409398218130925236342916348830764157374491291335607221726477822104780855533741365998025949719535988320241976172285160220593268761102746547505537103927975686266858238000167268370903098847056300317780789862951870209231617684409055516155393983412445064059193230689980683556417802033567052574254837028942857031806456088936099537168280276800464186865083056755525329819596050448158798228909416842009670527503341173150861816793076127601381747235126199822337038826697694272549685754820457414812976996495922577904436982461841928395321601209770780006230815337558850470573126216913793127089348571651233967649402437407931987749751185398848649983391937959048416418525145548403124767719326498962681747357116617534134137088461159977794890879148279720222679097502886630975824428220468565269322863054265012432551756180192545016072356260945726973535193470970522555039630012648962999773491085293753829044055642925807945476089277445302042865360641067438174364838870786298310677888550906591697989168804301106056650209667627184944521701103454576144625261243973963682492273748660173649262596943139535244876986948571736722117802088587068727989604028950554185520921086520331401229994974536720318920801117151203758768557619761390983090476355579729027780492290597757006184752822990395677751238763312705563006163419190113235373365377887276759015937562340346179778013305572463815518199945387731211675788970039242665654356492583841125204600051305284809344573014599347132726716821731821550993537641278135388033185586326152227532907425527911413772888839734044427853312720120161989486297452924246784299666166331670258713208026459774175401174414821833361496090191616094418482498027935752400218996785589773003422337895958913912451283129388647117829871806808270010970108025171255605260625711813281950283290553871783856907563260067307783783333024731551865461390536891424888320904034022282818154213723157590818374097525357457851736904642006052311487041325486019214831515928505760122014706305027927111184217357247163364209563956115523660794307060924227529230382348766012817946177981084706472671568649898086510042700165077496556588245628872877300191232741028205165004220840280074161564895187298538555793731607768606734385736439231003691528296941680247566069730594167467820938692815130490047203580697277045933212460786404334932022062476640262903251179367999197228660017925692541471924339159109896103689712223755230296674950200735437990649380078919388010068401445245409319792300610760157230966316039973848550190502486804761263880412668478192117495458518447361219002704242438532160143530991356049817269659064184231082615263212560018170802236797793409998754706648828908201340532516910422820485081044532811758103334787009900150042996609920301717528415751116415997562937199529921294800332394397188260605814387456545172767467511784942006437587435513316061702759148332459181226589187019137882206044799727109168774699358878310111820178158422635500445569538018321281768902746809189530669825216116155520053118548592716983686129251990071355183649622776532149230481423049235176678363294088180101046649740793202700282435861654062094864591018678870809072331982908456819472312849829261072077434001608368534773705535538367776511306259769486412144414925596505503349405506870960270063765284106319851784735794926226952663940449478824677985020983604039641977404762142245088648017756780515867245444044385424286993629102259734127908786011530110546302278492775873558792418966262715709759761887679972974318574878155645919813660677399726105442603936285688601559076473589888363439906919205674225725617231177970224555822395742438505876371365733321249143250037285688071560854191887513372315793784495935188248726324844744905204238164341088918440158728239995540552505074875367113359942281798203863892619075269674087009639022001400598898877714008215790999003338342371643815207059851837124366917990654381551247277953563609486089412348507097384036289531165150460677795730634759084453030989047434930215658082891053892709954856961599302021191685120070962265187795187925524579538043556025379568772656558553208946367206461986884162233038857070971073358453692091316146520784563728247410304900683323627638488626312283411570009953560546092755726066626805921351472067567935224679981785426170542251722118595268437354259679179349351060446065975148517272855164923547950681923777999372251203515246121046772396166807165571866566339047027458375384362509737157145707945191904164750646985252365210598604058896809540910342052349380149289081142880398692094262276360217117776985682175889666414241020100109859065715320590953160343504251554130644101934179825809395775607746332456862852872827563675384531512454139657624287377336963969959989222679657864141864808048401091674048713623222999859837124204453358148992606643681862622889244186585328359380049765755175837955795714385832394502220880200412826117859220820992586903562653209159378553300370787437707180802147857201951091167845730924259117667886409703833482899186576700892730293535418188176878843514133634731989395854356216656277911026650847500352528416497368887006643792757486860619553604347501611461956780563950816069557068340807671482530700803223935937498532128248238033783415499784980658209669025074053435417512707991713041186020456864220439557470383324611866026349554065097428319568757207144734280225095491795290271638707675453817332377905067695323722978337990542866817488781962615323346615852457702693173284636723331058615412974081462186355394245279401822681353068748511640024508015312455088050910284551986861833898645290553292436052977035345442152731687494890001940258405754569253172609157344661867832559156498023133778347067782873566714316418249732592545428670527933646127395928510579752823820701821038433456996712670822751489513246803446624392538938839054358084070222010643434265582276274072284832789071475454674653735481273616344394640723412553184070885477011256536786694868390714097228209530738854402664902658115905968873729471412196073239718885561459327488879930999213391431599740173711102676306744908676304124370586741513472547456957356287574964414279734108941266892636699024908471534357343167964781009025138362983030696877206999256072872211108523811410227847081753241232263981678497364931784453212536233595834835157282965350935377281686195893744696717952722766403247695614060849236570780860967692045160356228894122160743473189921777072096286662414498429613478077053820700746242804662609225663530389111667745087803443689204187336723309271156027160540519300332882990012208537227414249882371908737925962374863027698211806101945470156840721965485574796270988427705535447284023599825957597474441673512967363964961911969067962231744515382968330656951088667678369106760843383557331922025938235816400358477798489472654526730477923787278940143150593795372152124338068327663641477011581941910228210650619336246178562163601799137629152139564483578324523737447542679000114081734094274296927579184054440781284253482861049836346626403893584178524775283264922254345102635321168563049023291971772424918562262995534622620084302395652065824740260257870822892390254708913638825426121852253666941928040459566569096068657979174396832593111525615747717013062376532970838841505470134587493372616869750622466313384071369690282397912177174708150078981155793037820031307578072729886781403676025100354680278599246715268201716955518103135037192199091019973563968640363292309852645147068309333575498521785766699836658630026148924446412832979491693697310932128214200095832204590334289700470388769748138625688860070612251265935957234877034696814296788918680542062665288565196910541137705187656684706820755700881774670718183872299648800111423626173199571039251396759862360968392226284534827402707715449717706624272387696568254085337053444446830958186776027412171779594618557468630793255639892345007374159191423183807634808355307364280409754512705825034467264161753293067211901021456863937792464195252148767563521656543613357464018460530826746132801484030942451514596361919783452823639954934720809571124788180019234172741443702018868734086345141769970468792290351122738609251481524043061044793084859822182690085331419270228457493117209927565878155165252874121446006379605237917440676252634931736423255016207787889190564837882475482206704157630287324492077125266623851039829230455999668992509124609342819611568595990716661999053045375173908403169071094753296076491835388339575562533961693419312738433019749528270252026573291920640332862372875109360280900420413892475936316342522806203446562092618031988886540355131541434744982831720521803002525789543857419599776039512960267309832557514373855158786517648902485876580807510689577720416646069846812518351439223023307802476472106233253320207082700208212983842458185661779018828068031262179718588552687040378982797614175329345056042689619314173202329095298532112809632525674539199052077446494065264489820598017438630593469623298301969732087675747031549564856287669077111290491678205447488572730964051894613614662013056928012284084215617259059354532142278011531207694813526399295878815040922808446516190593846283189328048638509951531070085189757650378109900475513602483976098075128476332007840670748176559869808262368831871912968475417178103287386355601482085070488846109603784964380233101853447615962468119960013184698965549408457296209149737637712923762288788335180162469539774710039926905112331162063500080723959205235246678034039157049276328151092910945950311689608515574801066923812490098957260271674461052150574686266583502007407983849737193081967755079628906947073523100531694851084309710256880192291892782703127175030989248194892007443048888461684702705798401459735072942619663507292983894703936907962113586694852042255491205968713246793452110556064214334923006056332946610254566867515422407762902766936581324551604509813553794800386619948541453094549003636333051244446011460946160340034731818754935276612301655965593571283723007359417663140372201897042347857860461046344532057893349558622185271565668428582630005912619393147890629371147830233770638922118215882743105864187938142652377967179423877752122028953979137529920922888497303199078973760284441788194849088319847624047875974798404957933862311885535177569418253244395883930632655645160454847081280987398604804192682813666246042433733864874312594306792762854748182727515382940260063040670067173320454556568694403503809661320859114448344728098491528184805761984777691647482793673111232497229307005393263434832218858359238882482695953327421607739446546071235745881121327944795328107910253769189022038712770074962299485340821630335893018384846701729576730116555360739785174648818144067987723939478946242748768490912439185655752775938873257729009398042410892625955784503804721631218761102072823149797051055492621534300564076555851080952378768830596576006301863930497205238512688164954045318769165934207901673770936381176011104304733400784882182710584595512632813933451368978271570990896979502218387341071207707771245484977396314884119984315844554797577919742798237653600038415502683146106022282497775878466118249910340131551702708831710531496852708675681696026114178856502825378652481016881123653685776865971086807309320638770549425992137453950927165189653102905339909749043755868310085257682790793451009046855822934860328895959632978316282920689298347136375376257893141520646827114676421951704423537760425491499219889473171407378771813770537474631004824115778294878237255061596326738101000954983725820989990544896890345365063561071138670149522027007531742017677399800493734188066899181328874911982012119538279576814979106323103703702548399408626664341967988281925506424785255165773818289858331963966113389370840989085043370284407858924462741547200548524988760169581793250363894591691442450563494435562341839617467834233621255407531625445943007031191250446945273355407393604322559617185427036294033919508432350165898831490008954138655086544927982608336721359082100104877071705946385989589821156668876331326228612364627693128948538753164415525346712160936448039567920777194252014747369207985224730170243282790743303974941485506425327111082499232799733570239791499589202423569294118215730740346398951821065733106094471835874156768607159534663436142258382788393980929169478980832104363647871681365124808306973024422276894920975502131133853543286829754345043897923108380485281284841123487532610210040845596450570772383703503235213433918353742547338780063016443786110621932968325436096627285178061472420507404802635466459597666117131895232905208299876199879626887003455366818067518671910822657778398131406081051456785835021709676411275124524032998615900210720868521889276752139972659450631425559966851400911009326062485823162143098739009320453641581968607697907378874633316435074145655923811908371543549738586745243111301341109852278818934690806692543794881290547718241342188021375589649226629533222220295930197350647488666991810352394418301701822237753675936340528876178764775853306136994397122624673840831835176344187571426785405976368097685052254267503550912711406695029952972562077573001105874827754628536577946669567774959865202695763441905517225316815392837519504245323371534198480318180625455441826137491669030107407294363117120406889116281054529721256957844710046087841352390239792419060733040206128192211967110924767347329869186724307513740312167343328387840083614580279397112479868313632594631834831319453859577858914257447790401140577875995387811498412274783165944040044241605824378434760398427412903709298104040715578387986826647331766694505991690080917072324503393209901549694277891847381971433709547356135283331147247081318885900778245220219477186484207754445122081471423477045438090312113000723393100853900756350675036179492301545103861284943776317561002218581375246865825812731670442028075152524726373595399405641913696202837004444794204578219990222657660446139693801004626486619597899529401649245369609128237221127298553979390238197693339787624366055558633911324747131734242391912661156197934306479416458577029122455450966294797386875631659878622190850968281929974249649583541539608496628195300374981731033699183731953175826011475269065538699393472590643296077287139344461650009510471690723935435883628831749503080755096157112539637925136712639037091839469814102917150733462204566137486564019046521396723223040556175279678479756966691408322720852172449074364714958813963701069621269607868340301566058956592171445130629265723433395515409235698207311021094107199121512398758685835515891208333332309412363896116770875896717266768877656812736112321465064980316322507982948955330403143756036074519707637955473324080841964044601932467249629568858504599179579827993797832464473782536669332900870621693815081768155928249750520761628231774944839208521169355274981385923509776086591943843193897600987643585052753738913244212638034191440013795853355090015991583709557149285502397388819212885883324533947691874363515017641286805064208314932972078177581719101958474090813624004609850566189381780908103456946814890436187217797825520491513897141529712354670048948389992473901159662539683035517314286946503073316430377572984989753310021928956339591657236584734344949025836574249286412187479935406969577088248018914023870287322124413260070798988502384080855387590783080669871679464814720256395572877304852675615332163894153080385695199782984847404845217329722171327075374742876798649968937784720287184780658996716323584371877941284461814425124661255596879656640853501792569397505352184366248854492716180413458483751858696948440052723256565358240317164308243107969911938382408861459676522109485611203267030809362991143311236794103777663602147203462566597774139792963853299043052975060041393862466672025505864091794509623352435201701378515948004372551696308635275805625914913865699113426085415342431947801179726636404004640594839583018578466510720351689101262795757581408250595674058800852153006155363322015215426608800224497285199982894324529486083778945724372802063958161445224265329476307620411743182284412980005661456969393820470118033362502071123472560208890836561924598882110062993303846409680580204518894082099021908501145816590697906896452004145880504552746336724300716157890216634168683320957875782509296677784031950845009084397440422115592147702230340840675208048150614385796983322127453884371859669853700998914197273140236805416500871587701346149907542485213092638009372087819466254389097249315521839110383611670269790335103213810117212660416322785980650568857440559824161754452540196828162211233111956023590290869770630618103393747338132024301249194915781969352934999603152260193044012391618340881402820807779679458962223112736712829707901171383176570129089040607605534735098693854404116153010757703143280313001665372318181320652777055641989363741753287600593474978112875722052448353157372089004524363651558379008304846904465324603864317762533452981212727986978709627593139276525667455829586413196924758638959133631193843637287245216345578020988577085270958035763512727589557596488804614299789683479471258385118248444974091894872274571127053484152352518895679681443291101084798924771941749258648291884596965359850443979504585842237358033972409142153732702393138936177907995472742320545860212414771555502583281600539417054084142460464456483175376073255560321136139690099150085770160578040997890512139685740807282082067451490009867353199132883229949484832543744188239636005501298139885699246221212783154234794014802711675277968231078244203671230465785929967783117437799664844311811529128012489481397622372935823187950274257753471197327654762836706696214600016333088020826469770694326617344152405810570992542122099544438683301951573204822359766911542462933480135174981633434556658600924271580043731218793978195575490454968748719377771928721254106203379591073139633284776412008366343024705964337617232012020488373737107793494014953783197224567920972466028760651899808097213713771993774487340442459593952398964758141497913181592753629080581146382867918716747984833987554959738646405830169220257408900705887509013428061757769292542879360771339325863262945264918922097677833046992887387034794389053533555357829148392137945246257255104691259174835883743951617851446539273592262263884515011889908300054248871313536892516055130564474909308001773313410421120157575467422993513765951536158059527827135898357622138041053574147975173278281569310004547947759768013384859187584113606727104407607610551716464523346732549888790109664281634867126568109800288677949044739638499974288361184777856919474115417169948579800949429396675523279561945382458639136324477308127379239503826064817485297066308247233724467449228697949408379030500650270240351336157071343157249304225773814932747058819439687213223189505516982564260540604739569472048832380615972179525382601714606824204018263243538684317265333258844718266378686895513462635160327819233294807071893901971328625421542522404997742052442085116132855041290544154482990286485105002624152462356368060847241466331962197951638205064008436507788377292422888995193776307651008299238116200799537697477841588251805563383998553418002309851144581286519843004795674222684005256678510170399965231935276188141707711092253500191544845074883450780908247136160454302609532811062609461470719013761326442305512853889646796144073309326130339303365010776996995927609182087103395503993165065433741220643230010345184318756511379142142749904066053336824228243097497401802720605299604142637744717515606092222384302950363285592610799110776963947266439412715824640479654390241320900773425158745431296244214442800990893222539212213942629579435121115169791418451283064050287376950198136393996007942016701909527984343884608053853133580945329473645919388469750874220477125146086088252159668437994431517019498608985977112437828522915824011252892280518375431361687038215860561405840959944773958950093755912083097709853989211873315655445359121824909760075702701547709815180571164489640632013872111527307835112585993922074511982770452810098065629577305738213902109610715564931789012164123658712123301644015014592861329289312771900005186322561720294364363526060358205909706134901783520251775125056562303712092114242453661612591828589596183019023878794431164900147915775640559302453436271198599713354846539575355196049079577911266703580991463221719645914213307629089206049252171825737438515560955261150401124519832377472996522064968831666364150781276439027882647786956821629825438767901099913206957958803254735145686557137553119325307027123194690484382330157430287486842958289479226894594792807798684572469130023408322745847579541849505583820284436049997428616281164832505147896636090381262157761862683810719827687276793064995315008872447078235483567328711488148412489656168121905969408150016864946305840367345749346167605533303233147016921389514844736138184775738066944968441283003153996457010591443701165381482060725275235767703970926025766083963344231163586966420132995811519147800043071520735442693919828443615616482150586700133544393488257411078114733299758069823668616725474600489128905820534876853562332171850861313568617554640424015660401030145418624825565100564157987935059845561045886957391103510477135583385687992708357447868977431262042544155018338164361377434018716100045007957990280987923961128860201327497621207462789815310313192713900717570337380890561812395296267478684105436051055561848543169405066289228081686979574437262939160826037981424647362213114397485693310465204325925273996970949379426398412217360069550802412488188608597448895927172069386184970857389443759608737657021378448964344934354343909976259074964523270040978484689095666479431638290358835273910281396281761408366612572562605697433786890844553741328887721438292589794085165973174376290877455414760462620308769847620407757634715491172513578758671629635730129825133253676574490040291170437491597440151607629456232247275064754614374254717473219384004780235801812266083585581017365128682315395802141602283518248767762475618808385282465054412454741461549733503997076122147385306587868674757362339717016226812013522682284403316268086071364928610478931371461351526839236011262747632083787000558356449530539385641127066844644714753622365201975788928109050021323827422762028882085785183910577361781554497711759094573437140680930974896518903422910023220801199011773021480058338536323130803226327349522125741925338605861213823630776306951542734378741767267235135485461077110301317379768465039654042477264915136643264295474470365931842682195666530341957061026755126553532919847070805434420075403631497745093142131225302980804499332015226112952557976670399797061402143241246507896870902746254028481544903136954809626831115377964070237916913248214976023778853878972093253909607741185637521742610429209079842287293291482383518433070863280787954189651601411350935360951565959162091131823763998633064257508793718026973545818764736390221524017173831740531206811252340045444871678237125603359565376778617101606626283914041572239611445692394968745041617784683030356685642960093991579620260154216989687449353256825452514805523038618437702977390020464680557774603254741878622972601169826155517021087641625568209340222167242023225940022052806001325465335433469190032122603556659198815232519629124175490765998011771043017109593429777311365737751892775206012517050033178667338690870717556772504799149599981261314628480001264049144096630619471273325445002890873481768556866361623573020482899445508026447283329119345848057464718578012972948881418274523322874376672492329262023723513501048993475007414664887886806850061041688926814948757146343352889349855524349171552235111084333397606351943962256197031948910082232679738203462991050925967146750973628027551369532505245184041026583187130159144776343263941292852046805434610642357040097204463457528443514420931592813521745335392083932235321389916248110273941345503231022828637108631602604039271618723234913642567830534826927382324104261712194798394595461723318153012270457563166639761376496647183160976703893098225035339684837808816801192182559103497023983341703145893987612098883463942868433378383931558191361701173164712114922450886577898291170051797810097545997660683954861588709174467970922389730592576031257701013700341236042825287288335452687442940990335254475113390684470168541623333978415479372807086449223937861285058285849127515480464974991728536734371518604746142015870583600904466563592604129809551278620116288284087494312770186847157599024635674658894128159089898427816547414410603537947873832646277277305085224359574842187179153086595449529806266140462932138060054600383577178466136328095938852044250950056858646118490871441535871841467955431686889792011306627392014535473392189570593982090368958452743073666446267481721490306253485680732787134169862631027363871150287906406888856888813326574046436614439026233196858200068409529620881551825708356450915117825163855594285458899376422430510058373484908073230126708632531420546301091052600916883551435619069707879673584317873864763848158283943345488259583458539130353318724185603084727395940765468538182526945406836293158624597890357251566418073319452760749106686506428555757820532791686036090277681488851063589271319985186652330427773912256158945815518914642522983855831169934193125420314881438612329999946713714864598829364310972725980604307329469753417922584916959850133113594827033642944820626432127833748718972475134906291378733880828866045673298855144223203511645271172476985152411400719867246026894483764451881388778919590074114085087423801200525691374184704549645201361224436476493149239341362489871326578560103602474888100879243630639266220383273832266350861847699138449160215664976285074628128220260605727694959579541507650837941885460254518322120450678261302873480507360569390355824798285861004605810599631871141817414063011844000310742329367340268577554711445882161933737628925700143018672943174373775880411897593992600374072987466994172589164059903207947911694774944891198683957126032186953076553384461605965365069579736806282338667436038818400525655584216583209486388552786475631759324936262356193441515286910334479096686803472956446125666232078942305401868282064784362880114721470055723407395298805761033197674925691457850518316824623023438872487643247191136292930016767791048290923221532641373092823023808042923975716526864499646782740407731808365404429825987460398933033082159744622829879609369135286108682745656450142174124773351955581851857377174918229688691351795437990493048933827463799712755339982061845901635232354691969574633773403541680458431216573475485762649352798883015587698210872458608816491551165821334573532783455494948083135145787445252104386694931354529725556072334134704823132390189610653262741422727035046781024720796395759715380409573655971538044157664788705053561885239940748987971710399781648017898375623993090575926964646614971546168109107681966464090556294740694647481222753097450344221628498244662104898274111428850938102586133627828153744689014928540923605488492567163766310107209114217955092685659923213658514682878440809240469184553872850173170785429709718494705455609194393670007081415235619249521699858448760156383087678902401252237527186964416306050898626736757907175291545478766254156182223781656836112298487468561525190870713375923774352604615986406735551622032915256394181063622322682936208976745382599113127840181507282965078224523844824687727065287221447558281340127554731958350445183895864448085363477150270277619939548759812609218267435214124898357951877643373676691986158032826545734650941694132444555439585215454494396608696605360275687122130785557242438473397678952638651134837518234498087597379343391099692493035556957858859482394466008298803358859492727006651485135008504872036839011596409620278572385790037241764196442774415540870218190678259092595428849754847309962154423261269704965413588983837392381482718453320612557298481008764217068881433298721660258660236750799140233796680558041041229538969201655846129333562196361654377868263210620211581092058957539753228665214878192912039012530093267651121459357104894069019592539388820664669812274549986624495507716852484134191675927049684063985697149111505445436001160733022823831586385162481642102722081668460100302098048453992441157783204650494729344210076038250443045673606744250030715939476158366484375575732956462609386049966833862831135282170645655662213708535653255840115168828924794360552501700943817627741458804041849432795061026680838068653850198087096989201671315615181585206203742149204216674504948665866690100198936926299613932787795051760590969491418748142025868210183900984321554847569652280772235467871406020469185554842766078328866387374563855455626991682570616937291552794944339626068229575574710418648274481798055278911442526475684212510963710316377055414632188295235871954811948417271120193289233308559003438466927396685250320767922475660837743648597362250874179123859379737919421295130501954613548073498003633890385441128812181187965261257315696312459427370941204089222149002625707172025570711098138379884337295266503365884483274336489938188066373088812299347969299022721178959488595036226122215894042911980696566636638783884413210065196384102715177037406711798256399749373730538691957145176724415083913453450361735385435302460791144113945560247572549584674356065446400808754717798682658591848926861938671912440025546200250573733619418288077758480725826293264932935930926623096960223214770579754713434490105909966764513705143222536853986284481646167160722490537238893553853456537493515060561166164527747495035780619095684938263486347136041155676496354018497615131532020592585676202813780552761706788465005844135379760530362975504416776787705146572057074167132589553885193531182674471666388429397702374365091377160300550236561077208570933965660816872267164691015849868344965110157842151977022408125636064432366704933124469968876429656128517015214839489678156675145474040630658506535347428816527702038418532374475365385340428513735210222272657268019198533537144367344708469218992819604462784408859700769340721274600187877291326846343882760885458714059894561672561156507373079419082346126605986409458598339532881086761081394433207163461417619875814522925012760772350013679961529309037107095377436450447293673973107980320062371931645181322814442530150590085134044405340093349335425156050450659772270584534416036129158710144440940893243349024091594166526317990111328911914457882360959822821797865744043737276588661882854432679247742111815978523723998228673371118928514938210591006735136703329886930960603027800062778145761621103959773161265458500227003199495130828498650655070022155978287568823980414685852135649790968046587666713772823810603777393820156630679661021142471163452363391957470585780177029655933043664026607148116006370900246994779511042190925259817774177261543434831488017302315164566883233479250163818682442556754594626739832593978243509483748770518851015900175958502615443493254644367637801896985263779742846385690693504218869683546219918444179917407667948776267442035485692897578303178807605741435749254147756608085321798746201675156194043766095681386631010484860360482273977545251595982292583840252441597256673241863545290232418417589945026807930212674477486583651661329357584085782720889331137973585169180538520493308745926511034047486399165739666760334425420031504415125649634492834076209246915224875724208986961112313007342588177834845241794068484235291688429408603072027734205730916474452944701173744273022410332926402554861307527771203393164801300297120826708521407288854429265532588865641737455701849312479204193796515049572178576872405043761815617968976363150116840834896902670669636266725913679015001318633602769466167936191559796939031154482303669291503514284350443875791622864185723593311746486830651679711445285302426015542203688459414890188272671820072745773789816972084823980072396600907225950320660733205059655924438618934806914751401671661274409274997899826596698997634868016465376071845263940149961485875415013180298108403943747102792860984629507367990580625969569448178324894377837461332659269734434590480661215849407268832960292549523193787648321814271976111996611946474604345938821915527307080189891510064944957510257630335608683932784113500022950002254071571919857970449283637020344839475892765524788613160126096981654530268459795787930331287957967532799103652182406117780466378141524653920208049576688129349348133517893554346822395296268185955392285451313433749389907354442733005353078136261214307431578143680647214831070199375515611012797733221568672207624193880555356284607715303604487577325227196678386319775658712047942719675515261059984028198738440425732757881410617252379234472358294387090726040498462825279069357529549541781842632191798994971646937201291616573503235406712873151005180430467960102476292658500784934775414028639228482691513962498666537177238122875717995578160161668516787201313760608874602827245776914370734518964630433290556940884684692502805744907122073758186978310924862575671386785817591101074229532212549403294530525075007869758256000149038772542800239342421127075388170793927557576138100856240493085984455122197397983884554016853931144674668239637968866912521672611432722125356025848050891561637525704231361625593738198888947233835927535295256796204906228375569883868479258918667465976698442695609122509861966507335059207055999934336179383554301396123981843973600763968311546988571796873892459660900346472811396367833861269207940201941739287893921522112468349661309877620054385663591674268725535884391138586509615665243929012025381443774539886963697091874023681896242654870979577243389604533214144922755036957708627253889643748372521720600468339654585465041406364535190278201889374296752590405085305492469295853438777562751497718035950809244484329955355694059427344939760038352683276952819690203587621135259336477724579539087076149616488331454759375928656465584076277813711572904627829924077419163184509669473298925915979974627367278869151243122843143426068856873187127953283152519404651187745768178707536534780146041936238520811123864700459042785856384842069177839406451346384446913153118810887279797220978278191378183427817661849620587863203171954309800441843418831299400266676738474923585376643802480909200222208660141865042339196570733069860025732010996611886611752689385614205269222895960446811569785185659840271928246284553533687974097754943315492280481385864924586802523266543936965699764907113136797817266588089497092572688497686472204799639700116308145058007722864487838115850333383682758753888755346455191340201746324377425805991826425852381517785090548575098446323543690427039176946920783896787507009457410201597042069848209449569186835807250508427579744364719815079270045775043222895135758805215293569290861803235885710699844923258868732540582402703156252354521067851485755107056267622474156219850722245080995839190732683188113045709544722580631263044654097431620157478121384629936841709483163107887307558440933578692336431026066075049434332115054418654442927131721949208240644115126689376781102645404422854496047325452692941145040007748102184097126481320463395271603571074210657008519730578235532214431357569806801546183553781558475000339756214137133919689698776349745129700398342706758708040040784646683893239640642110933532253245634913836485504132666237171047981751024387981170002338058679799438703005423531618531002606388961944620821312886630119989375430764789234696127533219117477860790877639993760581542517438370155517580298905579519218960980997418124942345624421595972798190021503602668355061507108832863591338877569218811861966052893405651834372582988503311453990694775127920953338968282456037281478337014759144657094052817599397061507200042485740029474343895687600236497115090878587055307250170225604869280061523507843703555413953230822732016626127036631582025917521377895369540002061479274316015280588793568043810744588198421199722363717139722534268474594850567138612828434749154024477980472649253668619165032894422440491564109988773207448186073316163463498790065688125148095731793581020268622815256668458814781767974380090063600834031009240785391278729636948689041039899937818149924995765485801740759800121379578291061647203309682794385603552531038893536244052473107750750353002908717958522487657321356607417585730247455800157816567927914839236741510593556612977202490814138381124824404725283594291059015677019800522885116882713056347188897622121125922524956935269786848751589248991588899868176519972619606236658729773701447887813814387555634788572713075728136771038762162064724076931268802484371261418221827365505061900258982966508494104125684418188349124389838510966391256456743219006167363853563240862538510309691152600676279389156379875130333479861648702977663400937806339166549728648271881288951477620742678548100679520991725813590110547816696941999564227825421562984036642540709581955349598639650438912064396912644836489692045477617504669440398091930687914317012597338730389470435811066404647111728519339619882136183898981010803474363019876774000136558249769679252697039536517066079725524112368125073827900051109394272926484203241218108652531963160833198871008923004284107732959751613712909637105450698762276751881158322210233147842560215482291497224683095635087858951754937711284897835666249203536242992297426947316871488252869574132408761426916546516128962891521523830620127106383800308419922870520255889604621497354314566821692232480054434417925859955886283025702360742920726785926630612390942938413607110717981277928908425155888337340889285407861614882691552777307881771354814215765542410391413128932538111505438826963459986170968373048473901956557611514961067169791018709936230421608297303002891768222672839311076538172979734731763891694654181818085225156907131886215682634803465327502292057952595109472133031605156765421293893038118785451195888139376305426975390800053039929518298119873365199022710826437673630407337057839566640581427436805634445821227266606026442105715815068861363446168576340864974191163301100788024488547775333150210324689577055805250169582891173526898467994510517024423390055318871715115860239568131302526996366310503427865643840657014087512554107932523933091971745410157932782225654609332993812261825133560817558583956033873635144381396520892037299849282211777557195887792788981472812367481847003905436520131234805443846104823322866553481681971725380480567785097761965691844030099645760523010139812584246575864511289211454743955271150779958734932687307816405019464526161385029227877423823576813115399604786619641156090135029236863904809821587899757567715042117122652141450634728568054720705055172726629591497547279251000328644138359947074589236402460160998206181383305020606558687462206493854528035040350034632547930423620674169649536383826039369930190942953280615468268728846059765595357111713451796996305401543200714617279445985061521018948094571172038513006782842836319517512846880398864196120374699912594424527125612214307119036501188008734941277693604461100733839924514616144925476479241769305450170461291097163726899687224775186558764696370347078505978920014383296982239956721756354501228929396914103056869350203395972042549097023298290399134751207596521061056744024059576055612001063009627405556663614730325664424579082608770597250008376875127964421658332985232654072513152792472352361261398109268693797072225511453124667714331679811767297355701875154388044227297820548228864892998307368991489670386325328011971716248032826307230041117918534028682511735009811082118274216595957434176236907421662037103003439890805638825176016396494694025248772001944900185650023236301726130892094327597771238563754623779692224265445840555451524190029247235871590326654423102644584896410786989176083164689843221519138731560151531730639859754738834851112388030591471192757113764292387213062826520725943370767008726295203955967867868267551135184955015587144233069483506065279535092207492617044521804972082521534402982401346766698588435287243997459473807731423956935319400650620601694915900923766562963970935332376093828205572883969084396567011324985092057605169285783939690447499429616682360501951265650649368647366495695619605604275965312097358256364657366457205003342726209058186340766986292915196952100818421740172743571610177643056418535395899804897551901793563038453039634096820614153828142481609016291814068865147450702125970906012033049034718660063851029130281309065383753419578516148471805845477076661480292736976207345463280400178829318012663643129450113710722220358792925721946827384999474482388858554404031892408379638009492379667448122296757943615568797213755481121480944205699820655716862701923080059170932615864932783388320266750186933998798565844963706530576677177256339813443901674028278937063685561838113839034358416537809706000072076492913309810083267638250569227636174646996950706228245004890126424336866819757397440236899839750511547102440596807179951892286071002320381638593942668680803325863714797745590111510789407761535002378594983547999000386499579951140596602394471289031149595251136826090080584687815192415994462044588497440143266675278252220677965114062937584337112369270426851337426036150185168942192230275599670787554625244151611408294011173007610261289172590725120196996148868843999235226387032397601368047464737174921618759715891724940071176724041382438569104192319559862822623813400491190754288798369786006315964438809066494552469514345025700710494881408960752435032012416659823188062287660263141509753600772796958727100714712514436857487495496755815812267944737518648958227581431139808602911565697576112525760031303711044295786992109830343595637555518385620537000017619331293276442091128794264841074957139366864589438127410314008115932554646627238379557975849286618563056315642666468730496896947080736704712622490578082234523319764622910176382314059993137577534909534805553687692454886524256687972019897622357772043300228994442760438663568058197214210895143622426590515924395819340792957098074061041177687816022364293444349455027824713267194837445892635076811196509325281704408523098457512370465159422179365010989799726374174495119966215532937043389085042890703926217361193247436894173213360454640660917127474992185098873267079106192315559859650016923833965356262908820035120278438953264586675786343773883254448939112952311020332993058438974083205471609609531780325381627397039180844232353969313777585223819222019738046738574779641223367726670557837688688549790797789944079152288684301352742235663195914529289107274038201362636257180876382679738825888706682249272981196346080403450820600323862636115581809878995889887062587373873172491140301874078493285884097395251816822998167036477308358053823478176871125436750581635494516065578172362128858905450829080417094251811057977800175674527601914223293972585881630776562791596854013514068396600179004338653971230881018449198320567175792935343080473023386957217626955381217579097473858171955489836926522679250507119200743489457966001073150224213847515244856832152630973102236752952619196574353716741172593919790191252888167791963752619706293764333151094806137306312220889927893492617973510568156680803086308322977850921501096960282680118992669428405340243188925272656153458638578248822667218235714291900204042447850534073164837960785569253817425175292780839150630825308078206968873379492330301134463212655823327881515251057608568003486224093984019531311643871475053528946132048725352486339571434173748885963069704328955434120411399362634693721486991711099694577778055115859886405747713419604534827168579621303699273303356161045739892404807491951806608292039514450706001890791001476480222116078665725724361698407549277598093253056315474433030795384689950078266593968465426699347506272497657461123777964265023461491011743820775028864901804405045302737113108756322698271574082538177372668063653525126856093906920784424159170612111984557757371695764310767086912248395213804105568664105268625840807806741330511413302353641264393641703310162422038315387936001568473380305790748924431045417150015812275369446672825015773134372470370543696706913406141845113099325002388091671527955783519465091182484802592187634996351907357072725414647388075728676247810131724853411530183262004336427715711451590300923764957087419764984232820253715940875206242927767522784177140246023923233337468865413864091166528930475744712561907019705769557665581819307580151040985161707945280724450005662764239917534883219346596824576935961061514368698196358721848057085437835664157964293691448814047859733549836550547414250999975603002682408051121673043866206504535250259593432370435687291792263910935163809698665738808887825741343429160640439049337187934485124732284533426169591621986390970143959513547109407534929987007876913697130036644752509908288585078672799996559680874093268731335559157416969657985282919113927232525380649551838466456900144923971664146937690970637029380717372537491871079856117806724467837812059169165842233393547293181594515809968987126282201407040872692213083325961120724512032971976942508492155924802252175501464489995961049878674553539973600283272953467012764830039126009652556482938674686997716006050343540716604943099071142866734989556170576993682932638612080965749842342901105109386511403421721913264904639178261185602134318154852009021573450731746162376131388271004533354548169676854769548439231048275131136727752180568144996290809945870381062725165039837671294209583328326372595546891262917226514464035797492681927907095485540877154556153740100124312062835415235969998855623544196087196910535529630739539891764007399453358980415112664910360430128200665813679562179202278242831980935349921243858127107205379470869640461784458738875255454068165973383920547523512524465222378359477185758367731842398471729193970832432182926817645355302627800892414516167374466253779374516580070409991065509023128196539871556173558399644592808868374665828806947579604899661072056349038284529571533989331676811343298873099526447605496032307288237413475016907438584722354279539970073770229139390297170245246807820538557466138972464160493704303661006723447735291399921337273592631910891099961870123625771260173973151233562751266522719130248021159471916234183028296375733876255799935519893302697820513567125737248291601032311159047303177878104563074721856444388118328505334532595748037255257665635848635471353933814710460707863380007350031937677969754155664314396650872036323101077776789415190232563248606280844335669725183524853964681701983079659041245211560322091271784776127104226416489228086072228519775846561585782164230734945543064715370163691271222400544203256598547316038858285097857731400755801579299837750222049990788786998162799845497422277590087496105646091899279194019884574728305121659250400313080080785420831374992724209746416743704003718694981391424042221092187960336265383966530253400660225545258101190288195413611727604500542539300168398695483831949679690228538600568353194078826561310416910075135921482881328488154969468795858948935587985459192436214225704360948888094563351994440805801643582388955465643915398396674748226256254880161689810556605983275224477018831658933582863432292611641602412900544722318118777302898530280102835305841301833701941116292486445216005082151943245569781114048802805856122883514396344335290933635549078403116417180959222204925811327747741735032779317891027430794999851879075091741654609547777723656779403771011097809866251582635567275958953940932579997639527658627957475068155223390950040979762926432830151120391722616103629745804815332210030966469308369815209767546868171068738108173373439921216954724595656733117600218523377184586533731068315350111430607469416198731771994084247362655025614935628901418634583639978356233449136115139751028227054308443815039247328551403898105064200745958919390654348662268645456744226181891629540027981134500787532930735437290003120321304812525547281059332120639088841666395392152100687347150909284918105034060026878394643469042407620990598576103541416344229560244879542929075997763418054632925871235316260651355030209091980887526712209249578722156687883815463244208475209981757293866268389311800190912933427744593435541799098353116438397985998415997574533105649220784238501146668425752901690588796943862482183382032521358850468764974884364050458788377616576358886945990693728645196860451434159835628563087317507927218547592971548410634120116005903720817422084126783998162194897014586139949687361694650518589499840355835092799207171992382303741068366513122544142637665212109483214236105458482723699883715194133612050976126969937788485952478632531642165437528916056979707581917165495111442840032518370043395638708461460103489394927910191796094066226886572054459281754643398331110410783736461225326378349576711761379070533444134425674978198933862176510037654623553274166644008099138266402945342241874893988605099797320023862456676589388383181643614421921090611923140010775290981183362735045938933480699228045622690092946998722925247507114447886321887036097770168375880066387877620829548382108906820608321515568426432646597271057534794729384216493452141877368990809722841403022474730629939985657742555936728345063385882418136682674967040770653676134563126710743410443600771533592229132024338529170511727516157168829194174342943752987469643651881438020444900450887429596111251706500801485855294013756459578534912836030423233341675168960092382418296461040449223479597951386983373423654496615308335847184822195457512810966629211255832299537741929507142472177721036181722380807792119556785014529340380434915287569814147476415143279037783206542564809526899641036900598689848209867610966990122928529447417199786911237861677058349719059176419961129164094556452525065798508372954273168065746831773801400348453536600116648030073342869420074427524225177186764510340900952701553866739944819767536437757109069084828194691000208298943847617185051804445323645277572869965178726039150317464121024799499966978725343243645868136944157542911706391766140745919077687936794679887151496300356675710173312665089490493862771863232781081835153250877669855254845282897027998669132662768687438799629270340532058228913272479536126829530478676320259323888983439008209287350009813979194966288177560799762296527999602426641888915916727343127059090227809975371363683684571127161361959741765802958664852932848367701975190562973612212391571756772176161864602260009379475173743613520621568441466985156911808187210907411067586214442572589281678690795760044886912620124005421030230154847138928294596121902233835321004583270090991941554224297704107470052688372992593921837194613800829921731533422943373630415917383253789426148672168724441023950855172910184682372854432564757754044969915070710588523042638876767776492556478333044828396470133848517982041138155926275654146792129795056469476888004811502831798647302078110410234967767094856608067021521444019302165334775100039126657728954220369185863513812685375338773684639956121354508840662374886429287892477019833043076720808949699671278800297568971641889210446426315168388404469833564766740292707691696394845451968862308901422129517023868763656762411272979659912578933855957562223571356248186677698689190330001964148800997605935283138861334356672644012243027081187500391342891019470364674467361796090561911954470896478769349882644117207962366977924084213958741155795984771029696663949841881464658489657259300019810002198799896437679239673520886978186782268216884154982917833743483416973764408429318889848462066088992825311043315772786174361174274813882038390229374757122995309663832855528903472119211200746724828473566832886883195235177806452150038582823034187724446147796841519560505822031301481768476565675231119427866797560281350405120261365702889436759375279076835058933718505412236234674182026806349265087133277473608514888518000960246856418054570403283849205662415081007854037207576051775059425735630254459018393445883494822123607031838890104054626213907101153995555514196384969626971579881102153462524186389725315027457084074266653371275414896370509787948316738187188002423902899011750798361400334952807593423022104162000544058962777415690806630413866053132501879411765333664967045014437706739187063810499240498484719720400950893714082274853678239535928177328091638709921089306350669688647282058338295438482499315509548788473959674231506535941318781111411221113561650955111757416933678976134320207709474889014141505628389361812825603505252984646358011257208285103883058270216739518883077623300250811283943002268576847646037443624784043041498396671458668670695730076829260791721687846689900507743464254986839451127147089438905722373486764692157648526318629242997808469117161685019042979903662472065384176158848663993114048758239883058268731786495809220429111563285753514561387802988061828263408237728216788515495013781109089188258213272788053671600404114090813317287200291085855327002399818642073745190622745247672871556211783172002320024926747451894126953860195240741951195182566199705922004927923942743573284347949371849153408739247992668754908630776814037425336432061297446010056054361886552742903805177026569534920433232106577852243086591639577881800961687849858506538857637500096418183344655412452851043722713674384271413853367484140256539756998829485452035436854486284095336897620218428477522308724129111356015728575625566490575874277691908404509176955440174188472404909299230615185002553446789471274838025076434568140753999845720383502705037343410692780743932449136237910672835602425568387204990284315332727856573933974703518141772840174889498251977989076016828200859803637682352389851871164453730966885743165148617378415878458188943314192389849264995251181036150373013802258973847359301560044326634842702430268684795187165271091525650378247520739112530615753229598385953865076788970750889102528430235935523044806132377036943081156108218746009763121446975773181251340684710598404938017808045297924426024381024038110958103399126130832582121219730705142685186975630178518120914132424405535890727919249096613234849937945595009996762686347010854419598344608329452263432459292924440136191459767982599525798553976095088832901326154432607304724974600288045401622616183642044592587873178432896308270116657450396516311348075289877904576551827161797586120579969436024209182418281603080322418101291047015840003455811497487622015294393352116504636469375483793537479535842677271930478030389553621669891427455419407182802783835178563744420516450200934909254831550452059843013787614896478915660323184744170762194042680975775893236566149324433358300291671412692011743256972696480494373961895764699683870969935799103574211327245002409046906055459503807898605422243123635995137135283822411644185352076502002668192532048926434032746566359767058784441981547626302650071104241114567850958396704498221027546242631783693097555355905697061834553318821757838393992665769788645140135357565867912342188480393883064798695868693005058548006414333018308613085906902144063920390438008709282883742188870566841193146636357843580113654803450607244772770125757816531247160974903515107856261735530559492932206734309504116089403901778048456681023347102596909502027848003598099610335288819955649650439677427346490361386941721211677939056226466538520788051501496428125758793946001014819447718257675570416599516894531742722866113686628233521648195579442840031444283190992583861176012363316653243287305978004307804935841845857478464455036010904954519282002306985988286247862222837194781327285210250792295370976182038927746165924577186871057917898913349572182527493466681221395420282175677407204035765514612186350542774677690936846380874386293211859658497443887173027690594841125048799921384178118660849438107639255023621596103045729047401921282951607623734277286608843114288440254946871017074447498782120535035238858788433684750584355220409887512775914652232040034292643044203099290914936506130615836485613055086904251601828893486026249170461623693876589581891265651625837648729366145627136048765373743318801848980792385374301296497565705218586233520583538124995594250533356951802101537381658583120175379316147063636062097826929282278079777418164316859072917587042773157337431478675011701915184699731728948947970046698782382477839389618298273915272445889108452220802481299637085676628561169091702005872656738770357529009249552911630654064060806589196956497144385029549638047145213024100588358644398173727594922353107323094091471386482283171028225184359412504367256094622765406876927443627658422987626483575296315740381883374920822877050031477058725861190476693491016408460671668100272093582678510910010529071930401903645831124667924515662160937005699392039082136938937839381090111395326711311094033800973699603993804661228268937170402641663831326200111292654289264112827456158914737248825030563161530730092523814547299516365775840353395252663055004785826754726606429271163843254867441049385603427982854950658510254600224634899733258831683308617881308042385142495143853937384931911876163201635358934489036779234317729951596737558657967331942005424859301262484901119085840002539453635407171565264256588079266147109882793146686398999783564571354441083019394956269362252928173325446764510921112831702171451093721386601088009243924000641186401532987431710930529869356993360817814242573605064852831091320762384493960274866632075576578213448772254567155313674498122416978048056026313029541233914575567916125605187663785062725116046677604343121581482030405194098312061809385450073453628470977889618799589618629190408742965137530484479001199714614937115013608544421080939083774681203391942125816356757468977861163015268860473394296842111529661559957571590315020829870895876127206075073908421699962998471057068118047328428421930627232914587334319654419359504511659974993383673377005452420040453829546348195158641740952635550285958924302486012315146873085790914766402999503934661013728982783239115464531425043492417535287411509342818897147516823158243251547108636198401326849498246295397533483850883235957361832479338273276068693966457171769432681390349297459611705158040572116979928945528842220366661606384898399312024610358642617974513339796560367900570672097550932702249031078950157166273210599349500653086533548319574635993792108996696413348452511868116811933550049152122551795941293799731504058761073320930784645668198832293270103364036087492675146239003438807057721289890286136556968970653431482556685044134983931524844467597728460278524254682617606354494022894089641139119547215691630071915282411891729903955423713087815906400286492344903045574777192614422056692625685221642486389096204376014480408993503298236254967017402156633997747841210261786870486559099552074423124054886937187148234692235390467685101567555501105603406619572085732071793045679664309695127560276701415263031353117851759044797635060539169658042607107917382910421801313494726454923704310484862736614647334397180137431232863417873786832949684883519285101987567983774128535488557668260142727118671510513717078960718098089241930060214436905835168012177003373929716822042971991205916010565505408792362607180110991597318388926935140529646660443723596001906845106336066709827311704274606371590348652178120147278312137812827566118986490107012332050008548635981118956049973343921301268165410225481635041594366573075682707969347764474921859176143831124506383185300652682407387920460994868006986235414681596948754213696364647083657190851058253278348536160653074547390221445057549431098343998854095887412621596341698270635734181887239091530034725501930969744036155960098493175573012528471453110511514963129868335785082283078451761840770543916445847176698358955328211161076393047370064157662734155171158196045577107889456704446752780652744678474492773417390725963599835172893154256546618238665582407287071585604745506762672154303241137292900946652468650736327484424191389397075318828532885232648183993439850085643166144688012997252121498097640796905354571069752134971539452062021181691948766096802795227455606517121108445234233552767585919191982045135713215502962665174349824738137227473811201127187974126070153441753651592979961502867347826307249484270585853955433753664006745018412347701045091347324025060929678498018512322699775030210954735615137371565657874273319804442740011923105991208470911071286707570556609972597612837150729041777535872260716082710385526728145780434830516942710410764425135369322909265874541539326199167907523273206399302090287185618351346515400601502216097518760393009565117806687285192275687448659450867935031129215144924720767843130620329937689575546654608732711629393611041829258027629032073129078357183405969195508196088380140121318757528535902130544410070576732007612483527739755408536104732692160135576528120070459820579239743985099827300562803527449322675496827441769699616700641704291904347616034427329612732511828536430936489977343558391507626614231298814346736079341827348249087630786890054887173413871437555968552806350896721000063520205060704631739485292666641215256194847637017520709526938306742645694771059778870049279542406892023665710243126454921010537631631146478596982149135804252192553762350991817875085956254239748646545816180262379553275322052221562029591624541325699099174604215913949605220923821801337098520037814272415607909744974708610807947044699092555637915203427894783380844557060413406433152652076494187599698030890796724015758926473771462966987524630521033993553347442810172184328201314157555913556232417333498805372143601977942661150594677914190667245843092428440288222586338893943234126055285315225137280342585355122968053004741932275159590750757016875450936741738665871448992400613382704594685746714350690164032674868521112410871360423105464772137954426616008559442432295168113364740140658130123642204340011005539178883431044965244813082097056125112104208854899045076419397625306592296154523509946414591514864593759323246416417261866550081707221595768290124570221477986396856796464124169658942830116298216567144023244692229774906175686065626411987643488988893250539304759309711394896913896719195087802096285004787280674642303391200785221230400586900560268833944244961610255035120889011528834710897375982564691819590595400657237550580894002478070908671982737632492542365780921228836236343424441233891036522128911174854275995578422231428334395914384890831080983685893306254098659829224736524920820272502747962917554871261963447806437554643836792675371761654515276663678170976933611536826474679507082882407480108657044451038454469295656471914455900430524947503879146243985929976580700422281788606567457631893022850162654743946978284485911304585505548315757248221431531499837508864773066230944353504391475923305223721640187987957967879550221684811787127147994043480246789758267249874356063360340505396115182326753060257651794265953898178490544420821167616409019563968603349834970295068850647846318918533363165320224342123232198177741814217592473023231277393972030940580920237468987066719221846769329993931065733786695213939680733245031235516642789448989352425884461378764529431935288205808027281107898726518850348728111639402787471957615216808712258102544952455447842979401822221662258471144427168906618579974959481930550519219042309070263387074599741841926324192367407598528727824634540728336752701533069280930038317331012232136832324550389860295561406165532718043871348443648429912288767599561799649178244678291063379963388231734579292588008498708114137016803311857356617552621930380161295759275180122222428294786656782024568832848121156560057069421892283630612177395952501900662844577753163403659992878466619042595472890469452498767305857500089702271061877172470948861023826792650914133484931546801133446200850076153249452394365207520822684953275175648003362558526567875189204311299997173176491029287704454354851614511684318011837275886386809148256990838269157652650726817646420042300539269818498463814714869636732397233335226481541661799260097609903034711536426519189516502132207217689732452414790106463142761966229269530822008267394446251758417813559832022586826272453326589427652522993538480892891188924056271313956118450607800226835397312068691976678272095925849110920572654079403210971559649031741100319289769388459518023340316881524708973817227353595371685480351504157408221406578814864493821547758292320678028340950500152774798893065730668073648854012413913840983765872952050925809796353513351409294158818127529605049007202546166715664461781174267567754426266401244221476444498481832608516024752002593399746958287385498565594853075098547095688436039208537204253792106175745785016740364532521889814904356905131260249279629846543300544315073470130520316540501306145732200650031829029786572351489359261536228319218654070798474401956556967337575695919814395489745373698867179913749100078494840332773100326781407546882018399837456780286392226880264871954051619792084946441557354802018232438655165136614658815827810101262359514637232600531265699973618013336166662809797363265799698204690043584910430547514850211572134457786123368140531405974796136596868315145911974426116724130345424145340334750524524864198580871229137020895902554917182800717941429622784579817686517034794894925939789259589715005928935327468578880501063775166703036669658812529797051739391451467897668326000312725484008527734048563272498761887661396462223812880143596593275644573270176641912620325762847151664829894636993414324588093380267689012169499673718913550258305189604211278770978226140861484652172230171239053107468555033867031630395311174810774368817473259950932187138863317716786433051583691496681507832643627719100588026653326668620862937288608001186977771180572544893573774550682487104665315726845134607741606097119760801747022464038393217014710513877277031293472973015102653564141480744311591122076815099833527211820342174907607372418826717278946730103707199966592278950033648146728934991716737478963770879201973135598936538956809839341845731390623394108001493146333383186143544661765285383025648680864741634819043398431231619230554174450986401799395643445938761477679791839224788384608988934492266600263052769961136540627064541846766766348087251978813810397748584700473373036443317112346877799248040164812080672302188247371649303861079980739563883077035257844116043490477507646266647469451934437199512706701860189272262260459342810248269511100576050128418331324770977561654416456186313470685830680017748548501761044291490435567553443904066835859130430552785278955784149836680414039881342341057593731382729413876848938425015383060453529061714039405336041920719472302101990156291768729877987637093065310776785925960081202604416320746392199446036512900757755720429447726394865593692724806742408060804652314550210330882190156095238695756387377042263225829427025908697457870149641674833187632588646257400976334881048732277450691713686821848008911060397234591134117921097016290820244177925219708317576109553819440172611498680061408183944080219354496059162641412872020921606261888942155441893934363624221133425906733009122804458639557724200365503812372325798418110222007215715346138442739623384696149410568464128742878940584245865090666661017390996433596909276681028526322655812315602361025804248513456041329635789404640962497559973735410521270863612487802213568870001016201290334569336279836125926730300248879613599262940752430380372256113029946232380478664993880158701660515109355481801841661011397241006758441331102993766541284853112561412920219141269370317185950276092306693774804396621014377046461744514519320869339030405011660038838326743888307899590721440631907915633966990838457755025088892213419416069947447719792734328530684214975558634822229426487800728559043854611359689057978000416106191911316472426283636220769909870983982788345798316733936510980982122700533608747138941556889125547371814783601545857667261946179711806561045564629753761345497739517239313785923273384168134224243169792059791636619133383427173950787045868395197841676496227952864006097255050421790235349930958958868025679367343045847506099318803761058407703783656625941321486969541099274238618763838262493442811968073887627452822068746853847626636422114940078657891346998437156149228826514340358469354455830095360635635277556936865018863427068296500132339564773412597189278630482916126777666705163039950136501913179652421124157566584425250383442998240453232338177039136702710990341108968263366804657319879529212200692014502070878513317705614253591666679549937681523519548694696328161770419713351082202773658440035768138772824383579136837488678547688770365083177239550870641372890184158201789958944524611531472920316987055441951504626507567195324376694142975907391121395502428183140391668610944713638380359773899745467396649326161353586221161884855114768869608359488873193199384016693019881013543241160873367887675308780782396932641348264730417128025313682941821448363106996778843317573760406420987518623925747201014210640673710234006673085117056403821084086222632318385476617751982832067799789234500168911690731950467663322267277324561641098623971873873155043195675501341786945324127775151315317420472464419106473386002217155976400771202714573425096888635035013660283467464274665451467479560297840548887616798265584135695651895486733506837745271092336350864063352837556002565493925944521691632920682573444318389836730328077659903619574701088058213872255382765525396860368847346832401196350526824389070381261482193288583948945829409367821153769281741086593359543546606460502610865340431681570289247039276819166617587749283752352917861344849805711113839749191848258563681046154426736029397469048811532072114936549248642239500902342688720775167841810907552711423255895826967700979117885856444181013656658985159538717679395094411381748158037208760053063273912526891609300881062748699482429822159955828504842552577366885288016089958068376938480681491621143276913142256945900081760639765896047686694657050779362414605357532871203436582335202977773721852904148948905935195141419558807389980123788105264888481827574685869759791046664290861823835069659690148541974330018095179674722455767711459268131063418973514395223953268139246357683983363057499125246694537444402831097939599267608050901085040370572732854880226799066926971662501697377410183452392202558068830183069169191824343793132636229145983688459221681026371215195991171991280746353249186032226892632162370960619335543290319387118773783982059638834703499133776872915938990976341052789456603140207006303744613694634157335553659748310656268684296022788316036923669577842085704367236393238784069204470048969222418399732360230033987584732813153817145316819264722567203679930500168489593062553471443264573058548530013188872506750811536462616202652537674495391261657526663286768997078914284792053169434980979532180431312269645489078387634657962828315264659783175272753550848871287624498196314983300180907295056317984661413843553838182867827495325608944592754463715105037622791767268881153098013282789777351343918624661763719400398269600736413776252339153898599194942520986712202804333943124578324583578000055889474012062688220648720917937020206075335362463399749138636483689070193920499527560663125550419790110736431328276530287358417731896944535044244951539363647083701509782915539902805544541982081509787174083246284732179909392091375324843128210314970230523904641400064221818832392319138016449708265582067932825007378874706447260296017603795323694623215353650548692003137212769375223465172126670943125683241420273170455017279483709713986560881349623939256025375101536183426405072367937660387284114853228007637361092899834970034428344999018252593156221306954976057278249071428900343950676955520457645338397993877822536491141941502201731814823033060961072859776076110739892840305411815354051765415515479390412102723227115989891405432403624122578181572741251385147474028065345843403999560297546012103597180862979362967642818593584668182987198060060065167459332531198503449644699486815894241234479211892487561719514644513162088240476191301922531356205513231800153225599857618529823121454327020603712188909149925033007885325321438080673608652218126331815670966592293965360812751614900815525687435300392694197300372678571806402665330962660566785226093391882042039255906357692537258244353200041524425441214850145205083039947561918148169728568688758290805252292624713515617545542481267026847218027856842282151536957325047551754522129811173396606099330047492538836921615613141006758063731963305976893396937238511858328515984659861100400166308614977665710333116332402725796735616484618170851174612461449051692680676826759998514700267878506124569900620118803587362892617397281518178402865523692608026439811688208701227907836487583775063400690289866332075390430102988372413777607211174900185448717274963610153935816947327626904948781857097901489189271711041343449067287671342772753301392931078447130604497803055454853229718448344144103909776589678012969549341059866739338387251629780526279087466208714535162412635523462942609408280388436524370409261375351067382211591221474999182689906662509205654238860568665200490701583047168669477725045224502541131049067271533438426704713993498725849179377739702992580880709448502076222887950657447202694203701653978062029442662173942426273432959005802001164488036429965572342996235952028686789639220689567656861304119729464958960744482202425073843464321524363981479517616743190210449271956911087217739000290673606553546980318901678542852859932169362337324668485567207187384592085888441901999883350597707471493809703287212569697676244760560700694917411299627289605383078558028065082819367873411861267710057329248312410593977338049081306645604078585212004984231232444995030441760503106344510233461349913330442333402972675837758644202424592073070849740764885925418691353728298864934895705390783846093010487322361096974883560652934617741313844673701502321025371611773344722841112979755470793557484346145647942915564591909716131120143076719099681955386976270066573800785369216140752775801457617816826714797025843971475241586271878627224937925163906136852698020589430625910113527157048831319024110046848789973127509225207458408089141405581472680143044242205279571830692376649095829655638823660204212464225680138656057911180452589867770362761125395241493974703631279266844636560207070185181984497672155375545874011272081225021024207044192509743075288496935311423366556391067068316315071395629926291251817425997897227223526030643388988811412129532713757341382883882772318635254410166566314948154412147699398924302169211437697153087012729317010939579978436029891419577792068353635122180666205497907273428909034443815911469400917399416664344785633146831128332971112680195773136591815175899471220442808238528447825207196717570269014751999714892243544508275466767636381668105337772625466464878972219633319328413869643507640761352086210623125246692346697871280283369932685501143046243706475014073355809922625665411264429670769596418450472149232655344758064890393227737531236683687770890145854203727220791142500475946243020144831753696637309791894110721804023647384177769504782451750781538244631294208636702256565981756719166239416618344664947620513992955871349853762948644186176645324835069122564277875468080812477676111763755524325462100714733326298502240434665722482542908260942246252702921472223550264253011512227331225776184184655539329747922780337597408983655131671378633633953289652604213590185898737531678136642334425653156932389761940737988929335265370899541163892571861269217371805164074411998814748945845930101599567924137783823237239346162820323359319761076105109785770049906458943348777098593616543716543559505212633570645055061078202216054667312877586155733347108157194655046838134894466685770903175665889115995269036144883352250167327602648077469276396182133309410892155684728724344263280985545978043263784898856909956369951290063685359445385745362974235079365718566958228662182079478060611504559284977785858681125040081131690261510356620899106200235903629363757349780831575835211626594465836515746495632806942099569588224380276793654559561774686989751232477330172236748206265562928370802954931469381942351356347892580960478861349944314478502929972748057459583807035185291783380682350335717178949766930519829297425049113724676997607161039820228101760818606254976048339850837058504155741016833225109375053195048069810041609454713289451728381115670959230478308529569921848014876534920194750453289841607451056533857604589444828456394801251842727642001426679183055537065228964851194883056791289711584121242120384133796220208231163226705744176563179356171047819080301701540051967988149147418712089923933644543828257216748593086974728869275151064417580338540383168831409263160066532058815677741220029579383369683278543408494354715294387472663612048774770362889534763361818462030870241245272390904486895770832060725560438075958059004921848938835084144105570235806359438445547373420950026398048058431981988206031822547145614876960676370107193588430587337074971195237859777947697188900925004784753585176244763569030124903697001316422494318287169850114377016286647256895000066695212040825942888158494877144251773536298705572570267807711760103138516134619221915252648652344715499904216266362651080827252292973337751511084035972903907382265120162933244837986542661383202065789313247322644788914134967494701217674344323421530046429971450423124522645188880785889726050189690695615232945553360634724773082861637560247322465671260278493151113383649802571692526572754025730974937847895566380467207609961576487934894908242908454139612001209925102157038140607219264561793527497138546848543818136928033826588288751284059148821223167695816349645253327504532973243080248991105667536216097456753130528881822055563904102703002483587114907250765133889473342577829589535548631176329194589023749208656433962343985012622428564758624118536360891623833789984509987045782188290728673582955875059776287111650838525729547918856477942885626456274562219681770047085479066221196376590152341900819624690900935665349616098359539997391353216752529451752180910340017022929190774976320618860362874089024158134369354880123831209919461635241168466096363779301185671406045916437742506577821746617246520316523496068329337910201906366452600709474465623981994725355541820825201971429164264641929178415352647021217824972256536834218524329711703425809406350323367142176502121371646195074395883865214518655531826616320177834924660082213265943576241447898111415005308259548644789302481233217653469906903916827198063795282883216869247340526514441475586695338429782488820501424020650180465513145562975500853186823954721619881124468077623822728954259900993132104554427790878336866285349104297034750038329378459244803975149631380703603846481117370976493101468988926320868826690781178633658447427130134406038754980763067684033031406589733369803950847432277983727768163853720843778358292142888382885098877400911150837465365398723115712214690479738714924365971992999831619775658596517839931026606048192293681561960823624685083678407084424679800229941755780634438194945433361654393850753069328112686700634449421677198848913505046329713704147459168931897006191368871227744088275366258637320417139794339326904159491638578362661023346884909687723574400808497711021470808277188492126960631418362155909417347918845777403460910856347386768629027119508025984594853225817793791830128250102890006169997405790469843201895411957229628875633736832708954732309840109772155472002188662056404288912738057972053385107209938757840303315853260359642206034796459139287388092696725483906079344710932838933920554397613943934813513194886887686190431918155456828261728839647113526149077855937981100043198863141006449090794663961219853420241660302255984070267477043213531677540015284725226938372429485854602472342875376991608565911634645253905973222844552768168749725872979356047951296409663999490262288150617785645388141433506470594953801798110813143967744011333817525462273045704523317665631382952471050922251117574979285985121533654386477190682721222560042280934630732583174488609452514501321872322753128537788469911792288257746739514424776874764911725168999796632069111508765521796950605263903223236560205864678645984377651047957114974893950795138103317157069362464645571692012662081537360035983662702507171339452846461907139733242287021807649235608286544285559912499857763820727691187092366066966020936979921211347333745323234162793857584774847719102921137024307927226304869377661056627351473997070141066512947956326864232780476627937149412347105412841643595688507307241088601199939186573013347353751122330800463505110677955359907890752488764232768081019605461630422172677010983657705658044040811097714987147605499931845504614292610908106957222769084679623180619047689879693548198054975261883103963244103622729302796273898448759239975826050479208950357911772941378199604876106265051167177439505560601593689518275487674888005962966012589662830738073849288610414126708550462689166638583402802135668823557673800422486667690430803321256317392836366125494262435653907862062997011477849385197384719204511640801787510587756165403616778335060564780717478530705073443964153839836733503374174947546272434536194736016094674795819794084194063820260274265224317752500110585408877646344884501100802788464050116428032803424349706935388385833081590225551407181119164853502603794899018227644670923103230430850928467938779402145097069252015661643575095635165837013547896062465728369157295687552291578426133873673790821581802986336254084969705245711312780380780541458623798741359738087699381695438550103185363207220974581797263127536694078458348359569472194717557077106032509603703573365782526318682600141072709390131565985796515693871852016016676722460189083884542329607884248303813969594210635952207936134040619851358619140191099981971064279040910440978204793183958291170483530120182386551331028222728417014092846280858541710193855932457567665656205463299871194131267186549853878843070401732461616123165935641998013222594030528430491558886640281849932767575083242484288692207390367340374318043916386701139755708126664011239081500879157776534679117250924387023947181032284560955856386108554912901847003816135777872191263575403584031993121252491502293499118768601804475614105258008808496595446574312465213751364217635626706450401258222241430225369584416608844541450424364181505448717105933256923254265549601142325900501422256674586646236121619499072006187790933146314892269286433159362931135577927360693733208626081302943770788329800440679097479691417061259804698561088121080588908829947005462845995837437938216505662527269695228644828626467577845347221803970009441474534051981925061846908933677541250245710521623037665339705164105564101215973113158352235618504362236265610152376367055513910508571741711476192875926742124812671696549115907613552388925079671536710405840550122909337065240281079026880082935931064323710678450210235119075854642176066263039005250026838438701053996742467331901100673750783009357892577739872278721458606470477871972921516975958607757016973190289767342449410094856198348733381140448296672054058789182978192393498970470041780587118599062469924154123364389756753009040128060564237362064198129943808594351931174998080728228050569018054086351293223023195925702333024689224478815023381970001033579553487220098543606390941742849811164354992554446284130866115189074214033085977690471354993030209788120049929086545321607119627355977239604161980057545864810458844827959688334621141855016262171035418053515564106822148613571301852772195024468558118050670310080335400018502748359719967548800056516799464341613267331389598996828582399344217634576224776421306840459153404364718067304048153378998985289521255129606615074612588295800438024839918110801212036121023650028160534862756592011542544422477624459054138414274630619036009583474582665733673165320957877473680804747243031799578246210566363758366972631897899829543810155110924724949655436715203193809833149501353320759382075475408514334859309029064988497814667519664543730668388981954363124513702627521304612113593911625192892038778421324988278131481500882515455554138919656334444926580238765628033515830574550824516738114409346478873974455134807422087896468845632824808816101696985980232845799013807861005566758663131662827132261221122631948822871497413755699825499923762368663791015672674224026765390031371154770871240107125119032941493090894365601693823302174722928638199041008379427664415221083877655595995610408103994315682653200147766216912979238923447391581435788238569977309937322035788669725175568966467289762042270943300599309765940041657943904149809173151460034504078435070648145592729166697247191555315057096068137107968946895897936920414528138531581471847208200381903408975014312747301326096409839753565742497050771574027132483822638429461488243074988753252161259357973418080822350590360093546511002794812892430732492093323308545413453221312172910623027135874889982333039683986780007887372050708685713182030275250345726027969439459110674914162147578373946270933966346802469761890039227684332841873300907992255168376142820686834143658628059870741251583878281361727720564652917062921756606742935789668651318894963433225503060176749170904772999441958801937495162608331310503585079287927097780509700235071563685738727255723013385288729251876840113283535175814455760288422146335108587365635087095352303249092748747433396315584442516137983881389022176308543151205605936195206503227708401359547852541279514685318437112544328134581035116029372860700097922513570941167225915592911516842296513185503075950622040661920071633427349354580289421204009875700481779836769889591098384908342897774764083500156718890033667662978550741750260332564811436327875624427941801447543876715722822570125427584268523537533517736901664139892693245553997005111455136269981060541521881750303927869814251323257465315604881466414404170384772094400949877874533102405716434398059689458754177956256718383903118937228467050668935404568596184735652944729986265096646907600594811035548998721194324510918608512154995518120907876218971400671671858802745074117214577327471001681453203066253021008245780058528659923714705998153070363036076896498233234729706222568898825219559908748727457781649152453886848128525017507770837189327045895480733232155081543245522082001644185904576611238525872619291707187887136423182563722427048500655841504499723536892318988837829298440012492086910059546858996354968600496846221944005052042613906210242524087020184169791303043158764980365862477584461851979947922141721736998767177416855706696470219113911188962757515025836298718504779233356919541106194019881884773620060475935507863458892950879431893513461450588258926010468725409802819287555346786360970732786593936236740015014658948504468841072919299821114905459100952054332480325361012591304722124103563507465663455455834112676758026364564243010544197257586563123443675830525438397142677799258530479964324884710701625829101505471705357903534523447191750527384353639269082948130054819575627264250488996476855321336284797158778179226463901253696963248566806223180558615710684591161642922631819479778398808558509603312152204858261147973954447321414938279874913142784783855666154928709590362708040724012933891903028813754573820966933145530185810026243732870625603077470319999905404127646891678447710117220525385606472869033071859776880276735646399663694365368874094434635727550030612963153599913887110690865288695139670019557214878305531886823791820976532204568034970391596640155296724120962712802049405076952110383268534744179905765542360586602962531038620968550759506013212192659106965651245836948687718519664719636880177729932105284167881372815772191264171551036303481150467986220288248471224852619781004969971965819609441711726839590465553766946590236060021083998077468513227909768828902878148587533184484467809223229313878023109333829195732489569424686267161040786372926369539285691873409913095148275711811067768114281573985018446409657444299066689358082326178260133451675763014398173126773007849835432431699730546024266885411101465352530362630612965088209840484347457246905021954209607893553245596005899134492233755339014634388649531174916702901054021822490514926870874909685438901565284440761877310374232284439340835422324958632241820131072873218953867292107238476392941690319440567515992718479688653326843112526100204496788652903587355409579786062395532183290625866322283297850087570159126264597792409195066034370411724158472857877938768135169825269920866253382414443289800759050562009732147401570582834083743639337215142365908616480151567342414760087281816265584391628864084336066401307370942027864176644595490674097284801227684721410190970870580605561384849191390205014253619712089805976493216166837076789883172115893279513818229453188566743529784244598629024382403645459900685426171395946523999161794955599735584449527304420178411831661531441098968764616067051497147541056850454167861507580372355870086071437075903727385800424879995645970676921723557976359392229309735589080181948410606625908265722620189686152811243682025768323166636181890582420481957487046128043624845054718775158291068100740252988720825633998526963898615757849936276997464440346854511109264293527278401587226124260476701834492145009877489344890863493913843205646566246045794836951092251462205364179889519311281960965756983850547331960972940251375365978815736827946664260042616973601510394521318024928525679030746357972684730349871265141217412609443097867490903413400397918562959544919993801571095807485051030649021539488736583724445462758888421987709565739486202117235974780323183049722375424779074046412794042718144855767218280900583765268198758406261456840512655981744494021330049782041762228942821319979802866662040300320511539102976875933299847353168464523880255659932783891115723143788051820677453767852765788102691280129682216297051740726705467319103144836386332342646213847546593876255335148336678920443367147305194779275622722579601411576952384733369368989649924071289987339002118792806104883844352118951401386838084303798522512043359538951725894274933770110767978562438699153609624907074517067891073561851832847663454539704763346963387452123522613512984909705756699255165242284781295979710050969804694424273232660909190911285801420917793386937204963688758660401019554879708257886752712369988859822112254421633633639829208872978837221726966754919259946754980609408022734173648992618864421342328750819210784259066777753781866674282103186834829878878126678300063212793397974709416106751179563728344180409005881072865933905699426469826751481916309812853118327135823351451540101521009928375096559900767808815806589793547999714775994207093564995934744104283663807396043125512107026285868643350826938451947569927210030667264859476559177336390625278326719149543206985146561143455579793486998203529237209775006325695383131366618233399521566055959268834980462819242983216386196074310986819801380986662662993018965402610032483318680328038640264001835278191252396221102500869440175136026526431520670980855179583191223256030440527637703790397741779035311356783875006856621114488173837941107274205659507038199847036835319058775961665186118158127176635639556017821260544769077046657502817990450714839673442724379229732083036248400075652449368575071404877942884113101931878062522790769816394209200286277825336604622332997371710294897593366029311400198940546528138209248175147146120113994194782524736766012392160953192216328640399567214075349511761610284311337335428850562503114463397194105906812590485102499140115081811349534745495227775917736017916455797465103085095087337552646359930846980610331794061266946321289155182765073898158969064271392030666005389399206058680105574092242164172362499784609317462409936913078612756884546992065316754300093174768805711733213068062435334946530438007537528057070453898765097572668876367520677894604444801404313015942045328987696051113726434944577398665133203368478057609191019194984581413604493483462967629993451821377609192136313728335403019781710386753253635261510027050278232544458471399360793888583080875157006540661576878010755490593096415245945549485271530552671500180962424757744166955455577337959311408356898293724113951358062147007734325343453741700540115654838409642347202011370079357256763311160537968620888319749971906346844841157004901748449154557100522272538272679837816071003462111590949729270685982292248067102892939122107627559243871320669138437947994698452157201429822402763986730131631360709590043941298180123958106309882730551514141919302165476405556047623272497442876670904758564105608118696429118765896392686933591971024576185423769123196884161848289899129584219454417218046257247695610436201032241958659814492103526657324522407101708560294681242912866327571909111276216120228934115556844214773241118946901753980637745806212025361307074973218577324080373544663661488658074075344654811440482290184927053271792428831677066296080898124828207085197673751270324752604943970796439052809550692832496383646948245477203867502129367090247865778663293191638637909974212480043290128434900854526054390070480130303887494584882810227328328886315090735028353802267735690434520670312162378950762838123186476614076195223913360044362325104015339505617289388997356058438025325692588644456968716961588299656564855319442000466943721687630259376612113360727075225468296596398009371123973634976899546103936646593745815729744953961166851289941556280413342255981336985889978444826698549186979097863593751172194390650545855647003162054087589038598345127915872919313686794698590626108315072152802853539153244670319347640982057966818600584601187810523520129293485905383407385893167782190218675664278187878083980762827792186641059198759250733658083518277725846623337977010017642132093025204786584537776061400314398359395585986724643544119618922128971102421866189583507561022276042602581054072836165193457279040663462135435771138546240587671650946059427009780614795272610303016252926930784416753723438843876760324483847918936931165020796725727903172962951311247697781770466278381910654354516118752140714117661092734153578510593695211441672864084852789150024624997268727356866485309421030053746034373476094827616583296021135246248172108667023233932983001555564450243243190156670064781246974439440066618471746159313459388536342216232961282743423691428175927050031537929273023310105388016715092337621571872675771481702591889068846826191141816415418146338403367390117594312238171296799013957418653421689437832551208939388578088205499670383620104197480534650157134028963302251777002641850869449376516000303372399198190015978237376428203902351811729285953795009185387654418101871610909489963551424703567517664116937603540340100010887308538528656685213088195480037336331065727180104593346964951236284126993214400885026576910515632606965512763436343101675770520687802295619876869415897966459779436395920592121946206287314182659144034495466245892406802532865424133933266792139980992025460369587279472021465270385200025579081671181644545944050398446485842477884007787459374747165407886232265387156945076175344158326627210131543193563671019628946410216574505858311596557300046436459821699447998708355192574665868361150870006849379725448354576889977163628779703245193532471616102781403527797409066209725409543418341475547460866900033028977250506902942323241751538355322207500138812502607929032455033197541784550923316269124473505791590749472493881227158969372303218648509339734745288184892773252118206640778916516893750918840476710974190771182736453130546218242332191540440011532048489273057527380525223457125979176947327314782210706675443978265677797395318951422254030160956158050454610709373156888666322430054680821324573108882027691678489492636387616873856159465199691568899062698854465579127443062834963222184810188570332433637244004591058245522740047642712538985493743364485967182580667878510135897298993983367112783133839662016206978341103779094968808205878392461594755173734360034514136055718840284044868844818973848896524320863541038815819237993627133072074234728331797409550119063782470877151721730255531448661776013640394925553441527596588599143565769651349658918766773018756529615362812037653511262203507427064919783334693845792264977739264192209822357064811276537634343478746349479173556254136162569861008265716684125084634675648946818691036831318540852815691801018132632694788970583889224051052696024357671707164267127943852516612508541481973035142755342350101087620839422217186998203083367412965427969387151486120278753956397512908703789412778445404719217691695932075789228941579988658306275933004914028721296281992161633289028478048160070188014736216514865899272467138799082693568700251807617358287892047330586503526707753799786915072396288068385507732221980234983234615624577031996165515785831841794670409218072883152860784645251326241766045706165836710758080003488784123757728928546935337516377465232843599347053443400962542435313403689527555582615627526186454615899871574244097503595713778861417964748090182977847808978317897167451655853898647660213423182519242991036932611323463668532531807172213986359880922002528824106091141061457327315614569332107441812489229920585755203625083964305690140367540767530709603049626328606848696968460630744738492634813004654038279446185970330788355599666512889857873584443820203232340599834263961425537473638452255422737510191067624600432620091893854522262368132702649424212545732273584709055425634784361942462386890459974092569078412153830175010790425820961536269724377210967115126168608808926744286848383090019393999369488218261824486364193629796881832452069153244757568553022660952126344474475010302277389162140754068916832168574677055488681300017665720820359988953317209612902318028972231019174318430985997813330724413745804612857202282015395639730176204152301420182447466134044339868436162984397893713148266741296198753787407075995052704680447206385817813757164616715364020512696614002589233513797753819017961408785191603895078331622619517071311747281244075653180963512117997661984711125701609897739001612219401622642497003589722776613021383001673776818052440157050126630538303159044033407454525954048875452202907661373875802632943365100445266545395485681605361770439703460889955748371226771411692940746153914064564531508759381649447643744070261517281051374589810787099864948374214940643446384555226142772901595580366354986538678511824683342752337934920524213058973657250951959249760732914097306583420198043414915667487550207930610708307494659929705336793677505653567451645410151425486466561674710217173978822897765963793281121148499853238844799658058374602105651531087030825767798289040795991595265361643037949320904882538837492759008980197535331285304803906201702984833000715871529363566567970148892447294534821353753456931773859098093211966739388048390148231463654166844993102637797345342063343810644786154114651820516115768704727776535822062349973032346148774358646971713360058007631579327165387566055142760651104862763322397390851796233714988020633939158663232768632584136967133866941678612783624080548709334447298291949407754233115975078640115247432577519953262500545746488378537744533138350489894616784483944730833069222211937586609699074255033049032533532316510014777472123995327831562198485444706772230648108518698981399615335883395763859328721472164816666648190060324080588732725212245155741725897712893810124619564591516667341437819768408992733909820679894441701199288169929393577540600571269095939944174478228396485498592265620111222494032577755022396711055047695318962171604087803470450366730028823203791122569707773351771389448741796031241654371327482317027557349452683557054186207470750215529481296663742472324138129488951497897420236251014895075942527800730432545878379736645482352746004869547633237144741240073825638979155989045807557282643085896458404312593919758815534147383738027409092626209967228365553632096190100444690079854857607752823647900600880254748187357714608596886004671683719545529148077767060269693509176930462891793147162113043804804894228527097243205941144921789736988290190345275662801965669811464209395767968284734384737616598613696638468283998514493317200291130662395527692749732483642226101630164897523857272281775185766472877532628676895737446206300771238119667352579370277198564631084731998859738552371147369931890536161820227125729694412630184628562208470283053973615050998718495782237890923596564173594394798709920169007268238292072392279210371243864054974366491382526069184631143163985249742707225107054789360019382569194051240212780711864805817373619225592637631242693738960949785151397996394249897014632312113735554939154798991909636458506349259045842337693892809208982770689435970617458402740815094278421352940084420219602382249431824378469837527439889312494351455805171265961162740997540785297298425869457355801135820670054973553583398373525753964233978514435644851999650932829165637890739203078731435482325355038846408651770268112902466535660589369831988452318760048249796677966311301830406798025982375517290345540219410737294615674724461847910626350686444765296566336818739693097087924896780938644640004376792378327770929524634108211345262312182031498254647155536143516045087157197557579932978806805821944495086921509748769399059362506357590551457159033775551821908947136623951019612516129743214974865141315948746981877772393064089611709292157541481082223189105020182048703244231468029614010715169447302959171812183904905410530481475892969904479955948864281598868596766771661588211520903851439148979066468429407328376523449765981147956029724997056457279341315892729342021956495645199752589157580092131707537996066199347486339290733154023795294593889388462624931809888901662571887382554614545196996877060062624589903597097608138410288642228142599894389531822835072875272520887502954298858088657662153151273100524713140311166563776159392991638277979353556076965848964188079744527290600508693340761251467225917125620530412583276444817148831251899162781562189549160667536179338475287117661366098768101586431340327681060530024558157453685018068407768979375953861778904587773672279341870824601958091485141449676607916674901293634916550677164285758694512535304450488735693347565895308795784800949793486640780177363898917480590556691666274741375680487123283411893308105842866545635696036746136178427802153210808884998823066824384126258013423998836126613639847873315412423198224528889870126187994410188719860177924196036863939804831161604943767710713698710483169813225028501465944548094665969160154023198066493843216699318778543839932157052890922868201410893078375638303388311837014391913318925311004325355602251779437091024269554783835678803305109174739017866358749259695224728433729640192612031905247171106937730791633007384186705311417104704063150210177735214012110128297843892970700370735075504751782697063837708903186336754477089615043854340638969128955092297564431027437680598962525470261690123933341444011185972980729726223005482185357469913624119485663972352155920988223548813295075575110069850568828151181183944441415577078725495709175801257773773897050521729606574511115200626271619869804237613635960740846230629178395921324960746583897032098316340274513654776426127336027882108162212562381152376511676550510704714687646541592716658408926567506822540732355725184713544405582329037926309848494853103725141316681768045408042865843166720802964050222537308744677722816802656415094213339330787936783134226925225939647717614265173837799598165235526378879170544683941868485302242676432840004464985836104897292856457931980511258760789140416074585520664306308353015826119504226939399939541207802968471605081278861371951447345670110019967460523693249234920504859485868590917142050741544850377446147580483683148911646293857136883606060629383556606053843939943434103179087811499889785819749748873021091656227940360115383336804372667016726082956790925618152190384522769318969748669526833251266821740234827705699226941369379916539196025820953342213842770686316603138414266618942887332049610119320971537316642582914626058122755562494180028363548657738812646289992165321295617384236410298033384929743503114384718898336977152307381516806780618603153315385049854626177186322171928366796485154444519538508928828790207226610635676090394480270496352416514403260347923699396650141331617994896123386536086746597904517113685923771646001988762381662860402083704052032039396319668336864810438020791338391332114085055423416731351448056575193915771599644337584899863863234170229065179628895903268238582602419060904458574000341175351838935562432254001774079196066750106292337700372598749159915143833336888693718440736970459172678563723660230423176341106429667254491988015774854817364291294672566813360264940742025846268590280039381880150318322286039958091892519542949624706167747437303622535699419517245617185834070650257485154278042406286854738202281055956153693906096832288380795664613228399175760477756819869939806662731463065399885405382221984019406778348557185956066250510084088098853540828960966757001674182435646156007055515061603606161881086284400222898638575764340557218975598275602466092877367633398211176640845274578147197598649546056074287133257479855566167051504845957136317090998404158996519942843882118840597110449817879817055247508300130024779759848529302195965887346416626280526728928214414010123030144366168912586491354951071167459298085966006460721528884384739346644292207472195763914647512335143470770422339222879436705100833198052178403429619951832554152668369440729080758755818492226919815703783540915825742942564556137314107812944147484683088395424280411118499690334839399357091647304139764475743541602281123805593383149932128730565849202180584132485881415665111816496161645623157725463092237759639915008408378303779492737538414479850473339078137840470714389561111157862498655033231391772508654752568636428296100653201622475702824365884991588472009720333423014575257022693994514546762095248511817933438336580999940738743659803748262614083291740802509939602441768303828272070238077238561043841778963257871893667075672325403620670191825009749074632991567349427096260105730112419548163579469350567511520576760149053129570586314274556462488392054382680799961434855086567810866981694164173911798822636453879569823482238454834841451552360146506605442449332645656654445776770572704068689286607034090788046971488389135410971345069377005920861659469644536752252300197929394422999059729278144628501292220449553321355456008618050226782093902231413196608723392930502328430942044791383862388521539291116379998689104366160000450560996921843611921841520094267479736404412286577912801285787828705478466289351413916689055141440470022086788450747366496256799985965034938713781736108248953497698304594787336870955923572631364597819041413433833730017578570797883981517428200257558329099198617403937163375655156235565608388382532022503036139289660877893268394678087756223303592060466791117265645675349641597642975549741817255897210882452446425746226721086408139764670108158860418188908373439065053832608558966351441140145205698629667121116437135370567630186014434178561793938909954811965915211012263086660395110784290806954704192584904557174354002582325013526601871447486501838525583508625394008009286897884339119599892342537925882413125963948704675985897933928490925059541104662637959112282634893506739542566741694686230594337532577665555257170571179656488636986822547031107401799847029454630099288767171990807717339424522075924301352824129412958368978652400433012849030550017465545884834770111843664358307866357251611967479695078778334535973036920796857395012780454447641872000947742404222016292562102833608929290820225175563336881374782129424273151423722099277711191969450640166731875742489651109005745862897484141705750670695911999466218545039723001105796704249135645332995426613306802389572514874724933895395713623586205690730315860180400568309100777974526076702135444255961363740068278389285767100391691093271729525290572547270576942934872908158133887828557626862381540466119526343378831809325944288921459055543657073258924685502820023216701422451337853967081008420099344784220173657233883881515922517700923665694663761508006426301162586863862584028859536068142647660166149309111536243007411309314256007232795631358597085764808873363701842838915130467438565764823182951795508767798291560799690733604277289703112641679026359241427326619018612142699178332155058969724148967108294813985521335048757595160724379437834978118240637273153421520731381904151551739404778206046093102745809686323285415675366683214276805038835946152341301052773752624118856047634794400378127095501319905874448413477899866553818041043173240792779987138275137164116445210198758737030560094266674137528696076577975756855729071696184659148108051666529847363689351279608118258765541950551042059002072838122356749016616191912838721634454001380893812157028123769957801822577569397998153986450566408526126185946770413562200145906345603613802772630665221731389325829910448516609290221882592944840807564662471756207379648568807202407106735481717497499378437871319609677507467754923327987925972721715382251959076246449391592132717132517139433686776447587495824618486059070979144743368662028249252254773285306789803377703983670626183845879220554555542446839889284247984050270752387285660051854508863512580784132988748360942715050364715344984569009369887831200503848185615352314056293276082117626216243338326101754226917818230668044760506637884103831589990376265795113593204964667010198349593034687987232442811220691625994289943965742880218605757378411750527887041628920008952588334022328475256230341778249430018838370551311498582614523744815427700990888829532187133214886406364531676485993863349330617655453016172846249421098176512035760216175061336540059091714573436182340830291674186342686858997613343807494913956150515966575307942251010766428412764483691217047403778841566799409613485457415365028653506965171284474763576596039391529422093509875445306607791747061998425364060216072738184674147177115799303073107518976529446569104972013594313087906718250482515446576373037604542008477162412625905215783613515319895595510567109659638277398602036803696351012793096570139264444682836562150787310662143076653054139885829776095266857570668240874165586036887890718145526959256494198081479355440690268938412367966537166519651134342267371713789177851572390141616896460582714152099252798468494405823687892674820127956543112254893666555955263709870919810875099135164346098502495407790043767645914753047615090673194495764909575964320682752574688674942198836948934650232171716165994724776615971176443555626567485964982630586962085972153882112942841786024599175965401945448525993433863886666651327406277352414383486676959891453274774138151113234420529580046095805737901373060016112752922629189933653621524966549613185054790938637015232402936781995663959592751469782235298027381558701574327889241183641782886594165728844716393609268498392800325043718346326747615336989505114807022850262048931899684358660440247255969061257997006203997025152277449340756946925655746369003220416010290071489524209554726736175748471919870604804439852676597596819043281436441294198887270923276997205188919106087669746771420836225978087293857315077325682750924471541381353514698627317316444092145441859064267563997064203437720912125900863326911130312409296259867190403822020333404652477262295949535141950913847384014999762053772488741150703174491125324430364424275651020573011736874914939345424579933223180612614929176516489543804519699452050955678018293197569687731480682220056764258465479065115143470484516320223400913945693914783997708893018871115767546400202183253725625841834065232738905751065589779066165553704289844041303091938011035503712405199475774212578640130430607561878379284407024089776439410068140151505376794156629626258678642897863884347082475795892457541654960385046019705103501087943423845882990116590460882181758793559311441682915821697109624451827992569674317275476640845092635034800742715116310650407329678614085691075528865366837758204735913180879867173930545939291071910570134868583995998553921754297882756058699591986457804010713742565737406793160112252494795011454209740185980371074012769306430371242994356454140964194728849002477035835556830516448960072137910100886310192546421715610124155678703495757472427341368254283507034494942330674464302947459983443521493613257899434729976566936407476988347054224525752193837567478102067956459194977239593955720419613526798121874772331096613677185325539110159357653865332288504428607858844688614853104709873988445813494584165762500432941961893565421729223321509936636911862026967571708810583117222794276020099143519782255489206978019336108287163727237260570198569558998692220618122843570812925525222530792796966879383220452309598152591550288663795669788732491730813468770177702026984684108403498728992138593399816193882130290394271330410090069755630374566635146482735451605204861014871755463581363412533436065259293905314828473387848021818470879428643376907842069773274765310842897099640436817772003153033261324820382283529945732488992011568691881269556381280419906642295798365634815180772062311823158477155121851874404893650219464722279490532979854901063402690574714977906604574502545613811513437535159622865295302929870379062427974011438304629502354715560920468240041377660890351850405365803158674689475887906740190475556036188173503086552381406903714841519263807735111848372502467313187018608923444001173393009454557279909722643380595648249245921801323330321871504732468807007722845534701747535090803043332364053608660258929835626050185903389892289995691993736617066134577626470187817115221663545867976065132226373743361349956874059972398327413366551146313152106724999469238305409240320178013810545715926142564023748192720878326289479110119725014532842482550010293136805039144323151112916049914725881476657865133104745950117179932670753401268531817445714047923095983008923687639422607980116771213222660978268087926234137800436869300861690826483265560056577396610114263037849077768171999248515897464123869590455957897929254452378144472840379370165954245626613231296986943910546157416768636184499310097029556609780142910644851511865029319655048666931458721109612987496305321312596720758122160888232297410212801957108954009909806943076110270961089499342727345637189006920727416723235122764849837937068410245253638537272849419971175771665389426729069229579475229862139313716938859576818997577624197842421111000191682907785075577175056724747443178831645988154810787114103993164863336373074372305308533955433641792485016787432905349163584067306218145262246322126623491642447627445930331828333831174807744143311040499043465730391898089070694125766397053000594482380199533772633487668741953795526783110440751348077902673608076657035826004587158456543361419864275223220498199339499807203149290506761926103246849356520018670133611654890926908835907338324825612410766608972784548311179661894443788491410842826417121755387473157214543925750939920880943967646912664020070042372223217344352704280182231060317481294120206727523864590803945051569364308643278868919736272303438135905252367636148540661506628904447126748473292465193419761850688151188728005950194656569238325327965663837459117984688575392041188863247764489056740321226180921274987512714997175363509458176200420473868271736584765690773213553138281660612223746829314733011127435690552956848336696363766727083746190240094025225175451074909916540488786583587483591441525707897462113564384595610201570273968582920069905703750465267938653149030653520681408336445055574201720846222725993053303562525272371067805222205578228141300435859753184876525917198112002050969724908102799044959162838814802216065022934615936258430831901950128321587224154600811407135126209941091716621086975290468461205186173861642401633312053862028364577357421835212189265558395789127222435064306469124646401160211109032851530641107627757603634726171309417108397767849517943653046770573125488444957029225769197241370567555678759197026121619845641336313107009242014859021523630302041278169109993576496941777063235489716593848586753590142379200848370115237164627752000664591525529336898598749539914012584323439659863418087603351666591209944634283067227223436596952058280559193733660134112147426258321345142347417919828211816843211163394550360866310407916046571770337180734734074295960951461343609753106073473312136152283021404364821163253146204578311255837212071763909856224727550407755407164938122623315706015619398302071706795464475405156039507216756547944119525294690461108830609530209460610278568070532312911285924981610811452749939210545821210563900036995360611463533129875419408081467198778870044643305115199456339770178981761011339314106991532542382074099366881526893804353859171367410652122352107610877214371613162373800864697045885297703372664045590958818225978976077853162288291547529989420938262768243811219678985085583636565519262376110656855719180923043647474065520517426015499276294373339967208447047307479350853605410552333176971197976716502878024310322028809699637014655137503132225893278664797942106713598953418202041232488486011015778565496817089117833257970901921209368130055337084763836599993416760768847851277696626462062532326757774766572301974567821856863841647520603600282668986530185174321559023004274700033018644799730715293485230569227320883362368996523806945343788553121048080793300105084675833124314332339105852035164301112840655510832527348987517896050307306519042567651651593387866411997191985249022132499566971142807459376140209240408172753332567438199342342433389824011907588855591469587428008210355680861447785597967516893845596456601556246750217203124213310589092511678100986449834486385778393842819120162335565415967201674246533599072908915018493630267516582212375202801381198020175988521357910685683578316274305131361366086138456103120335069319764554234615132119749869730406976256518546812094340066316390548348809400455602540482119617284004866735728776001915160779943879305000829507035203834211817283144599070518825626875158454829054425681639510000587850424236080515139691764244812163996386719358017487074125589883055723932414609501536506529483477874371372428069951713482454312783392736987308951231682749023884277627624448461910075752812790439715224475781506702776657204004662234116355411918179710963747881786175997667892892576054247511607909181433098424145714340365268290309267108150837896418046635335560849041116936411842878330355513887981976369542401736227522142389085974789439506067134585335249618544487068106475413794602480175022292992524064924815953314554786731764808508544709866947973745265920571293251218430521763645220475897642238914652235989425949501208072772215217414022112549427670497849285054488200517057792499381185681840643251719502633470942219018213921795065597813468896257384050164621495905537666887630799106993279384359219917319796690645458855140156537652562916071092323786842962259172021107728830772441930281132433766823094984804376386049534032347169276898436257632272475103526124884578491364027863597347891490860323512286809885021462245576756555361481116480129553698635440556648457363416040022124866169607268426970509099478324143002515421997490776150437399414350978000928809831164045755480319322282686461874603587569899642652894725451732262426291152014926942492719146267882848167178910215301898866753986960216953615742664744239867768837757994987579096451497341325425553619306135075157445140382331526607408804048943063163252550892130561572753791398876500726080295430977097291693350415460875162557311671438417829398763691928540164793618539355478981005887918913050471270170811118879703975809812493501134578668589797505530310307883522809046692960548676864378487540355445685479441846738281167675479848002415935870670393366090492446555806080730541435551695092635994432938872910625466966216880047319712724863792580902741761421131588832689308838782321890575024083009941336471230987720687780595587422653433062526045383303578538006742556190821844701924482325233454908372549196733326453608292633111382695692758279860458130879783014500747744321574171535470267433572330114902625846772691379721634098181132812962044866021996164288358058400200592511859195197472604848399592246435941703981734342886968814910443848269474171022276125671900234384746733936262970679119003738799562683926015548823550011039842719039003380287120444770656459154096909628193540759690144787297598942955110629403595535493389821699325075920293653518709480651326694672734644694988926304234165177155172686519401447735980065306590163101628602261899366812095190805058801820123030266037815506888235294848671120952006531178343089880155980851122749750379991857166376989106586541014309384214461611098765795925128508408647059623463293073207305277439754367660764249048192274397447894778602202969959868143481077593802397691984582690097627448861690265065445102317285685939807044513601548005070390671263817256924621990391243460319849055932975330967425838788728262803592884661291436533010754147590524409916410445430996191299848796004231787434708092311382989585723346422873597594978921808378829264472126472721959594203776355459589492948976434042967434404927142817235250258545600156585304481386210771769256242380278918664598199801586675062044961123988822070369845279006423761069662998221043065220165560411540620689339877791281587029747398022875767597974235832154393736828689657955146060743220201565837582485975846262926184375550685788115324461894630396114251531316510393237001996143734127141214322235563410944559159286286829227677322693993360089054115977550830900373300034338761391799055325951172992482708052071039468129991408813547703373010769485653512894917414797839756932339723515613931850765868630230621869017224500326805030335842379894323226213567028532400212796036170461222629394586201565620172229501527510024778198097146480416332486652469050645821759751065454944024382167220300503590842475341978313796914920406504531912567051816391934182261269620851044345107959816318754402589593538391522656783353801571158024394739529939195700421468674377006620236904156441660540656426056839413530101160356123633559103153143363453703610900012107831665010163353671166025473571073621074494577972011136789480185184341392113701123219456638879479027379903789801439093686157193652013736155069282223433367254987725807175825279609415749276130745576166596624901653310239077112204654165875253149215674151672607778901921433493968518980071241112965044291346276222272739135175733965914920411812720074122335577244864200390060694341687133760896892528488953146107616933857510562838071972810611477439684410996372786246425181350477256265925064817945276982317958709663090525804991459822996719143616695657643448912716675746583014007691206728065141340989905542237726005718151200050075042790290173550942695190921226997946484465244728946141677213551245065556327511519081246095070831046484011118883840969471554286814143294479333835831927636030655257989125145672231706387773769491029539713523668081458835030837060029280144024934840136550718741147321638655289930757175589907437106186475659837131716732320862416400080579426932412583379470995781658753986805297007794026024770935782576590514709036894739236924567735479469360331401474801098684253540164639187905428356945496060330104476260630105316655288852014272715869654646869925509147941599252771583943509771974396586358225033002109010041705168007950800042299278224444169715702051388899129989598384502713763626950304549753625133366471487093132665522430446250785308983927514486503983821092195016104437188498921956622824170632995229028891979809046437791449065592717208064750495453992354887971751814036344437278649076884229441388759031103619202784263393526177076148983302496199313884906546427762389163787998080833469273606288420441759282037061707090687242264615577891841132241601001685815033242062459901148919904027375539311177426124047057848734840028460860557734794173105245541034461378127571656876720148536750522804618206816612380764488529064519539807177437879547153145820718707474239201837094270848788093147727183719321429792733094348985885338127543427100666911268519106026330265904722935911158851934989318454797121108183049414545568961093409704948502194541108609853606765893438932272604409519462611697466896872376645385732343711425663446108712430035611477893979373819009527813595094190814206249424701534344641788653527773207023984743040892985869692763185956372071670527460372330161291619620648990642341470451420785965341674501738680186933001538990843087342268745959452118684818507038854082236313378806219939627687903947482917826245699352861107619292707125279383510887286239661023748087561593489700074667979867363919513771670518687528512257832394451610292092860360975734425710939145049895175570663279646216884679302306034290237235484720513015844273080913252785461709973968402109009544686094539592507481210271487036271106052292641865104174665937386655916739397836015949962449174992543068081745090824629126015628528933373083727398701075941164047782814182287725061229988195730460379106806004670773483974870602987488654763534194544067915149368980644348115782681442189108988895331644204615767023905900087571270042314834309898773546963411080379250902290503203920913409359010574901878331836027670606699250852644733062799422366509984284409583392026768287635693489843345951761247861137982222260199062762326916277006723414458176500097123648663068894723600861271450635104845671840231702818098163486182207196065382858635620304042270636297775546827645895858083750965521073764317165246634488271535139898455838802281729248251165792224127829330636209106417565572625978942254759652404407419130724945712872533445631289676971601560560559597305310950950159804871539560811045041009371251195911173266238837515956157420708785515707350227276218983145293578155964953519532174109395811228564810043981842813274805297963965626700055671931487464091510294486837393751892523288211024501876031283108679337371064481915260691755344113541815062033061680586236419081777875894918414719594783029772265529766318553970684197871532643675404291109629744402525469503230388700515053583836357737237837758290297119465004108435484651665992540430704107266385174277189460504152896228068578371133248779591587970526497014477609395080639101059140158586133590227990289500661146410245219237162260716444258424853673423940030148457877882542136378668076903731905695592764145425791058085262219256014962695796224532957621337079496805885112254075006436371376044494025558384315882784714007808286249546827603778909184154766084561156195322109715879188245662812667911753709685247151708336712615049629156048979356446988272119812114349760995774588141172184837213213330761216267579575976075988675635180583439073809784850366595171416625246500937607652431282172178887523979702625182130090693447276961150985927937619945322562844403165004679811924583345426542281074100991979822252620970595448223269245282281109817783508051999612725393220620372918010632419671203332266107089947110065111176734526312958887859668030465682344375392924205548539590486057837111424102923318491250688062436985601513304234286729587738414730696294776935730617565146220980438002248841972040374402593501826709683035561814145387827597199974211933536540544524707048347535950167950113682322077204967365877372065307164467261500886387369241675723441104760678003564521051165280169482455617691847523281033863389813970437818565225897040357699518726221574808110399599817007384572639821852615475433429676164220126990620548296742005402425647340254991484177409146319852207136395509688850544592374649029426350084551021474888971209503209131213403373741505058485558459661720419757131536300109033753030231600404490408904289367628257362606657937920999521345336317180480538565516949925324491275115600939027577223277291946835527008877690966932151390471107109816980811487491204907922814509326857195022875030735280359326494211254198939903174802743642130514567698211960761241449901401107938464593529573745867712024045935766256004834386436360193194712921104083185440886796208782953226195846380885713711078180440457467960286978666961986254517921141535758676402034505261831773650661505249233813282468177534681643001815272890372684219807480191535377633054146801688943045084248348522848094605238263918057094264763782835114501651422833620977717865137128392719633455032761121984334534422434532413627855517393819277684234399256208475793401314689001550188202315142381907505307393091630732923471047560500443644391355882136439549107290998898952280151609583788427923826218813603333312875840325754206942011368752632172899718379533820952934953346411987337480909164687528282119337566742560106759567518042761537812696308931441863357200197945786042907583451043477975150047302125657820710780931154604287848774033224838087038055881397150471023452561969243695873496668496981352876852131501623325743750864888641622150347183592445232283303040108132005932811504241089908803763427169134451523617512991528838025899460691020149158884466054204213810156418055652674734269406151832136860258456804234342456494061776147737396931359670395816622545170022244826894877024858426980564984115453830831070535455161734504460605807027805608258748098378453143303164601538049712732440480572685738431056043588535979020561432556164858121499417776125879935705291627976650179572836556566676687583502405000729732713669172220854361884168600614350231553757389037983202106148800120806848601941232063772743218519034237612635880776428984530667198371928861383197929449981639930842826751175697421918542308732167975502335862464451110681424788460010171665310822595752524312858968308257196775877501141723847314190686944318892900747447054929611863895917537998166595002225165368407386147469331901743408294770375823497150207842663400168507449273847911961300217863607648269649635209232342581201136362044291555194748238004777702058138208761197731015059757573764922238243401325067174950423187050417074063604517215718619254130206032547762841058395960788346753813128606464747096277313948689309357996801907251153854782179363103192839456464495136473250168133346839648597371130829193167332668511798632870035865235703371668454435697290557773702396670872611945243618990835650887182258043550670231604008617553178647566451384531850268344103345384399393792461469565441494429498396199574369285951252157141798888612983150671685152037911438968524965052225676543712937504211319480000641646716495812561025993299342400862292343787724550507515965289338477776931552692683401544097572195498195730966646512069365652984199790831251379904985854973640678561991147535761249797499965647737964459831849715430049234756277011815663102987862499951326687475942801974886389320261361206992255394506973364189302926964110521428330373629247352566765911839141741973065856661825025811634863804904506094943393763413169668396185231563782963080512839994733732717526810949636989636367944317400927252690590224872370871522985505907619376553148235839329742999130367921293300634170124807311570079325718121534386159886668758127936365226938854116262573854094208685880227716488913641474770250686983231557903113643557959907204152220085791000039157834454595182422523667088257003824878700351450682716299842535684156195795752880310508686163684992083905163939642345495887488737591077319696644939621172439898177158464779582123493608561624098253467174739469985684851001626444486286730523730750661732733267073582843402739359349753611993155819371072509282863107997626080690381967504166093284669366001739141962049433822367963366690427284062327421577255165887642760435141880109969944546520825615592068469133768260194293994461766966037723917968189461473102176381557809592761493337278889910101118436654933695588827758630520481512107462251400157780404120159773705518794675476846632401210477260495050319027248832047468255829380363174156400111964806901696648403017086552110513024248294628140001619999486005899594851118249449139795581011593482894237219677896307112017397714452172838506716953505101244374393102610442891674897794784255349566925996901589481492419244931121105715257532338841912283847430026429300152755535852714894729815538726252886366700967496094513831707467538541795297928722402473652412095657603247816077304961927594632375127244758409697524703731841201228460659451104805215105577274164336021324738792022265917898048613849008164496763320687330260524782973324157800147464349761160465466774827566391539347681249208413935811404934924857394319203544444003483358132197369248279499186315914860051014828021461543680071640821701862746240661435213554694232253306001416599583397468264878311310760751458681393175402939834796111479976659954752940986620164783300716148279260828328222927242555218173362227924458763872024228510040241764786871595976737907397297920092179112420948807061192174177998356546655482566549531728172142628524089835140524663357964296944256632027000763835420834428164182336663828558268111931825557009719909355363916876690884323077602285801335177046219853229052578415574374624340259485246484338182764192363395600725410196362205864114790319006174396438307393137357256389038266700725994619546020127552907820287555127428905435464915707230531801946580432880353505331220574210639591080248085489655512156076250715100650068537952806050509062612051300446774802095782938851124741732959425691121760661183709285591106147149780948308479180757502490698664094168887089368498149176831811127097224991484091199625533003358029193456878126386504334229896919121712110041059821561065799459998288091548693989421840858915690331393109645100405567559328254134847851056382308732007272866154926562485719987949946111414002515508028470523595554220743075132664766258772372970426296317511666992139660551533989089064618813834309244807655040678976237464408598207250016463672363672001374783145606412874321138898115558572394623038139098534023351127407138628832016912344926390468868993313374024204131590281411048972681612544587744071784370167890008596086938209217966008676084831243323358686883062995831449985115826688243867555463575086194357240129266734603460226914227992568448418148774674998471279169922602899773885237427146186397309957447368827629142499808709620061441484584125491897598327928713610451754831365920697220473559971711834347104918199031201867361567489088023189667354186061388240889715942360826563090289161949629797190330565355541818300420410075635073022397396933759069651099165853861978488124401207313827237277210481108188388165095810919678043601689139796244034034143941851140468139521565172297084145580556405943747288292795504362095061419481312497882813928968812806557439442610442913693147803832152468300006369413495251353534397663673399292968428206360093884975052675580580764735901091299446395012563508316445834363004443923119768023078902665453682394138660660277155383606428348636755918482249714621540532277147783119552886142406972532654651975697825858977559323881518815144496466037067750252552819790707737190469023812977054532164895470627526175860244354078076376551743134755717937054137770046092921280744505207603486539366499759497832194373334621555721359240984553954608352554961763817474194742402570296597030776731650910825048285770605993110028911059026167734407798165645272003101637896210415714833271030394589072631463844225451105868080359738083747983733945998230711694205676978972973565368687834660817534540847270955072273917574372336237649510613350217135892855062008173389423413865273013375174420738480203532249630921946226966875017209113693580979530994200874796085387966863717441484702283401076725910091261308928877022330168347593452750909471361633328842766746607343634624034468909257518059637605634105533991091864452043979703926407829124034090512509075622424711291462840494587002845783932092856892575041575129263321239012196486784233465395434994419374513014166278616720180890887975353175058619082485106770735065324835095046351080308471142381142601343641743229516508320076337517053653381942304491081557380992691453854471749543235590585794134392056269155589718964786919705975162377423130103101255840255071520302864127223453419464724001196530965622832700035014826585914839312491486668504616031527138691842803428710806252037240601313856013922193499518968864058129353701864764674636960510125038971303262195976050764849034422930146220385845230789436742473578359115100274326505812653068168138409813286881986958226083341398414299036853363800718494644991450491581000939510201631661534979602907723593080001574410337208807470036116637250177591297474048008305268870246549199001246214764796531396791297751600536801639204613852777640572134409824503778129530144233125564379382192603993230905172179510421350629413350742907387027733113751196363405487140000440522495219622988910182916815648023837587561385381984569967842668976544716783894690032901986262692387777613837252206897944613508807138112670819961330692961275939543723751410144949542481013508090731506902038931405066559254432272570559374683467127112449104056020136208169389867623027774178494440047303735694061676957299995756249224868182117328656734783860466163345026269687604042761543963740526931279728509528467689205138090081519430034743781264498879320508511144036024891779447656675641141800976507780855759875515587834538049397333219378742184324912262905798630406562937154891904286588623270452656895999413998819674897765627003589215547420906655182920768931777604671503352078920468493642453150688267323247083773801747895671214421336414085452875033384458065283787635618550814696478608830719369978398248829023302059739869245786991959039674795277302431555722244491198918400258346171990441050724481694874918532555965146523368167674962944477727088049174927904569723431536249284953928020232327807794923354654399739123377234656414281455632479803478738367809589733167667106358030874041474823330050324327348864928769433568127807675957612749430815087645108563395631045400779807550808182348255902148883541775667673050787377838621073635385779114789825110869870565978302399517878411961549793573527482744943985071236499339243576757040567190015222000651381722309820158887913045958077857029506021908722244869463178518751277489277911828450431900731183351138988609213290494873181975967962675021408447787289837213657358549999581585169609481346524170540661219228110993032707190902607953761967452807370376045207922246905980197591958801225789230168378693050622404608161187032992533595441418161265061235224645404317918667630238685166160504509647397191285037833327300479600866283484114514773975039071875047611858718372107809167879734344896501190325282439588404989919825814880053484092771350100087960331463372653054055943119704226228519457064726937448408409555546881076094457787896510446416134939724233706183004887074434983098284686640043472161043818333912967156080358952030867039998168096986246128496027445612054284827573416330608970893000488884548056053989945704182808003360225312129861142131102112805268867196941862558307334588243931576001662633447047398940208989048132980744388586891626502539329443162057664557747008048109492361172361901484240081117171243934745500940782917129052276585732405510729611975814937394506210440522399278256636820902766909602126991868042910825332541908323419774757364622859368489875519363954773525048994514870715424527300257828948127533905094023000915952652809078897964717740270507203550240949993752777800055577560415191993553923799466733692861309122975055660211806853170328953976594308815330071583946037124084664759818880035561923718493960443299432932769255336968144355848690252184682135650124012197228319157942873871265708061541506334045113180319235130255907940659958839401296916705470958237131902854334183334408143689439344414676840765688260944225483100182122645737825077919961186774591936899707009805858246205972800191792502938803277362552556889621945862363445301710011489302407532164551486497733223787854808861221720275514843664882280885717202717459901462501453558725885577421039771771854393081357001228966755535183501749384565163740256825810330694687493185123847133610321194280787882636907934419369477581441591971668637313484047069393933307008333936424411807170721051292898851149905436190586433265609722797682624484325834923914597232297976350423643126517258767561826134311217631679666941901527341509169709206704934086851605827385404890743533582626670467201127298247537635027218005005211978888719718588201481786846308202555975515337764297264471526838293777792928357860679783930811893721017432095719094903754758782229280587438548936877346643504957473906935084006709139162556399348605037599313135919581436328170758687413606318309802042869226760569984412896026790050136441140895572492287892769073173704422998625278511126273647142178964636426654484312178799074520292381492861596525640291391688833878569437120051949171329121638510783553095463565756789132150820732427168649588910865294461899874093949153255148513272142831609313179550045036718811679869797441404813827300834459321496613916845717749142948416382572625168656509615442591290578756284572645878457704803650948259945312421499000740605229659179560367770096264650392382386105764019172241374975902229005978511449123058970081878896831265129473397735171841842644161478187476973375745631588403912605046224440276864000767596766358970395221220305877849178123350042594098952896949878217722635064609069603492940168382514985898217566883689352909308112330674804593426634525032877238350155830516817482772656596934520031270962083953388771944395554223392802127999976590618122022231057577025801420874410950067284898866813561290603405542002462228932597618483854081461974703525422586914498883300877600441397229997649876774173182390373301735771279041417640660775584411688308582063875226357344359863658387203465897017953519016431589782286603054019740661209615042283457558612311587218701278371856342428252303534266285657006188597650469266372506098111143077313190524035214776961186408539633237266811668784234844781866203811739761230627317038698998037860187072734111312301975500590285002210111850787636754152479881853523084322413519340766726475601166302943243254632015205274435238856962428138168842866387823068549233424818167029419417765202424494207770507486160196002036375686401522024681960136627064828663214489204211424442946019064398635506315564423159375571028114837112278209300526589014110381841495308027266632261159686857815380189127834769924379819774632911976576476375309066204960977932235009980552423049785503135918721327649053391662031920860383410285527369413971405341194200640523470421019160217605269123391891946744323686545320648645500205205271587829067606288230149060014261263608966567372218524083596806777714903652679334538214958842223625951517022066468002815519298424570990745678982535701515520938526074374919574187954409957176630119042987481828624649256758267600873241077839278670993952287346315541408839966997934306935049446345432070974069461155714380710392711091282250245413548284612913446976663718017574227649361408485048362345903771897248572020449693019138978141957553711415107494733289334242622680880127251666158864702081928731615144952629453751081870727470131968055230585573560765625248852603617785810280251209711733614818123523114302152205185221720301121732706379070226485665160100754877225715649521659209527476732892649262715104019848677014469496744752952466449387227904886892400879260029622967764465438919430400402793749299042009845555537431010791531501349438230386223644832236914319959897764554543556930233439388171717981646688614139968501051753013902404052051489751502163062959217947084402172213834537112075181073481826008038507243133843731375523264925669146511726207819837573471154595996174002889225933088838602805729922234410600581665535367709035492830732821216150121636064079547314019689595658362687915926208624980452214064169495331456476080410943798867460970597408371319953580527898034184290141589988738596594785830743800371000850834944721029502824589647702979956664759333075322999941756973803523226995021384238218618354796120402595583596774126321751876218988051312920213685569677672486208937589151001047103095136125115522497224147375569413809261168224594364991363222529021548988654815996311965052443899241551583012982035284536170400113341238324150749577253344699675769177224812731566025591957889073257438178339940094052409743572191506100707771553993495058370699254505583650737172160218921664870724704927845595782430217596842803340140115038474011461338943760256493345433379161581531982560749692975391005962055420324152244726010351381062416816039083737126441497107919546175493730733636201395978948240448912080792046807868862558417796550151304818292510222735563157178369269316347144638421289249986721330367760160099049691209276744791718659407758849160524938978200761092488164586043413919230465702596195480711866171610545199438579284241988275435327202307886535998279041944488011540671685044008970633335094767596374373812050171078867004429604276656129244869363549349183406218646609002336320606605491891582266915040115133435702212695123824722596140316045645370879751736920834998284324182962540575376518108705580040601108499186991389792547970377818377078908785008712549577486146926297201843084801006417325570034511785384962019899392873713585297877636280043041812209189856028860257304359240377595987304637822342548594757936860723313740457156924286702216480427915224089569817469077819043620024955324716034116273681274901496903524797142618850262297700492203553090257813966521954861616828936726949363294885086726860687277726075049580035109709434840668148049566618538458213577204808392640501423757163896207198230209720084139267091778088149259284679627487578528105859121871191700806357546231110210581334502191827506088069113700391809878246282675390381104757451583408416763351260511676050994648669054276982639236030550381548295745711098003641263140156016336798064281000472456242961520248439354894538493806048330515870509274932396311601729473513668519174971336775418543547749774517130868489323827649912390522892752011069920201981251175783395093944439311152240320172853509383192433001775235782666135713708807202387993466363039023078611825930595784490304831990361580133856952540226275453457158800861075319231245488243020419659241841119687041230593706178026764410911190826232359085669458702013726327022030020946697309986742451048801088127263109944521739786668884909645281244952601669982197927002631199278105046126435791980657233613617909734190920033147229471606287899786462408042151070603738730438665826721666908252261665411374263090618774784341193258274602901185560905861286348056996986771716999856653410562302908712856139954297576613823892292465009719701853560469828564857987253890808090948945743746595899841892606154073636532173082783092456420379078295440224643172860405647327715997942806697306379529482955436362265229148660937904585755767934112853527149578345062316250668488901615282694380592966315589724454564833162859848774491129083224528305002697147761617378219200878530594625158544444941273966201352619898534133349393986930489429522937623238727637671497210927026693799154092997797370933346856666794527245874053069542716667320009430672984448296834340347664008595539283329697092951611332201819885814984714143906951831869840088270646063637004176491420500468884537510099292074285194126894817713224553203079304193535571498805183510058903484920402069549674678789704544094107493085805072622357581260066203821625551808978904615822347679730531590808207328185920189457292926979958535864794781870341821304562334179314373647050348084977589922074063767720207816333218162591169328350266717822752605206349586108933420673995203866934247252617592551387064427157260097510402150850221552578709446012473873502202318099762699661598940997990408667846183799296706718530957685456211217485955646201699205811757427328501922112468391643259752633604827612550103854574089772628944835272836971272768808777035501837778595710851057299442784817237403846616949327505784355425586600205731951218102364324177534961090298542066311391203448096648872509201202417907032676659777705646396597451478816064506316918723905323990387718962670076033964774600762268846532260970044578281277852994197439509557464157067879487583710073894310927589723915074267214651740254440476252068885278329346170738036828515582125317216953020944047806594860100856932848125292464426045794210713103222879426015584111795004906886144928465476022986219859847557459997110627668446545547468735753210955137004312500453868154458680338049781672465017326362497681257753767863960387488617628237166885087206294985648032855158142933734423151010212466007280058156558928671284523762851310577889117036146444021271290364661462007641283099990671737902614148239039271478345069030514674368102933586944199879013100208293812453609752841980079575238758677502864353099730887554152034144118918165489120655201070567191926236242990672090914096304161845133767749926647694777393068397263747709092475768430393372154982265693612464046167166787426659938637357277958835107880948348697569135129761657787712040876312352515918736803564943000127584915502672621336729694573505731497115694398539519165071787946652749600886178397599366750062587168232750682844661495660816840448928341110729081808040897239954013959044768021006436577022289186197908669221985867033121149728641900251159013680073337576616644434125383337430065116473287906632274121500073187385723823541512875927154583372714111045775623703046880829271602183900096334174262683620947155522747972272528063769999895303725385902205061033502311919920302350288545404645879698473867924487177395600863602928300965951535242238876732875520201689777142190132802795122121894803279640663887511755943044562302184402975002382684517024359277351707978507952654003857666567769521298143252159515467458790728725905542716154684141470998924647382512691040097044146027868615552119172483946943593753925077684468020131132963475340538538380964607466200993500699679761475246433725724337273970655398346015117769103720580641091888639934794509528240782819687629583255823677983909447103467811588091424426241021420761596927143426482103732121960756525446476246849509881843473308545722886574801368749805659395524040706497106853499482034602297224903849672789234205566996049911373645297069211447121106692787200068686920307534761424017548867263062491953760346382414634432323505197589748814874030527941236327042329700314107161636285768630549178803410398634298361078743427776256140119796823337533545471626021092355655915520932070879088974567953543911266142243843992114796731718672136969168838163078961726279396524424693785756188556630755217945021439241425272152323065757764633459964068194838373683451834400701246094998999178454922949075374890851204323617315805457689043754317769461634347326887253314456854974578104491300022067303050747135347104036719788053115908134866657621877135543938677605481546438244358279543909419737803614130797328196581508231538892016703233828924046326929643331923575135962149846208836686428726947033619511509515653875027893203965805957958327894338528945529708889319790504299288727656659035353062799467235902668290169698602449194108198070513618866068358343352797186305349821010628455695031858046529715057465517468984618316136111315602829501311383293911631045252415531609282103281653840426010774504862643608303119362274583528552890589429093562795444585432949649993754855252620314169642755070504792296643960684383083582513151806170650465751779044968972937629276827879104578026006878939454198571354057110472739167147380185918135522763862680018036634470922680421227168072452714169639563719140104318854073467150712056587992958118822685641797521028849975754426892408217645678569381724222334801158683626853819678639305679597735358643100108901133154351615774915187721620280563710711197455677591089022257455836588199656750620073038264059871633283690337260153930359326806608313905580724956851607694110652395383211208617280323456825016763216350964645258976023751151198005175861388004474972046139506365148311000050365553088325693122786047876353355087544582694622399507955929924492923703284042561193461449612860730042014585021220476204251023925904711771867191476624863481747829230307093413569784629638289111933204591722088807973451693483309189781410184418410118915205360438337213455875209285200255342418248850195311530588037087813894215853877792137345112281698491983588075836644572987602196578916003901709707597962070561866737784623741667625128146899089820304607458697958013416944105857864600016410348332894438930775413813183492212796757574973772792052921625507893962907866352280253219908654910908900280292196080445130451044119827063755448523216883160232295767568529311511364398149192695198343451998039063568563068201160696539606048746743847611791907539081525835250994010549271335556801337014613394165819855750696798495616231489174510536452770627228340453861888057508470972569355359547150165252921569153766112787068939758128335115810404562533565159514308518421477546647235124333708526514170857220049645181636483686196424052121150952097049926423848740694217318399194173976333288843270283960446258041719823505408331344891323832482520205027003163794863565700196897158696686129797358724190600738434079048282488810663575488783900709447378868405696655403615409400690447727403161398328931158118632009154069989575941674434652091928673498075131184151485676693037180341463439684423105340819235751255381287885931927746639271270678585562963004019958281399646497014285442559881784912307812185588247425221622104109210849636773122886475176689168566619791637245909101771049628179312870624438551856880943408397116206687611776787167562537132339826368300270551828865685466945239047205561186538339127148755465796790304684006250631929438000904818683129191554943682066864659522700320809291807585619379434826393351947042650427463024634849491077688689058340190270597494182637863113610742890670831272336832465562326993717693770211163931235870537654620507744820118299214490730769170863290275321849943022018692740690944926357153897487325736877386835818967096998442310427374940788644842466256413180474627002810413917681138501266734356192608599279026262172279442976131385769415381361806061489252186368640780529063311683516404366327285735298906652420661871666954988982712835943983395980072851071425466396247776221017314823238815900090674990839422270773801185784843982885746524418691183079676974962254350068596179778416862777786543236893439837379272663215796474684813637986996999756409193301393857051443368910229702291615639126353521684684712678778341341791124583841858887003551332776408252057048995727203219899859769222280043386970859730265846852860126734962809030854202977666951261199312072110689224518639133659158572974819756363138577783664595387497598259656992093654452831031924984671499854362305464494588400045778868046322351552444172608431214033143244047851066648850580058801761811555219890422858358176914790763565608916757910018915176216584438162493132598833359099274658482039227048019637050856763442309741012938235793224147060568242598404025825809880642224786705288179908641826882769309570667723435129057288620292332994481328523811519757404760581011223319747564153527289761802290823671124184470447358238062356793319270001518419976402529410989712868479093953287791087752388208738415247700327630839318401498424568324078495007946120940871206979692030817858504234936107579281842352065173120737451566398135283282613184673061582401377154662182824532807475520587435111201522673627750877436933952250640456949070464761067366670700302399692633990434017898355912832398891635649953082561395365911331337185427804510951236134932933342607435628656610664799659790873395150366684546677941178570843946784166183009013426584838791029603800606045749050433414133239142640942234487853210957314043392478909849897982175209263673656428883781814214030467717111423979188483108492608414833833943354826168732420299585673055204649933329614453806454865623737436154814400517098051813293990178856417264730335219900601271796137398011425200859011763997598911699538660140656863551978100770631792972996772381021243094127474370485326943689264725245141790563775803247718775620287182646962238296231568582818491897048092066443057650766477850818176586268099621711059130545066680127133365278917442243220505367011821054232180726069748207895813121325493534815572909328522677435737918128131157552653143541162479699888338428119592272679025938744290757218661191315137476984192049572422938205519895970360397882874874562200725173891585830030292428442825191080973790210596697794222363777419724729995723260913932331237534736118836182708663535771715669084601665208972800276062438015167761747812738988149909983182534074048495374173752798178524042133380918208503129800818950560023381972899361097193325090277846087311966415847275670626604547372254150146878562027813637489424658325774605115289623429572415602815530864923994840818841808004252302972777976432084874837974670788704208030058485950053548389770838477486715792550780564160433319947237155963042329822675547712246471224480895989037065813752330690698487339579753520958797414186378799542970750189285538146159015306255609491361440582290356212524120575380669761051575077576345196181028550951481343157964563880420453448538992146444768568446759764125871464364812635476551004024451957544400116020562674842226952882566419438331622126930248382513430569178706964242752390972516435361192880615591181108474069713577301346672003659656252720906304168717227641193679833050864917759542912009869256761727042511936220121278121498994646789983973670655887745069208601214359546636507207065507848693351038854308558428618821648521525849014742285998410380130051716881894103395716753592261336628290065378042293676193296187836614603410533977768955369990201928034387292163634923202427195205701936280774942213198653501234372703464407027943742680480183414865248109884677722400056839916927160903047248160958208697434648304653232831670550282619829380145607130753723333580640729978884074673272197443205738255473241831417428322731286056075680271962236403359771465691871131519945679586015050859118199842660930105972539788261232643667750331180242549887223604140154199643993396963448110431300524718191870581274713173479471260610931209375255014587826880706091995344026795164743443547404824330634035457678036569319270400101396614232321614198258153221889693721700435926674723962918795012748769195331933078991859370145148236153176862842288284656244107392532770286653558947117862303635588377570491268731505630516719674464407892410262103927210625917542697877465121821170792892578828899449510373751114233954376039709683878304803818984628847673417798747523122918529971695412776501034968325428502464896629092714663414364608605856922516015563905394594976419365958219942973604310373932174305310489620490259592281377875880348429274645898724538210966750430607683555483652818898802583003768180439778438178736846279012862395322535999198071989969346086525334988993281183194587031112959841484728660572515350373620353333222843016855906424353519600695678363808155669644642807302693601988855016275150799362129512585378914244369517477148488556492479509749181897753308915849594732877604349821797747580765041961263437770765500802385758911856287126991004044219218674555957271939002831509599039016985058291461178578451827575652398715700337925023174513161549112815071966696198432120571511445838996746553148998077054440921934736526809652892088829313926044530766608987167292337730286118449250926164604880908097867628504689378150225351305849804620470221921074720820786406727304391163473049788236027641410117334970170227425532812793662505726595536124152520461448679997461568536380955066344385810910183646136000442478200799147450334343146908921165757993926808512798641663806311183922423939147825255838031927152192105511057099033983128607578964765245153559770661879346920168663965109665272369507612537310747614669447560933155120305641852292085437181682897389221339396371677390828088434778673190645510112415347689855124502078470736855567661002324349073198790460783534765433793916500333544202943601412998191059058485165694060836987375075549729012551944966494789759210441766213820303766394675051264339905783928743938711382164671843547870794135692738720285767018890201954262823108581060582934350863913174121009021579103457408719999516602093969209085849649235621731381952149081061306529265906752587271326171972562552163021113260258681208011107110923941139052441931749295026584193368616050062237030291966697306427121487621616351786268710415729174796095406943812959009370955371314039671679869447549179166382004809278528096745978452542620088685304894750423185032731635593688016601096800620379808509342273389167441388086187180076696750081087426964477875621132894796956580094107394293699290353417870116055539887377154826998557800493714956382131087384670769020208885350438924349028673353862958524489170893135243476022382018813793029470913584506776348923815928421225281713440323118496024692257762033607451423389828221590413630708817720770441291686563537384604104355577990236307399757573610579922812047704344398601450706832686870186582327946336848885928303764420912439855246965746078768995720652789867714080228453138552883443441545917083857699478304159429558409441737662986723450211678578107894286439184396139484019180965261452005097790167530217863526869516602416867446509965561569661378792456377966712900935787208969437249552869372362096455221555417450207203434396487676631652637471990168142572576778293233228766145904986378828481116205756132026721378736358446395705509327987017102949302096397198524678235517374902327964414875183972191637530794891133995294680372597374149891492637455931141546805251542858089550522617666545186082656389148813855536943376375937404409865405289992423783935591553520139171054215361043972614457743739274896400170769387938501431737482802828648823960522261886999752048012120382751846769584957714022691557386341895978704692313795422471967765378192971108899615209481611591230150673987862733505055765384004251483005229924161800502126205043754573877485813795529768461701386482800031546468509256980604472780978042473359108196930925343720290293940628905683183850419132362058336232204133568157604035278723888469818991917877347165481167258638541049140073086212565209128324327066659840803400457530734841467765797967307261948213048247694477310360911891258188460937549530012980860607356471568373228212680922054352202890570347492816568823960476635151291454341023141215954072839017101185911576599238505329113718272076820128109173545658271135075252333032732169739099249015104787607007884761343092229430779635879085670441860944367129937152016570539829907599545748450004632083404299102469555432814072770811110533956860846656336964327711241149577755418223166228918771459434098499234297667433990311298372634497483184137490895567880775250243609685030657005180292427104600512343068479738276085563601838085134372845318208345524102503587890669570624996968554140376651344366453221438525305720746182647733367157152794952523318233726578749352483451626848550251645702236903416595420333915886335844387261809735708845089779849237345089431329453606624966478381050798185136411591687411431226431719453161206035169548146604487115737357971741885157348921874816043375786260373533084596908291989947473397971173561662057881455614193669297209730938248914130517448662254628707334907290278821888982216064774384709510405398345346623291975160238134029678202864636877130006821975917458022583569194899767099702134659243181954855643673466899342174839327764592176255452820574941957173503368087011831790161604214326907890497638516782148489115170554711994336739268007131790609588493717671075996162570379736010562096606086433172723191857959036365824600483796960738214111889322663096526764893298164138185926490323514872304049394587597028071702823696723149267263878206876029522943711297858685607483484516151811251362909696139902661236051856295274784190102644941712351495875359352959047160649834504918313612518811418058070499299297303765370700587519862066826115757575118159043243830116773957961505557028234325673679699559862271496107559472138752726685009510105629994008804002510386842973154243400378823298435531135747243894542358800785810933882023627579413679120889294301794223706289149572235793379435961953252045572268751836970500479919347273819281675192591512871837836643732709089166112832462197261315374952023857313240584087248558899449241858819018561910282964741984088250692489040560047403066334466973314683371867407806049535340370509588647149272555441314560678936482610825960920334770099895993589688718864486409413268769489839641202727425748161919771283399026771858401259749522852436162119425860198496670996854500690979572689872160469214263947160753757869308842361664918391807123974249439035131572679521809700738048601677911200829652857286821395440594711611928751614249341983823160292455857253268226675897291822309535862500282929992683000299342921491192852431276365429995336672046007454490302204593487842326410302844051375097030972421135113436454118413758579820037815884469840149841475465001725948799013134588225113353481054995353991801469345380850654962378355758385389935386759572513604821517894361093414335095763345541589824466817386112685245521896587192565679895381794801695383548007209113913975307279236734203287177519002533272347816775145898454976307661784852193242819359275146529269644188958100916632320845532730837617928515101589864558871889158778859782011028467878201507142630592632097909610539055899276300562415830308858725051524001783908605384597409819518694637477237718207754687686911225154203288142386788365729365303821142463633052092128738465016043871427199064764542093048277616939492420654747700119519553802658973518921035335921426581242351523630123685815364483534576535368637501561393549726429064173799977946090058994582113637281726221181019558467926657646973786168702971860551204553189931246933680223000180654334011282978958817562046511280190464082945578769517741456902225031598675235542517575871635433226631392243835450900502261209318498624932612742448680829996186717260601182882335160419006392726861118259324354955402866045322900673543943011188251406739999053761937062994279058753222025944617597422105963757945486530590906567823384441696255402584507947938810818346432357929209442825678516044076996003764424903976707937760143087419507236377872648888950344103023662854915261457361111017422233554771068560451407999791999712072329971181923470304207125998759659854307024296097222811832175188336286331783070689382146246445454663694639100298977189013092177342058606478728702043252301760091527416774345304501377609279440117371220063709548208009442093445334143063113284555741301707929070617449571969258018236210074098370533366336731078285406345956207180579897738525241618328238600720373742418713431771339316769324854864575144685152085656885552543211971957606053595313544374220738896647636345992674342485840324124647506685958918421231484004678175277093310028174677013987732735108751805909435969776859658760848862463404393292575998382452805670872643763716397947606481362310065435790540577767998096933285832967570718364052403113160685368592069936615854640554478558593311522013748501321328273036168102750088879291979666222658279669539798177810022479837311602524171207746548498345488033146795176323989853993319298813425011050377349043494187682853458913107195475631112392346946336347839075765130165765830426199179472942032835075181021710916650791045523084900783646848175840883503459956502499437908723934001354122326968706894094780380527526505698874898500919833256043370322763917727061542470303280948826536610158331231579317059970797036840702147026704205344846862223631094690827399121547348677175060991127029586648227931681118984523425303594544740629773573928144746702486160926192467676594078898745156723027296789484241123631567030072969754767319134379984565692854279789113449770155984117448243758041563661000183751956514514600860497884616473899146790887730010544291232049013543088433562625182124199912993596018880727899534254481757344536954372910937606381272646320113295414956545086205076280356885356405235921959009595770453837294866235454579124446190947925443512582200757564603833024245368953261787283176874233344270818983678279981200545445390691540116222922894050733203011468360433991560603260891181985606863519698797217385424959076668400094071650800098118835865150052864908572258601589234953631356848111021582863244031149512932446325309556406089755415786525458306654739332063534734095008574749977096765245094281796351635203034923709676044657491487171519261431058868610136912790297721695399327234395196257806343273973635834062850044236527606761922810513103760672169854710875868301807909803917508576084152715198464349481053538469378021561451601150045728433253919584440002402110522373759072535927360296524960037397893244523111873927555921966832469642865118930086483509449682432542490964165903494011869680984899351743328185135762633283161396821543726100235854726584062084053551617989631257991550375477151804823704588522906687058639106675158563808492399204144363939981891637551512573820716590336285554654566228404198149824491041602105028049840229030400690311269436948738839197018782145139279052314736405263714437915424396821806583437379432273157283155130613055652198126837782954591822683369969173610752173435459623116640729626836494670125392147544558520875076136789213978839786511959099450562572861015958217982442453829061834399624718426617908119696161446047520718455026937752754612250756138956054433944091764445680074459255396568526242403330714156367265084088092845489607425111681108971253424864210767657511406385777983792441491062555359308658912547275122848569864671353218430220208795273922164311550354529926537014965287913177086399309675183734522148253255726115048027401109001446601254635073121564856604641912456469082344607867047144052759321787692885619993623847413488817917263127487057150226146572206300352123638239262572177045388850247128148341062792738212380361432421102991811244232475600675406356250552980422411841180900869852723739771765270837573241979784024609810894813915986914826536331334951165714052946301113664565939348760093012746623023274247610702377911527046052848502765381063711398703577867662697396448672808719568565832321721036799314542104561583598755492026708296028089878720775141501448244135304184595896638088478972786272861906215380796216473084603504941793198860327054377087561544774595964320694714376208459221177142644615951631994865340147785638235842989468933690646656744704438650412785137879888192077162957456623110391187553812040985522296810030859986935614743254233317968705041608680908593752583559840031339393914948709453707139164291795984845626364846730659409994947571261093769847166722782996483327927671432230886683838840560648792963269960409035202711875464416494571307977588616730742181274191277459776068531010198541642391851659098904721418199602711621805535002468301501945194349463450792671715305638013991083180772240896001166686490980132730999480305175359080185815086651535645810578678967560135660050373880054448873996120845984500531215124942188110465848523527345340965996112104262789275696376877062242142830933312102180390557692372766085715769446643879988565890176071621463941578697335771833548856944400140450191198894877786616713968476868081089448759475222798532120095540135186841303799511665622704012044830276988617203337287532310393291279570119581991983849904217679900360942246147141319772850568219204153238188566254961770508078647968351352876920960440753618356008356248776546151179377940528137593177380407115826966345322411803024637283854252173625390593540816945285022364218504213835878086629354129246526574757649306723912389863221296929455345890243561729017815888735468590678958758148207510148023045881795632524901400777819416724369909928790620273212022919978723604559290564952813681967339535039738111248120528059095349706811602267109265615120540279822609937723229746767901889207936312213864295334378531562663887452247056915561759052117000427019448187619566549846329474703808530219920874078803230591985437298067008207611456859508977902443328160163912291790687378061310243781740620715629185618970809602281228778657471861477334511215673453023527803680547139067088710934029132035949255439560233873838286172982516471743627222347290686529317797492422321276654522027725601171207124116187423258382508515801716581798933454058524877987054310562542056446682261140427505283114515425084306962531190693581673009700827235058641383097772591600662519757644883905901286615721978239033146422670805945894406208392034668975785423520898002616415093161650159929138870310748689366119923303672859283411903528650924696987672832856879078665797909687070964749799525201279970623056144078318981431542517490092965612453518100742048906995704235431986348096152554734856726955613013059699169110690982239271959224102416245372711363826625754804517371661349859611655997965509314439745223710849118875413413112696782159081101928527706450777252458262862531044287090776495150500660729193068904953287810824216274612971518251148857917608105468906076540488684560006756172438584192201228380432481610379182538050801358237618508161378074413765207991287738037723095003005019630807303152373747797329830596848537005004636910552186186847692454660035248742495749043547064791856200000286159079156755877892728046048176961270759394214474632047567766434706867436709174899173065491222872713676534337112438064263415352168287971931733139755876690724318749289798157025144799821503660688026552393402739961242874806313216137544228322469132186284671428247016616804084693229721239808720433910505231470532184270273006925579363077800859775166780036565830673607802231356202280989484941342575859908050224610859777961347843388834924765808156578784399986047396225457739703729455223591202395097511422295664811880819227184005557203118734325095590954155726982256345341499910699245045650439463272435977973416494816014525535756996353791391348778180399043514234758283042919182279441918868136912812763589877657504051245573516102092369252645362826944916543572751269815335519653892263685079946971982189335983087007206968527710364046801327557218778361425793523307165516432390067711368789281100599287040461078381220072040865949026302881176466061117280758769127540637672598823697685076677482861630556441827870317215675986145466050930603558827314661752256940494414283838363609946929212177099175972602705189410450925871090282257990507187993307796699894575992771709483420572435592855579348109163430225841536590509910926817896907652773102202199872790485763932559807744635711266387804181174937580950532869674708685179207504449919610536545351826610072935003726432112521139056488477361673052113522523793984304629975568234836242399067690072310580973785913878007315358660903365841873904611721891551230670244351928391794166813847956670068338364348910987140881573390622462024384102367714374650319626057459178535820752519954216684458677230416022679298060216196540173284890126078544252548455647892053349460753619489190202321234228226289821949626246942074308751292121499734032645509952523233271915699025384433759835506703723867412094318038696059967183563444665107453949037341273138157749009625451963065230984084713656161408291152349482471836651025985167767492224640890702120529204082207710595947835864654177268328170364288288012788407138637643812252421316770710690345272124566125027695506017687308416686315497045743408308865691668841445186954720463408936835161883872020372427460654420462324001691310636230617207682551030247929514230090652777235113028695882584995999433431176755287055162124919122288220977153997464511621930124694068363864898594603870558615445566298728924059961088308443962250176285196083846958671345040085532579445403724703267905396531291492122733721523295072047212944037983590520000704796354946359520269417584496472532388223543333970629065462906305160548423413774696566182527728153731441521846489799495480414758689776144422531403987886811572266778423208429569946403387723059434877319682182284873246737988071438565804389840847877979623467414179269787902936607375876116857738351230105152836480787742327227712373214464702774198073557339621113253202902415937423154718193223933578083861892115944682284897444277652240152904511892785985522753183718998688078548994063781926715189798787235373172939437735751452297565297408182420466851874836238215270053017387263544132772955823956396958995493360407561143259926318617364519979113799874662883180612002967842169148611824549880188690603377027195505472452414410861083792982501585525282025582704654310115703998859764752849379728172295306376538813931701576434319625935920935075750368472761493322691242109948651782579620857025902300452056779962429611143844793393750655747687606062990058324413008174431465470987892655440618317880360099657662846900610796255561358735403633560018128362598389473228404438641937685233928410402660185464727304519141025277825212585875641012833328018709154223149969639576270447112935566141357493945952787430101591583957027198916548514591896884627757323788494297404101184624703613779056373902844113209034374317751253897176868863705503378976069143064765403863865618481234402420369719599543632381128393514323337600554033590838697638912433167887223656485496219442308295088791950455823484427044064481716002878218497731329795608377200596309015733472653175745472924305939859989905014920790292673128960501048620476807063898055795308623902434372275603092612851514868951178592000785326805727814693135167389813696352301090207949104943731397717239771163289985282761176372994714600488644504502077536278329996913981160160283736470472119443587416347926126235681514869414642057738355737477455000534088650781262867020276594606844175907182870809720832372016929628613856096464380806585773066144225449038709445388872084250262803596631693529421246408892023615761819411955547565612711368399512444055178332451125346987501945474470118264368749200636614380483251314242177435402845432805203889588320909552353447938186958017261156549628640001765205522463311091362397863044816015400281441604443033535607887979152480653595248128911804025510855287058056922811970710441095136687545354105012107944856818097248099133467244017768540027342640899583265849374357146370506682810227513894345433392347634522039094599486371404844364263725350516840865463843568314294824857581107249247157300427073332502650461719378627891100736107387836435963687029556012817738119642709144595264760275389803619604529252031292342990290477931641599726714082061330761363873073039099264096739704343233724514947729677136958310361740383507608974334036780346707695740403580003413072796821375948050411263891800481158944691307569023122393444859637965787312743699849361040767965789831721094329013084227374801337320367605945745869058888631885103888576911699973397334226551844973441809885915446711570004384798794561351825903776467662751478703866682686233127511036609667463953835079899236818339627211954396648216737624271614478173885126415668088002879739457293180323600207872147284337535795891328524599226173462070503910917860716628429576282927073651290485304030084685951953939048886545787322277253715915408431018146053446170825311612117354606890307406967923977446067048043291659405130334287380272802679533439721005973863795276595241024351442386221801462716053831091036057174425984621775528008469944125772179765431600365867475189325299273231418849807081304430526903962164744886776367286173844216901245494628627520341798680498482644353939464652365753417241327792449924175049077764926166971372480822004364052801835782734761029557216560627822712963988156839983004263889285327691974651691850268916416356344817571449552863243014588533995236130426332963264723185678408447869414004551497794755429335460734936370578292934795889479089063155780874223374484208601295186776486261140307756144022012060400864042239915288647109242338083958002668103864796090497421344802811525360057251099491431959642522284277768672650193548963651651447496099406536865695635593073095894759986959266097202441374649948509099874350398433353319480529404473953967100481879495495962440826933562735339379086766755870080901166784853844898031736818530974127321968469203074073332302460191908655261994405586070854886056679737288047850818294660308071873496887336676635885299799508762607819055564499623539480700833058615395263125623563415274878589262470646675554409536896013672768556971413580871247771771450389711538443824516945154126534108749838160366718340123039281319911422131572657384587068586954066485455148050346468750979356684910723518695090028319109684330831409607093469172461646023751565019206550401815653757730125558869840384484742142375317523627083885463314176537263645391419741940331127998281627804622876850314584689437896974558090731809536558859527554027428658412957132518366052581692157466169254194940264504163455464178416200712132286245461502096657008543950821666079856269960042670678324531985289047429726890850009652041628679837823646041180840876423230691665450980137686899777415669580886177405789866948530791529465983070607796516443182530164975165485011098438592455056358444437565430160911945104011564036090800776685898580716073313006603975531357878494457728622060922954853064157110452947923313734529485029329988940534745171337829071504332018947319304370039359307083464601312943234866480092044555802590315260407291345480290033532290495730271665096614161352179001261021933222912829095822282288880825067079802156734045783856005053751073615003905370021946198885785231926906308509611914792451442616483680666834174376636001051372073623851515051142726085180617395779411264545768126000919226838447130980095537650699483610865891673174796296742852723330033021663201542128297182027955412617472689649312838191382543107269212194632395439042344698924362314299515812039173728534255931284497164637087187858007174496320021785981747765150751761055275969736767255520640384389175851722517397763469343714977671283210683378934502601681697710320843169205551152986079960923386853287472184820759839653768460595766601604964413478196086700799899491185771315154995280398575753055069856681541496611939088316991485484924975072596683620527144305836944130427603292292807261842813393393379595250110618061937380066021243934255591291471812996826381846338910188967123302816831761035758756448763303979854596325967513119993540818445232664492862160993358053798289628110611661506955382286602347286107968525188746334637442959931750108594114166187388668425345921919221328002003453057403546033719903151242930657358777887533336683740348659596948703147072877962785409348692282289132869105066442225584147038296078908425893267305818213030709981971258325180572273406393086710344116018654893846178556923530554578792889442307534734751312849713207852001161445785540451162694898563944105055253939397966450167574472770437801201799403086776067990950534745794322890498531672013297226735507712897877660585142453890546617301665438507167716644679874605604335245752951147070356639444086048855483224952489004947247818943822935450674224852506768125841600817647764769131845215287065167342609127562667106776150589401764541006338642506984928907304053076582243425046553912579760737251175199864119575005104473669116945007521505016691498290677756543420162799054183277727486710682836408740439597564354874545611779705335523141793664841258075527952950956498177505636306419893446015130300288877487050348622734318894015536096718498084999264746567623656817022208607248872095278792419777347242553347685046609484157016420710391021518869292871430180844533118882749259588073516324541416348745713750254237225455787668730779482424078566902048163144555025227336260782766691149746389442158907443123562378521279479993224041474242321756238821381993391792032483233936340840581648991649613326254381895409327493173695596586327645988396564261019130043046950789560964166697129623801187942110937605229073740760448218945838135511801394496241541810025897496104894905404340822703476743395242174872673941943169439940887239855571004380283419293345988759290815742171853255793683273280105530609194399692042339294289058054535426069946332905801129817126785978240917364182018488054983547733306376667971470628956305967641300807904129481617114496994608267610259521404137718576199506976779366444475539421110171819872047593230961664894509604702072489434995002761489648968971383206155330822315728517507031208753631136929831770115921153240619689813224695783445037767329468632228027740620563101422454557460509774895538270443184158359695035509743218347818327695318660231621932563312069484790131380801207365593567930098112033291309157442114264083492783596727981481087267377921751045506214217858467478597200160206794445832834717599823834720230624444982413778137314863704925615712419245247364805241504156695456308280152770844442887093017324211761820153993510575595508747694166894445482587387922054663945901634677369142274819972241806904306838784381927095036943417629027276453923756551410652313447471336089605938851786397920380135113123231914412199188570789165574534397212654963367896986231935925669787761739793619313938671723987085395129059612993756982153701394532894503800107884527694271192758261876245972053154427511413818063228913721051085003151498347077332311161808153231084670952701186555821070826142000469569290549808349148804374652644426233292445078232617856344031619790290125597886991951435333850203201795209826138875605988050056979783410474720109431778023835534223719224834230159068267104519666534912526878817145368840149977489196567857140347013228890366191674985072785376344473312693953687793813487919743309361081957060474166360218203722993059311546997456430580377563283786365100984027315199255994510201029629820932314667397015990574105138088765122306706841235250390467909785381579799736214285527878967892508446792014273748351797821379214594915513557774687567007700591555250739682931158789246042180997883723894680047766332029598791977609235376810082484824303491915161905180458318084852876751924989740184134023699311274383521283410012466105883901063017841007952535350406915776359738762304585246125903289039683056317193813905695276165306884142599204213761460817487852908720585734208410379407264346762873662859969479092100365316500114348451166211159580748776377821774432812619424211531303485332183507788924852923717626566571998778494337361649150479216485950617527018947215723183316083542694019476244308073210983627520415440449308832749732032768984378951296032669775331519544227427459065613293837786577652083634131578227147870522299341198976175683479897363369643949245956675193697072390265311708265036731909592010740349681052519183995351033307973377218394490650814660961775836465127593502069353643906966742930601936506492487806380603018490339701596212465228459276095864166215974485182984552825978142444631163647966249361269330969089970642232108343416480058709534640419353888798608856720202373368437080763806601378979165892900040766155482652600070326795519170419910562335569985781572355175091768053205717484546955116750452544315938368083094663801210138342095509177645333027146988669983714117305594679300799459366958771838985324019313144982201320076887182932634392493221713141423599718551506866420723814606915757230795166817930154465896233492637305994150965802699324396591794676061151521511390313626624277214614773403416962657924771583209434980419069189240812307767022564334201755869068847501450069365789909051360901975465583066334869404774131502083886482138333124155862452498642696788537343618816782627436499613859697950192174675322355160180974717546960155367591809757912178462718300560359578660667532125971474660482731985381510589631801619995726201776812922822567006537468896286794941413299265050105672247553892376957540195952973051241225059227245310862393393882576507127616798080547633288348988750676004728241790281259026918384408139641720819627742743717346992869984487809136233279383394263227537898498270030632770826604750894940186590148182268011033125191778653524664910496423069170745914049182939697148922473646157473367595794943278876001143837669907421183733399544235206387636754976780133353052952265132207077795014894084628760564423059314982999469112400810360670983427915388534021397250988657818490343988604422731948304629000006416952211903663566412463549865687385111244253600603105944269276000873309868150511998031835358094298185596318898030761368030714741743134570389271004024124286814912803680400336801505337410973994149860722515779840947293953081546748348239185120354419446472837013931731222658631073808075782922014590114902134878128529582174691496081319487352814002946794742366686442332382527995515855387574457194405394464892540720733139677796003752491906467977979905225039149763185560111990195457085264940828095430465145810102493380384997531557314741289443529431456142711479962217106296068296022585202685564928070302636210642290618577347310327735832936298087285917512592570817101595769362923452555776962420345678562311589096938749786657937467742288242311793411468362134414458536242931490094668805038434612268401801989032242621633193694163259074968023401412702220159811740533775044782806873967123740088250439626592871195954693502077551806361070363725796170324027671443243321964539557417758358480728716007422780948420471121957084113288946055310958766024089805295562002628382655882302303444541830292821135619454652819120169410482955204032815420568408219310471338065331912728071189595432846629994394915716136275739635053862926357787587161063039879354984802092609843540139464544869614419790409985382662468235829870734825137112757719702646180766338320725158661557626926422892292507877545384705115105047858996044990943785201403732833341648081831007208587085589539542396267817003704370007804724342389698088061892933838945599671860792378491143233195309663192675133488649013359734801157192799602095947950661517979877278306002609093031731794258316649068322366881950638042150462604794143671577645399524023861420826346596041909837809987578838335258763096250508454496621090254513425274242766235357052509918335206894839849628501410022395907456673640507359270256478142597210222438324097956866314027396062190843485051166498550441343579570589550271303998744819146037602712360185308802562826943755519347972461163788518656784930026937832135100084749047643326170545482511177951371108173332564336118194405896084027529794808722834283883267919654586764832405253620239618475888458683198399957835477191715477523192975424867269917204571801629909328009405532147679676989076934574830904694315254725375810660755133268269538242367878526451833144021296978389256812801904887247921348973130993292799355668326846890449176354414773975720236839769316535010751927414291560550982281692567264645239649872043273552201690736279413600629822932745681103429231715830504843786667589050325781332703957844900811427433667745865862887349729870492185701039032382424096745526817342117886926478606462330676939546020960385958900427763716050538097775317958380228672818774695925954806634796551767212920355052220436366459907772669361226279062704540452484334339556130006947358908045184752935560689967389114341989917981787261739319172809856625491036590176298862156515014849942769802830536134170833955915892592001437104336302110493343991133555578670214930229219562291817044361368421898307889745522261430966782300747687933956537467056009275555664833509618502254505298869486491040854893354603292998877914583903664069836633582846230737724942830250466841127223422646819716319375126738466535834318708266671381654953630205567603484460281312473039870332156276982318686944837686188925061747053228159886454506827637722754692611791102538421447664923085276643508324500389933918471068949904900721789526650678967937400365613131263487621974999705530869742524660631664518088348494806056432516926141039653441846041804819713273079656974120473414399314961408339417653550723115681215207233751456933989574795619887503492554564766567930890953827175496212501813262914439477120913569314271151605548019665726448196126597952090621219022896786185790170241361774810792028263400750990687359264171579354988958509849892981354226429920087114659758946676082878046751610808795599686205421215188115280788029291475380305873937282604548094684131756677578585792159247649067758633992000951555747827908374530705779318622574020034079792783963817911781475235777305777552097060537492432201345521565483124762135050923645866230268582856779602926807783931886238661431484733620500352724702696115541629026334330082084751633122795106272144107844674590704135652903962135783242406868429243558979147088706091286391668697493759286879089930525928925855517132298978952370226525667940647351485246157939983209389903046607530831319669706004220037020762910703743298666292369886637739782732878400140999456480108412002392824569671368242888465821787635227153299400541498832689070530009058030211854332132896584396170272250266861415224809975043285343060299648607180208964246521392437700325289714407132720605226328342329288572119829449131375541425509425957327502561449722943749197232833013917627690040370479831967355781240059033465404734032787285196442685553428493267103578889677458117020228801018837893449304697936409850294601541736116933700814463328907927182474356289291513811775452231936928161992438691122187220660426335759124986368869875502168389786380364306758383561844913076561841538414893159480023612050701404177823270718439489953697525263926627632594333308694999626485559070966136925700418970400587080789739640719545013044011793224983621185693755686368300969547262143758156942675540044937616948593374787503567594311011050445505482660817141347142820499221359653138511012645013359951204738188225285328973945272795248948017941501923962154549461880598083069016647942936505991530222845092243855435078732655807682164883051081795090079556465300105117997632618834283569744261676477236465207348988501834691193641683389457339119527401033376487653632237536892627270548000155171861891365125661557036686891881480461043323926309806265004612926342004022872554912965113860938763201433869396012367371920542658028268300998148747107763186790314743281419447492617826212142089858718396093651105796669473607284408976523393807301062912703075017879622286219610102282510986916346986191656524727116716265301914271967653652267373965015284491804274763980036273670246819866146853774236134161134406626123131642577230974735864596286943984941471256724473923170248050627704367302915183626143042691144057182207322668767763119092767862991127469679270906528288833105915862240199958126984332877364417706466545377360959246829421000058181707323704877861602227700559324080156228649364602552157300890257895718763369874386129500869842643891930748444942804179706775425271774640489863057251781556712654806178471114260773372352175579131109680826570692461401629763136499424205065517429890817408904168386864424370469518364426219534693851065942400037663900339663046550584232796239547136022171971823848721505393130188059696708300646819081554308685124487369844987765516129940227022663181832072383600147051149100006414845913031233161919558734157232882155033353720786684276334209180535469291954457637671850474044267041322645618199609885827267382098394065364570815572079162369482177577939286605224948894741760599388981301475030968837321901061126404517080623532046262774162988435395762415857175251238630674656445152439034396446974816045805781194869218852818964211534639397650134434312074710072582384988732404283707753473732519507003630864185486771059205607845323585743761377189577767545446761308219383116329567943787772514993103290663811175567830215112778729199718694821501192172991311342703073155137074425664492103895605139518521027892764943270696333487566450587963928079631041593264297614820133092758054853989453525958076407445632165883182698756766170558361887278325144323622891160078975041824830960218243307077438484143382081747371341464926447969891800017230594739346604050278263419801043466285750883675579760017868302514186585922784620058889141944852596123615282969991468670934773679835350609783232620153731612661967726733958807079917550817741748834059177026273635735680257014507784978176255339085795223852763476593978350373250815256767806449270351664698440522974873091320771711504661029931347395923853855323870835493765747259782604788863317078075895375211266969593859156737669312664612446292770806747976653623743320827472126674911629211605657110756023940133820535393656277597523981941461615453081542453201771515049799951511966821037009374149002832650848503156222669847251538535402343078397842680027033417109182956933591994724644350317276181509037946868525297450622359391105080938224014038728726614703241886041847496355150006302088426220427956445865091763763028948900026326840346700894199519153618899835367909288790246201952312357386178465927133076290635858847759904108514815518674684423595732718176937618889068321439548342319872127445364939867073008984943103106007459039761584753075296035659910462089224619112728557237059976326526831668870281754268261519605934520373758697913673079140208740830767895975344820302443957748281868980969053905760126160712168074588882682434773225574540334909866438516399491766010120005030881850444738339987577645664788149134405035005711307283055436312826492467093131360193924760503099116537392215029636034490818599441547380864700295919563053463517183639045523229932956607687421729487667872545251616055483775237488993391090269182598478473136292798677132681372721403869287964816435378135595238152838365729044263265714951627099213778075886164839301834011860909935749502118659905144681208730670865980347598397495011727623708321367598937618165973275374433032949718883260132831445068666724092527840979827505885771537238261433173810686751338273940118339671433972650271873080572351642627273294571510346563420272630479700496177573306846860363569358100489899470662523125158498504854420246620111184888601839838650848885148987234406410599670033683762283358528859261158544363274232240673098496212310980825231092303226326926813268715961148169019986736321320481390011606218593425158318449731249018793475282294780142101284533869579435289055744209537059172426849328112796328023222785673065848209508385019264787636882525736487119527584723018939427604323478672827603773861256087754786049593606817795120789315360359874995828530873985561527982977931250915337696902884611032439013525894442805924268786147985743195892721418329791952477867006629879618498428790586953861976114987465576081187446196779915777488429202261403670130591223627147237177854704489231035935938628421579927139804152205856307461477927994141215363542106171178355258416244700294101986947010015276968966443450319013860818902311359712383111879589155715430327468931728340772250016998942677891157508490007784800455432233351385302311691962716036279387293364037788357285313405467882186909334247575836852804819902490222188574118778681407772956478249001483981108566508733902759722136786594558477653834538122317711671716359856970469560633855192303910827039202941184396593881757156764033684018395838779335029286728211627019908288562380666030893715413081625590905560833737654347257267749402304699538836048245028630449731014742239000748778263442761326892799425877049822588203894035484247503426540682977225779016092198361046677253569030884498272112069694414256325703588972951936475535204918993084746335257942558671782402776755509305603932843104395024517690713951033089842568823217006614571884864250357430160040828188532163203215188875820733838991093674224300937408705086035062587765029903620768368524745248048150294515497824076269949707832220277636946050627446771399155392013373526017861953294215217969769433546957281224230055130674651544645817433149191999247662856881092232531863049608683722221712496657128935301084987985447362162817971252629190757204583412706005887366571767971266948616176202202976769670224840892457322454195942011008502329947362171590397980667476998210993095293904901950772956955517580078596784488023847170582681045607126796152115565846368814327307094334516919183343565528305135920747027901052813176425714451856354095051771919180005432829089653713505186621849221384730769480970741238326676170070039760882699485659415782752290909433586010634352212721325644831106437749364034413080954286763293495692596330129607425131309202920769151984134202429088049580209995368678038265095078667350970685644632548170954135284164296141005892017993130999727743862243629659273080962013456280184100824821037963613065975682096430558876649455052158135978297538813693233524267901967449995997902409421161269147879736730503637380321470120675056493980731685826080266390804240620623321909851904554973904346904270465532403341835918483843193121267412052953189349945104859603437008812437532535995536927215527663560349886425576457007520503981128657963941234804435753125427352481029119307752988941280608994123264239707154738159161893006629090563623121644661992184026463477986602692909122325862951627902885423660590937217488553803569588480198507482852020064306872533992140513211336339536979894797067548774984811870322936636292214170798759404269710968401696534914265517048535840471596216397042745325647789825212224506704289043810884761504219769469182809468567126627653963269735472245382873816409208580012847459002407564263112916908929316737510359521851338343178781168325632510742008339729721992993514949004868547139655144883023266494532202432533999973391377676917184328151755033625188633535152124535335058231523911108914666824113759711927433806610456941390801670591668227002542199095952406174475055846232318107544967402833559794611187959030431385671177949248615631860121695026979463535549590047469921163946113691056163816145973440065128934930984143684783537788269619020479739494534495427126352589656105964725677424791969433469879842528703606362977527268851988032482466118405453359370961352257950315453265990805419203421900088744579539244174807981940556981116910661216336534495813813367006555083610249146588724644193144115319556283594224075269322963363564431694799786994174305361543112932938763136302007322922083125073618217022045175302209145684859708582868051826290133981561703745950585902118643014851351564434204002517059681554517631876722892846753667175258673684305610234069862333543255122979295525645259251337632710567510730143590620563641995539159422829236206941035642038800655155571171782286461391220852499531606362394518608810194900590058157413717792486808678800800503432827421406057352151432776301647119643662883260328915828338754333965591413152696362723931546707621996858806770149962280142029771902941192562371431683433076343367120431263047095474162277651290558780878580849529569522052054746893070710739796310956715111354184350832319447482573033366700463652436812990213702967439641528930642135575001901755444264615141263452559302047564083211609815775088956261407966278185930096407781798702095442204297904202933496625821567750823216559597721538719905783703259993061351121492322915263723921874751226847150345240658423490747955031816158232092420612316897037262271117950164458865529569790774324370436414211574980192757234603271149283024618049190815317197225907727038236023560990344522650392362165914001203622719775120027109592260781484017995176148333783016436574925012015031125486109677489781508864472460964200704681419213084837142809835469141336882711347721705900304745726125328580291265836085009546277155496739406044715558279129255492097578661290126442942435571123522671184506205631308443972467724391162538139083458299828376083587419845972523070746069335374509137437171639213775162790695802952669556765611813753189123553143531872352388022295497066100447791826460701968286948487198142647955758793905587239485701088863587634784469656932025634924834350208629029855807572130332498001934092155781991721614663833078988459044199624817432645762977758101600995757233544215652724870220777818932760396441276865628351098452512491383485677497545825563496569258696486252891657067391742037585961001728134441209180847516167388854274406371155793007566378631884247620437193643577270042925773336354391687825185409961142613858583746929719842752629734787988678170881218829560683186471641311896168601712843180253553039484058494678726752924578898946824088280828487668213349201374902595785797370770258041098698027877626838075712311206394082503642821027277933001360243978521851368629090029195331693069570918706037337782803158818739377500882322429700480213202400732111131380205139161643193849650218462906265162763273693133512359502529147761902551429108637550609387271864523678108373077444340906860908070668105559106768806677508078937880813416145536275486823928696336250849487858570311633191806827019863695098099068006397096715241005027724394934314748225010926007466704201520599489110804448097443677909998073498211600539123191079448695061480083059390325540756316028432854256309480097673006727850052903770779188166550599523101203915123250202991012575684200848603108590869272833578306245489573985650306002463534664472676174915111471755817334623217230998537906163880447623425727709989383086337384712571612054253473619222139583297332621426994291314426482365340136989557252281888781754870139130975942594425533165550441942143361807128729452577802957001368517231402464991322171225729642636351047115632207785701770266614507736855137273380991638296007127291824814368660968492873203428025677263870459561656779614405462319852446460411489395363027579082035435741195180470043610112703573502561114248602914757639590634530853542076908640519530332520027814275806316204889492234173061825269860431642854476137909111058837590079780213783797835910381513373462436572369066468832135402670021230623332152357099367600136046920158476241333317657951945689181200505964634919055429729451017481718371458494640310346159626783053208724100106255600497684628924231336410307743404112296375288590996212038385740425820827634861116530923207904528883134379860036587756776070501072005740168917075717852528066716287321381530108529951971373304824782525247138742761212505080962520738409529139236450104253183892330996860784365456824688781462911168062416191526374094335341196631612532530682161412394899224439613072233079163599991205288747864349724715511362161602651029214675226722795978281134412710439904563999947213886197449685064030312990460494716794727665573635427901634759196172915574133817962053883222954276422514542447364522633861480953013130064494968381320880423802747379530366008602218688921770312576425213776680143358437227041753038456730810058551556608500619316041963959411616063166412484871371412732602162755751034830161501749958072369316647718657902188451603577365910083501735700557098880818122523576045336282160609553325600428976734230463597009465274075833261822045369413847910707352556074528487036831960644492611607745340043186309242806316862200141692898348693816770327042379289290911144129662721448457471890420866398773572051877207938329709211230216425204917400218357049423221037951198039728422623893382859492156181728386010932229538363190750926425260192660910843105472096509275841268920129298401593619169582356626640870015411196718081417603930609959356831569167062907602115681417760467175021849350730193348024927752715163468434041508860903498830917486264487517576994088532693858570698922034221712717309935271276627995866136465457318601203386332594809955711395026114902458858154953383188049506021197401686998046956196986811389821673987445151355704511100917665538549899570480027717495222896918235813759921733719525652021852622108174480012654727850552346381371453342924400926187638555132081021031223445631662544576614750189044573108547349106781294321396889908445717550385902758863184279427951863817364890188504305984632506337714031945785447793543994409910353882463240441400045855621428738665640916801695653611422692213901655371519107448479786679815465787788282984611827056215259070090261417009555112537391441079204810200224888907390668561756944527512120668696323790624624170029651273900495176095026429942660032384091342407993906678056598206244775650524835369719006145407804384111574627837755796629616930002379603876071234528547518205817743629926093240273663080055392080821802392416663612979206494039324082626881950009388957919344280748998023671096677550002651031079702340422273741521117064696480307157769587800705976455548654648323166428942541683381095742772005339016537065959755941194879581160972757625881287792313394321819554424559731297888612614204841424136399734784416657593974585582743473240648631529333134429946796940553094270665806584563125593415046928403940357045837558554163963301760332222090829272904079945250534033109865533788562229229901041549448256103623659602907529283042592476411563920135090488924081691738011133814465103313096429140066416615384389488047870566396549234697324091926293499466801036917106001713698759566455199852307577172554121346773976652692886583274535929570327831095587930270906226419183559646140978777127798626973736764049305371978647023567618510173892973381469973177832356791065831704749676183209265075674846217367946516429674563681831315658997110526318602405945734028589363895459188699973775586308307021550596050836738056272843893365660525360130765688173928036046124752174434537544909403986189506838977527630315344355437799643390880193265021862120145500594397253622513836176918937595360120977714577187338440574851082589327810094599562856382627668293946677166761453428711886933530105766213998324265388925376401709108424000200098760063969979257258540248968479940003167463495238823304301099878734409076072165805988292023143832687132357723326977636708010610132964792759582102770802593026678367361870730440356639605157806965381679210986809566926379084927979187656194870997279751740869001277281258597090137701216978632051811450612460635462909381754838966238669359594567943687404638116928229460193261750829232563394894996670592477480552056311328073172070397698045673386377816391987485847892055822778582438493927369626130153447049839651249165092163224939535873000216388853094665232784357443507072871935950396245142900604032892190535027652299204118288475347661726488051595564098101300242689495864159656370594804192872550332471606011926485043008253071800604031001917629868216488363874665833010900268930390221771957900130334480296710379242698212200406090011696172835096698636622990656110528711853076521566503756191258406803063187968417762046456843663922850212382899570220411315782591594577497672519537434222449652417380080967997387612467766277979485005525538848630696218450722110725224566432531681951133654203614948538490536959285614517366462815271422900084087726106305673242896799803632406296721767855667057463777712481460861280746955528902205926764779124154543776738904366544634460292227997617029281051407202451929475933258227704050252698984215795762248999692959152401873279592695415893412294594002171156954074711348404532259761235126332790823597584168721491822153229211686930177902046192165692597171929180791961828315486854161245575536313147934075921510302181793184368394142193400345745986049076630549590272573009698789776316938192241583950294271183536144900002343776548729523611518771025841600554403432785679420194719895672504600830793036925049127211669673115425696274231734320473103624738924485151692635201953049434272753803766228639377302037458013793378188441069341302914780610698880129313485156933218374610989837251730117835533355953561830085307075164258768306300368871721986496416340511353207967678295639012535220958548673693728945281926895508611929998167996653524409729775953925648025381353340938955107413253489419588598198915163799913184020663239363956311868251985084824891242824680527204135001583094263815186907451289512218623070276641048066794492175054489470932666336105981502345741781790983542362352556008959988577842936760819485388691960370325911093479557943013816173344081327816173641104901888649232648967796140033436111058171003825731973503327488326865409058001923682589138345401314468388627367648804281181554910422314234180816359173927494504243798113580530670899415359356455078876628616436793925405036345906783026816356825742382326308159161353785406703842266955279777848465931252267371509437831340737735213083531549415202887098349168067425056903939034271739740468077595819708463098931878146263077011353453910640410868606799514841797091924521236228788374130099223434034469517126018865224132667325258349091277205266234225135941964839884628388079424910980412253970669505896203704319667919894105968959416135374757338114877362845428737307443613902277187676877291032859876147174852697455375107043896711126806072937592198384566628825834020918379458397784184823873127417196667481125880813616525895118357221998994500739524363784453862538193446478148346007432009886624445663999816087319748521967165588165083078925722782643962646391691942265773012582614791828460137232080045762385295012602260837237868149823092425193035194706663220681573297978974876701265715345082926941527539729656343377127218463884753931328943344530910119268816124399736375460963610941671532937649197386695701273326962644391246355919297772032456056284985858204597169752545136609516447247447028035787091833460700688443286055118743648549403857398426911963769496877357433992294630915607506942065492772452236573031647554670320834096683358168066552417273219382493856154193732050376249693722992553088886147957797235621018245677970309623943194549130694135634665349568936288250620813804312951612299034189307883385290998671149942786716075944759664454620383355161578085733177162908165863736424166230296114114218826647984693591804132776180043316463355148980863348188322503049283946623739821564213913584827782554030629870728970229832996673861925576908252545445872942793578616605374475833287043410202212133323929083436889891440843795136653682023561153820544327742113693251024365121078276725372041171566898676494965454503129506638168486910207340009941977792235369406604578926600717868760525769724472725745547060479755811568828833508081671705185072137826629652943246955917443953968683713844671703282974275413922967293489806434024213925021212146716084049297335649089595936744810549943825062267493967912534002389727017722057799128728053209719383468991074495981878947492271678117219961121329526886396731799581325741847898082427441657318963524630016074633727809359606244532822628943404594981642073054308732251500706327526533425572527986648772898652923528971176030609702306320956119431774813768735383133820752788184650441964295304240032804546227602272178843517475765926529569300949840949397599713534709339577728306951385486692142910807605270271490714699900894920203621281848168625711451857547956635752441810722904741061515961075271689424557963079077377433766756442845237633640166190974244527318307287122080471540241934951675590954208683712731161564002468466992139410409911737113410132282835746277307476988841551422384357616490627814567175028011419064077509808136237050315120832708792823660097817670978665414921538650350072989603447705616608816370073202822214589688057241709699381139979621350075948393342458001769192618759512691332994351456915309350182071259107725209921759286707459338486206438428746930971842884279318886864341019893624720283230302563477376657933368776784809282630220711109595272667089244585419396676962012217793441320701692493092546298306725372861906959475990545623407337337356110386909349336818431272160050633849614565418855152511917067197858703874960908359805642110087653383011058912591092439827063321192488327402235287544629192904228057682657785075458150764325949323039153051512848660351928588937458040929666214217205193524688609076280288327772130127021138846301782583557918742282092316417199841858442093636398898017813451962455420581036231739111052565289383192700343591208534138456527859952570628153897301328864212206392910894476244807587591249311498052929755568160403550437618974766562236985816695307827549635128157485475603615613830917106098864467785320806586886574524307496377180409797417493767144396992372708490529668716686109918403978508129224795757443435746625373738902775133636755010125859113637318348097999692249569428372154978312709506358180230596130373877418053088478370992448110452320733308114151679262746452849021003405328034850630197923912488813908741110596101976884474596571560872431338599519403052419901086039814007862936808548669894853979834238072373204644638980041214907314662109250902284309002929070371161276572074657413976352605428097657909641268141393378369035884248229716069203731730778592352888559058286112646183705940241327548711586445693685673719179052066303899798225941680394228799761251944272191354067126122419881835831915467418704746169917390486221558002820337189915795264262423540646486812319276176140534657048307620324367903941421228467986850797706450937794790791422233208281784483792889864748937304063982691185749407169476698478693647189406709581214359344579703507054170952277377725438849860843944356643708171021606533650600943446729756248161785322594472149854320493665448208497065292637953848520470638925646047808104560982858696699546542292046161814677737664010442346958983856197783993484752243312671372300833284994697640963465064261810820124928742615982036832964417346284574246542302773123654732723712738236364630930949096654162555211111317864397211653117102376377918023294007646119518201808417272581541499210933828347035064816443670945255272316063749746854144443771496006487310933712486803952389197684140825625696916109674557919013033659496178221917718430245836319693567394021673869216902513624256800940859163604888882112254974107282296027470171057651869224315739987219672922387820073582976216280877441262670766797436110559396735401520936180798168507704967879550531136524286469702514086144147945508491379434022739472933549131246491006159525269712511924757055317095509454839921020146903487469312220348935579780968157552964491459173788841190986587215619166800592078576905080687959924640761648703806015477126330829625500142573647662430649143198091355720506160750759256160113190241482285580049791271200738872762347350116570500858866859616727224737347286289523264948412655031577189248930760821209088484316553612818428800822595258835541970906012089472310441621965524037503508979460168752549701320303358162448429740381472124343002414080677243811878351838768832939362307068381519027501855721972906367762402603174454546017453149842880564777111131595107959310895710845668655050888996342911433189947707398685403230895829665963750278615180286889897221365196639974016499668846122633735926438627614644682643037863715556929120846520771304982843585056145668649352294989383914262709633022024736524881320416795902106862148610967803926908582757705436490430496492171486578853850227573797419587626604989133587225656298278943395555818488453766568613460675600109433131131496202988672866214977519609757469648515627892909723562178451734369299171429515171741352324390997910696382065160927211516495504182809981346819634881099448388591066510346828141496263569456368718540134736433023330428598320315109326653210365365518338372640532372128314948825430469549397761138094898025111423379028598794182147355981795758917238306846604780835460788049871092002610735804394354116114702687026251275276371804850310464625401128339622511292068150145204387233682804489449472493366092587166728621036575069903099765193502951143349464358776084882956083353440798406394661805401210357526562577383870166719942062533270588312550002114344161524575952143349382940401559787984526554970022542096094846317115969637199833480711206296465581746174629162601071151822806603285868392530000455650527234160736284088814253977342447081551627779746298576630430869268597387670583732340416959615018120085908592037660252923027639599065934828388304949819594541035655654648332356597760979818166586298527689964381865182054567747699339270773478267605431922399469805084890599544587201071305971274987579862691291901371880094154815194188021895348561535716953441090004578421605057523186746417490158281107802006529130972636684607085978254964102506685575708945547984543961068093111061663312343327118691173719295093087181053119006013706072909873652001190118605119605296759804202106916239193530441238877964170937126394591382699648252440770724272561194325779578879549823305822682992647509050950473389179184197098888263160865501367541288845692994509326679149417692257922309800407708284878816131559361287288878721257087887336512995719757744491975042790996804110088608186662223057041511481966042169553518818267265829930691673941529994960310014523751821048234894223500795665009083032642959919953008822497683022220341927728256342300893865780650784692831181650321844463634076796200361090639837289074531367816507500298283940794005925512751632880221070245445664462455098542293971887565489852970296131956952711680864428613655506885926377764685600269663752832999376156517107375397188964041652923038111799298270391205849220015123995845362824001389131948936106689341242171449045100131734695421169157158952994906761654975584808307973261208092057470431215106356027926620408479708054148130711950416141512362611296299872318911642633646759116691931635282408353803054560230644968008874770733378329003241169213567905589376187937764599288506366651415940920974847211677430229798637965880163765057439573644299321656022746286822798885441342936235009466833937456497590096067452237947535581948383582449129950864024576299747752864343469741720021763175059361350332735753066186126243181645520938864093130524777721492978812965362869463149098799111342255944607712950420100005452115651598305275612268806502940916552533565752182117076150272345509736233466223182033713730436931012510713673510156591205945048439976931498514385891181973891579588408884489619272325922722494252002674114878116213519596220607620913078808074967833770343339728487126896446882902105294783703237534038158188876163573970994884616936886058826134060205359034191603248677609697267061193509745847334782579293238569493882319697715718473009097507633542154457401120309995365385886303227308426541372772200996775383977294150901010371191656175449648900608452902403906110464438315517364004670465782097316598175383430348549150922155748994799159398407499946794982083387858043880367342958494914131717869180127786066264284270404173449051837493455736777834122064743479603284118390906382223472627001848639654113536093344494961095939037113624004609205861258107540310771052670821444010459276236070928627427618531239137152355487896956428036162079499311437900318268359286218679102197507148275448258275653551518665765393328117606608470190281344936097821400650097261277741282202102590947480305441773346760369716988970215877834616580575047234489499299005410322020184962299281234609430802718399200014300477974097651876127284214926935189815597559761983450939391977593403156615555462893985975148416882306920217379703728897943762379386708644492921799258120766267386301004318868933914039587594023861651492256305719325436571252870757069957161374188609340066748543708373127152890734009628870007783589122996004173528270735540040776268012694782548651623228841025834045959140325006057791558739805767028767586691505091934629322562171415203546623136433818032637245530246472707934276381342707761627670504461745064615124232186123158054496602143704556198569311348824262659195260293015211721487229125621095335217037532243488498116815900741244637954982949247505179008454151933111832258409051741846847327556511151823757068546472917919586850208659375932811577603272733253682982814198688647970654275423060988097567523170489614870895557408493196330173241155120061980586891227719774494895330031088128415869828541757814393558897087489258735196012453326113953525456966038701562202519407828173515091065698980630888861938080848800679290673303279432851578377275458624077060360065419304903498362865670973761009424862732152403707492485385355934211070793295685098878689663023803563787763807485955039809245827077082616695574676223941420568723543024107119951175963621897114936517138995031881911456769380164797378951740343592859061308944540546493752959527369878302944879945783227955431136919447168741651265109452770886701346154218006521920549464362086621144403856527833528523056351272564973580604321736629369061065987782256479599143087799636977297965583347838382851395976058756506014228318701234648252926125689968546888710018622327563700788542865147082592997219192007154412033775364362929190739221970059369585793686250058169407852550029976782889053950795446413422596470873061912869514790353579389148217303745456916263174896603126186351901052595112570205179176048933465430557686704030945396771638262827667972350741483410324000953750397178124502246033295958259982790893660683628325086896680796607406198226768349892900911400203230220196064502983424445045236926274730369547255854057839079166431388407174771868773769433917619618840742292604026963403321089638566453778828905314294252213859088365357265278135039050892460692638946128980007336914812375337244068355259149970762941366638321069982536646505235973565897545116648120354340308755160382887204496664229249237299880653002907830113970953953502413352171582543822483033421985261590743408697208598769012609243380037668710108902533986047255387662899362802258003990611016312174077566121468986453588178376854443477443045136599920564530016119301409700361008923231932799779139228089284368787153005286535043958808768121395443102883659009199894970684419859738993559022594536495563676865636861588819097066167655340495200125191302138570661437542910871170546486806485565550116349865167494806470695075486638304796828919609200024883696333323572620030708190993371560070581007938182323578653712746472880054924973854264929610428422984694276462473625907304018841735032763738625406652441637139990306621948450860988271122443553556763887903752912385507566800269043518030489175414235734911543839371305229125516130378018287280429719506440834481929432257248431392341248713680011372240930352215195186949149414678992514829146038836803449719136657863980864831225592748797301081727876807732859252594839897564790093057431696440608935016059185977209754165751019594948336943269043510214391954843637738649643233148516661096414891718799924571000602411787579527547314422653506037226558221736022837305885930951749995256912964629811696806820589865668732967094922641122913404021823929430802609473808619924109386947260192997178076430574264529188601240680914037097613272061075813757084361097536893792537911470582457790656893561928129190487305847956106347328872063803315012514343013355557341225697973686662223160767886427451539576497625659779908658924188946234900469562206242996794027970366032439053132762289014681069378450555085505874996806487211784705234626236743538377131203768861463608353283662762387467250665239419211610830678663218613344980342915892085738063153181031948656962583458338215496438029307514111739110563377222336042505184469580758667252391909414102402162243481081536672536374308533997210406747633317910383906080689170052806303946098814662724418968863995159995407461345136407341738295935222498524776402475492606408523510258853627818875666301307559711106479102814635942475599475442188744091420434892449789724226697759778644922736499603143134341394625984808023298533588450889479226929937894150961151163035978120204198946378639755255188697289283427260430411778198709520655040612721585948541838121229955278318417856961648442403741010622912810207186129232429384474125574158503546075809606899559963684672565707340559368679920343608960843269872294976998039441173248458069663192125710047902011827223144890244147357637253484680656944884057757757628232276195392856666295912571974444310951486892900886719581308051901300880535011496145994153609990433635205653508588715609105325782531157156029660374068452800423863716239678123167821561705781936019582940811531992084925900980139894414799059450992787678644060215364334538260733133774386872030921288790630908133161080903889810079592007662718739513413141744929614810300289462738530571202643664317355705013403364987708525682208531710152601707730675581234390188759017845369609687198355432477233756160579266113647383131236541878653465132390915443032768784541522658326484985570962329322525850847858758454890008557041273370592591635953247462461689659361065978028998924422438279951073012944587255823006544046989035066013287861370801801701857678605437158311196006338286463554953884834443295226587603313773707715478236103981535107603964782044976283199476644432257995166700385228806440492785743750533248013504751187598830345729328788882565567901928981515765304379045466313348209208273421243606695406476145702671173378379452417999620519465808543499436709305755458969340955026286479461783464377319853080129598755235129287210996886914811453875017356910371248473022688669199102976706134687168579686946369303772501798687590430179552980935623248395420071889290256289299024264160117556510795876017554387715424575796168714248949358307981202246646336842705162781683188193653975715703612885537532863788061411888096764487535008331405885366696736900320422383481967122504710291305233245258523650044919980000767217389644070748171148257847408941831590540284457862068950029249336468467908980671191324020170711001536892587740658243838222528556134770228383747444445742102846972554965673459944615661060378031433205632501571757360084628916946773521175339771603062109051907276633882327935516326343525763322342409189262356326216742141081093481570966053833836928388265256817116633076600664728399211198685581743229759747939232193576352645666386690715358821294465511652857219178002364585830866940521989017328200957040071206923553712832499876456085989448044836359740385276802087963222494124231248250172619672968870378151005514395912556011822259979806006952852709030639239909491380539681634902288648638394827337627057456854598819428018341328421800572950244808152663916679427764647972913921189350229909883803081844122935165099777773208892528617690939693621317292930969055628016458399066868081988190317160941194001780628328595365066186001178924323352740695285672768774083816389889930486099368156120147790273421315710048872490708383268845013497910335993420323948800855946385670501343705734506907802438983023385995981477240134050454824069281531684736913309845894284617811511770893460442600905426301706700758356559312907628719378950505987625962399000320869628904235498844596201698621326179078671583745878737466374340389973039188294459857110841893247036125214212995073787143339831967901853012096425611455528640550346191562939492009430450152009504411285085813233552840687267788618269752366562914602010829814309397505821978645843215152967377191542231654045840761730986083750528935744482446799022447832518356261136870794676269338044013425137789759683311908462030270704963692381403966491467606978093863046516987187177945456431642461370966955603401409136374406508837296135296358598524686110024581150189665850603316677646699691342885741993391096705355238657135690454808140032210133737741767779839167583370485951540191216748298954646212705543612460688071275252937932746461468853850679338318161153704788223040759682572548921301206051827572340109061590494286257710332238076469767573283194828918192447930594830908640136306707505580688369982271624539556159664007041575218293519220784662912631175131461371764976843547662323135474762437964242576679135080469697062767207474362198598990333396337856385011325623111200908607692869449872951227088057210933798688238763068189848408389404043535381987621554448234925858299902048661301625650348016617696144219113772985896960446282687538573068099566272704533633635246511471541413510415424007765929642620827469667622015575298612592715074062423166927327764581945999547682598600633449980217096691456137936371459217636272707834833682090909991827830453785543712909676415226834881007887525603012053803866479200412550785988789400346008668641622016789159309957889485282123679804249660304482017169725170931831444744848930735304619756158190037392086671355197662047393924628134557063870500485292297359325451671130785667715068148410742732796163410485468362291509929703630800900329063730605339978526892494998283856275921593817746953889151057118123067856947005919057951216455993699880237995486067674832579841238129846565871919012382435913007280721814691535478086566267512366643749975409616017395335881365297535871216805775577354484509086275181523059916700047764795166669902155905994264748563511282343035418186765456535506658722647775817518751204024402549968380610639547064267401647768754831906962877842232340041738372432393226722439112581303309098580810509381598107977412907864733978054254626020058117874012536524838591034872348627502072690022024011648192547106079348553450984950562027732714379257161865924590740359342857281710143660326196222766792275420175126309771718341631768303018877134842199687071628899340662638082593066727570262078094842111703189912476566373806149956830022385245126553958153604568554971099539588006631130361310974077092759720791376099489742755274295677388723703476568659866798968267759925922150052012816736364954024184263779510537768715631854555031296643802213328898491935849043472595966510409761041687539393833003746269959966840481828919099375352641786325158733886055310585006376648537613305627195595144035213905305978686209743916351516072290070440219914210605923242312817714126900375318216523172261234689111997944885161562471540893339481538906559130942808311118603946301152279181935712256318115499310155776687327139168460504599219821261417054780506178717253692145667964566783565574586989374147223166500297959576220832962512306108067337015453182574209843879168516197023385428268123750138291191760856668620439620583753080995669994645545606443322258913209111015778766089081373962051822720377312642571640455654128178822460753780393013061150324359205031013442637263110628828634058281044194789615746969762238343032270300729273172424116025679639850399067488445659522295438576885104201330805037326013861282338187596525275847876475908550507886009608927017264943802649698472141435016324734077014631489593018014890265613708364198083249037429958143246549139921905095003228304620811877403371950775621823920317237176933096219893598635148225726000682096300077997691095912968499948875026489358643021107387865663494217170066334401522504838075874901624087221486141105430641114982517908118739218057843021392107599496902014886572730394556079666108869299065869648671024862225522970433475125655674364983828795468151137859927572174103714250392308066240964078968182011994373394931440984213902447789499154160941402710800660438593396117292843918826781618774497902158740232347026726338360029866653750985422236400618498407522950773316172028433401379509750049677961734245726666834780142080805759710100693730387151399530522550278448355432053581992868198958494765523186598993024391697495883437508767855191448743819035088195081650228075107101481861081454420496414599585676264804992727310490567653415731789227888154856788514175987784771721805588886569379708826692727436767309793344496619030737303876928534055155231427105668527524245847141375034095517063388864729074814935275527419106610170060760352227048122198981543750665618389603920183369328474896933629615313817283659906565676279000443451751666966874764482777579622707402650312872914707622211935957335520406738396401643313787553043186770212093137296977238890459102709183450417867477767533408691921402407080253713643990049442247907629086928365330263205297418024337469694806514531978820120201433942289810258283206238437522997101859007687425826470553091642198791616882194867795136705345272252671524746360300155443253703411821154533569826037301429041750656247876122872611956374181594066447999026167133972582914605474963445216611833795799114104526040240764541329844575103476876623154090544926345611691813375527851292499934447031025734241598410210245400042589296430127724931686519577232768651365594461389048642407027709520500552622591638370415460847774357068068821641340026078091923352588520704964501222001584931417317428158922903232382935033200283566350798583182605388614091350393544904326293149609643501431846713125356617348921459653730486849970626077097771559667741797356524380672728558429648002325167469370532931146138550179373887205485690666383255449510414135759185971439225429740903303553169657097012165968248581699547608372690487125792333619731635024117853467338927679766114173842175743040770072328900624029404804874240940187385857872193932964550153031947076532825208696858938431912559817219117439764243898672553268591216689302382082914814100749030704746218540011784123954777352162117037286419018039024123798763820227012883738114836594708249562948198813293030225326933624121410704710683878346558405431840522559384792417804275330850123118090996107628567218461118802605074636811271449371625090050408816218215492819081001551322018776695353394051421972945037864531486470495568429119743100537204922949582186263987298393019679049745616030743152798199854841150405817673670002217602575030084235418224759233868409770994422633385436802110881995651964702990234418021178128829300794004485605267755634846182245805617865463026667228006770600415239297343914189884373255821050413918451438085132308651473043897313424738813520620443856797931077937703038178273325547117018490348152047947263079494520268385035642759256159364989945175579977137756687411850604948986092152072275645620897968382293425776368797991265961643339967425560441496670560800480137824827857411450222090122359950176536285735365104684553998082885575695529072719391206201358870112817034201872746207203927586396851700357157971743511119562635568020417576910937573470534193482801629005165533918647229247853750156560043603156096229725270405302840801126284148197708049755586039395400302560407013909140696109557999071697086415102601619393604804376887525446343945890827750640218601436253289761902927227817984769010626583459772462657992866873117080250041239926757453094053296861429457549880573105772924660826098234818380206472597299040302419470304329379114441026238098423896100254337567501129315576105798974216764264184629934409169807163162464094020466327502509843072318076781406620976257498419805710465016366656012946461285434761351065991260356811945075739648741584929389660595214014046455838653237043746591954467264566807241170176525999009795439955129066510760551018663095072342843708567855820506478023268600897670882267852949878389001289719462983665126847754144020899349058235646425188488939947445159013770494659487612499400715758934403964431401516671846590338789627386404744675772698458295583678583523251898272468245952576283858020553148047287682928642478444087095537650967203217602335031520174093814692975067198229112826124589805183018332649637642274703079434010153904497270989811031996273035986038517089933562406728468926151797064625118409400823503317894220769503905339886921134561383439954431898998264711532649101805078387756034843876591725109335156478419933702627728048454687445572553105192787332882213362820779989223801591212509064982170147384169909274222087095608334231664181190017342106198527044648287975036265621479145736631682643319593125299671789214912599658956953456218810758073677712842457212163389894606402168638183458746062351073459755678686641708159690223923665863666904272221618122410531798025253999507210263458531933900884626552644377024720346304126519749246062145445587182288880745655418881419747207340230531991250103948719088855801852183022319887907220206446687534688263263736811809145413094759496617058794016948855562011450261931454322332838379024233235089889963662982286303475448206519710953265332295803142368295930098541291808166696411056834236984770043323100285920561949398017604618800303432799830103651856889464544075086903772431771191224071808592080888404211453380595554396367441046531748077912054383390208979892296990490130618905685231854469472587732206271671189040320389506513323583632392293338255641527771751665109770292420308643672687674030426105205238156953471503641424449921270890062882105245519873918978205032766966063428678166945339383206661323230572969569154605478046543173576004495542167269230858480548787980563906788359857857163105418627617322635410979510895453460985204016261174001715565761075816241915094779477471718506885925244041082203476563117282628829784771832217446864534166108246389461363470925046823543396004532774319340718002260525423294028959740815507056576068032617706985865502589459762498643080920047652257176370024543057366276125509608744367476160874743881241317082360953111233844166352906314520625562273670106144146123139869985144216429574781784299140353485175803587715758902039247347258630839351498651944282447634934156382138884240672002299595205131091268384202862529664604333129481970085708432276249019844710789478554007842916181407100752424796887807058611427596554007724851486391777515363088397491231289768115733294796106637942884900196382444159770591579388481420611601163748594115320310006100594353630851923063204165789287732632977446252863085063889382553820650919806490191714393526460608434941299493325573276358314347968089327412551063023806654150252157704053270415108525407476820100560207770776231106490366807206921129139699118456005447976304324595342558121208289364519314680848111587730396103769949021116817915841015803767738466580229810297476195207946910788780056795998942526569769275075192467759988071477661121885039453849670606385964384973049718986553959190530575246093248067834687928412124212268772506957876698267341574865244174189235617613607096505236129698904878602497215500591034402772640100060984715720361637414812067743753668186790175817440001587185094143015219762823689130193287556394651189233130181548220001683361873583263212750564703046734688335855400429863720952348245216408423101382216031711369103372204179903918549801336367987292110178780383833455174216152168356296703315382563495510539490255768044815792367886588246005245588071048044400630843368245352722746337286081339151186853780500468581787163478780761363975006244077650733982214406676837587201593279180170866663243521712004134794794626262688147718354883467402141914303859995686478015661663514679540602382733788241621567689031506776609973065213561286402144788748307373051650087905737536923259379310571490277173180976270217411677702106786788335143020675379895689248228894500168165903809922450251292547667667585722444801596242218394860900835876216938001437814371680924839919848275023517213143531705022041548159001405781617608755519087558599021307692354819978417825213239864885525545784773486184548367074639624876699208525233238579380447679295664635374316404191404469471209879241295572110511156218740003208411790018997777600636874610421110869340794556165634694026405406683181304874598439577308927277123284670848883987814586929669117574382429308619954383624026958464092921326064109913387283348179513431930665516562922292480539031098078916943687014581523478134921521905864013496505001756582239298585038034838455057330066769028699653880231803030059453031484397102457477611388324049605181376878181481645175037761081206283002516010667875210654846749492752107163351199202409968516029782436978493372380301908897662140894662706685465628180800790065570932348993824153381606551752292418594543033558545278421483631966151933599206444809181546707961073175022800122783450325276982324836004573645187182478831280006738117663426170525851093443144519229411049533969153933614624910875015283863051345630817126102901615307205844782920555992690072402396018152122946650988349178282139877421769170931654647946965898665111016952554831373960834515760281177296344017362641180236421835617873691278234417965097820554750090963332136198671054294555409916139663509739855126582903619085089645074943803035857655660446953380965842560811988376827703189116234335619286438975780058882354344182280637391316563525779317575437333720459666883790163388620609683295820413495737387319486414246771060294096149504011549647752402634565296471648981005725108476862991663438781095070845681801471404160863181818795682868443572416710062051135106527323053554676204663311722290891416531565962103736212030536449431106832757413939941128030223671813253677194528153841165967653920702751645599600054441529478039265448255745610649089005457933438656520924664650413507124701994387468843664002734883519172592267295785920760783106798924241258186764107760462180697501755090836125063330207632859212890874650993375036982979795338799640027651547880734708541064971763816612506399670954424209114706490972065457650375439338631623498363061161311931610699226305741936660093584336416317552688334349451279992779555558420399521068857833900534852051903297535591914769464782851717377761283498454317797080921990497191668354497403992265700990980340137922907215748822772918554315011309060587573417611356969906575497872570762924623229779963127127613026783684161913289213666263698389352334261672063271255877500836457286197524135085424308627521251984520607877535746402121602837424800881120362825496822961153721619459475078865020757914938262466450692354145007202141056241922987213293617017753434933292159775198040939618059365046276607548092693456686924512930847004969269370986468880112190137534345540039737658117416751863889963357461610234572210399699314225390075163697428237550468165331220443850089300977395693664934422272886694756355888958602426548407646077048571410605717969318381524691361130819828298245964347838210574743712887111621071228263176800381520638974413308042748124472674778314912273650501537172546386064443419053612944512692506945747298730773619241303549816269886150127830540534050790423269666273762622854234194918855219400728730403705719622320313781522372061854797628335346226934217768241300085886893211637724708527686070625176975035459977430867026634354720455253758051559724128113145411135607893899587040139285692356751638306399732789416875806965569617573018710940246734850206681767794012735311496003864407179796117762411302906151445475223192631212828381306147921198057095567663491789050027266679194263963105269920585123043698483803284905075621024416935823783803358537869080484633031589041276028698179111148767990456283771545652854295902236534590805383593495914460657348366357445354728802530953225537763064978243435744231439948812681983359489641882072972222987329973521313588084557405020995387262291944218778016460233290795885678557620185787759587283761877156985516274803708724993691084280194582866976359014906909135943921435113423735712859430716645633562815330384937347357594105279978567275035635047426318474059135260811548331792447283307277659877433142911871105900821104758352455172026866132769557835169766816366667257185665904769068957873521065299310778004065871870449642639872510115507413943769888176773582657374170875796249202889840653029676201251943305062075407689860970687130046824029156779868410651387170977327247308705996062223334076351571320922436116497432376239048496458420976817681664239562755796006704823740228302458573418177957788397916648498585476289224666181613523858346300789870551059795639032015841517978165435907638255314578797065837324184039098055914880509046268768189844881860724406321088501758676193794546282450393300112410281832413920373015773866230884940761613766950601061641353335092979725496879539684567547641937625733884283338010658415798697322743099104711995494408851429952506014334208025398719750784175654781039560682315968060937724178806097170960452166136607568613151296627879297347494969454271342924753145016822901557923263973232185031871665761140170600880224923459634040697230169965288983609982592817631646133599456069870418816418088078831125287229144484022912472642927801824140585470274496410724133199426276653337154287587757211146447220555742035661038434961490776142808674629000168590860836984961178896513159814114311462587640996410152993822309624848785315885258056618360871949889227100755476517443917530075062023914715516304470891846740072879391490395866253302488151046595999543118365295215422059734149512788762293114597558096416321971438960445458363674192616694613573026313607529713061410682615947800328404449993865905399092662124286662858262600416039259884924478326867375376094585585352735363854436848474303169054047134551682456478630275352808900751952200535451327061756239412975291509897598086441482295272578337871769593071028077947293101515424226063728488789457901954639284020321197616506372893082563690491827545857895095458561093631668656589343813416312765660196973775562488944346623332062017228682461445298483685243147537288911432892475266435105073873126732226587736493305858062263752959274481359293427538228955159227362498804410650766340295028918446788016252750419468008330669132388229665558225533869139189340806311823231662399379096321998005540978527039725871919282538551970951619735178059302909012602833729062776127939398259297344852439035781758692691815982418371452328971203665811275571968006570765822587290972541582045422228710607741287356756342637157921267842411313527774958941502958655544775967182332112396488032903270942516866934009797351587499354552015531369580974599952211325469697026742135348320105723174789603778697713942456162072834611568529781225719267705859754670833283990199340021295094095633152545169952499816660065891791052798788262108521234623870689074295659660287902869137049692069497646298668924599627205361366993149353598334545512937226477751191142050301975587541204171612847118538241178022278148579221936735556280448296059411423504546247931418702130152693387322661582570416976794122644130843389654798188281222259717198153869693032455267193651247930926841513119368768409285592289161831644706453440135478598347940830595318276727347849097464328643684096431066357108019222825400300389563463515187805837655124097124177207290700557354346367570560933480048062753918209203666797819581499615846673218279194751505983160240380962706460400266228586917336698655160996345478519280576107801211539697952054540845667769409512339252233503434719094964455117306412681637100637888075313899085168657084767564806913104925628270058353281367047657266511250963827642689053083435393647072061746940661331283741461107263401114528969020570165410885773202824027139042665431197265723078595656403301850521568112078063937452447812483934729467658621253105029409633021067517853205020460888588734445151975471973212050993523274147032328278169705137698054905682652004822451496706175168671409572219651475298018942918248815622113757661511916139878481921350260012387589200323526769540021852118435385370283693734917056137498699120014751245924482262210912713960065621252225693393055502399432094419761285683583730600100205494913391044513080955831245843492319928713631139014916583357984481936552255126061369114101463030602062988992660302973093856254574829122486816097536310545372138593902983505985733668693727462406215963362686162645669279016328963768096104952032525442823913859092958295402056249381310417815535164973829473416302210469195624549247101320444953032030280498356513714957264157678028755892099047775858268462350489167899414793269370126702077223950012682822456949008095191449159736467919478423040602785773127724953552627267660663590112055448172524101314603984184757293077634288376908369434310481624959766433886840491129589646902408807696754063837703640693996000465545272810966177903394764224403539252500625496380634857780772369019361469591769032338074516779435137211652066714437137743972502351020093714159269213550797773842975491563214606205642614020425765984113464033552610708105575756666909763126622184062890250988393614854591291421342913477433875682772134073224135244303449267932853021708572298438571419825973312204840746027100334621579389283662849960815478045952058167424934062873634028571497942088674166241799394610621281159925237894129699792609313527270821489210945037009686833634147895817241738754456222393117043169520557124287967169808046298066852123382366310445477746627023449932538431154540331021114053542961482183838758189536660498680487592414373309743955104734686538500752208499920187707563436796230299843051223312935040422591427945797933022478564212160224805495147685361338564782872330822893100539193204122517454560993819149517856743553586555124964931442114592452309523735490378774812411140707459846597728115850589859786666905040828226885508415056559048143816191199109613247541864152790052913383984889493839599922560639667825925028589729294907192790141585977906505346979459492105287489984705052815402832292649377142918009501547736359066615266238751595492243759123553364341896572357651672997145054337838492274647697223051051229357677393435910175552082894503438500377308080018551731674296419425948715396534813527466408919670306778226833670943438631085235912061347449819666318728212009548010408435390678489719751591594759572283080657264113967259398869251227387644234298665713327006072028838866392918418073907056956069340579661625186393265478603968100830029192658674666895936261123315049386503163327482018212626457307946214935914022681541862980399644798815107989655958556693873441985629549741499395747385288521153477142977973462004589909375995787530945300031600314385289740183130510538592136926844456477077986857197629015302990345160424894349852368255943381259333528689474487914441353443426842060761571383234827528755977149131126265003977305846060188870041461419119397159673784416354605359637656424850373174162577191564503414713137002877126440615280754468578067205567096389384736260372161648623484327776683325528704194935261910404700440875274542538918790791707044083191099787839360175308261740688367422054145091591026213142712442365130632025206010713022769278318368834241767833567317889573467535008765187552347391394402229933151366802597578087107743993471857129538737634132779685726566017137664049899685936717396969569131685269605439191585998522306171609961194927832342790534100480928392696929521337563530036922636253084427629577450876034942719214662980560004148411900739875444122273403978598917509614561488920629443406761787350035021301305776202631634386703201097529509841842848287757522837221831820018846275611635409052115399269615054321824186660586346760778054515368916343814529788989776705689061627989760207582385923777801427506109987015536651687137217709619791372500026890446219767272381391052699548827908406558106878628414304917266855247995913836920890249519136402870600047266078494977816442471021464181476098071940757805218655991949975098655467610371300453757080358158145188865545117574290223415772994268022328824195287506444245879830889068341186386504884650136195051700414455446678053717089580391247425038249786968739505528212576511890735497034994007863830556315680073048692112767196513038866552694957704468565543997575128581272463662575580355212035018548094007102214319386329355697345505592678048378167216418488506550217320409168641769699187592412887767795655985428883862338282762411869987819129421685854025384905560407850120473099272589778690768022761983050096419725171618586379361861254282102489193080231680926820625073059514107117197680834914277766824689228236863952170880777281689809452704322601212656733903597054940267325413974540847578944309648173302799342257560348204140926235610120748982080447297576985476701795999017070475632119168041186959590741766020869760385470247345586182521436160928165088235554637198223128759503523768984637768021784508453628713257152244176413816082290046818724884587498010447067084369948716344499702122889020268920243381944172885817033086364860207140986393934455093907984942031965274502284570730453315775141219325024163531247585461215990179990964421390962154904769218158619432119450357294161980981704403235097434994440581579943316386012884618588886611279524351519217425554756938220054171312168459491739675038866028081087869576443509502644024535451275037822551424194604413194897458156073967024178228476275245003579722332514039808170518598220626709720082234105808963436112810829337186256037023756569502178589940223910162979481532236200018301517877663556735151786683860785191620036194809090461161478884005991355756446963527913830148012147090408428679002376841072271519727565333901167329751903127057603632268527524561180960417776042777216534823942402823936350046443949516075907303523439988992916471413140602413021260164251440957692249134092884566832881166666220212475175537761443845128602620534732252109184352473753129122343066216571611740230065009544398678938179675683428877725065841441690659518056549242278244341585523109665968790162068120600383033490409107429331687369142368557987316750198663109606905347990952576274077451919150448638598939691005303014682285995015120059203063892037896677831365811091879857376259825146376131520756489395254653694789658279613380870691637823756893089893589425039974674381749184313996195491992060853425501494973750366755469675490075968874308981139738066728102545778759781775446663989043792775970368447365045089393641520726276127312437550649824717030036151847841064845548777269971425082867933504893017323828231019233133300183590113656993012917458336576835950651487721435529657508757922857103206278600624056989479417861165813252261374610060774241261776757562288552805337898100477368331758816022451831193130308813154828924777253291647819963620526513475491916714183451596532724191893591028731445016263615928660807425735139301529303108784149431069139363953991369074434872852685920094842708363152666768404842114317143111884270388163511689447474290610206656032104183800339729658429299065153958637275984214517583304498229357161048469356718918081702493978552944323003737434202755729664966633420763728075065262436634658521702374894090463638207876436231816351655252528909287180529006910613427569203634238587744110541759853706557408130206511953553902953449913709878206419367206400782459513866936767590888292048729634725908174170316263596598219174588990727024709563779345761752174662291724650344723960933157425272312041144561128628791077284783793494574394858267757444149223275831886277278213433640499375153355890440583295305587930312273984445106422849864480812244055907380609364647273869648759673004676834424181539436302806749838092446492746538789379142075865353388860611172820226837241492631068349793922181483211215344199632648173100295582327172112827122356061022125786954995619277733167417097757015818465395677070787082348593432113535531971098979414248422715865267389606130464078392768118134064403690974681423994011289024509198845899070632909513123075355252504702061604475203569263367991564226143302205434685602869394229202695124027633984952489066917373079914440674852558131715955605136200741126634359106510663808538850880623436708680135530587449445289771976101664205594844131137998190801452423915846145921705079858786418647626998289102107127226660386333853842334185459685042139876226983328763819256066195278324949360697112815426363811111161560076213751583100472155348413852723590300876827200204277865994289037774327988380684440554472245401379005102503702121429323267896625118707176879316843815667881249670715273183667825061341882838684790567931961996868384344960088373826412122998872299713818870765630382420590713163718314726512574030407670780292406118938531043957870568451640853888831414826571293415083869986765015047472319625131661213710827969830471787853885672358539053576705586250329968591963068854466333715294022113106253404616964436431534939150420960059659168795698917552482640153669005785356743543458769365445496430262525981420012573913712954742331918299905517008681613313327626667251793784444709618200662050662750386966673560512270280408096416793876563901593300922773006465357585885454377372189868642791001461676348774868165700510465664457344809804803281858342028453382991024132278087133639284329933119213921522019354199226183994792710477338879682058161209030990380397917758077614457523378718064389652238005611500772762588090856615956361074034438890229063323775394991879649007699585211370372880950257921940589655909141313599278782636170381985276050226849549206141592672084303796064411015010995619687582888594260016904761870109672487694687048284762813601476595456026647460900083675234810877458945101318520673725725417666414971303666420467274822415589003607838075656211283304949452078123779027174469976816727964119813390609500866031825642044247564842529208894441684432479065664472276745322940561698984862260846703689486677801479251728491185498930144024231158607953735822572026229362522130163776411612086775936185525559027846415526620790064222625574161830819530713299866421455838552157936499692024169539112375012007617708895167178600607019541966924968633458703853443979478105086621913083689108804035844193349726952905053961511405945908680371032184521469424251230015343643052642670029970348708012755648992571000407075802797303877901606224481164622393480571698146905824357585880805058951421204153663798036687581004690567208052119527147998502745888452076864284259879778332708926946588549368067130719960187879690290317660475086492051066818846304789747280865477150726352849160461912459518702595566448286170886252284137260316729808468792681339233453111994749935050806832334245084582186423683538193412685649958872470199667558667194331968194259271954906410692280650654703791914702107012584633493605878786391824055841805539507651450997293607416302602095617319749121984430883149139054894017523622186581764122216982985350454960608842660159490306193487951640574926615363244444806496004311797858025149547549501110826135897504894643399617311526583287886936590609151134411495878235560486075648770276072648699666606774934236722321597808828603304712086046139338121340891864453611316198875648026033762042112270403102973776278833125895479512141272391693535748061945827195173969730803482635510053338830116675805975448655210305899263741979682385289825477594431685665544638190252127817630987339425713563101063037762508412590077373921665666072478354809221809076706965829548915338795833295315817817491029764882054722552146268774270720527933239341859645698272258342260796162742821616093196132367944584781982374286340220309625476735888860373211992736511593619009936471454627604251012956598819734554322630963394602611675328654977180782477795366347840096409407708386719151661799462637445847341320239432840438948753971094551483644249063627426671607300710480869004853524769749814303497536033760374461636430952588155643045830505411000801423845277389453261035538712548897353094444880517087778759795691758657735988406267639737731266450631198896755240019664261135238069421448286918884640396765705859039490186019758755875067245916905142635717112875053112413544371792973992485129195635033303943811411385741338698667361260024856702165207895775044188582894706079101324420251945728351271115803766612150274120175738374484633750754049017822941862389270729245243882276919430081229564006440846398138574284458771986595193801640543252185739418944635679327506213817531729629677460003679955032202124303740669178148301846014367257580560343378872344016062122377135864770324641408331832330530993120229092753543577015376380214152449517730479999773693824786252283567038663423741441727211288676344399871415024205492397395484388542671076109151154356940716678318837372735969355558898563884137331429207262687152668385593855405935090383655060480829206871720067929039715890964515273799714983624679929768249959052740735733919757294698699845048788620900648702248864379974803548049294703452684609394168308049703800638305590704730276354960495924586933490083226524160154167635947446987896993679440044378904104625507257528611117215184222754074583240041884908653949313013340872938087413390700950297724891736331004956583984425899642274947428917837910437196908304293891354180303688306679669936756602916493202629758230208382027726282324505440794345414775595072136190813196390811171003545625434305275157533358529528541286371631961922190513441017551851046527281949263751827161954914965673895247255231917514786591307136775295141758011190803417453710978515511661867750410875987573456995179557282079992429202032087098655434363643831834160593898889563513740639619753189354902354896365876878435726898665117486631573856725426650527481185160268029542261703187914537171841058917651326870051403391952258619187898422177748727923710160502310849870212347615609327759532177322377625533806826513078084300500074193054644698125807053526875725565202710000191404659612130745321422485855033078301055410908687515842161737087697261647237725174036214648852188763752046955059494895855345914882110073640325310220104147822667949966184037475301288817004560892266223627103426210269695350396177895033671323158889148715126856997316408168557801046321482145045047806314426880278537251234539466199531206726462721306864739656307823502411052927711839253185078374668621403930562547917988924260017019415322898776739302493165361446580785081335560652147729248810985340850224563463393392731567714589985594755975824920079201268871046086240230375390112959890800029769478354346586347491633217358587324535627519184110261078879941189867590230724256310350002862086972473272820792373389751616250079565805147710281379262195433995433291807591398181841972004483597042720938229651285097461123601763978741092931300996351734300229499673213604975711093958849338769498887359596369939395654226890274702890549144600390530949308623611623022567316085605468289356431949399339479671094255542074553627891417977321109990912438671496092740453904546326517704547086420860128547777167157051967671157307755658688304307950019691815456762506035089641568795921212912758495706911872279574125072818455390812098223712599609976131852032492551581433489485849602109014663027341014975870041270389615022243430253923519833890611257910995109915513896049245892779915766874308875374264558940541602833717209619093726356010704988620761961768003001385615490190533224420604464033069150000330443541194678685340576081305848607527589722016418986011522857775126979084004073608340025745824868819464052986713297856891571386978341790999707825006188692293578493781933615669706028195776405213638167612394385336717788435236779587407852595323302603899108737776715842436140798751122563278919937361744962245738006115234962107995197239078246534318912732255406240352151923401565453173558671404336257459771307479899253587994500783187688796476500770896895743688955792615770522037487615365273422262970434819637141392857796127706542660530024370976101988489692440227714882932444823185637790580665716727298065149465327433966674606127791667759229135713385188706035123435914252246737062643840893543146026369167369710383890154363594730766342982038665083713271857195665228958888343058027941159563345962216783839601561808139356359806331907987093599252206156746413972296937247910102226363711992273702116678747581938050368870069555139209432340169106952031056131624759834673842562036301285422221926510438933245193044305508759950172989938921950070590938119212118517546645868455992983786167935243223208781441944985717314683743200574284409940459377116935938224451258844235695550595973066123593217221688791046820479119988675570218777428123592102327211404067681825009408762460429603157990747602264098627339300492590225419297873091127178324141785654995571621811842447405910738280570762495274173445449162809234977805523822074950365830911520573842506630438522453893344574766771205299149374725028867224332798127542740148853733655534914821790166178828127015462404297184026073445493586594196476834649772795756526360417560782396259927909607760688827265366127912919894929119888791024714979557294497385353181056329682517494551177840255202970645242395423392212849767591746358268797770900019709456533218034509990753012055371643592903126736985320874647050717683002918001028032968787511143485482843720197291082188988532429014907650136295361865735262970109665910425828004028868090606835303168050567743813322592921677899716200699154201224727973863298098352546241946467789372834194255367032990204775245144400674570593521593859085035692472963734773275152964108246013681329567504310938246939485662798677153136630329090217666778702992323580731772688791950068346417962495753566437775902897926851898766412204466373275584654177890180300782879146899735834036861247445488190787664429567976642603913181444484323768180770395317358756532486535575304438499205109060503191487831500796238084729269712632389963398839401161944399926358564345133101548811201133220334067948083409168136958757269739625444839703031264915724985887653671085805103732238211308445812793061215953075357296739246320404897078077340772850221161408975439888277130912662957110112884783604164229395752868708490900535722231553002150545114168430650993386065112108557512475787651886779933576187751793290335988096889322424251035100174756270907139521185602647571534558470584417292708130283986195785147952308994593592401351027419694618016096422284588480120003025940286024707180958364979232906335517260536531795676901830900413552647274163783762668701517041590726005807740407608770113479976890314025425205769189265601923985504039696808044154637815527651758109799256001769171608074610684148163114367165031970884200072975140973785365683821544783438826732739326732714269675516260425005062101661339161496405120076367466711785172696971271098068009782454546544081421856052210509739673711073238671112190056302731156092318702792253460181097567936409520961555902896428400152512077488996021373715595223751436819630841743199543795498953282454425349093450288644535314568261989963813159906215218076890681408712890568065065636603339455512240089214685138477108775335480968205852846944801827022242268393281479625612838687952497451529049664869261938263817675706703007806814872518196887857818708329106329216068950478340047868320128586551802473651209046698708032184572821082941695812247199707222343858777385802006910092924951339537901617344246012125983069997029676844048451991545987256256363673249833106471592168984285047697139067136444762106826802937722757688410244019826304492321508301438064609052102055477764942842591042347990293586023564556610125220144002995058481250245788468519676365712782732117446048952387047954555225215255274412579422005300532664772265242929886225409660145996183259325184325499554515010461203059038253377012720296690357086132365728191113880950632271057599137835028714026728188798349032450020212810126497286359635823552977301867140546770829339297058394822956959044137063408969032369359106834905518493352555069090821271567578036269657919925455369577562669466485578198977263146178227170968073365095353083605163320212688303952983377911391323999041924634631073342365236768657098431443349851252897565978958366197101582040270911899656261743411755765280239256342109774949499671548987045754439287576305904952433216410129035534633556234761401655826619449447612458325881883348134359031385468878454294223987287997186210440741804812170931953067248148476733914295579833009981162622556330235067224415488550489369339808951494009071525617499089002466718913907007209615207734852404368632135944657199847316893495953682820974261012582081707741638976103049091771913890217937269360966660918540644701463672430034973074113654910310080522136698045327024911570708780447083394673871588796495340569092579849384212296131008643260326330041039532285315095295085958928235046739710179731732714741425930831646786584482206386498211256405993350969852709653953256574418140267095190586191879523929712930587689578739912714007389753233030148241921668651504341951936474747083528850352159845024285289972203771214529417405995787488118343235132198059085163031807048485588492343869072713778627304292980642462135806914134550253412346562883092452415589488908176713219472880102061834690605100651582061333480028461512999988155703111855892804648990016868736321788700588462349376392977885422094885806915973824696519738579673554294619610413505353523436043020536132390470426748027043741645422300077955405992765662293235593712716372472315990327300547179736715747063498153966853798065341165431445690614613946233357762835724365264281885577221185361608365935777276799993658045964599920007096651435368284101836875459042303326665072430310407096052233754836660245956451645906121241144725789226245053291891134797726329529253398742301245299454846124561053458022333063301104507178072181221406154935430136298503379421366440742570918844835231962543398896035665922364402442451358208965014449010841562415765031953219766502352930308230805307935405530585105913224794711778045112187860300314835620520839837537353118279845592755724744328934485700913569494387907109164414859987689687180253180088954013083626215053857297604851902267412569275869563776519237745691701812637858192363350343363329021270149977341341337149924779998531900753016941488754024351606011181934700249855802259845448122688791098542978481119818774218821164561789183363538840806263236035430360548508369453460279694859523204678357828137362319290625679511984138512921486035230223907893664030545948102463836519674813641096810135908068411295300795464331701779669928194004459487023662182980826771802767730117867198266029615926218777116773128064208842370829161551855078431147308960457138237153005420696446552031194516214656550804966886563128206283916702326251003807932629251729140164689563273195245631311454750083772318967666719392096646117731289655744500307184785191147486187697179621759033024589526311606087514584236425532263817664781080126353742110629001736169481834062815058648996146673916211042466214163952058610814758038213662827800918204499204720690886496863767290302272051281458463150642621208572523465444157601887382886010584066763460999623731405293671987370291149450468145802482285311643601744716361723341856592699438533893324148263963933866616670049232407706934433724363117599066908109406648169463159783353622968500516923667960285459575711598719274680606903600220258689349397620870727046895321620381242161849605166851811055660453431954766964954349193269189054332336409029678924189105202723200112584295569385043341493806907943607986290053008114627423209959489351637325096774363477592468154255744146602391757159775575467696959310041766935937748887165097563085164461208156861348781423805379972890829998942865248184580368695414752654443870407082847815486723167671354207974888225322300360846258807352052262770739838382211580655685853415406243071863706958136588050281751305132905335660932119085278090381842382976973458226410404585812415025423592021156455199483233361882204928554351020007939152066565021565506801721194170365078458834934558944233777764524649226279135331014980041756595437792651663608189110697986541456948211445111987038879426139276170160837703434877588005941051198054907687982168233415600069260436649571032325844180632151442126808777686446119608552127106986048063817071564142367563068412041852582139970285240493105313756120255674963747373663482614025480414830939432438792843073769777970151558779235427675628827623996676280920481827801529741415345728821966661351968276424659900005368275080311706328448856003873910357487612631448108941000498084423026436557289858709884061212180536224253683885107346345261571136971279450667184093086294917586940766842630312258303751385215887551008201085557757012106127134555585246085361489897267435297258103597922681241677017181448258557743825728688161013985691254438460029832113656063548107453981572209916241125853828920230001573708143603189220523061331873030296213039889878539134518991477737311212937045966479883408800039617190524220616652478721178373438351109468421699752618697806653494236245042822355955107047789003577070449545910599761579547995081248585585092528010776047047833675239626951292454926512895933361355006898045560492497236260215654435986921735549660540535426456533814079694413913629435386017106757251438118210923111231733744398875389372434185992043960134995153130054303646411371955275455030942780999488880902224138406899328104215890968467551197070999544182910393785630525864008454268221255895445921809174901875220590300299734150062121954819057486927974442547003254149253302562350094563679844310056940216204196090624692363526104116602359770693789595787776528193371639238464065401279225475489866452484693979136175356679971378735807092906834066687689666674969628719146116105004710593400106027902989116192599612200492832520860148567158569768560843379745638761536395964420588645685713295069447618721218895246798760396538094755174338367454802957317259944486702563531831355094665862531681127983927056484365318408161413517730981426475741718969083154247342156058742199389198873852926276939668518386449546911578115267362550313223697917464079370320204464166808487758203602378588952352361429697122994297125181469671043963934707263898903073427123661497399190753042854208067051866976235537323914214082489794197174562094556678998304502875732600443404922839712375238833086140190191334909440290126166347693772509146582976810453355285643776166434082229135508319617138000250237371464012625458422538612753506659426041529726754711853909767846425570369449139312863566376790422678277798868047441364405397303289062626523476470660810042602250881125821680924220322313556178428520244851307126228951117047583706841600992234437415089079773038630815843544889666197286999226613925414849561702976079160244098871374012360184219676981689055854955876634969040447172176973436610617203433331709984916864652976156115349612483886194109317108277840904355618552617468553023488869134085890072769194627414600107963804316964730160907586462752454091228135240624678286199059851299616156339258722627072073147098874617060252250566852279544147326182786183814014825048476058172592286112605302549384785524928018651885112538069273071919896877022941550204012859353339495177043253646652091157452187364600741251268440672494407598219886983756336961302667054591740167497032599069348409158030502588956358104449009493974899436306555471231414640040517380638667170917995621947190661744375251365789534796155796408193680616971983030896943746509989318430490927007823181860738584116610655193869853887988120393515754130193856849272743889259175737374398365160261694668641619274804456865378962032601258994593713226418459343960595043350274514408481706210547611466812789502418143702475096411149490904181758974194305409147457844658799207762892705031113296529539668338003489423661253974526247120688536874452530194515326338168890394061189664451877065460580064719710174606182832275459170839554827363844462718475245042583623457808015794654126435330234645989123873860978709901273841125331229058676553056097603893101696421409461425274712915151806234971302498129067360144905097243773119901445343650351202806731713605420714611259377703002565530085082813271938869354824071436323716346368525415051001242198963014135027556208245984124793753256971667745542166713900666083202202322897459672173785708884756010623486559832867195082790405974684952712809192348506943208366225636322267212809083312366135801014019942268469686705027707950723836071199109680025009031325226221452169361408719630886677035815902627123798139688420079412935810971837481942537126733817619805903193065364937349992359023404895748211628809827141362104722894667510101104576485780648398288453948309666290968376660515047548048012719289004200265517903599237925321703244109997183137720828783934342751159404249620463160889065954011093246917481594956530848624492821403910318951802622460320688945957130588956369696648766315962203387470364821692430340274587838860208504131980060229177726176193465462304738243881621219355422439049463979617181506027567093500221816974011636145782757267424998568606972991454056677850329813645133714722069481569356044294730469612630761830828827283221977275666706254054863908303945232682545330946100071285251059783480147773511794052140236647464254846382524393068650522051432885648879110081819437501224405503269223544040386629373041081423557283947454991236583522620695813994701554871296998019676290538012896954587219279791828619253828338584836101001552429134473228554198249831042284224192274725802365961267294315025028049904631900533734304757131278192859014675318140405707784273533658351976501732022169239674079113878466828937023802967324366588259733340451890752709409756198962562894149267733056742922834484804129198711743969227623938701000547554694301800009834898889309729241691538380194689975812970503585892327181775063517946277131035438228903066816082383381800684038207766328983382786501868258227078378857992186967712581520248622987194660345654074428802414451283799949189460043505695818334755534473935154323458406274004383942995170362592504133924167818388078376039440655335263669343173698979549335158351043882483392307979576411743863923327348126230363497793864074226651477429934351293093761344181425474744749723927086462833755458420358963504564952239844978735754688732525420834068989295507865184598373703951959577500727873259308977737900973204236035449446974702693870758213169926811717922540688128273714943239893053742330457317475689190438578454292178267356630099667698718809008626096679066211365602533179388769429233415035107422180585274360770777024640635446016142263259342025852177926361959524544766172164120948775580443831283246732515365552249103283856636642165349541367641553673026689285386294952310739935318256732652747793935422337109486648641163015946427903702631115622517226690368316791352371934865084152236066235962081846619915681205269848279165240121493932314704468941114024441723523872701316809943243288704616138682665796500449966196274315589571524165699060423333379602374073621262783699430169679160823925480839890539678117943192214750263027154797385862782211311389593082073280956114997367429281458657820622240108585584550700871712139949995878028416430932636906447852851911554664752429227458710712955370576709270819658961851502097551461002997996827451162520764113054314107830551042490321417600605146068261059030772250587500827559952451951161167079261324294599506644763893951620050757688579983550524360645190559252271241722091791475992008556481183242676247483619033281988889758132268046907797633536276398694072776287467366485395841798894129366159900050868849869100850533004790510312182403859581176227559068139102410473457604990428510448709087965871070239315018624436078980352865096752022452031528520194448726403166737093057533328722867696322026592152003968482100704274227459730589753164017199192702981179155436528373077659997614843103935044819986409257265442469105744347463632955945961488970346957136923790152750914668163924423685833513146799299715735308199274131008242788609302332712425232617509411380039854301313605522714806197924008005076470030369803277251749859625395937269413086150020379966829570361375226796386483028387953421730128766763930681101572814768539532700392466197284689379146699173902958052763277296080546242235450118515212764108245092989172071018105946717265659751608422272491488618292035387551826139260702511032940120360082505221864171287247379549490267042455266587757646467633812260389970534361234410234928690242563402266313740958273037821274824078144188691157728659851781422487659339392749904769259549437746289633765535458094441923958660123105289559900294750369883306327305394628139262366473756021560218178112172596983119449223487525686330963092766997844545497296875037588712161046342298498226161136373230561050849580793656199437595614112948851794296720774763727591904057095606984007364083525859459707885968051937860884843963241468794824917124121106208365813141719245661806785059989739836884530942840854041350278478369297538183081828250057868358688314702996739655785806787912577377514588973461009817663093853401522360175750448651414306194874216807923311028865193604969086041369557520924043638043272947710141955634838941283089746158955046240214323972807378798035481715624029431021020676951693960655866402362745463116571274771487748020843460615291269796621024569400485691352859526544205970789221067137608315148895053516097252931256940588564906186669828692952294416484096071364864600039082696083435263060827266337810689373863258765035974011922736288296341144641016295931221255475736474834101006895354868714349815156342481948581559066058084304770651761641492306058436006604554380129309618473227964036737103617888285285179691582699503731989842320196499214996801487365872599718742512373508963912182052271839897828088128603692980890520071195118547294647885198703935517140689883572927221465389915678070487069348389981477056705719618189545926069733204135598722195340481185118076202385482953624966575345379206965493868876820870928401671659294956277478989817387611822424573301487503160635448316579065731081910964040788619052942798072831856260795991642181731468863239920619067854810718517330801446308388609106789465653975910252394453407522235394564042707886327793100284222516618456083601277059339674501570159731597295698741345171757481321747185943563174974584897154155765265243900802507854155843184422057685377365670419347755487159845276995604654464048407464338442079464415112185421215434660166907478103173843117730706339627308294502227575451035269542759146817238312228541772321338160379274316776717763682317102493996177145531399452769897521489726185747523353631119724173413433549898589612766023090614174204908299404319787322948887185659932202068069244614007474334310091212247128552035177479217686220112259548536101537433816590303531019217743608156111604300069513228506248220963492440132676565207044608822302106106781445051583917413199983855666059074280200308755169026137898266675088088655714180680735828931938300357755221951799604000607967054678516614642968919981989448174126814634843274286936870880833310359134137246006563516188037824229310584030678593590316454398624059664680591305861533778065183136157545855481527659121258956593249308876006447477009571788596019949525636876493308332139049920379028843712825774762874083423160321567527009162902706656397757210558168499648312480358278632017019697409968636222428523253614601243268464586520524031421335829103858402755502400163024210797953012106188966411860349484822891905225467073472553313036664948913061758876031328929180955958149833573938451636880968883281760568597508703832830310344864706260932034947722570298493343735845687431748266686044798369384148308078797762396604895087616096778540980675038754027775452922450575140533540613412651466757935891405494865940961248089991910539521621585535412703604421832727248056835338399966784364179526919121399348979781512816685725133176377510146358263167858361923780807140357910128705120108349724565364306274715904426891783721308857592798120337762088475695127552639424807535616497212128302120430614267320113703561756063139556531828261698950488098278570038387797220704486578187943886729127948645069264229579810424609276794748288861554876968400761619059077143399692894259031079619576693005476004106033488525759613343691463368269658028494727930426917074815495585233728068521340060876875979275558688976674664840684601751256454222650929675063767175378767325540026924468066255054935200938408560027281585677101822832196066879385834758613863724744323158142742630903728675855039811403119294863809041642855466217750441279748974303918717342926429388263238695030058595141985151351163364909193150346183205974075710909251621889393131842428876655693891015645310876034383526463674564864870258954436489960151963314186807570235107023398711563866609559535629605437635854062148517752295404825804449523488699794528056674360235901734587807388252697731132981012633313608451199680852858560172486136039335567768125176649532930569533942624927397968870626431194096022530075905009248492919877769997577112086751514396272163749821701434895467143073937467583988087999553889443644761554171765896616411754433134539059241415955199711753958975172866170537940617377291178635420734086724748371086719214360304990499429922198142946978781304115032076882360469838598994373560198647888650292854354762641736207109450596958409371379567405850958949018250291603401009417147278822211239717323604059035995687052261537759277108164095086951891424360178885364689764371273523197256512227705511858318374449318626964754164549306352548715997550063554992796920933841466621881060777719287137374254249425895977480047078225642551860097093743660838569812858451876252654001558671869621217821509918928293574343174526490922980495149028040309110387708010804021081876521760339827258165943817817379679467746755259174028288042599978488788558467633267740923549222364260545661767273208104107162671970353272840084445742851567359918452166269898873457455315460052176453161255863296434587645811218976112743331733187760599481039867061978259610358978568751102853827597545104667001155433631442734662228188154049775515121309381482578423206477552604843430243787142562114333287179690504208070775987191020359878139825007082597584389745406229603809857580755895098120410224148019612946325740775490264283382580551936543566562563702000227626850073883240297966847295308337347523813609240854096278220483998435137081812677546207580852238666864903806983891639024921275708212130631995095541778707835442171080449597534532082498768886162437033295373008169768947014032029932127716705320970544707917523156581192912823420250599958875575426976636162762595908602033349683332724091135886362039869411843714322125955559422491728099811884319442723853022487031355684691573920183202430232863804858739238225591714799870145155384899162146411859447933209765038874847755777044672941447089154185570177120335493565452428772205428770460088957741821157922081836150772745579570889659065132399205302695812950395217214683107248750884648087743482552245139099640714211841493493894996554538453401417565532118577832875932230770151614794686729803329861073203779849132068476521182229228602957023617686265888636542709874973852261221457958977451008846484697995402145289701130529982517299753983298060168616000420226078293155492626622042456112670850438511386683419345378462778933122933479108742307009448789051298418084854012501546571854580181048580131840220556542144672661688846036733133114112156131652366331339019879120267565575924133686317584588504016306873132245777928558002157281354234605068875247676160333213582066838878510460444575469420122874213166970449010739001220961074348756461851604342595619409487654520330916297848743059208129316739601694772811415136960166916769141842724669122187112971972065987499998452342441968917883708079731580451107171713326614917179338208628816615428830428270325354667786184391605772584242369449798220817399997886821716765039617896317689650377904261787916183285440310962802980019794622332194412807480759444412691836731831765579826640381561494172496044552297196734464268427282850451638166940659543128701662939258199237177391847269057271865531838613557774424041218645583073514081712800390140733840856353736369799880559529018924144867615817250277952970018269148836852399919847343517272237769129219193711490621703506809842686817000703426361166696506216725570204882792094396065797299903115900944078168753861289086018896151591446152480502568840944900083357795209931532484933589381322901028742315923018132639950492027926411078699699661209912413200990873346759473467370450570460501555999670631472860723970668243092794564026802533850639196528797874555910476566167034915271473798303945014878597640382974578035214757350490800892078264064051581399862990019041440830337317861245100425967239910376813402033647905642325106617020155436535650766656195390557048225669254462680785007911938140565287814045530327784724276949254835609140767960264907305567242440984244192956708997522511312397499609047749127821329825026440351698505018593082206103964460582168869703959000709791801916528008207250184814094232678082281329604711919962012897982630867796228115051656194716362851813802823397920511780631180794548657830433965363613850607122221339399723878355270243145738000158324452214899105244091288361485301599017703833831864354431319510622004088255165542428941077403100240271042897022212143227626382854667521394176279319948384442569330629221356604337375101734009157358276136073543031611427497330581682983320819152849566349233093809404118280045777206999607187220499348434618736905337529563222627044798955803183486144658314841770892368995663685529791845921864779368513192549663000446355618382642135459894613379203763143577842479823157282341075898745291568745954840227529751124319729572987486717294373583104341313301949923991236347023110550524274152871285504706068031161075129429200320823571812571468327776050468988094495439477556700445438195382149404602423028471488746244588590599418132703063337559081566857933347508309882271513514443531790540593835410901584301203765105856100419041309306552542971534062040650580442842425328916285223301065671956294087392715117173436883885379112397468790722939422346036377271527638313814081774265903204217578465187303391737151951259282558953817197721076694284734012455839568344449077389192467083189562127327754091829663810494541508020076793009541046745460808627994160456363305617552484864256432790663309373435689736573965983490800287124430982318720482644261301364564411801729160930909888369421263434090124291269517760236438955747380939455857150020753750246868273342492026027124493430733267290146342802247068990895252901127488565928814004914611230692313582977775096600027292237025275375103821289205792976275472282795883443135167813416340673009489173986246741865859413634758835970590920717833400761713624130476841938873462654655376484522081437826515044956058667581140875283314484296000152918511440911551873872475042966762069510711845244935636324075624123500230302499020879619146618292194749135221101136521541249553522092466546617622279958736204661046492219519438277121198514580036623748878362962837275465957955047779235660244010755793408245656974634396576074231328822360475411166249433306809172589000768628863729779824299113524112445888534627937880694679276726498221269171201563197045906473006970263637493523047249143997496295224964512967348284330419293355526694257697713696693631056838044595022775699121299638928496082906293362696721960309347372276178426406378892758966734028590269001836562293833145165434445132589391762282129698604411344988563817348316656457802968734629233427974337692032448856209614797373420907954434591663381069140330404578446050419775654422334426170485333999220050900525398321992594317998489598928889566793803984931826215921630624857053258803808516189451332104047961278740240127458300592043436794520564726227245885091403003534095165306854460503659118554508903118550423513721583253337331633405906972683050814648093321712343826226097340720331087162672201620474517798692757089374912369395255959810706819174577369191262639299210488447060509308265960152431491979691728104179392490483025158222374287523732836910279511292473422950215410542692219359389562720796024361157832304428052082624437373200621376742609009266168403099031076327986567692870668912235933021388891968381394214116815743679080230607882059335101965175878081090127838917348314977485354114467905709550970561803117773587348014010534741381644120258118991953064835203664714360944526730816211813122973378301926678686816285462525116717666522377937029921951423251445773344492046699215895250290897146546399091943895000082962644208902628030308951880418391074088294037905432854582856591904680526326762810681746983930950560550576595975893221562772337509549056007111703149267994656411125986482177702104979450834888926433513358836742969341013044161774770341869239048754252111020434318758370879945050568824310454397661222610681159512294320079249688311482343193357502123568404339967529284392178246166749655737097736365235757968721323650231337714592704118384070877459615708488945108008768905063681066278348301196496459908707869049877196764637409540051174931242396573231986864010584875915920693796348354651195124169533467848164237097127585644027611217949580132142614473264600855762226401643817570053190882949467523692874236770212669360731673263764506695426304792568665325502029534758261739995325103779957841314759018652087060575853579013197987031083594960567864127680257923730408539514944676065086492415304448284244161629811966202079973796689809251635948847598167773887780371184984592393495102457291716878747708370847375738855259997995549551617356578070947988213632490173267221962505370989765365740816926439717415837794447930573721848856065613879736351524585316653533120268067622229978666208540064404067325777366734165010202715682730506987668216619732374731190366246534133883972253304518976310004765094675305800021641349642934459943217214772743107358673123277630647280473521928203083822486896469735513786822600613913279516456432837150573480098734308064503421582489621769044242195130881582579628094139534418275914560004318172436433733273031881388878345542944680016127917260663083656303580563162390240168120931886072055188120110329379030601520107685243117936886517202077883474751152782486057289306548002477688352091542532337898841302284785458749011771260795423390046615709927420398508095012869801265288564818818693036811190055142267410708521795412877645412373286435515157222262883972411044646388390377441054599594865717124810348756472508786782579496981514668682345590045668420822821887810884669113873502812432070876273951949594970309617867992487038665396890533498056242064941181398652510247780497321261975658360538095080045643151723446281768065540652202237573120719405329762376920559031318102053278502832413874147967600956939301398694650976302465413082399889886838231870256577232334600842065950565107646210330585472943543381839438681988601120431884985938506983802788234250735383163556144266280145846080177904515672164843655649084336839971983507511766873587450929551786253143044924111556893100221268597893784304682677778143907993484843144999264214951215944537843001654152036123779588618134891217986973594018629481228835278519848158451372905968649895429036406411873496859581433847669583083669376385641595823712182761763008778603455469328436121332513745567691037611571205141141264578892001206547404051999747660488416560074515871282181655624861490402688856977778437515595514368968144792397061273066102377794795661655219172944597505985135907111330906800538627427764159298490219988750765040145828388618853168527564096340510032239680962733710408200234190948260527776979795244703749685055696199192376546392921440955552421856858495050138748533211777622451560695436928817680749147372438240118732957763594856398954205098346244177359428818274249435859839484878181093276125438831437550144514519138351504867933652814025381400986258745620112314456232403970420176746088434958216131824198109177229122426600275081108153928485516986944738051151499620657068677596688746366350152053020071037343465925951470711446380365855812425469842857762338898713646435778955286739264758206822430751324818860909903491989995133791195940651849258818468549388365109922978100294958934615619411711717537112902618390164058126081916990330706081064507252922364944800400563140915112659319975530411865484462314657676049871674272974277127628965206917844773913442211798975262039055860184819637378984824178170237798959059918645526168032763027620969360386945574557552916270488899767440061736305584424976097535075168832499709902166107354297870883447702889060138018456090838786637521470212887726159844716899934197657070964677094224004412389798223420163266333495584584216275248274672930700498484783942765376553160412805158112161287681224456663352273972672735912447603139645184375058809311676507859749059130430437410991129160356563844840171496002343856403280114277164689821256679132534246409184471573747961414909473786244904261626359380735979722318778649146077917743194687352933044534159061314343519401776717465008345764561528365509332164580908495445548030394849073797451465995472320323386885124991527668428026657031952651578083030292476968309590070608432362012430470175891484489520046636929930926177244772307841628429827491872881984241168389682640677605801443630588346978850063636133816231002220764354087014475952805203958773233819424871569062301121215171882301480177092870132697973541436519700093184657115428009492897902645706460509547437221706271675434764879195994806959238120564726407712218398651857695606774189780095348366913859046136031846150385363217239166216864259554660996687224486864834087136634033825444217123076728796983304034676461112879264114981426752323580064279096149464786625183803592301038774651254695971160472788611135483525313307885779689715601544790527196316510787587750668454470392789194102470911256449153732116280877645186302973350168209039313585039422205484949153761640319826746664307969561865012453227759021403036362437900124446980134016277960246237353508291135628343974943272361648690060462471827915453684565698941613434489965068166380820217991801358022036837714079066519085924664626493672012882467421898310973795859291126744242564252167077904251869297443628802087503978010355682515066562893425456015245110884969502576266888594085492019288317170400237658536282916362581929377817364391356894963015765451882977255221017462625412101659791803006086608703420575194770396999460885980383915507729109856049962041971888835408391782922885285048288004062311609726235188620366305741478365353501505656543759429686671126827197620313857455002787495242271157620341181732000168391904777970460574776300169036589546018516808103151372412969730558118877326467391052796368580962810443315425827003712395445806342826199789563754175333318582003475121951086247895850668770096202127272191655133412606409935639961704551793490924699755581130405275686699589685557405800634202683516912117415559202448005403381583455630038861095247905018528051575945036667720471560870780799570920551732159788324856646439643836020115745085420956466256837335142935745619840687677016173309804541985712417298940374437884240620243872482792078458431178196662111684740522368969968575835756238979449874715278116037619415213301372065523860672957358515847244605520675418552001992901213368604064488619430736280900239577072671840419013288137999768633848580122470150514079423560867758797628559126656663005657661996528674950528937922149594271762104122284732209164592531167477842884124944245407058469308581053753175877405848809963835580886383378886928135676809124041720192649299541007935473185878472182600691906326074804503286150395431515129746716589065818241721941789155847117072831259440222915166161982663327479766123250588185416899935985388275011119152344429698223195744247482994270558092044850219249207482900330008070525039876893635841398468181910330277328044690301281464352284791968499839608822454975315165892341180766761990050467504048627854960958356014430830993593905531327747985708332312842243954953075223548446388942984788594018857544134107566167902392418772139954822860695768518592604170784627769119711574225635270763867683677987245600867453990411680548503517393148803393821705429258423811978154723593415080701933712092025414837671774353565624179281918780741154270020830911947687394627225634781326563065692217141309352052727762305668000415263186915119109523768382448153876891638624223906812391959396407385875760538370559953709489591644169545248710811190614620786360297784801698430670549493775553144587912089324918889528617499180934503716922424012262189754581018724638366287215416510525227379185912623438641834394020396872852793059349020419769325147128779698267584997664705267800510376832288479026364601294650588924147977380756541490479319079602977040102788131510653593370136125260031948686715135136923590445781601601319422889295538579733721272485161510746196558289331980182445929609847063527887815446693807577216611836463992373305755469117396292087083403545497467362887633018580525862393223916678474058940598969014943801879125469020512087429718346831914168626531718823179337236789782534435316657042431820260999976643449301698176716894175685598666354427586600189663117531888144353813034204107795176521789003965278938432861508153387010358436533933396228296707510012560737787949148825422272753873967278464626714474205907926562775222792486485826600255550570244483713472201330584800886753968069146786759294511059537134297183277282356102343670724957603786529833605941682950967208330781441082892227983753358428895403912349652212039342689584438755387376989284879746282618122331776264603695699231012323340841092921769515050793841606880045274959456779069778733573505244231486320776681055396020650077669215281515780519078616549683722310998037330399425053861231677363035411188088578934582928772320990703187002822864263979006736113551372750800178609777607525686422974873947596714256161442786354097778978275088161698920525596589073991698081797549274552079612782843674082510168745694473460064887235360020273250406075811056999651620675601818984650853293943531087829934411206489417570145558915786452352639358333543004854287070601649296385181145494876299286948730265841448646226900117134114281908978327006193438427112788383506321716759680210029331331493317382951145353466749715388237434247314270365607958854406433814754204772379956002511937740407434297456081599299583261145582699666494883300061726730291194982305841821914662529276845806621645894375300893991006498687271377708565274773962809959105945377240710681214889203944788182338358749658853785397465903117819016317568249038466888870547336839614282201594461955809379520182389451735500434986911412955947918985312449009392494019416104720908751691317908538466402723815158182296511514444391835274717587956480792959993109974316397734005721102081864135204306012612948839970692883934150253845351406304354065236819451049728469093239917037194321106389186493055779596239678155389997876566096119657550939934554533236713872627780200917839498177704436676555072883891134557524536481354656834679566773939505310082009461314236019111617804567387633083613850486160964118034246676563681250546917616312400221616110904716022291110944381947291129778650378873507888046899362958243995371927824116696758080997474131079445675842869672510334593809644696354212281662328448046278814449703522036460822707993006556793580788292165761569831645911114400898687905332774237187494976368692378135807082844320289822029001847325633157879798322009434907408517573016244228058039225320301172395225796925190531819004298524608561003633609327850110761307752889871038722552450567587028607228068915539384376562518071384155125822134118481884121417952111770980165490211830209376547069902486275969110677194685022637078285176579673309011161564237175827595551411689142560204084909685021795558523071224750197074893400677551486081796964092804271902331185527493871019191269135241227090196536577953442054145974312793837590902400036461149025985571180418578645053575335257850341790771175800174213350305445671358173466144935380149994309493812188349654745967183731901412507474494428338177310505697157424326819185704105497260646943138551083675523646476883324849830483419889147118237035997796765241368460507415830798741067484105514545420774605110271044233366417481468694877238737463133406405949671521529675648466716635975541758440870956697144183092149333858996748065859555585590937136680674499789690482747277459091496487855369696385887099540556175509882220293454133932263126064572026428264545575113287943452871629108320412554060237816308832975345814455138411713697906059944397169353059577520072843395022356327303337919566300948166361227492605653509799667939620713513013338356783103828584675167865557580857669445461734599554001078064240329107081515168506193724309967263240231222495044011258780824640262357774863492128388774760529210173673823481860286440857178374802598595021474078070115555965389560710988733879099397117157634051474607984204332537904335026361460343734188165797209893551223979211373937588270465263902339720843072616456573099093300722256319037898649027258509664306014381780046289559596355884477307884787886940492188681488780547200536967397786429492734737245370763265669332814451972979505845470280361970445446783204162226946261420335445730664053725318878687067213087765214502408071698711484960662773357146228213258787027163368055531693994760490872656525622873627348002095246016059675924638684798492102879774040043325746124629593085719011212078027282714016248608569007769176589821031075172878441559755774027068039285560870205235085307982784258259676164125814814679843596374259050090023769003923494329516898990531160018121067418267540238179729822980059536772950588242839237388065969856081778159847567605925159301013648860975728146468389472538146197938119461935103116704085457439111807917174321230304621813313611875861120317879046230119032095938405438475512887865274026858984181343274160132575587157349539050938046353955310079991924590625655956416007540073146263096983393208719316417588628551028222179462359260662397256837669334558059264302368451314337751443062691585519418261783903884355380605751827773063775414466860423446788983836846691367027420746207825100555054867347106512239741287136556413396776892888723551356943769419845561638336975123067188039550894376145356191932821654687539219073176511932820703052754769873761875229824082691532158644492628596274875445795989889683967524279673479501622299425531948706808464433448901099488167956552924596546260059036642122891762523275037958486583519447807383749532863628228778839854075463305790287032295413537305206186337665114417611329556198985652148691269751354927655723498883720541237865760733230561145464845040700305784737366242063228975504911130138274237842851662791473627547653458498684623674532681142214606095824776087650646927268736757663802858239274151341328810908767697038130127995243635516158060011035098022887908695820101329289029127737202861872499619311704747431781943808914644942171668200329437458131947381060369962064753205572895021033020667377104524105737493346428496726929110550206111272383583022394216614310707174654767616908348996981671212296112829857835702956041699222241153447981687485888112266803014399104801060350862221672562268135440548665191483486482306141177243887315125911825157822566479764763402776103579454970033269122914346455959130000860029134845226094294463968309222478315222703455923407963090539637018444897160218091343956025534069794682526343652258776842428134970101934955329460611469734873990318736638139452542232765078787919194552069270059388191422531728105788635596316328030720446500419533352296813128669859834709152000611669814090506262204227652927827210039134927819306162430812125832007189556554510505274015144542975961223923635373415764371925617057895939508561670734694025189900974594891677229681589662809274844690379911860521468062987390778026820198812984452863171181178889060430090708477485383874856908433617830790575614313939401394824687956184908153920847293157094822655089476445188057987300959686126616415531710172700314253284936586540491854660147015696252510826952456858039907812443992360201968472878217691007025927654795730032036249430081625984440609914297675313297377273768165518240244994165044567784058469281826593285649183318196193236336854633886213111620110995855528190845532042536736780358746074361647402177134111528282146119849302772173280538495439803979545110014467199432039789650604609198668688346217252948651656013607405497796457877625318762261759536603642256920020051422480692423425513812389990680390888900996881181285274729468655661803114486802577564367329647145477618267041053815345697165374132092200064635648547032142739999156353912719683747154610412006033281573821979966421779744908028811110976384626276156884356890587506284703857509980995777335919206279259793269756549362418980968120694088348336662731018690280862607179734287313795571288544234055344789841440816283425591764320620698020633920839995977710352039609058364708382192455425467777663634095779743672725643120142914736539557376671692050949547356815109935511817572580568944595210090013760638984689215269805502750170143571994741615011758382120925476663214773211772885138494901524150308631931568537416914308880104793621755883364991386565515764698858965668042187548013739605239225196868300521273276791763054019124413254186261675246933115187779254409109471945906130305549624850732623201479261163579476392636633310201623287153969253815498347470235273479350812196423812954442731300163079193390963124647044048797643163538251403212576524292652657062832703863216343756668366814409682062765330824968606244255620207103122884336841147452694693368372313814064586153730774888942209147753569366170919469172804899656791775363161542534293914265668538047269803831053061578278383333844897703307641718762114947566069426897714332802565947741043378185838690301638317788545319120901449705451921699903554935238722588550536217203487188999858140208136040527088568639121967682509068747413396735525907411286376761184033011551292044562172874660806837328684463481726890799803676261776662868438640505468672682670251434237125931183880672160614421995098143178790898572508030596985189640767888144447693378153003979242655736480662364255392602910741724873801382804143756271330592031315493879652514819788187056726993047217485275183035261782507291943946693890083486112138477818275736827203588084892857521217864880296675094781878138624287486754203513472642685105421709185729459602926339508098520392781234139822574985788744209021066044980184295087349102664424450058941275208064906096755399904967956246424544782502997923175438218777176931080720159426305874451055481225495601957847125481326978388653488563640885041680415181148893101525834508598188173465562548727769720619834174410738417268869457325780247519312760893615323830895593878006106425761591367905888009869196567098743393891513137122633888442120553356080058251975174582271197306510911345827582976406603816217606050367655467225787610431682909033572779776715129488531328117902852088488678671735333796764354344415133076153627302295425207161552424696000783482816494341109512673065142158739709735807583528010611911750082616547825143995963494494014198463347583709169962325032868927876365075017582583410623313732771531875499460269993307813000026121016862723329864027637184416487525760607865036443645614479592816926405526786932366069709356153850549250357729351986723952709833741381626327667440827202419518076052230104578265707268108856974713157273228024224479016436073762563979978449986800289571638823375158773783409174810050221349755649194449138201043250766483945284158313816381962022227799026490795450621874130569217448728958289217930427686039760992090058446375595862245034845556264191468523655963976600285530037132947227085901904255318654729659223504200873003113791472677199076823073024046400865590862237117798496797805012080413008764003455138614598920032980929463633086207546733413889443075334345757295222503238018737513815559407555332341995176134559626342372609258159103491084498316366652695298206138689681279824177404132801829439510518657527058457697901717932446988418586076155118796477383240370832056164486223333518700060887218315292025589773318437108179828321814244637785619301489356669830096443334142390203783284603173832662526118517904195871596710802260404221729659974849690596587474582632440761498477234970520644825515529382050446875226137944947231437533564256778758954935533018755514984021012581505200413087555609480181446325913698435956863615650628507966603031333732194426629678793220812986655947371971707918592244660875449978549633375448428694614626239111911550867523227263643328717664457674145430330849340113680441193717425816940395174905476945452457548468129730162108760186471573312343791887682154697239298049795652811286487256008449229323953632825355207325321401362234488439984518282516913754136286871963355510058621188763950918584795281154333821286344253782561867435651532955689442000454884970361940310220272082160686953195665898005568289713041803402141293407972041302903830500024110800444047269880152234930525418494437530299998036793554081167863459546726505509176625268419114205265934646775535272973058190442180137364901174467384713193109243839718096272774075421923228325577736354234549359659899040164617535785381943272137708396087007099985442560547041199730102383207136490720148534135466636755494017441235377121348978434924809835403538157466079840448055757835566366969404827191102358849845359374309113344378902045717858951916035351291102901055821220812326496028798444774434082441301775838274089684519986783835959180256993969491972320463675854211397371473946010366769454602735158054758855292718786258420233123618084095489425512515999344248526557345448658887163295140894163187093872598019634404554754520926199194294283106270386200415935092228621376697232376599637012780571048014201290263431534377506161412470361502452137366439240026155325747075102412201618140504282598348440273569530146539894004907458656642113931261640792223022600454052206863712455991454810866184033449875912159676590579283017257271069614176549817263567978976744949937304278704006859752067527797824139175458217524326952638429896080483184752862156121247301925352088269831862819101286139038623509947156908564271149054486661374394377403333737224349838538796108956798677139334386640037937555381488520905681671377335765955209114939749229712148335138059620129144335338439200613950949599726301864825107619053896652570606635823516555976636495883582562809284746139385518621596027635453515224234958764683255841957847080874607291757993170069963507570311161396865823171714849177267676683521980092540452048042918323948565453647676668995587641156710721292376091197102986177245345466227667188331246042760693362945408438995926257701795345837185116851965356112985904875023470141595613434343598445100711998268395114648597311463321299823882086767074665118090823073690130418966642303135679982688011596546539467589659519009400313481512546854331759445605845878311562972485079210316832457237610080417670860838304789840208517669199715981583076688057139097758268719656479987627048171679015078589613080819418122523696777757768302827970963124905746196332338651008399240753692227232138930749086358775464236991674953478459694697453801250256513707814961514088721679038359627000278741872934421946485733405661686222747679302020017217995131375041031773748379690381427660613651372410034955793900625489243564514572113815056276710205735020112897706076717459728866503680272126443220423756584419971694936898259035376482042395928313735894324060434072242867039999997763303101106250749429633587399728015022325930336442476362213599853232067829364689845262987913211184181184209456855044415158772417109702591024017102023267368570251234918425603329553923559880757391598206889811020433700642218233099241765250874021067100046365470870977163288945448451663213953111559021599596932706559877462150793675674799041575256586860110653595612987704284128552359574578586237972546411927113839643336560681374122406901399879474139740544789571893243763091110270981510111359637296930951307312417087317655760803451538355749198664709028201816757271469992616259255405659531634796215382172125491879656076671060800464688451617126766159001119374549446831154629299078759705598580484947777048648722827935123271984388254728927053849377348930303767640766485732116876146995398964209167529898520831544827514367325421681811320314058948436336191702134604438875520337918690261823518518053400412681553780903329239231293501626345604609414579769022747164346111278265695242160351899691329655918224646659852042034792722499991501342605194973366016847997388747354293522473283521687020195097987792260723526421930078686739282034654936513880608416355894379012173555090244926396907923455680623903755328345065351140654738491945276913249523253780899773913190704228666142334927088965627515999534371851192000403648766934879458616614031746554711792037030222057546144507222248709883129633138715510227622652207385322413804714035599120775087154852720327415329044189676729650132071679844330354491115272909560619202205826736002680130483105463411558379482755382641784660571686884494956804611975735983314237050008909752928319469720225680761990336628435856041751345543811487253427188513483715731137677293466345395603611598930128904518890777933503932310865524930511341298175843500781215902109076501842486400588765494594060929568535488661226589544465553499774700170106589897236732361898268154029927352213794694881347137455671769435041989633832353436996782189039439043699254939738223531639957094735207666501351430101406049213099731086966911525657341325022061475993660555564660540915320299765225272997101466058415883563043696155469912449833151326282152656460084056600541803696777706949449302241000772083827765348726583733051204567368572148952269931746478671620177780264685648135129469591910919052931133853013401668815337504981755693926088535175391103383233326791176075970900862466269654689094167120084120846105486578417919992960319979305750432625596046168171704971644250085348589123381324503608494278237894299651979109034621648312977040593459322412991271523522683021134844830151066959023422930037149935759931968347306834192971996371360245446371215809664862044603887079358744517452089119343584724786973268557823931274221240482221087590822628249912206806164424674344771524335915454074374393679612368464947555189524570541260120104347529558605928476707801187351080354989410139981868195804996571813939229182615612247841219854583666785175508748401380306035035381498777345077308866699377029232623551976378600268821703584478775636851968064595925437712695694009023850877396632318515553968064713814765219013369237690926279075207874826923284144993772558851378862876981203067186389817628482634986554414199229110943003581130157615123370940592257703141962987054932018687003537476290958930713215682414635966705141206289937865505960326496891406136094474263901383086018145417012091448900548496635028996140690508591532346717834386488995745131506335768483881460264417554371904969316833658834940729161638781880300099813104353648364222711596195473039967105219166281651400520970324943206828975843237554844451472085949774600520684883185774783832290129289255905979970417271931556576377960578564561848491736122968040037188795537024662522765456639665232584143201120737991947046497075840211423869798569817938156668512954819121361514057825322248333865647167599084310959032105094407615635916347469581156814815891869406964765054503096296737731103647672334569620353578946019798329707887985914319495688967449505693542310708628665295699176518145841319991603009819335299480765516905804294144397658196543000845039870411055815597421944425339471477812952597875078400611549050513945957452923084777557858244674415057195545433105058384774959236657474402123393071492437305646700978913053043062257060705584954236222057202126526432149335609986070524757793312014192947292737031211394272340513331920745073006240067461229533302298086219567196398597879770377993845682002967781107943250042553770508239912746124006605526882122697099657832400605938906043815427483362530858285670024691370849265048612751365579580775974334660135486019590281828849209484826765837785300515642992369899594850044500157021918665102580650188726401526815509208568757888503372096048225512090494593112208832927602395678734979965123375857075707316819947211919644710910185542709549017746553134286362152928716595171935563355697688726754404314709408138502771798602112592633312755038745232560680718395718675876048010067044282288133864903883215896174296885362073452186598820053224020595241776792597331000928209746560244257679743992030003387706870363955803595718531774151887138148326844952940305296203081814151247446725472145527783525959930106098956067475133967504674803249877005486957522273335309631519186691944841234490887583871704163950493309017815240423647418321696720132423202688206431522439949085683032478424074394801683704840201286235631487522022368400357521660975066976436674305578438471735124771085238370566807868187887263108215867712895555116576294180669084224661000422468618358456536217619992007693385019828986047413247854152394094450454951238369448573202684719012101119553109161777629151583022717839446811837079220725135697331900957067296165269801762830038741277581019773055380334438109660276129164577513110523092080471040331413304820801479367852590841389020342327780903992299819949429392258316148387124907332764378940527404273326418467853729572238703843966416106151789021980932383278241917291906981207681592891080252669147900990608917214036151330136932532221106541728737705017798321737730413950456203009886898570299797418159592895002031583031304745135276536138936772754363723477088905795422012091568971229021967872074091052323238741192573194013622904808063980269769766224887808148128018185325684668494131128844374230389590673561763647313747325284906939402128869988870549795989274978736166628142847380617473258871869084766718473517956630105339933728256948989103029963692676036538022923101475981280494166978089606082896742238945639112834908258889084278996189373217794534987569384648743545816708667189845017072243006810753820913520533154634290931759335839457330182344709525978718174599454611718647856250956060737465905435018218535439637781859392970782258046791272806251925149521362725991657489833671929588831245908484350346323951509818510257059255765550350916415081782220928324428783441139198820231174719714491608441439983284177073414977539452387964085093194244780816285630712138204996302409029178634002650387076573510341841395216760435952571653481437904785729786068875695488655399477495802908782066463196062262454912919249080640956489077979023612060687844867588208324664034814313365226462407943022622605857119031112484666025149926483718531754366617514141584006930436458443717461631101846870167811035918463903599447253472201925195807864019897085942615611266504739854793834349265019823626893855509467891726063407020058470554074490350981733146439422122166190229352994148807511326538390820472968775342209225606222245183355251824457098399264073860027156545280121334940111916444327873264649106631118232425119544622782900673119859577901639612293210401393466551190109182436099223396913017332240561020174341375276931583942103000292594818903112928280785912411489515266843756375124134192885768955618676898833843240828773281567647244396495099370243284171906920861072673073255898340050922946237151398090635874310171737438285650116238972778991188336616126008348108398513482318944458291070581562133231821069213741499609888483825709503237486172752341980351015706342682875777265832138200086468123536423959634445927535370895108917171552194330414207221463012432715020624818835578377774255193738974178436696078148954470512845086716478814629435476299464980273027606165744304119147727961159618825802458522951391322784626613186790974295433671011470056809980769512520504239140404254811693771312474714640207257391084074885734444729898666966878280042850942966519021221354938318364199923362983029138181655028528905990432537489215213940578064628959300724929427347604177421915730362228986474390669014420417497734372294620088939411304934592357349745000008795109638504320341420766855358530461469146513307809061721456631093703820178104867669572879012481400005207022959340690726411745578304491837649475287551540437832855324681629985533015659915393196008413092601519824378399797283860069289109737225371403592993485181837140618434967217346020706980949682924168998410960615773960135897274870926999265229695896663160862507090855436958416554798077265876863088216114311922964385628360940793688318554041438849625544602467256722981983569698481333147738406759669911180348953293114587339096929165747515876784029417923033389715124325397533458193289890686175841625725779562326882835849665034299170569447670747846697948712763252875875665687559267613659118272844427878227583464994272559045302709752029598892021336537249359311820822717210543888086124447354757896432887826929172681662965122252321797397737281389215399844423426430182632463999157960347057677103720426192518256449497011366026550500786029237846011274592368105859354386832979025140464610774960460972624036019992681034648770376702881855680281547774246925826647264024650255337806025006299757461839490661662115936291333825115854782515355826014349712810733632961386310897208553616081861899241031863605000136505553453574611765682980541967565282941723276102545587412101986651448069206634450824424846731738643315577394909174063289265107682645255415140096969788242353665550168518165352151614212867332790966717131312414304309636149586312550917073393100422730578766312601799593823426912269445775568261366839804146653753194427036151487073841222352325595384208548582749357130416206577219249601668188634379203720605991313526667558131283994044744798563779543486523043556752303830013742315897177570890679910271035727704371348770747603284366028687708245202555102601097195071091412202922362443363305093158820671060351284345067614858909365092938160439699402770813141616036072325567454564801541791063831259968972363210005361437110431198262733434271861968746137379573650285192134532726528269989418090552902885659948621238516314423876124947458328241352107377716225610508823596151354517432618535868498685378102550456116339044823127618041173011577876658222172936169310335482728659859005797099021047960799682902005256549795823572368043508840553216059555524859016240217951890058449929298094896661013431330903567024813464104898866771282117470710377040202504881458079304788239901973274849117188282977968719292827954509076231232473673134004535077185815678108992562904659250559641348470195713544681427639460295788130576180635745473054138360041429319603726640005220433395338874580201436494540512838402846433061442852158790585017624576095484020582997797675439619943199323870633620015705076474996167274067859763955059295679536701000063334695487972005735268824999047992415925727072858193647328348693576527328099158188881376047188875938462451116178297202830634707729756428782758461152449986848154610001853328158195405461478236593517244396007675762114015466309868850609103676431285742826544623948435721043381323261472090669431626168587202698218584138209517045714121075635864294259376648239402466848842380132415042852920364404588822408932184251703448607671926812201020741056848395681417754879343248573768208378784487106054200063037620989677477509347996587168233487406853086457112473397235515808927482592217113697785781318656904647859052196003276844759202912215293248453920192352233091143607438867679331365375617388121853822045423078962781317878545575489479177588736286135388671126366165519504527167086086572053863459886600522751342799017632914177275084185439579833118416531182561549463250420544926729076124349859552154333221712397675909304637032020787392979465988840453087162406328152175801303506179955389052568612451596262591832812230505223296286742842286365807530115787286167669498459756498891217002605931686527727635186502475167754479989188719585567510195517041244290767275163112279899029722198410856479514550600171841962833708530794787199757398951908960492975668709057251576843542525910459168722010604845585434100401752301540834396661560883843018042041629995659493127911494649104956896630635752841984418776057751898141249679284393584623607234752943503765590630331688724644081782890627030270481323581680422169747474711817435456379325906881659608194273099374385782561735645362163084882014541489536479740348924671227007935307776683024080459750719579354608773620972990057880433466461258248949447509561307323211092901377547169107659325070432242553485185545291664894695621098887817700935404006421179769121109182515030001143982736061887850788996699915637240632020200558715019978005401318896021200009970631563730319296795764352850474506029080525506933392068843394490422833087623579888466358874308114609429139981810347860259737446788190495802946006310563842192078470379046525577287038792276253903428206829536191111549385584525166544439062207339852913208875128620204144759751275923219575198283892555788185715353623758768948232536404301818315035541301554025920370122374954698038260832556195279521134878050129449039713411891449361722092689072106172181571495275143280709273023030771252686993148506161411865924939974698456181560799155711734827357504791200762134557562634351682289278064848883066411814842617599339490365747763876493905085079177187337687142823865933278858329385580302891525586445688346156777916239947633087642228057795796060481382110776084508457590360021223486074692022469180926027955699484608324114430202135198782539676329285213778956912078505146044157337832954590012123772348489728269376779548704585624622478035637242241905850566649578295178315714182364084598637029695093088009175935056972608664139548881219314531346960325517297139797072626300307762015188597625113913662457340878867260732586270970045972496743903007458487847912818016391731683143872782896203640686227536939732447809476838773552361894741882259524686235415947604916255630915198869211309325559425552822483091074910199408816134860509097551140689421975734254675583371696264782228140837859427483969570107399309935475731678446553662955556369965124398364889561917095151406613154686048111777797466983382922362992358858381767728880009056223719483791126416326802644977463481959845803364924288586584944972631669545586512131796882568564882636701036214057699756543664673177388292970585287585340097928468417899312958088346796155994994949240403259407710526982842021708653933736610489003470977420600272222919986972385990635150147470653038264285664973660477651812064673527386841989677315549168846770493716563928241287496567442737140076793870765151144063935915765208208961504499221615676589706511323439355051748984110908818375378674031392003039004649631197890471359233443030353548084528325362498869248104639783960757159652160132416724126193164685415859246863500530749560157931127659526754837409224304027793734746821065671281866232074529269313617455166358663013441246507432880376748770302756828493475824947153358228099965703359095504561881210485373449970008313816142067021839065554471543001210760792809289676615026447678981670225182066062414078321480868884122402662928098987981128534781407354771629601062188172672449504589215366062959059349589151049642439641754599910839513187808709574494461134474270980975471980916760986711446197674100281627519908624589273558441466905369935922666409739494564402855084444516867538470107447341078049651440625190419097937767641504181032559946451726655613342154030657623584528983662285553532098219020645312373092057646109989748003864338838951514634560890350961824882374089926436774473142026604522881937007528336700762793320626185596288770393925615354016265240375348368256167798997695592898083925639276842622422853639512227046554871908149212155666434636476658078308118474029741595623298571177827499001943372616498031571671711414499163243810246319380185909354392996476075571411596088174210408443571771726351326528017887610010578754031988975982841018470699699572634754161008404998755442787734838302375925890050870310467424983181296612649251772338781446675790527127332569276312316852252530192621121339173173045614430868490519831431804328608671077813532389138972116835794443755597820483784994448650552435750698591564407896695633359114519913637504977535446200416637867755513898366890125917811158942496547093456108251636284591456890783358962781957117782351941685040062758084944336267907691531742713033823864540682038119446279447441214724294350653923559648709898384858919683067312593334438977495740260551822397020344777440483733408783488680632538371896106828522692683511216774978691015204253900424280630937356376984562462065879994498760699520217275375086212472304331472319006464328817367934164599492364888992214980472035781791599304707056619886441961913423251511655804451842120079580701176609448563816839285580350377557008673682224945110771157673039206594253516867869979896703024623069752154058574639239161457763704945414589494693313159535758778796755487144297044837266615069409848162364362466432309735348920562270705503424882265295451150238690618379071897784630179830869839088242534356223028566900730371116333869359897300670609392691161691895205225442728006470312191768426013544192129122081755013970002951486210798689642470869628213802101029432396715386112408479578878334666382320139006442471509306670142241627408010323522511118797306906239410068280690544175067511627294701116344585614589132848282382668094138353937061173605058556845343412955591122972751628510160050522548804621775570489352027533787178548423740916775002396802485364268924300097395596205578584789798291713857567415680403872087021013435526028712767556894706593517834997020776647241549236156984612485906744193020984340553842228319002575526326518546811892598253828114036711890456745365247941610246096504366196443493198875219893935619522331171646874919526787630734164592138719815960155124307009569216410004298548162410847497456822371280798805081704903924327081637147359671216108625177829233861837286505817393443187771147273131204053304955769603693308358471842073452757445311457926896595143914540293783350105265741317988268523960755261350578900289604164412674596211463459368305412632826315923981919736083256462396700811352936720580762041080950536689574734647042880619094063939849943371702219102245849921262584128671327875369126230823859092479961448045998552142684827599628272596989217145126366359531060791397924922580738412421324252368401851134416292162814854452435085916938363468968865152852335612923905622677519655260019416608903332007020321818473772798580843469069815937649892856431938180562697529872671908745772474040649689953952680020626707879815938396808843090020611874245957275399373358693106622712812092512744049412527475000636193683459982277952900790129819277140792724581528824074919733657566205186807583047934419823606862079453475685120051894818920447352328219324244720931730023945163269261830314005889688241000439737703939521215956906960446278772473542422288087194572447599313165469734409466553681739180857494816918810326102295867352194803316088177106919028799917555441137346847717427310952796176907340936195908026512223803084227042968184355604309761321973893370839477790190252264983382550152305400203130266294721295745719236534852611361935742080525871142335422009258944793661348808505728573376390386571709464645233923394670562896557407039809768763290719459670162916749088906734272516081129225254978394156207439986417171303617028977182367227663424121316495668459448337773699067748329154953192109031696813871255303802612041952184179736295054982751565792396953192229840798701234357248553919269419112968544084859516891338249146842009902845244187265421934553222038196150269895414870398845649788144107046136457820586111425369882902347383135800816043457272628048764849832294152965115873936626224747819797851868472817725545589564500632570857254008968306528559016258959388482811386539806471240029499512770192187218297309272613217028570283888177805087566266217501993359067103991931361075141122346998755060072304400682221626888929307377905024912024195594288555825631796886408349346802054386005827759433496228959896189902179835532890424027512772582015020660492212211905431031797337943178698985435811981535177080392701461526980902254559865933003198722734249837270766899545228444925102168702877029446598277809369194911035931861135855576339328995735464661971436524999254324366928052269967194918242921564880207029577798347607391131247540313861174545041863709126369677272379104968139554445837498663427509931451899868602739236134284353662145337491806353232730209993334527089208685586869157862520878855432103597441207614545830059404707231498387780327369448132845148318856014493210906812880433651772795539550527028894226510527111051341892176063920437466912879699961095855947914558175391295333799871173658300433726301443413330998400276227059003415444485151845622916369922746715219648392343193709664370991986451807611086960103171788257125290733360236929577502964771630320403392333744584835459768740331458356047844609381777119496092350806573846803658265834711168764393775589533473694696070298432871153167672227680576454301026877641749057419114850994247501049403505599484643254904075332931074874314499823626789085703550579693215485925285050695195460030721384357887915757330369905885171353263547717629663534715924269740202710472941872981906174074780295040991856691427013054544859670379474554663407037596041020846934169011891429827171681963035900220002964460144574221876911131389958831944002848066651963576999234416113975745189284567942688497742461745555265361331743001912090819110274732984597276133405102791811399594428835715141049403705453619639825136960892874230928652602766691538552322430540755333762160668612658549411668639225140847488113253970513701408589301455120965996200131385691305996980206086005261978935285622321966681420349132355520001532229177751922387298342660416704874232242940831712473964256839113904688255712310487575521477302815310093707752994079017682980080127718546845659358596763575886547471549662153160595707263894308851185337121726312026367564185258107622314377286102979602676987818163094364535075469455590184832987074491524597166393835040574474765662925702870145589206610015627516421885591892439774084236293485968349646323349496162141682921054842366410114178796614670827453021168724128636732628840584639812235556187504833774665105846267104080856004640330999282352975418964848201527945223668029726206736976863378727206656854544692456859546993965796828048263531406474003989423830724701345977093333312399313153379530815087800339982387704139982324674376636860991055418462434149525290937730734512018136351298089604473858634975537212850587708012874472521130262196673134027099270728215146603112411528219865170003026643784409974140743363439864771189426734238775726811637218206655180354826192740369508960323417377166675816348388160838098481798424487106391041142617735025897538367957754806129815091205888492885506486864881556677584484036544378910281203520317535419620806249684781367835940354952543057052553032673433001960277477106767540585662677538957438111450130902733748951192135665918979627302352387713255517199905849187741986192347924904032248433851314247674468762327801671603211787571263637003098660834493457228786621026738869123474524362128343134589667774041844204626442562764258730049640261046305302627639087037617140203758581075528212501874966462378593045267305526503626667577322693718947411548760034202896158727104106311882170155477381959357859457974127048344824692527384297012426337320227407957541539272184826756307789367351718717399449247612500617743150532421348286199167015231955346345214509261222324821300450887477123317246651667017975742069035230369838815450099783169917457489580840320875378840635018738123706243890475922866066633781589850105127950658186755117807490759912093084851892863509437055080069857271232533101640057276908163279620250631443175257119223540341054305003351069226730402439166334533511972217218703256546953187865525958136900134216455401969865519274836179183848219904465649678692371540936670385112978726345582408514730718902200127590095415459766520597729137362129052815736743327583749904573205782025729740462528569308276123647399461905702294824275047787890292703117607663556758409645016556649411527160876269886417676184253703693452539113651481661677760380884079882367102755084524994556096098670469978739568124644214798956354921915680303880701938458708629531687657438826920059635280127581581599585728036966355188854111958854917418851407090668917559062259921689948248916833881808000266304604425584497960412061554163896372666130449614451203762626858819182384102370966519026705120048138480281420168331147753944393605238225453141989786860197359027752940964956600767201368565683576495510495848839237850135127350121930100301249318858240905199424624617276461189702310987320691489164648282905537976886735419132747709629977827991402674214628285797095910811452403928837838602072363932212131741730872508607524792464523278239700722248915859942473900096636909125691650957164959252574323791016189986065116914500273566129453284881813406608874344085630332289772332761296533390318086597131283204897399228441989216411940568913706293641425091797556588364477624112245400654703208477179052918060344427893983180992313342715452221024719846659134927104782532421156724330848076330375058036022857348153268782745296465062778390613393170384340445041445369387008298513700593607614374874011363260409424904202427217313065385014257204886680379138882091747184148791992232292593222437921571140658116886900238452260427376867358633443770838674712502132691827123090112884506906550092393327684784444023950036412051593909031620845559545872224326664081194064080390080568715482413917139880164480603535258848132746242368908018351836184543437412917698094607904718599823913534023353141377024069886976414486422094448900255006902852798299478887710588403086993422413644358219391620951815594646354197610598736521293264686087269475198621336888757936656914361604577146262547691578045634656220717699227424597376012741015104339789392594679757018542535120733740972050284108361868803518615788943299643901914558110573729490318559043775163020571111369558594606774446556283931276328743451553369353806915809710913996023578255082296535546799488581604401399561698712891062478275065223210655020132518596911947958596719398524951554618617914347839361878655785652835852201527441634747532613483327974268649277016330806145480703618922002402364097821134974022471091061496466289276667309488275530574148711757953744369154659094040041889818762116360939291241242431855595928652383252616489860452787021726076798199900576994567635508488223107574873200695484981274360926863659774139775451701229149096803517067820244748801869303258477533473651551385703991330154001495586383991937818525920847819872200780268896726491893614382436569832562965842017092794308395347364064188627956834080342570089762954391371851076393975881496637032355153469180991738800536265024237665823751861297624003351567891882708089517209795488813590538453366163246470736408613696749037426764127570783201580821046154275103302236837879351176529088061123831119745165366612370399164403155445666239744225017862495745510164261343800297692991292457975789154552796146334624093959611288593580785596323676424762495088867299359724670938659748512186468214886196996075881211490918785567987113889733602454744157359281461434044043035384801238870557474230164500020707361862435750474801127326194427492860436804102607657583842022543563225306284092375071884285054340419563202243201060509450367665277256679382786761959208092421799937014386674034134896952963724435140893146540432308467805370975579541853676295301186154404573582395069908435177468010669635015387968456496224309010512292284704087938967139803084929348007411754060082141961303597373526452526520166389677955883231610629260160191381661666265797987471534616293344439776978522302157021854974744748286091485497721610103341248261759747410333184526059599564013503431851866083489514247231606254008053957253644251216732889617166262146821182940643760259204391650989667822492495083336518131070748595310734732668607567416942083445457880100786298584606230670485516832236412019148768245823340979616490646409285035388579308726117966192729295029197503299234313755664970256287952325557614011489683298295762442146348078627071749518927087430557425935966823354433330890841663792168635647491383588580698757759803869791976924887960501872152863966641777972577555947845134896399015725631511513396032105917478456823174982287865623476809051502814106444792258439495066596301631238228635723970263913548258096008388943590611101487536221110086619020012037521269095331221780351445482993979879218536863584175401804385120045217953713894240419508887127760362508903736725881797200488465997458151636430706179589054562128825619358331388475396892199318822138374057943668994853367488399290959690013024302952120025972637834982708093410464601625911643143131285776324051772749240848619948956428063154732045755064811533978173824800515700149747649577562334168665909724668776932238131054557234764026238006689177935699122004587867484354778969342836219662976404721759650541894079216981702760066347038770158396141847287871692599531374269899035765799171822559806162507487881254606042609416243960304123257945579274998788720572165285594743675770574087848680838990807020185107816913832939342737800912133919670429271757732977110138523926631945774895252929685865894542722454812913032318132002410313537316948491778515326898526208332360607231663648494664581028507312329533580411427455380075663548998087327795975993759811140482167597908292298748185639421666853490736522420339648854135003905612195784103745513992528037465661827058227031235955921513376009599470752558854940366500025965577101850494925374593370229226497524004953143699190711564125163968634671857496997673703644116609762385493687274738145843570117793149071860573056316736767375767786767861428979507604852492988427909283700471888688184709921695816102619194573162154054214166346623808925046364330769795273471784048576919492665718590545991887732274676039674715658806791984585160547319499483297882346813556809925725031926319827887324210246549063883405317516698112043066093800141986227295929211885662443822620410380621356462465184974070773923929379006849942178809484147571811328909170120032663545247718424428170059754291174900030704671983212462478697512802048183952430987683550563574279613331059697125233292215907027609945915692903321571183299733139806258659378551646412765382207191036846215102778969587325467148157929085325069915476698096694952452928971702702688614967157185733831611948943974104616737555855241747155020395184019992165678761255852507134089269266823709047452663649588816577140302980108600460086672643369237291799036746962814671756704352315867748520730504652720772269426500317473660055623201229876815250416521410828241890013243227776890148996334868997888693656095187765349119895654407447266396322577908997440212471337490515053270372421020360892747313527809001586254333041795267171660309154954403079957630440596787256540432417718633383491869687581138993058131301386412402034669974170209115568856052142768420470730752167979624887883945925887189964468648451631995807681675185006369272951811624675164223021577926315889645650096538450690064252533938353020232400578741751721046853062710536002091862082344716502558256805852852775677102809915449360800759371203871892170043725839447789939058343291115106357756335468153655741313596840841322612429925679541071184274807375342842357026068736147831777543413661703861032862434575993624937112567229365075155061488968767359764034117406642441338450106167349167779837120557143123526246535100283041158833447154598162953421428794449075252770650468138855017042741772682031133861410004491635219081229332705222062761063370591950221709535716221200609554014832608227813101075725933851779142309479507341532635662147284842902215234999792887510119063355444939275608333041607378279083133709209795035201877439418652667178555308406602228644609804752858971333845734419872608687561100969496939984891183829668816364784201460440802670445292540992988594584950570563163777096419725631599812692491058990639870896366227960941724954093619047870001647482362476363410045911064696973478378646926276165808675303570934961006527004149013121922095910233746517539748793205561517593917060023084716404644795222813902274205716342967219440379151657035862038779485462829335729649253072197599825404623671910090799554957993094460892273695625854340475294896979825653984185268643769161235466720231506384140259249273602831620781721466908975920001670195242606871221843958661911518912281567443881467008491540043394784499403451570037934975933086339455141055330200013613294339136587164482076444600018992958877378147693875565833885699538830409423358682648887517764629219108000689319437748769766244247198040661565440075323549005186370096380367760120197565303943744910528806226719716088166750452539822874419778008109665507195242644838596831061119226614532523049807081632106382999851659368969813165554896737599143167318583557306816614117179303250146576951345624214417620321474436155797787235498634675005066065719634999670521950233485175180636864421478355355072741622341737360513057333304590618031714078670925411574499097926391910690264468755564549929067785523943459676775053457921473781921739049472764543980899058240406684703793668613742079655639580033988236439746929299930234298594463342759815679849071629854962684142238777882319867388309373895610027377381589061637183669623516165963209393145827479167439229420552060404669326379773208977059487633135762129719591569578399869172778302166044073644926780500292307475900431830851170023799489699748830651118816769130001996899211354881290409635886936622391423425674907128170967406130362131812465067405618819196926641591173678025121564914889893275685938279856230954658310419022301011101137346516614463585219432913257790824984728936742677102703846637132411984607991687414741001001503592436327280330519121058273243543812655468807411431512911693323584790458591356830101763190733024638463793215032395382173785612396063554822771446599700751408428911627754491066055498647521233970275440376149944548217850743966213331337466281797232648221870243074846375641409579197610385281661066022764969877619517131118191288309493262938563631233528227927189790405667747058036364074037398717589404672847305123614555161203228278765732609352091093646964300209256030771098172128819804450062207324984905318833349258974439137309818728092065391075821439887613726991373561338586555946505397384776133902615087404001701962015641534560386804870982522598182068967256136301658209821301481390711323451590454686656218015685232034825766998729504989746646293912139070275832377626207294504941917586195382591505803528439278119510736568684302825361378159232373962599063752481769918013592172654746432505177354740660184248866217381517358935411267475241228943958516235832870484163189673639465774836739391297841525184079550098322931656710381644103411790744074301270717819226450815342819972481483154274233309865582513618520888588076924131644475436062272521955486369216495288429568984785666784985379336641291898006497527679147262271381635092544609896029339619472111105708779064929609634036952401330164272491907281798353189940062611504292443839301607667962340921681177874480773838489425366776995173350468534831984525840831601984372497548610123098937100500106987901402069930325770323859356782741629562429311027932722434775233585917332916857248262060023369915368949749071220911271076800033789074619813947755537940462747635125416860187666074192936276924218436610747651821872114825272595531053412423649923564930419150731888139715087958339505646757731132061103948357101289556530576220491630902821323376863099768081239175653544901294668972952829742242793661287961273942225458286954217464089740723753565503488350967638911407568167446526304147693464703641957953095423589282695692956325029694805356517307829897386078705169827920910143620025107291000624615702646621515116904917737916067503516009901244581867186354840751871364694619508073352157476101713077875635545998878573918368970516896397156659014599013062534109014946181728301586428080002805460315189894423777772696729241527441020328864791861363297594981603251665240402437617788612335218267854392083261434317457821779758504199513991190149444187566485224281385166822652919405598114607461944753742421302483420639006935230537888413493857228418341860888620089272186458509700402883010517813234824425402123415205211020370814716009440885424860025060572038784773477532851575890277904954373938891906170402455007291697268577754810811416651514156068511639320440287154306414148992752550691468857575033995654833269730890022474819070249624248455514265190756781921698356150456179120533122833780241611765326433276645086774970763199766877402682190293999446225140022991409298940288309436596046735800776402960071209503616983651413744702294960280870309741088381585993549450137671700729895595470956633141914207681198998347703970255956365178657277557103870359489283226208835808768647598529773824728763398511129671820155392934345994260361109107723296543329664636820973590773217257377470948536277096722378300675060191343465083260386318969899841970813653231632690293164350171285397484166850551881521204885807377885399923682530388618819999287680258555171340352850810891232372362899868921316002139034379731303555111137382653278781975630108374295905559438382013143296105053038918205720152732789022748187189549630748941328057737598900338162946533396585625145130050232012365895004496310309879827323852398315213204442021796456519753346023238073295760457690096261018741788885765492501466592182960632391499736455665417151866213593556098879893375241245265323075869987572982410625199288370929862640098521900629793977083660853208336998632982337366032769408132244769182087704520274760912914402495268563508901295560478585630495427024804093197815736494598484529406123884435542870099233289743045206446987904159732160801635341765377429126414077451295675353400126370748974055320316727272822428193732923415899069091808496409679396341965156372261705516228832954528471270346854788951182461267144753868730368425955340301020803521841047268461129995565790685793443015461616035408758382896674284613322088600916067207683975252818178651403131317582724074255312330776569832723719017241720172368687116031898215400261161641790644689760822370209343735463124072687594025596125327076357149547621600595607400513728024544003386139656460075541238715652492381420029987832348417270255745359971188022243866252057234292911156916689556432535884248100363351475718988950668629851616105156429362677523627063942343440860076408367478858318578538941565757099115917463815659311435548651473478533695119672900937018823744288839508417951250373209488830046097909164190425560619113411071425631639871192914855251923034663905827733680887682286199334678122912573170215438790286014019111708597429041737144632182104822033128585041781446489546193313407796825312062577683066828448835478478566914510417631275202037774817040119577758082051785966251432456453434308002506959545636826748957431500411434543489238159902994419989305382799919384755391583100151600789302598802895367360267599641012329467842978781509754602086548630351705427017286880818100772558445346691517608276947724840285505983626513847085042843094037509882173104646084449781723485001194394154453117782976687396285279353838118950624558438395134911627877773704137573699886053790980194656307757603824557025962939574733918396480736384620622088053200481443504582621346821577466790217374512522538356530546377881255130139885811890296988191992737806049386401270460424178956282313303831752714773835063501747196540960117619440032292427581705338144827644947274202251774731356329381590357592023973942447609771020517404374669477098566880345998415400892107249219324643370657962989259532785007618629976009261551361474343846857216676582899626664084512532346594489165329809941237814883598549314101523451460289820161701416488758844190324126986053227688038415763608746642255218988212553603379980575536348341667406285863170932208190446583185661244472038220105506307897529222112723957181826770666998067713132462758210633445516951477273066130244299706267904257809659125136875953273360984589346599922101011533154218975461150799773352950308208869879895979391101610722523387121119800883188213554290099790488454376930032648859954151246709834568754454458137412513294408333051362853105401174438875275023754348632958008582184560353294307005541481468832182690233478544952471943286392241079207739776358166683108564908156372369558138643827570128924231141102446987915374181977048016951958830317047280263899782261756418816131974333674729093540046779438520065141264274800071814417765972129329131933224367836357536790141886314199772637920597778552956821287087417996605043565675916172033670599945836355854827147992817097399125333256891549919243821358656352282288198937979897987664165561892167270041492364408889550691434625558979674672550858973218661069054698684448003611192024188572094943355754701739658285576433794317221203210345433208313151832119224290673014516186950106669743285803298663843880709625417708604906282447957203337082960868759545240866496914840939859207217946990252596774367243526127257767757145913381152486261432025148635423596193371429816413914759034069640478668812175871243265772250972261563265935482028944489496776572831423510128087465779135974115521543643550508535409520378054722266284350988104344558778229064080695969762875258331362478578261060378760747229016272903547990155361155447609808983338563352770565959783799700595318099296497572723132757387952162489773124794995397413227292240434126165277736390119739755190960842909682143298859464513592868255942021055522979493602299102843056165068918736131053176657297197483447658674236089679477562021483619061462804373307669733510815339530970122644580511796060337995741270233268122495890284113216089909205111566876751455534879830515934891554625604285665171996638117004694755784195739908203222013095353567649606555617068059696840550289601798496200046408653902860204275961365675348095267635580331530726096137886812199925540499286460257931469001527871178528620040802120399398262812148072255566944934019618515538360261811982057749738081406839510217492313134478960333443202037136715922495794103578028136376005467756588223782667867606261149464786253240771570191565382255658832453581344832960904613354113525645100539077038872582839314634465679704855781621065763833720725481031724415254439931703076516423886357864623351109039395678103426751475855967877336631185078661023172303027321549295497287992932810780888427426410871702398461554739259998200422615093480792177583335337805897999375581683212414899611019982522450768424862006644449403859496582022370317682552905742248425154380330355150072578812662728998536909120554301105710303073831733019673885319409755621792110153724657507270049580012647402030276705888787590024180184129670698715124415888100752206290285598088611711697450371619045057675629870054103387172162604866942373191754080823707454755461402314753019320723838562931617222205621442245869500666766262066452023680618292237917399864981136767725689627137691241864264055957139433178759863379637792310374055077097604769670245322166763493484178285551846014678380316050930755451297157755006297683028575917630051910180589386980269747782151373269517574796979310254110069615447879363733730764467458928154115249937282300383311468879872345547328228886266058945387495636854024617341688513851247852306129472961492387936204640643454389768024713367311885213291813746081240608977473067273972892590794027917769504470828457069026539652027562756366079141210263409046316743297378229801658413191208573680654850888982741155245916724215131897171856223449341836749423990932835357723205279856156251434800766233928648909674909636042962676282167656857533047908303540128106954764220234804922545444309810122943289656686707581042023548250273566867984361703910813103302496180146461116092469747503676905520407271100945561498310045365132603150100083980724812376554312977042396650300246079666852922405575487277976304472733044135883551880420947942696119500489278078007871970245571686016471433923313090186155815538468241962375522842499406882546545523267205062477751124285493361139677676300164308530256795668751934900979641256099846150035550728492013894525877921888486160530170407929381789770946838803248808421113631353833664262280221062442498150882188323591060749760401158440027819700377053408165615986594661052644400436795816948315005658662581822660433750668407195978749869420926939493396326429388325200552522722203682067139561605703561704047942877282828489605122180556572889516312491950441865094642343747964379267222894520902195621835117593533246609463792350183250267914039779094475992307119615854892379046785456679378059320394350503501022041785281761612674756431191207096455084658332328307757353090980579879303160232016507659090736276182370341703380637366503271802740003972519858662763147992919853287927596511690519862448646529869727242600818214056290218909988284684056410386455556789764840349771133116402430308057092784267223525547923656717441854884481217542326165981314382250984006567817592404756942365312384377311899252623533104369846749271240287961653412562955897475593269162768275103956692800995358511405831954232592514137514001083791120255956834965210074054395886358316168413845418497269629373431328454511166734682528088208268409430543486057538807437817638828068921139961397166038696759986262337038234431363719204537672339710449050202744420131619379205370045626797946675059999049891512483119382590304303520216259528494897646975188142849368909863715549460881234011826041814556096360694401257210852144375254976787292253185707041446756692535768321847272354489631046063019859327686232022829742991078217101226919908450028460532835320376505859026995664466761746669228539171939597613116448063553948202977461291979668995584000727182822525330037062610229070307070323180902190969275189960717956721037981073383780031614228007687920850657443262752633062990976264091297322832470859554371850479069929608536474822787057614510327026532043187988613820687947082667477122610577873812708474680926651750954744106336850987013122179313760021508774192314898463207412315522875324656392390191435290557812974872740805550484321386549191380753001389037736043929432999070250503923557406469626356091040717752293753950774355776756538172276411031602129578789332038271698776348607916133599563953589942563105316644569073181695952063669728940246180517774446414476093665079288889746469640782792318112819993588321964802685896627556059531629666752160754704915001486427800946923385038606472619959675132554065284425164900664470911050923790309436696311003488633877332045972749493873810655821233342178031784268048227475583187850033384450564097100253087136415904093195759194741992140989624949234958968126772478942174311328804317874648262933739478661142984378143726228728670982105780126213002919715306154140001541005756383243127014712167141161990595460983414677908504307970908034718580783584969398281274546423832691861691689272519823857069786795479377048645211648676356128928222231294130674361719880390308648365735572810209347924483938148637067684167723254186596926585110297386262834214389399039360605961534556062511801303298159694343732430741387075440939489343723310904627160997375372986541273444182998723553717821268194883500575290622704757537654097298971338618927996690779478446833508288030620456792350896363825444070565612020375115182853426392281357160169885116949634353683602968546487991060984482539942162887075961243906504524567572070565277910691946758014688049961712051015634771492192329828355553998827799582107260693463456758216644845414746633760965622273414203693438767267422762885722957666070799732074659610418840743290004817857240229558547270941700540778218827983027324038947255037031930263265221103016934571154377105329863217236845669536451289310809818411832012021066512014185236588101501418118934060191504796118099710872593415870836772256936307418710902128780132342401357247012537764704265964001149017423572713973905022607275513445191774931299730446035702248224771792891612770694819435850917371215667609706558724427264664902215629474906150169253535450551311570158488163426493656560595936515067754221400758234494852207266115229162055687196954435429097485553231517247239289989209703199912805523401435073424992550782554668094075963674222882996968175585292653679345576503183888455922832199254926536794026983435681309531350417349163177056397555705299657030882332252281242653389905923885910629717036029389966282182228417600351620923253030090049911489716661328743226762704654550612638674851932073739246078547350744408713776895057057779419636363757238074860571572962404669729703965832907988837133092165896589846626996252995854368563131627820856508926274533531485963357751137227441613935134561494474427631396808683086379450513082643622904525979569161768857279492887231785162508200903167352236227705686233897570346641528259451040166246380390083018553230648075128708188954823803002293437962240451755217354576218107683349742055942233881766885544252922795371414995643593892859018208639755654549073859064520058248010677637728035327820325950596901979175789073678955686853949930665296905186156190043625556391524742176453977709232368517864548851553176326680403770914543973136522966768990647106733393050006535136666064732070609893533319173585372707467581497922360948239548688211929680140525786806502403699445496857592815141344114247369611428061218264592406676088337149747281144859338079305994224093572162212181681864659597061135787971948849920708462818172507693201073071573532364088445272660445744899086102479646959955024204031662712598337760148308552272092253419907776667508150268749559302693665067327399857558804965785214415242716178024720664557104077694207921156234604699276292895557733589671450274686738948103206891511080613938861406436090373405629678880420730394262793886474710537999433364191212759437033279436553868638954347803466749226273037892918923648031498594205575399500057751269992092101166365909373251000413909776755319703091784720981533962626316711003348934324982417899587834482270976731073906515532550541725015659026003080905570776994620635558797340874052371846409332171796253136923124225225901475853962330854255177141286351153404185342451470477180834025074172358503994805628961776181318795838392902145316831950265807262900544798675331445477466778582422158212246487466787610956564284038429369433168876502917507358068004531342967466920119704759217522732561192839477224767516234736548846326099074712911385342440759157465682359615226509359749477724378584918141448942478644919808878477187376301614128202911065756020398587224104072895699317313620189505351586618875878254131640116253603397675583326329271397585676419027027158878937908878635171377353749831950753396219226957921885483948956188190513525224158429848522977965732104390433033248834779976703692786878681861030845414110116835324978222390602010195141993325147304456299542253275115404339565931410881063350273496672951078205337698429623101952846786796978568746554803701093035445683251327659162318934747797462275714238607306908052082541214966280537772144120547701378430967889792575303883569218480161716077019697415486078872064309683035869112831042534586250385535665499732799402481305356801507051165047188942766203178861361465573738642075703159628121304345725995519136751351919477077153473293599314381548973630854575117882462619456926447856312607392513062637235894047278814613191027832065432262971651410704544563690877005143365595884064614144923062287230925249183120934045578363484335746352868034958623817356308087218186651517913468512847140958779973476506607381265295653598382505667384135312375571210088382576013423535192307084191928763841637243474450300285334278667150186233488344747989717938682973380963434383939513878185701917933923102544150254986182566575061947315263477903916614649126013922271224130515990559621260940028993014604966700314023726889706284480719474454207604137829624811719503223538256761550982672364486079486722892697001479616723160178957918269526603266699297980025096699187833255714846159403416959708459146306312645594498540810407669430296603618397457063190503390078622517623656028331867683391348814509070149581487141068663331937884003971888954033304456842342252588168800814019769034741176755037021577898315771694637317282388783810452298368874408449806343734139657614724353780990698554499911157494645971987790766610722540376298671771174884557409475840313572740230269107727830494621229746000804727970385905667700820874781801134721178726544133531102534948630294106232398384104403159544447579010875574947733023863997837130125108157958662943149505984571497639012079052861596016766350898002199330266982329304436698363973271796229232039234733397252393232680834076204450923814735765083610186281506442630619002723450304343092027350035994302281701434779354308935581120192219384623946624007048892466146491166842594819150880761353430187426532167238598409695258404858407632691651384649370723688349640324769992890568446562631935094517132115499647451997532596278319148580331730142994057002924284013842166278068325118982882493089128856176377359418877132574982733148649189670359478247739682563633210149714865168342283691037073637405915810105356332159065119864059703968324472240443146696696322497047629104435434500209188725568396524279820002481734421514093847568348057498838291591175833556872548387226597758847472977890505788394237231094317625307951033329681929191161050280133554763595428305914202014915071861664191647951195077089582846931540747657194925571872290358201471751409943015279832465472425900950134176808425296024129613043407364731364649007025649225456744751070139697025243954970879110458186230142792344001680674584271141588013382805991949028201164983420162585936088820059021803557824940157315837694329986080724397090334435085449402816768060496804654032241377365592116147724848499616915401048705288544262881280746035894216664692903062801335406610197748560603267984375256297009783968044693422129611513037389435772746172252992944872114081232076617917001463208076624592312035266886534089036775792530636759533024869336651381080489630289722854915535760195057199263228287309281743631067847329003035670218161049419195679284608727249060182799520417221898546770731585030745611810787770776670631411716245963839114498674716023212178180403995058053445956399640271273830508812869259656218737316785578522154016475496589163020618040903570593119764727819050255356653840810421340483305636566618655312636657762171903707051745934643436216720047986740303839823584538280140491801268498195172587874640839766025450037301617282228519288921852631202532745038282337943079789525203224563602814423933984895404032701745123182512683792185294891302683927880772483415198913194431841972257314442506312224936991336119870291756105970432888232455219514411511566981945282063412713393139227746795096783829785765848489137884985716178446185207830202592319342621956258847337958898135370993089569753531360426378617581452266526228841603592027913043002312070315313009484493661417961745058362244304297814163573048384366815103255150566440970706166898645553657559343095707530678446454462234719399042336814632925491337689891766101794971400940469034065820316347307488852059873833665240267121448060033029341221031480145280115048618617408280257492252467760036325983538573673857130053477809236573909573127397822387277860331445766083166112072213351934133185730395361687270848554767418521650676318614052713077676271900889826396301180259125984877496294231101942627022500237050687852161189221798981717390244358882650870402347695269437544342255378646493994263196070360301736023679235380017649208064176420406115145089237554042857974405217818816062068046269924991604425411308561545826725186083428959754270056097246736570746618644690217105310213188844495406778114421516061280636787048371183308808202429722111313172185721684370107397753404649546761322152493817953557359807772475875118187101397790607420535356231873491901929050983599789811008848032240674061222888291751306837993782691835858648921518066206117140825924024185251573989267245966829339262062163708251455810883799551523805190674533277650888351442057988641219972611606518186780071600535380302263408459350507647968396613118060140520400237333145168994932758278434639283289883364585068027615671660309481899077001365602965657664312997504767888557029402581337717158503246494870872652422973839733795459115288077378600784773200825169090657043623823810564052377427217502743495901419382276091031732718076926339572276286195463806998955430702388903468057057047129948585858520977023350210212690889927000550411238838794647416926522033475475593554621974891136246913380623684490253211265357681624254769082924331459928019231743418484453506087858026926355297177358503399071842807745893824230487672945644355583176926398192544072267688112385359167932472527616220969009391100503293854611161355995154115342606731983973929239341310970939289924917008426922018578668749562355884995125093135120329177038464697852102760775683125879913430856241363789377950804876234695849319718615835173492137130663909650929098581475004351022926853965755406434983385570010018157832535046953665338841232048353483626132362940296223617655989958076356001574221845189393122404314870779928359617319005614470723625098580531136241827786491581701541884260216416046871695749494581721181041842377801694966494393946275571058941866024393840405407285748566084227765857667522889820044706388563952018815248158466151512097272303143595583557203560224562888919331211426420319416967333247923270053241711775060598230485236470971445709677853654082231985322525828352279517431228299280024801270853251086757114402220060273059818153060845100514239857998327215647688627093100440052795197385679068547975056743597622784468979956227699687732488420109521709921308423254522376191757269662924887142410165024912022746207929190789883707939992523687820727152073081452259661717162171952685397888347594984342763408322402399956018196024200253992171646443989001916139192212923910555470016793097721915339856644829566786790836499128931186113610154140887575110419230018887640966002682166064205575017931635150911463944239702735933265778931541607147508833045983694336673271947030256797917870521085273720377260914336822691101654790520459397188306690328953818457515862608753496401730505816492335698108379569506164872714713165103182484504146483746636062720757317063573891388201176254302780724677594997990223824898193721329185090204614972825719241664828578386860282961341803904198945610305552577466025536474748746653907660834124106099389189630231561379836084626885632880166373482155628373644719148292219803261796167659421001174508878649887082316524328418706124406374272376600245763129288891944452660874425550782581231699693937486241949918989586583837951498833191570413155208272022509110613174688781633539643867135450532364318562574450152503536551671374751066878522296809217405157497004111223461226109395560929621547382994210453064566453847309368655087654867644453093931000019092124068958470558026883834181033151757201707419883220272701662496748858020944500847294514124661920973110885389240834599988271352770018899887012313778756333504208590011142533071091683177669156575621386905620985766801766608705746896104754999216599443640726214140601913031632305160813713049533244458455338079793980943052754945405552818393977846579901133528925683722809614835112057020441468375107509321931431241747211041262452510712533596484925901068664834945752093188368825638332845992680305869882275290761426497241556395554274782683366087811123092704078123647127732620185487376772658260031997254888539581985565517091511319830305506202463085499268323686820238905038514648064705867616823331613943571177335256508771285140391969637002930368812863761364828365546108010444915835339036648627949924413332583754740267907735473155611723945703433637906352602128435522720494673538153105648081014738299527498840362460118535899294682807579734725069890949452038612450177565568164664751811677516992976532178096568138564963386918528347831002324160189247700638970048846669986210358128282117500246402298772137586318279513829397177371109078244914136415102147841225693812016815307515787620436243192137057060607832095497727660772922187227787114481419366766666334897485816905353262375504536668848645063169697875240572418426813678347593614177152625062548221906508936847703282599357742267296333309228060600889195710463223049251256232134737471813478946096533460984962101026541071663931976070156207985944132292586348253116118538523182328913668575616377366172449887634287780782232258041394598095972200896982832126852905123898748031898257518782862367672388754568008654725204025988253180894332119038873808588293179329913311426236316543796273851360356637735180564811097989786948857020395873820612996835981410486734698950356884481062050482746064256741130808704554865611751706719244566128886657633418603090602219533932334504787152072741138719610105790791291505501146233178520302282867958461869185303040621749849292350337768101543547898506714844199167781476925885247392585970195527767065511160654357169419616517899085702410320960863286076191398662540290728892810215640428090331922902837531160343088543923733373885868328905964046305102972345394865853025096287913403442949114383684100028368437472800068541520361652525202883768166347745420615482762109911893345853278559772088589392940600873088837555978610193167540706828844067870990683356391816036536028665131402358992875997557104798794795219010371629924466025381943298067818247417883059961915330916304993092291412719216507717622866282286047742299814466962507805678964718953864965364635643412655796333027888816115422700347504802829037863499900501112963940352188459878100360687910662906201076655770591849087722510024524220240426278168088342905383494527120564573456368177973472159596409477955925867682993929990635916227677232960040620495471832776293273141123694546910347024084604879171334041110580557461764567560089503427130358608711197966114634466542011592924418397243217117793146365731269468976842138437679933586968810167810081903780186942314035400505881273493376271616130423441871074713612936886185005237743519966998286741589375064528234611899453246184954985782514164815193413488497535768935531192803569422111340807365494340415316795318893755977449943183589919486720732044216677632659401860927618688876388711242212009860340014455795605651805192674261396023727972456420406123631500148356123855837043003912609083435211683896449772124182256214226686873483669149284540111659551817627930468658158702526216047508912941558637760058300997157138972284659262038546286851885673658331898043494521365487212798921303843666512667812632445938074565202516178586638814314800875117363685657443371346636532300843795969150160673279426260539680504975618117526650331275275031729436087249438584711302796763857356887167451216459349547962745711096568173769542647082042919098623815152796100354471884754024350944459106280931292038549025885616052576140152894284308390914047766442647201444362815497940264590527942550404593670513787649761091455128340938725515786227234623506660040524160181238623586251027373972833708015033149420197266283150789714343618820720586136954593164340773496739152496604404620481733305902750956447149022109419370250812078987774755877953643623937762133032671435395755394733358644191497386567022175311238587148841118887154591160144996442235743869486007626417703773619489570218133798479556467684148108724121191581083821755498035848400250245217679782744175220311540940917883308642778973519118840462911602682879553329575560298535982428582470297926966999223686892400661814165742863847059827280238842756865759194409379929032243786219570496944246627031855240944730170616919155353536796548544640037793488737908445214559801637647374444230308101950266236507945101141326306091572028950000837519823434125493427279268269736120391832413296121384796240500747386541496357326474692201039121107796152515691369456769642362808447015880690350424393734449529443170457395965005382151136437063851037209535621232915103890655232389154680707394477451585910810223528932748263991608600596770869654863051390558230162668444677475054381113442337337903558886711875744722040330668891289767589624007259964431638160870629442232926389129844588637185668749910499890540937261083568846171766414746552102855597671603560544168493451855221452953259438184001695830865079672080553475076861156346859117387789589745684808564867722309801172393172620883900241998437258070572216974059084646568852072032815646242596897339501103566803129223903054445748458171002299058301900483618920008286419868646158927968537306554893510669062059599981849306543416724933731455510176268855101073094878640516264818963339731965697502917103898257446356308932133812924748205101117146802913361527731164204398003819337339568053184331201253694686301728070919756814626573440315050538167967086634972829753426818778948587379522698154357422648888761925075148892570696872599627774934272784815777720907598033051145457993800850643736946723329436321468818934661804330333634031462568108142350341968710773321576625934627117286345672385361164314303758223605278953642231945535694373564614826501194742534815697894304049617175654931274198747028414206724955239766088465170696237480314446263091035192612891910967090450441668191815227665026868570880469947490335546125151971243667549183794008290927861677403183443098827808376890404145310269215687083723120760970445845826602671746187632712429275225250465561499209611432777958187999914421607080261368122179255470466637744564309791245114951641449240876585739855512320263075162184267622358769657508099800239919735167528295461244714887041003762031426362319814947451918499585994434329715916833984594370926940911002742499292849833167561543701441306135365042047063175293923118366345170604779849852714244862511345969147313925898198264426327308711928485781812049440108661851227079531774176416866710094276036450642975482551268336783852183942826689882947319744245716499548308032274785124729838275696561853098994553969429334899775464137875957742273873155614290330606687141985319651456617024845791791643997452344953368682660856290964090182226255465958429881784001848668379014583850196474817274043607312015636565693004461893051188664980239743723302539471421740353371903144057416784635731367988160202450330871621222271234086811238792115504876383813188979800373747299478045078723583835005711398171874009219177576911259440968763111212257590587802815899852726540032400690441224980356448517585935427121093955151617846627210777014261131590459148842299387003359135667776449156778427398133422840448559206193563424369977836625479100706751600631942007685530048999583558026773501764938435558148154455063136287567107211198625777642503965895398687332093829204135207415945349326169483624623934846563463950766495064813535010510184881446853363249189231446820029983530329109756656010379700515127258968544462859613226993260160675983597160556407916492564488096530008507757426228772141361596787327728395608974727797977780737289193041212274186548010603169565991580482394923580547679218520293017220277170901103429520459410867201598904303834944947487592822464225374620876144732438563429005173848767121796644335927798406629724039401232949189533659678383982401145645663437151793103430693443669377239294059267057861164032763533357583870096210601086638743824836303357901275118844522063487585343137419292206870080257650472287442982188885132065387588753903834514418862939505955391853204482128746397102311788831902607457321999743365217361627287888590392775508345151734581173980022942764414694921001340298105768583473373583224669893556570990515367376234894704938998884395698429987304285704457007682534412234481908143047473857185619699706743265718042496255324293978765701901014855525213722730910519148349963351580486166203388000621323005874871650384617052090016450071737704177527222656595301245212166461664689941082888380726045548522038381323480136374209016306405873428873842583036167676505372431079148506161644130104637972218027419214268254600326989194236176864387111320429685466624321627554928091549682807792800436604168750076529832255358624522442429158881821242206560530831973813092140938964245257417508346819324710668292344925126012052243463196019110224745560845472532554986897508559523324001823261437363391461867881991279667548769762472925460810470058960846223698671409863104798976293286926770746336916268179428559376252601625696224859822653480542821532396342216135198062840734765336296989157568624008284623928075426561863465169778716956015226786061610882271775890873962238649257338827485063906072240741887148725263043320621894153667027596182391616402913077037816116805519628991819576970920294301607056457248483356515087598395235942256086738695344870338897974620805604442174177468395788357815269098355946206208024711088224819466148859122830982120832049929084475888586020951077169045723183789286161699356440936047699269919353911209830325287450764353076829035589944308262964856841295005647109675065575036705554047519982966724280968089258750761972003028600979555498675487327192647323826363052850334768748713713984583074935301051774184131233870558226906155636889797111595467179745711133630164179888270858809951450475178686849334438254089612575340592472164036100324868723141198930373530485033044501783699272195359571635963196521230211641612771496075730907978381152254274824311105860769620447739102698179369362949646725367836224961902933819422139701248382243579907905686179763888676750081080215052301094738423079587084887734130045639373493635086115527944437950913106631532452580966086431424615888095219484874798825090083076042000000548392300413558487403978241522392949245482532616192235365325792864498371731355897827288545263098781907990201829094773314435497111037492566179170852492499657290029263418100836767384775663553745989658320671616413634212611113849665674738978979625284405428000222988375648059087130248657819939011878955874637661851383196577809353389989274345035484595363728282731058069938334367880427764589426490672343363031431422069113154883604029865860955725533216546362889532509582267047971450029713488363596062487854676403837725941553684774411890629460197131213038491109022213216843594465374923950893971795425539492135511258018392505154425072844850331809359232027603588763398785066422335676014222537638995161149218443433108967397419743646494732539281990771762830726342041901803685297015261753210812922084984088613600581318968116720087410156282823409657006738785102738513331343368552920932045361494609398488548104706031980072878561028804860380524147816753778887446078964988852578118862387974723020327961299380814792965379978693381251681361701339475524799573024838751412987102375578531515652060074211339582244290394974150123570205648409065501072036802663976109091362334381300915734737239423285332396898297782098899299545318097349383321419938882278615108794799465045257324303730444199256536969730483948754102312443081323546187038593468947244906633161949817392874830407378313639094630356473940334838719866012612193456015601138768384139101760990030267578165450752922839315344738402157768098780334623581232236022894083660333719408643897409096938214426501016265481852997565757503036748301972781024608069377569443591256648366975052961022966878925152079711537160559436976474348180457866541492225270265928645580864577455583877936461502772075451991920917056056846089201882036529199899664525846934369520096054188609281461495880159055497338118354582605411473166438466259663688002978970947242099676459218762392451944262808752938705302651519126402932625161813017349469418730031243556283067338593170683728365734312508573165066872302396211303984467875875350178589417632458364934230619962857400425739474105264279645607925982889014018371637880718300564796599063410534996661054640356942120585746895930511205927545594050908807099307856291840543491306357486522102940243798894230440179997123603464754724661337644156217010419874128884462606677501326161825142128882146013667207566742088488233045368707945430278442827217846262981777128728880654184943453588139875560840859359787356664116519636776911817034113703667439528668296478289086290310078805633295474014170241086656019083091994549291068988119178955080067528470116993239194252946109656227647795797866615725724706384219412290110449566856378369668331478199724941196103634459240008510262244669611463148720259773323986346684460257621264566790409147666718390193950440930894609646816139497803317085569850731529967516217351415370872851168136477553313788599495781640423006337361727469585790364089595227358138877300129198831435510890743237245263958357237574181198844305362662235814452461778668075695720213301223323028610312044649252015083640288586908287865465200676889371119310510355146152058641670664354914914144947394981591448370283791731792457518306636226988686202946731155058933506842082897681974509677093971668130871184633923045028865804151680021681850582669953132599825007059734434531983057814237868928038993764634373111684555459746171905822808921450303220583942430666660709559537185268580451122128532756123924707624311357094450191154071128277310626501875028221492695788320592969693524332264237327415517804448891577578749137539618907606637876838703172875035615826624049020805841825236437168270429758011813675657577276721755852813168653576361371713002538511032323012245852229051969785050857256771059321307293644308394422547893957537912573239552708391234659599573318421841237984319507283018670595981974590901955502852223496490503562519261093572023492695836954203839636225725544741862037594626086603588438599774588895820488004930846718456261141212063181588781183867402520667544708230275080129834512780043795034466177746910848911159213493746372481389872373986283311518243924367499591280283453922339575730046728307726409922377554058978248796575211276082212743741351718917335311687881725434449705701498708426235014370535004050587885495362508317462126530917983124666543715179184054314457262561836210125303865058348567926171040017070933902028770548133049768375856121524994184314933981576550451079671580518624110866466943598885266863099385992684830259894952983789040465001005821674134480170815554947228569862837566031323537223050991376000555102771423168367628624108636556693463820154397363992873204041546313154135415573956937624457421893498332736174250583109855184798514311207560285032132726009573835867032876110138004405731991364982404069263906352860593105342727052258734907448228368094324816132154146431721058864714406320807217841576101776086985961076406693640992237606440811732661032183275798571232508930884035331795179692910851406173255529134373069523086179834920648114940972710230569378125491268593733216586638359821318834490470983693529087576939360783242070734294764953219590327554991461569750548736262555257628801759065974416009705458862065890093165555392771773408120828961471889349786963268044352266292992689685439427203991127288816671165648615035750684773401558318448036888725232982579806419795270464443124418448512785848290576730784704368518145457244535317686487136945037507637633016488874993315185295222823807365569483553610902321682845463476362257780829073575306013068722614586910088596383238417614841084450128459649387350127190142867042986099354626005682219572260427993614897320189372053860944752630258884566061797240644812860160814562144256006553655583905787866492307395379628921957253859826230825802419251205246531779918151374339462987096811947078332288316127478046917264498151813332671697993614428963431442576980969914994841240375650901903075663503627875308164008603820346587060896406356920790489825338907426121444264514901037920131632235598815273136830044145508091614240344557205973244217370427120442129254010972558411293416107503369598229116667750616793377797120834063013389761824402170278165506117573601512294309610854388989166958126816369858704471184933556702025202038275988583306628623177311333679245188246341996798301160818945316034145177037991716915430817048524471782975336802665046865008058681404084109671275426685687948112917498580297748481732690695157667685838284123173476409191364683022772443731112668367733459436001620666816978770190214327138728671312605154230850812416171318836345820035954854724653140840210543331214945825263125385109236585862215696053799654716454650512967174570133796339370584562014193170598518316562728136157632237672269761993426575569587784576362331280585425847159816688613588296550631962070312410309738547393828429861979795907717387840783537046763563505151743080887429381626802216530005468964686342333878975533312959996603097657008801774530073031211607649901480817129481003294245233691396675537395175278106023615633764676331805223685307649401356773849576448004235153306055962692485766812284547607196013368744891199100009393031948840247651011133535772743111938887828259801449967288614763095635771373927650431272006199088658030644622303193071503775381065072110070070425610806055644558296037684742082886130293010291653288769637038925814013274200498844040575186694504922189575952847840202075171089915280273941304445736048247713276765835858648290727010190185689153922426526627644669428478759280369980115020431746075444390073255229600689430718333275674735125914198388910666596828911517190649524729728157317434076369463335455090439735430094117836119388789160897620551261237302804950325224974443852929575525971174840778049265598533980472564052140777945815398192575927761780338803089527463969380151434378512431406005980913715845649306278921067188275191634888209088603151013359201362042804099009387404635663629578016585378493781121530918217459224610633761904905037013160471817126756785195859939931108867137796449095119499676271702466981486920483617737604834045374113194792840435003083226421370163047574891490569594271422573905031348797494448536435078993816635760178634560228830481344529963314626395533463970151602572380545539227479373138527698018780925544542578414520581937305952589442653895671809194462732318112081478960158064073216408393422321736173871326041810301014383714570746923293048323621885481773058301068059600720338417766888139242735865670249157607661182121821627709859314012145913490141336716475389408608076553999018592986601601597387596196024055062201961537592831458556284307602569672115385529177744893670191899254575577262467435740370589555375428659751535132639428465068905842583492946418830654104615800964693289839486867949894657481970244864349878745619132101173100694453632848648340848327663998477258137947259485376837871584183421830285679732220986105361757212406599100626488021636584702274610885141179477342579255581406820762745534740651815611668921752826636434704520035882786702112588518053838189418857357043261259445989387733759386555232121661765810518566707738206094909330996881459687455262451508263250841919333083359107229865896700330698788611456329237609762532827027642957959138903069542611106495634283084428868165296952847607150686994919931963767847641021975005995453751542773538321872060815686827781553410044391993886563003945994379885746022586103260286874680329106230737275817041629654273999693709169159931653130207539737287685402386128148369984270017007496174617763515050904620097331304387529976554678265057038116793158901547628582841332136504506100047723674035472222952835796750097623947834754215718421863915701876377196680518190420372617416546576303037873625234410096476660605894874241990956165916533177096796449353607121338615180746457541163181714545619434140817423485286029981164665239510010298505911238747675371501420329368516575976998616856450910424971993834442722955544749042482920590832461270961917781337756117815541926178139678888308041183198963715698506242576569839924845006962116744285426491117757216469647633543686672869694285432378859005645777544411911736751084313089752683249153685378475647956756982415819693000843884989171159379496877017549687059860766043504264197479789997570500151842352847305172982778364358280975520383460955025564874812542255818878218074360217683308843742359436835078481240810484872171049064688159120662817551613906501812872338022641678313413201790138361086716486336522793250248259438811875717099357477937328409352286195121701657713931654223376128953724610051134343568220574598373976471416771985101179908086606341005251109600254912231317513540657088103175631553110635901786067086330863290316206044666085226990268656351562770689610035899628077691682454566040620401081250379309385890447235279578791868376343996256475509120378878407366919289182728991048238538737947189044057695326983321624976619892439950281332247929058737798785152497633154795737142626964102708360909108550988766090331773517893750024883500776123100831817474749069010511985172917655018488142741236991111954183016023621808850569742420827677697054379320574124068914555127406737596891558897549487582589381646759835742634492234759766325218822847303772384878972124448416384118103183597090615991262385022781161218187588740227708749133321494504761666890900547772008051091328112279894765156662584837041612186870177988088367097299917958478810198079639393773158587648709252410783355298695202354763720631329760044797091237159142973560391443964581723660944174078179093427787447475772680162126210896766233513066737485304485804694911426171867438318850934927138698540538257902280917455087340609818195140823322527004935594556919982425084333995546563125418247077184674422830553871546481311869450778266491862727846331209046234578181431723663954241538889865209066067903272216174092247382849017641427122314034459511566314709481832474210225396131639494086690490844414333943938773679656870741917056031724257216333883027114378114200638335686803928954784961389853975458217432710752825307946089162805965296161346981297940588246967545247671832538455594881691890190166997202225044345508861911323442198064603339030545561426601794523928762228278183029013394178682259344321959773983376172867698468509610292513430791659357561879858912796527287544979501906079166789058536241515376310274189768010256917245032832332259733076007208778572710170968032844920176288443322999012280904872734897250134214822256087250377917675637777746276303971239876283780481920082556342504362934898869949256696711823011059384882510738630780797877652595239091779816105877730023654923327872281640695955064635906852207563955273781046660416384738764769993025550465940796157299201235894301993218186223802438141107960123977130887119534426487270415145069887638833906724910084439850103264891912019351734942323802091487147045978786215937506442062913373043495880856817859816083792053665947374126803420500822535839844394522571223825190797390541759231029060174722021183343424609734098886732372823819756546743912487419441014390186341575235907498393638756996459456452740357150270938249137532428783988596145821561420835742639331363441505595101005282940487674911350549075834692568443133009570293874213177003253636263285990906999758867571607036690650536339418938926698062486654604580983212151869127487302641675014277670082547823109000616520258209674611474525082230060231041222971093056249158849432002322326320887146091590045630775668435579125557226316237934255679176800029666978783590009975583570162671154925302565192310076479989949212788336907080814787709977602555301863203004312074013234923952034859548529349867167310761198148032484416540541397771837317667499056666136852394160835448880969813146240973884788720357394979255383302066838878029595209270800424619699160110405570035172979639844130235308935008841610973043831815841845610992154550084545620141698460965393357116674492676187318683105569862122498344772760834139546273370529396811408701118501961039076433294186702333080135000400422395155697453630326059278693454409871796064951223967135519348782001768117602679423995468959497978249725348949518892279610314677092561762745674346069495032248383048589305619791887694428619681204346547248661664331117606650144817529865718174435354942015192833818190515242505785771484730531164084408064610111710442051854261381832573185950576134745802889281427048741058734959710842468820422009868373101458038683964533434872566168938971902330380851810286300491109204576176449517478304780448499244722435366631391952338961921469336592476875578807300166158830026592807712706883209027162285081547566745638984246872925442260294281219916540434148885715958003208794592535832640103826628527158377769316839319902660693997657155136960837107486590481046323388868977111515128284288249835838603257092199087938676929995915108444307783545121072830636427567143596045835109059334281049161175154420168463046664236328367355028488714477725062758012016360145820057973670915688620498475007436020048169141615226594432603081180574161213697682783044548191147632642685161101556461342745037397865683132924934092979343934988402719405667768589422480550532654491128030911558211124680089638455087617545812682838518784816627646715701472592625319514752283421366317041578777089065625033887951428610020346786761962327229664653303414646936054587673246000159325355457757104451697450172703533879010541826171499782278142563353197516653695570306484222812913257850162312883756293980052342832827402740578499490288224507539938432699429849923003949325051277379462527857593182905642578551658834072270464107799677759956108082948415835568673137465841937881718930176828767557951163419484876196437294084808440126414222645536505359523403058740881020953889461656578148802188176660940968741774414469846264435687609064762050849756664756411035569465417408127862147585546456799724503809644782872512791603622685918978164917244012381787683862986843865884377923523877696364198921375648083771284464795335932984709616628937084802700826575000376395543891696430528465705343951150087678878013451319318832877245810861960192672867709481030437218771360591522641829243672750481218239972244393221706709729164452837130836626493370429918483661253906608517657646259828461415193109874988203540035760266522539921986144618419925194257994386262376028223518001951698216699708618665249758657140243958645933324808426012085577177010843656954872171524156591039647390499028106150486622490980622538434472470082507912129845005511667943601402578845635808893533544542223550040176335191687951936384811599618573393006177885193360575679146704914397200500876874806697611974689433662371839193866685092905154965084004245771861463273711156889380819036989462034284292373701610915977350378473712781551855740039863194025409565539437282919351595031941562438646276794259249243488893642975699841963593976624223497759055102360124982627013305305609938328314397967734173046428774164207336908865877246030111893684752285542482427203822042153469408957727452054851814885120629851491182550392925820964372033527760287693761215891083570467011313876872924349656564763136374948269556457366230834619218333126879746650954953231070233701720035964361466069885639729492763170078582456160791803984761159894654886231569724378778879350274480130662997643458519291363143531626754293892395968602530020569790391601034517946928131744593356464323064397927360519005470329939278310748888332291292266745223066768386649803399939788627664065505606630706908993041289957408824920467752728367797640663904172114982150814867853622997286947407279240039931141085258156756980865362152608194348179106066594157715634778731622672650191715290568943283076868553565474497168072933982154237569710472475748623840890004595080470625807193398896201657623483678530654305922270717020198918093291201067015029990272215119490338897901407730892361385563707263219408223808133274142065508172942189607134069651713628611644764676376427795299356474376568920579938462812240929162920700024688836534337269950232855347676749603327777984760800734633757661450521839543906988815897182491153385209700584252987819084545760574622220930142414988857200917518845457190280288107614827553097659759372743240066122290338502838767729277576397286146069412389885264367195436979165787293805521291366572746338011890213143481153653959147188537450460873106257917536236277002066842371097382530871286906129182631888423248641340762825811416489381233986571497833000637558156948141832020787200296263620801768318226471680768999901819339412399749494548630911599006661145200591710684613360419501704355886934712563758212241139502225014603850857440560507910739499356220635912809868006769256974996621527325885631033349222673686941049641322894821681102113804163988777398615391813359377585267941187764455994589142465709844868930521356378221600200323188223004283154410945577580050056475641196928893288360682922045454447745581254840508032569099938937573312115398797167428469518866041666053095699868310502283879884383335289897288242785198742020101409720254997889840280295284037443669448153795553657485308494321552218234515876788262305189243181731081310079271513181923301602656232734010187943306204109978392525082470065213723154008333477799723859988319700004324644496901839944346844892713584187571298313414078209816800019308903764593561580967880540156894441075614362875237463698910780190973053940381558923681818003299865209183521155533869508751286158390519404356229213699232198864518222921334756866753577918347970847686068292772220869919371824141069904182650571486791385123106009189632995829736898312335006967444172765509809748316919563710598872716752994094199908787448486500699123671938879896218998496291526709120157276763090412266511141748951359122678385272359509026992388942987179053189032170418490691265804450259425950755773481013220152867862526171355594710315897947202602177309805338765093995163025698960878504758858703432673869577917096652036915307444377868892002069223126999958692486571990550839079231080409172058711699423051604594036064091731704122371701760765121315592078947074046788340534947920340065820227413907446026520182965790964507711325740366499583804590863693188225741882394405844662405284935965139754714400018390632556763959657791012082140547877509047180523340180142140331165679832587139511371441720014573487092859468264780785500059980311552164155945570091227927272498610730678210519254718579672969126393703470596483188884373448071309454247567908355339379417555235987321078462046162249393142972287869256395584445124443325658247756277640560602738183004389293568520621198031038003989841837853128393994091376095452787497472554907866305254379013704266639092408633296854389545953305176481279480238370062637401237566550259277248799957641529567640908991316281582632445988014317301355722846091471053514063094126195846740694533391121437956790252667875626175305998529262098735700377671165097412694874894720296484402977290327207743708077715214500304857261321491380820853469046186305182817556612357530101800841397312867341231990270244584900198340332382141698767155277844701390071629485190984670026277517156079938466818138593325097656045235011882328234977742372400090064897662388937138067420448951930599144167691599692195799084290787409467831883558005574776617429183572478640306012955225982250699823100759114554296005546228177921695329409034360128845736853700150998221193040730246268970564284700453067600437112460825125960967925510997800236658065556668471865743046884352346784731419384339589250589781872067415096897738192695415151064509230211213640523995431982783274037630959625380935320143921843206127424895387096873489528386270940438984067884867335797945409811483452198592504048270362581119418552637322639417552054671598609474483149718321852890164107631560272203068437947665583665439253930857023151781662073517127935643747717595342902275865818629673271776519994796367818875182106880738216143022351070553833898474773885342454774178186567460363568178021806327961321043268158255625789543223520526528950938560766864137966334619007871358755833889050499916603443530622237219918359879623823770774977937782431818179246219504222372449980798022997719585879506005155785675948646249997130308163893108764845524098649930282345167458827713750664662303122474044477852468582332898863574415334335327648672175438743204769345278417750728073087139142770496765446738335585216089208696707391250523583949077844111132913191337622226783983643241785708466821426841490725616921551765580771745908396092294792008028773557791509507830282208198087938108893744379897488727393062450450117596348354358054512848222383547009798406492829337712177419695133000688570026101841687685046155840764953634543693663819426671229640163585285218950625959292840502134776467320434777548665909711247109844127908833863543447527389519186708628003264851308872027637280035741818354397230370113038436996837899824315313709227701400886833429576570524686767274513633213737419265180261254033631675511188001263331677233819609415365440806952907121262576044428428690319738693169278851552520843169228748745352933012544700652507971922576410431830079004343408779856474768456380487161588280117971117924297940761807678119272710935920849647416415427389540210701032352192688913671945794167199788471470490568659546605268648701040244140723952598828039995306896033291400568204041506888285565763054000372622876307508849276414862121439024953337807604574340348085412428661267154219170697787449579063593577407863199781851250883822361361885806241351783994986914049939130482229183766590487075377413490099629036292699747790518399841371659779869649995643425197437695740986637582639811991726294641788392081906950725761841920184434045701595385326267013911045784245920233723414881279752541311161333969775293046898841388500675725131242511706734496804804588789758165450768865409488917775565902409218662560970106358352009812282149451418309385634324521607615340287081577587129294963091084998864107580968208749241636392389744689046514020678272497500602313640737332947235742189910425012237489046093022592475539768257014770331922584405143311607618578110629991455639424166089439423597705188777493499030579758512985166688538063942888722206501927801480910114802126322929198506911529089230668478748334812895657952447823998483997433962395142932937370258775325767108691840053516881555427700737380289038772926274489738040301073864645832053754545960540310410506165413588071932798521958448848556894620110975997337698000696230076620863111853300708594180068363673147653308339941240317232324400535152739154907306826084860223491221955830703820495365332576491087114350014496923572780168554819015447871983369542840649871868124836658106867528619399728783179657128731135377115239237040056904001226661830093666121397777188618263045502074058539845524438453587205895833192541748370463985423001665709802418547272368403157724029497381923301311665995667048315293423652321501210051521518932228555035746280467988330616556012113623440415861507331509765873110266416349095991791267443743879838511680728708497118397926712210320899750872652958581714579164047587323239448814708201200139784464231135821180531611292609883377958467598342036485845084924921548199699899707467068518721533131647218685148167547710805772846748543177266504543377979047240205857333232257944080245315998756423881525936788694586160527623075840772482124966013766531252470421480702497358849941028371879609941451634852626834396634878274086567623210019632433934938750973935576500286614920435856061267715578730419466932698927701255838998855260296185875093321402442141069761666621301676134423730013312524877093641882721217169892538599868770247530981529228433320849535911248081602568349098295540069736274191356192744771864045662157808237758521266950499770160277621038051991991483634916574289245902014602154250439423821059577506771375864126719966170344775554242356895708118863889427089717505909921341630134149857557840604474039231321544348307199665663878194955954479357009484262970569922305240585886235294342589875463954152399446640219790747643583114074975646654638220988554788180421036586832833374537935311560261573866188980781368706399857909151954564675013820979002440145667857040343656371990580534646751522634768195069964221803002994088768777294298601906769172462399003775430137245543122878379864483198107828683973996059348397095448058538794473082745841276598337049528761520710693105538340553498264081514459741726989007347620829957894575936086328172839781526209995504664813881047069777085590044717297201534909205624459251254532107460756104114662553757206896163389285164023371265642630487076134414288354964656979274342951756216841874714005809180660353211914618007394156791613197823585994092395168515271810883112877832570011367036861351015954415808091016172367901727308357623485698068481711263443975308260127886660031136288302265858106431577112240445364752092122032218517114610440773739985897106725832115079270214148987099442472792539635404270232357615767902446584938935654714854448416916222745338775336198378606151204354459520221680245706713920350645823826536948236399975771018564236141375221503121438636055562452266972843622773017444569681203929921529212985374715242801637465553634453073627583480151709851756152346389164275587593926781218976828588743030095247933481937340117506869254599600170304528044881641033046361096204717772197288736584901240155530148914542819647699687818377651668562222695927064519472415806999342699668284479960792898110186942742059944100248188433452932842405823404978687527702943657387197836278938129218566452345377536813293533154978512076002723008119526395177829166367828498252520906413278650566947126748967342857943421976830741210712706705840239525383295838916258581841650453223734934268112100989546807138083706155143304670573613551252960909719394539472109331042501401711517062299715164771954667924381392234633747961524820436244656957816158909646781663871769741762224315872311137810306161340933687982403296802935431099349409251148370410522624220278556688373018198990473090666587322414957422395685026466252607486212372884960980806706140724201536926795598725194927027304581937466854772778120280495651175314989196449240663880511253211654074399964123513590849708591203987336855934459700320149758117157424921252157774089340178767255147269598682332389038357024124789734074855520057434239820814632683897309726767614578424773576438047212321793772889976451461802101879940339507535365296131627491061947628552392761649673466232278432909586170571229238662781946623094821286879614243045045666503343818048720909168912261147216902209365281235245358392952263851554477804597413136955925768788180035086146328961684949275524513179465580543087063471475080961443551747236745250751031696047967125329441277351127536284030927105697391354770881107894558955425750901086095863813028906904073277754384542630922319502901902657773104927987477529532746568854497986920741521562047982507269565454342939200522126974697222926030935093702336299432343204154825115548385503361419474547309306133519303735383315278185361665116562787693156421422350744942836991783993055504124968234629007591649298216845722585965912508500843721022063309601418407561649717261155104923006673002043627638859508227720604297265338379526295403672671866682079836091817423141537339140648902659693498327141319161830467278394065422387698521018448043063079635590018921470437809585178050435867837524838611055834376454238562853704774218451455913439926193421462140917179326910144400677311198360974378137797546779589183919401789415891943197692299162310409823137197203232243600789700588720353153026931035840539346714634451813897400765411449619028135578513334878138289950364277722876457167752233883950820747473643767992998647060574739830738146789206762404535508368924154611547132590818835075665966635390257030077076821808051855724953444768433234395012229551484491841545767641081682890376084204900737427354754786413176008509720163275671263974547334816948709922903595837077350624621406473378167880085318401941113368508087635765430194095696843720050383699802607545035304230341796416375407372621984166164648114799668179207330122280667463095898111871563699742678427288474260110649911291863446733106567632449636117850079844057624684358866727472407537137788095524199530653976827160918852543823186774892471575504528405959602909377334542222861011107232296474820107852618611002712201757565395142754534154674736987021361518138121593904940054511707910692192373255382662354899133061511085056873824876566675321106335719977548017083801801268557819688050519119506988028742788516568336051139029156464017830717152804863127158839118168461937117518138244186956083378835786592412440900303541981877542273612896355105951351155181763324912547965347344020363643455428766487241250291790544528744846080383348085805227456329059893945714400652862175752484475904191643245298920294154279433541627521283081716405688854500587389328539163273890662288136083940444415970431502630147787574559298742494694142872230542364269226166335271354876968392313866933825610879069221388815938637207441333918778750623878625254911406757761781810376005375770766650787465395420123702661911487783948007338089310027873661302497199000191336952135567832208363690616021919574629669163374949173129392811878330826444422244100229576307153097638728696522063228536494048248684228303014851763045444461893456251464297741504792024998560396878391998135802019718684222606673679289323496719491702964790731064042205859820430442831368973115549437550370885910277786717332190540075471502450163591266906331442348796128534366045310658334098253356162480687811083985184346386596107525907790176407050899685554612847669974685049741691551914327058809743203953384796724801135556649971550333402338971904420024007930696371113528502877852720634203447632001447673461367692733155973958255515592000956513029655427427400642936251167720236948769274818916621602184735813560974012497995173792687620403988248778274394287370417102639889026081280409240935926478984519899568990792796326953216533363019475856541431839049748466280544189092072052560800237251166585530602177046473596315886307248897679943396538870503513257018098254904672303945548831944027801494630580836756556740757662428597416779420898993403643703151307446081179898034903577865599378089302089876242619846629916158027103824152308747022742858097037508225521678862831564413328943869042515718800786940445769404205061211841891984745660812475111617296470638060232755275352012943173716454536160434903207485717115632461443571656251670855691470463479468698913808038778471928944531619512415932217388874101329103944132139828152987942307928517731750476588278365899773075307865344977346633768973384566800305444844519063964898247206010747673314308343716326317162682568834055455213840128088303491117293990705354377960361165551447442439182163124391384801574953800165825795407708262553352540021495906392149744501634367618044057903292879328510461089977863336009867580946227695115074852729826227405840601909812301126061626475816690659234014911579427011065993612676834606177415530116031400377062773582931906722210155644496073994592564823985259402491217544873387178042397899713845696237673324796160736272987592293922967310431417657521051094561617375481739233108995588115237043101642091914484675761481595668028179105923515416529007678609809861329025141784430085473238224817553440220941865373883780810571814384531959757543976991205244225832643854223494047091123786995626778363431884074906500358197154160560778474660635109368912150470248982743682179819396615662644193063808603734169213178003824150183704184154148441218655902151001588703029513400690699389625941085308722816562915796150452634979415537158356226356097322180599821843086184943446005159827457839681428240673849129542031402303064295965036535267592035771645923464843900161437252237105437153985529646997177066590508719144227784557206977697869469736334394663307909395943101631607177616372793197693760645926892791302554577134636686557982246096171528363113296888431111324744859617631195589814852160131551195322099249879465899893185659058622200906896432599620655949763088443521589087662574391693683147900047174267649529311698464633262611463469690529203670076601415738958169999699494410801334244284430100011190934258890955028482513574937283839788312470563992464794836040710220770298837864347383823790251467813879068932548827472558927319158186973252915884083566252533402813265266143491902947623305176858851141458952625808349763398343316762283344892054371164216485513258199462450357402403210661146170694414898654332419036729391222574091852798438657695620665440179070307092760836171342650824637612815725575687828450455597788252366404039518889245790407528794094101218724268030022735410906209131698255452431901255413256356418465365099958823240455464688237482221128118432791873033755397289405577906364774776234287370423383596010302483079735760052855257897006629875928129121244472108134314138910017904093583356762470064456860249626870948395963902951862235105579262862927412347814290572145097891719441433456824709630614821768827885590699770918952112837860030727709784614365313363962766744091013683997175329081475881836030312518271479775130393313060681183305457481211416128943946209827371213883397882164727902191540034161477835938133737946225782793557026378160421851806357626512960556998068246594626777254593394184053932542311050329591184484139330249702397797862837078036608188388099206424821536608339038702543121746286910958915148460718295612869015956498849546787550123079441619421213719420253539360355841035798050929950000782047818579495830411595647317463362110034013589580409300448551188603171691264134084686077221766820337870777345411024871120911020611286532594884843726827872787615875711589104790079079454121707727702968095516450777379368550902575908798660523372417627529612056333428802212886280672135721259357744667698307399255692363201366734614603072541297882632123644917848952236328777202369081588500087639460792676156589384066946257053282615525579948075700097890121609150893029375747270188394957890441117053874697654784495319223706266063412002969874567021428453473053378526398081452893619706507588035419954240646099402226148143112537479294268861107042653274215293825498583445096171118019849522012040421866084012792321058181415438367779183476973606530536102176696475097635166719680795043226512147239378502669366860961443588749932699507221713897679979241784845494434267942204773515275231067619196059181183467697931614017176548582427520765394024143378668246231442698493936362954568479530118301368731985422873866857050823030207331906590163041717773951769995957960384810489926808206053828359681905843485660949660494369107252721573965249419859294403515887349923033990822550437494746165470477450402923703079673712211197959645686422231510269310563749142105679446154029646076473887717838326495713277721261881379999168163502315689470716322897497826899799939849722430504209510552913261875678394962713360930883026036165324554631043761691082945037780958187440506958679490700389272381306159507809781799178911993585883009274739583540917905515698586752909641715248783907489162375335704466557798646353725004903487686601935677947804348456545011738688084775443199651396141584680111109558687552601094216981757297899786528571029279696877418372458386540481675156336210622306602465110132258593254025441921842943206919172991485577502912720143424804546980218892709402878607908668875110586835661940454304628732366515008747648383247288537671720687290684489773021222302359220656669912180972321222216568647880194071793650052994970007738668706110333208222102914734519442703575993229909474193807406502511284945044375871176588583821564528264561053475477189276202960811752452284063953250522126751103335566806736939695817668255764051208043115312014098546857735103259941062075271064756699917582785459838562168005807692458373229074361913958951465889254391522873299254391629462725864128621653529016503860359348329880545512232442994329636720229415858641876348897926316289671116125816323879275286861392529706721453015280324305257077929188921289537269483366069570762637105145590937837350814677322258605408561218868457145480008599868968145457782520283736171404332324424443187545355944536594210000701582745066964758203020597034186829238353192187074011575881514710755464898724521107998932715158590534982905771551754811407666771436639611501487447537984716165815392250754009087906009637792015123285374045948137699393797109445943927769816521163037252107710300571950050607792592155194225126431631559546421544178641760381950782014797789863451990448513798542559805482287246857318988434511916478081485119843978331475981806821794582974752524954415212819103861078255919975717891894240126147391213463520338297009686103920069408087450869188683525565562245303018536589809516593059773972081907346563519371172698599119370029012596523682896975360009207838248869879048863720810057221837623547433387390360243537119442858359521439551289805384296413294310324046706329255316280451842715228593865025882801228911203503705814991526983633484429970675153761729742994680081837782267679734238538502217438372782742299760067550711433715691049714854562645232208040242555607713864557029302371159040712731784423329632690384388291078583864873573166568047694782562145774846722790109267348894943566974059055919235706458732666252112026334302515554458288747507958517165867580354212700878887066212890219769819814625518209215453329908868642032215518144240674892324748338000452580577056103632420589480895729373314370797170759556734617807305451629227222174760247183026739933773317342710214686955387021605218806304142078748210532988246248334631009454189675926231238112012227625941951564461728544692425685436808666363729518470439496900197704696374375097757564941495799168299045875450502166299995397221042500499004518630649911667573853249759350468691045729693602223415464098786899913522563153563818338586143152223817260302800392445907847917844443139530049176542363975385607185930113111932849481258253902101459142338644528529296045587979216380479284120377173475808958639618723799869643696150982457928779869678617395045882720370681956432993922856338709240251580553906780372661848008224094092057768963791105889007046744715330808126755168547824146865250310483032415779887470393524209617622801164073513126852469974089877900052268325958933605163191980553618431951139212422469026019050850421049645980436444927791196006876318672838674540866369765772436663554598467466419778108380468281981065253638244598724593989588302150812036147099107646818972829485397323246840428380280032504085815222002548392927496724755140119133909386154004984077846286155058005435484306849167009941026638474593790521105694290218649319586260120446408060983462375188210436188985727252027304180888697329831736238639870624886158524337327704834444568338635418469057238625456903138744414728695356159819713949057548049964169655038427622371833430197805541983734713474863085513606063386344085280467032678574395122642658930001958702227463920116748330596721863535704685339551555138323157990246129043289056242464163281017911061981949435605051121440603034550784152860169640252017890770038152132183892082748953180943086531140685856133571971606566038789780874791859393620541176985001793787430184899053032747136545716618776323103662430149940819917901695178455844313684594548788177436169149271776856423124978597022075122204265932307971368414196635240962130685743347297298680567832921179782291373315428160807603151437003780702183046686057274510587683064679891795205064531095608803806555979525744328926278757052000865089176543875757491003842139186461975202840947174200555782887431085255287789916177123092237732907499522639178847079108344640312945008055529656348580716047176824511657491226396770737668761427506300185509830571871654508802638453646862617065094385041882934985283931819064503886343080494034764674333111062783196959878487235728830544929549804017617251161882329910690825031283103761644101320905349590699167749994951573165608288794678160876964613783520569340891491816074487418085981933776137622657934211462702018490493200914504329906236902264773510956406462452534706636137240910574759350309328295003253030735216417771546452927966352340777915118172174365327524459755323135391116374826777719625042653095050718084931208909057654212600543475544096377437590767781009868013729304470240520124909870903625572268761613532318032184154244346849398693528127196442517739084376528829658415350419727072938024966327699658374624150897118367080199680686827431202014767267284458451588099663623335589467629047098623436610781569564235550035752645246966876195761348097721400289740797196290595021021242309085820945417492651371672474682606121467150233392347411969686047206222877095804964573185500093713087117638724230124880984069919134026605154377260642825282295928344029766551474404473309969750442215479754560230593509120449188070790786005237783515713120936548658897708806442056414920526197667103553054465692683210316832297411589436397520791869118364530399874642313151917793148265159779882656615756087917591339921187810541103851802889417322219290604454418050883137467137603733371558409409861401814095281857611964710617975567683567586391628762579485789540554192068087942565024107197995517863149355674654861449303684459537735399051074730785097442285244240968482906112845548353981375706942260941788964048228318739407443884311273088866871266742068743895161160947795836673441450706083099278458796088020928338934576066568040195874028879140987587612295196451710883179902210330669257289772197703893601085940340630091320730427165792282235749592119303942348482483540677914534272966690567180231369066434818786039028075267499818367676324478480716113599938552719714044834538386863116743483900301608354636775007311827644634803238576893136358350986692612264372453995617976446406673546994566385216048387338111492067769410472059188355431977543129792969932029651055626654234113602200708057053907704684248964290814919409903513857097411115521551693708883506261841661895487724313034933202515518400348031804426928664987462820643410511802220183955611741865907803866559910784794401156714968375209807117782022378534339728307056126553806074476295988228674255343892037433357966379353660253147772768484512708253862884490398661396532398055210630082082478005598806468485909491336354755237386980843499730145920269119579133921365649211268944516861692603952943926173266010420814322205545494372314420069489904694638439105292193800053347974634550012519125155600552757913462476664891001706344161300789231753988373541694667575697378304759176023616128483041790898000737220103280236541207910793522070782084360657876305441677296498352357722158698502930931914981887990730730448697586058589972478786352540171264293614688458063472926048074157854979189715827453982172817683863266632850996467946717174417450578992728340806921352802870090987881168986046429254941075328582660036018191860751495583628284423833281437041743374383976736446407848189058774138715037303769482101481804323514382887574215634823735320891509302899043489637305073732881868515532806454932061091590049030590779629505944131876604873497360799696775822689006545469638374538651378426073581933531702578938360147053325366995669926858550179765435396801714966625376259456509268556475954505978219904031675782402733172891777556869427489689774210120337992615996341776370711613453537196156139878485318447388137630179879426742036311238313756258119310810929767309371400691612971130889473231156239192110343566439955153046415466819347989618015870097539508000317475008757730285415623984034516194084409046094523531499896637418478777595120482219478570030092094753589363717490750002555719156114325401266314941992930078985959401484735554309053731544355247417864001461797747562977830533934251576880295258687954905735319843368252483471032125138123327092578526840554922245682034044390570560314120432381943674288611165514043088508892092877199687952170306651114320139972223587875290210230306366681749700481047491428512495956298158768066402887232761269030645543326451612018676625434855925496355805100159704978709491452362702549850067040747863208951605210176232324622087181539998590420822371379980118682155147417061457210086486685784910070352975207045280096817775519533705514447807806473366861976222968248874428956057658006141356029151651077195130023955225995195598531832037821702327201483135701237784740432614733877840453878160134851833134034697622712689294349368193073738026846569607523088838713739272397897686274837308475054611314580242950717458055912632034943370708162781437773178289781460904959801814196562161992820684041576122670595831108477080944305230279808856751895479631143227782051893168193032468084428507751514892000846750897369960170235207161425743617716647297021004871937790410650190103192105111289188638240371215399451784259779867718807543157338333582093333055774379779109385096178390900069098584555467658401875724255523533412094885673206308374781664006698474828379175255303327177840092717806950982582505978984047594874115753349610040400843134405485523977040486006693383693006778408724449651033905321434308094473704278305833019281190222300154532191520872919810510301908688509545539193047735458559604879616520480940881221332950389268451309491364747565364110823879017217561923114240425588658003199967357810112584772606094168752575012212581225696861369970800183536158073820822148492398614352352480591696006487660744285458190821487307394480042705807190344589480677938560720989137053153072173741443069097444256977941289124433021520653350315782376520631250536561216832988632036939826413800997251908314663833367715459936324308458990569526294960820031345394230644565709120203693039583226669233839727056523886385727170302640450339684679748280946761799577005061464348707496498674170456401803279926493850049259919911243751112257139499068316952032937345127852258754529798796609569875345334555385153211852946053097625767712102175550019868156734702658602624076150690642107728420823933972291568089502122199212568967736164268538649596952577486148338490930563733610129873881310178826188967660015274544947050580807746823145038866292523545865956904693319068728264153881788036210977716799006569946957821603555131434499744164785430709974802076485517517778021864905800442463936254105612055036259123635095219589233589859151316023211046613084767708023160417448542747518689858325434556441279394368866405879320459334024086543704828625743850377851564337996885755188794919817110961222841615043230311098330300670249342082473395728696425667240141709190990822357331126539751307019068601642905637746315046817979989331446479161156668333162203184233621965127584069669619454569758000330570460260158701652733174573055621243807685979618708270938772434195781363552103158712826927702988297223604778551685902261252586815130754791710453080060941344990669165417484692128279458551272779391814112969395491798435961899916991026034458252011288653377409152563271800208117009616604717434895130238883677686366424625725305087597812689705200696834061836955594359894193462846984412447537064590885399379422084231328008497774016691459470004552135063577984808242497641118518759664362750649247820384508725508053930226631704669444984238976038913873262052027070917186034431839693114575993522569373311495402966075346388344299111893308417250390841749680340158836641733003259103780185525626484831732737964850114848739413863247886794499502337970000455809512631190004617113775659963214804630995934556834974791672478190793408989258882389510050382764469917932955805313999506067471897369857045612257549207988851051079248860787511204148888370888611085544484271252246686058378941804460664809646715461042689926625072259308423520576522241668926418246766803788309628182878285195472565697520041752333167438815509142162274079538497308051962492128092745667634305999256140538987103319047016635437934790940137155738208951118364573303019128177737370574305688473261343152715631316206448604881016618193239632013126850206389392852083461870492213175096067671879991640976153112777321896062200305275814549599156356962815399935881474033275290884733019966464367938966396277715712621913450519460704328343312246768130235765552539246372607896824008275168050478095836631638409545533621569562473818535068639928510222282527257770821556311013907504587297908488783619115485658405038649561776492102682249652074967629062710991095459305732806736213479502316233740387516278480024584811762839977488165784463548684845899562089270134065191578148492428045023329237973071367706835307378931109118575212847082230599043792578953368607499198997307925939817295689344369169344825031882846553911689996460197350147381498460881298615085278682009140849969328985201200694473076798025968078870781513278739801500092678015886503220193590611106178859659048525779855782123409963413768141713646891954496992976932313692245203144323471734051531762540772120669620541797834581312168307114030877616878022883316769371233621623788994833486603595613109891949422650126232283397605515284874155125817805021282166521462169355872000426669254224981169533552395641270873333046119696662432846503652257704869108504182711771599781995129688359541832109971859179856038029577196337176469487082830343170927600521086953706159225100584620773607457006979203317644507752950520201600020615751156080225177803259658863449902514739382528491735952819108218045035133346608618084614903908394355270972750382187487494749520372574441844331611707812869779309463640008567207243866557943931045132640142465073403524206224680238119901019775126528032932799883754904153485608876134764883320506299502075598257326103969182497344707663680179436101693492238390348148583038388952392170688393803863243515794282029871063144896475144209810464557104544052700252935771887215021915373321389373964809783456041551049472309722259468966173356512173736788988440789190950978874367827293811428138399747878789440523559279730774550583865650053220029192653887650160634256731266558295464153257783866726459849990461930477860019621038546878866646002664909631395661377194587514978789468659064933525432875356016693296509845827157994740180688398285243102769655499103635214845679338488743465106623125968118581579918293232984606039740536030159294437656616432002988335966704037684298048689858992288654128475920111078365260578307413863583138572938728742146002389009515829342150355244505625840475963033411918300603855264923674170268461198321681617775812656504104866508242996796287769675798573562559552207604016775975086456946783771266111860941169224555861940086902570806704192118376919649790514632978998383493204392575008349713728581842005268670833733758624221798692492153397971597908969636302467585114381946709624403067800554566907104387258118339754421273506093255031955964757656214173694934085103399495751102694150508986177676844707180399482182488250002753224264755957123781013329686391989199681669412980796979267087532438522822242966569107442317389905830951583136025232658755707175710761285433405737674184207915895601867361111263819964247208364514464887594827218429629852999288457172631969254306829757439515102051163577671967165811683212374444262246153173402532500386933118130015008666399781223848192669749834241560455023478844443837449514186700126690613183269500196911761424529701227465681853073092420666610321931838413836134056733562014635436585586986169644784000501967803202491840173047783321392762230103737828367408636284895595448250628902279913425057683323182012583290177130726757128737802117075579362062152438681080498136754577560271510887909838602979216344342077819958180002400226624531442097917492836155607426399934593112317234671455330922873225373430981345260066286215492393720182802888495852518195477874582072787370911832851155889495379575593163564534702891195138768262101255525204823019750222675381339874374292767901071198996207644221210757821009160087522367229624245712352601784764009829941760872423705533376414357919509227992393423143199577646327987695474573406621903921818545922418245199993547951063611746765861873928696080996475650283565537676241890231179619611741288226918061927628107320014914054072078110116127527666983807697879778659784490234935833194997772305302047107472960834103306979997574641345366090784888450340031494642742077116442991601352530342592071323583306710703042202724679997373578649906592666403624510528375160767658503186242679328566730745797404332453526513980363179121202481955490678804989149184704773024491305694927912833126671387292602467388960993971320765655454620683646332558261662091428456127246774729417390170218451528468488486208615717975368639214182642976340998408486549928651054769855087605326756855880008061272341987397400753004048319198824872797401138528616883683873821086310152523764681987339554409626940054767304829592406348814382190483965092472394559555127279365653886511932290286118672314508776395070168058475694084761497524282867578060426289921554132378776494245464124270568139383935279287096183421382677678703275698213434071884947336785024564611200440578428197114589232981774014235457862788108230151179518919912691371864565875518413785970956935149567933572463011488566811198871657823859374608417809290881791329831039786565112750126555928662096883422384503413236119380664484503197586043503158860001355161233139162931591471940904386776976915939844943771707355904659466865409744784028873558147402607042926266636036925375925040338698299106284235946673409969057068778445652618224410496568603882460108039684247847000321220133420955936545822562352769076586559195338862310108993417069480720727050093790269121652874119564865424461886681877429156546343704566570157119630623117806751409789384830969693224825506833666463136926347325726481853649518818166161351023269554137516520114732762491776113798246911730600807831203773239726130949977864288920905687949056208600285670243336460024921785809544224637884185840513541290398372361104383451212322512247702042114858106603379627991676029113620880850820682199006056740377022327629102224528234542391418957991954805038858725377334606114758719925458465470870273510358104940435402531124990401376907996000465492106534960052514969576283150487988337822953867022986269523759645818571605057885995336799138895465014682505871258339961602968446581653894722601618474602367223722067815687035066003887604860882394897034617425582324921444312237123127355822744416541366951849969432252463389400146221071369062393330720625193957541278198303104570857897597839108212788462371293249477205649141173240413513973088003103868844107419880333225043857324128561777820606934146939651176722676286747125744834761839052541643232095116695047623418283136975408842673939530164217525640125818326794726909230822933544566737923695187807632816728816959738870853384993252367894972234436624256619495380580182274279821709694711449313415525479822470134214602706624612346113601630172962377576810087368787705810160484027011027954165263676004466348348178261159174832292783907918294724982001820975448806840474012509351813944942934170276437605208220709314410749574233277935496958036432583621033058991218896846610794099473272036152170932811065694282358382782681903828875075859120504036003999555771773490203513283456994755161366881249115079041236016129183784639462637846352452203158193815479697138995452513738452261707243044227109170633575200699954792413506515509813007818124837647910163322427655325412893938805272159717781033950701189629809825548477685393843424297494386384525725583109611373674849690303285206315139710272895962236685608186925382868397035583274225550104975648852249239984635432677588556333396452338928551805506523118309401049602348061733335095288420643135153719699930073051512390889812928299390323567215974093758960452984158650853488727406073461650033832263004393836534778482834395058870373774928498005391278031729460238012012869575906457019099648175579574887777481462105965550179034944866019664122398037919182349124644816185324597602468044499528314186297695035616189038140409041668690456996296266290270636811572082159705355769234960355961405457010000590918082613345178863533337579717970443415021089568696659067211115989732418059716046285073427882537451472400962043926355887918740615346554595423868432540845059501502002991372664779484332101474780016127653440475703950734890791134865634316077992697720049850722034258730050275135805799605982182125140252583571184686941527099313027745470689344735438793499807285207315924812574525081140975575752450887489220624063846787834749155902635983760588178828208546454569494989618595092311351425474154783157711654072685854100169781593743019925016239690896932700602993128421005709204070436984992342854255841880581217037555299669141991509516889207761345230585817412441254958054444056306753004531322184414523758559953187920653748199282237174664337979366486605547325671511530404162875549517928376646060286782959935506035390942375462858001228687064955875115599996326051844569508341538881357814301393179985263780014989795461072692707876730124054691792566686408864874059000617568456935814771830915843215889812356600922941802455630149289241738174042379191007247868665034274746148408277581530487009881922662389524261794967412692511009392612128184746452135034890520127360334759024377391525809930457677997085503979090044907634944295055078312789286000600961356041770592163312282863349361248113090542520843064502305655849253600693221157429304993765519585397265696770714770059697602170651938616999648998835229395690085089231495529529038822731239536661854242466646174458229763897027382597984692557622474718367879756168361302729527366898126729592601520203964146358301820645273300651441923083197121326384968396272892695433870521022227791397708065095961298253889727970523989688460419094201755767708134845972390285620066528631959512634234508837415411984642817538301834476744926631440301217419445582273864953645861877205596488774839256976625221643955275403075218186564432139371830088211890437092644978879467323140634410563720515118039931861423969668290761574195245662872001121590887582213795053449946707932142928570604840647028593558916025905306161178232195321836909929144705390978194476384890090138367153792871247681473708284927770486244711251148766535876177093713822161645218165284203516770173567762647895012118952326132061208784361693590652880781659778468292674961442433956273286227434850281932263669527300091431012742553967590930445678520454210197923556840292103172237916487622876788528099765146877238428399814648733889746987704386823817605895987370438932785503242174954380999083918984921974345238203184713136821523188787544225822294952610578878805675753901022386527016434998602856285561531930925349885334235292210050114316168271786920667790272662205906638146984831907895564957077964571779008926119883939065241554585683108984893560196030506226859944955160878191959166534236033660177201870511527878612129496128773190508752285019171905158925403880273288017071238970004649822728872990198137245200501138385668403935144445714771262296813613678792354986099164954900048204936474316663991198119132364213863541054964550184197737503581618021749441096338531867608834873647652264401110565834677520052037702275900113151231198538892908006667495259842816540025124497779675358711473993524373309424859013844726382338738058949739436109826296776567336134912766708004930205718587474107610383566938056212700956851012608931331540726471385340878198284842663960602334099079072212085140516817600041535795256672585858639649441891958435689093931865841610843675581078458187131362532701775137849782389496048264715023175124564412913301925757128097252444759288110404730427435560040986901378398456048384533764326143067565984777407368106790825499772425582695527284474990976272789258003362653708774377376705636274307349607389583575973556639119665765485246380554964314679739026348680443557238252478596414487822965125952291739625835430021610928640707850561102514551724089282159874679001932380091767838038603084197691552925877792765828677290795845082352108584020966827537331321661091746688065498820698793132600185476021419304792159998121508465762266309557741951868991330896705021422239502992348083695966454169355214382383653684125261313698867289562035106792081034464279923146180254791894110015089848241986346264597526948714299294994868276937328790564390003140210589314578622161360242595600395053811908913961052571205363699930029617575479149829948180163862821875618055484251991099568667854402837398791490202692277642270294202986210530075345086553113464513733634476790774636503325907758135284463153361560268802721676941896595002694961801196591161216442542636446935463216638309288056769472165408604556012970134677136080530158311256387149461150159933783007812536385248113987534393518180808982461015336230328244003640983488103455450170730745796763971037339798272476377975600089450107214289780439652075910329646011870246055850527628895950286255953870650500622044176785772520429964498451919536049611983986571829108150449687085168078666680505893861814803029238681062054408413173669636530365343469513619520845535297512472596575067950662899550533204829902356165796816374536703599636508805020598014214993063416203277232552327244126803290712783341610882896174843288158899229973310144168818753211158302862629874042923946521596803539027853996744624437371724022759856487149199847403793562858364642772755372054858594335248381896349343648186524691878392226293183235305909525944113029174133147308293720625947555651591069067239359629566638264676552835959188943363804530781994945519166404915458693355651636198577990475852579135491463565820376593791117407170517130277654780986287748244594874083519578908360439337580932710338874556256158375133259105907270148883807645347226635664762988494548293254980412871420558689266736930036261722406540356175972197761204233144601524612537383610506056810697693800141033340178095796267718745483113942131685754384260862869852226171139123291267399632493876075285922142247984029149118419908935428088455028870841303883194175450634973099758782924445665560516315924499292932531147084221917023079174601884780547317712163240972183195658907655485826351612531960532331875046654716459023672826252558282044290962379271100651634505713008382386247704739372817822158278789237186395033057490274954890347881129342943421028140618021007332953106850409834833272612062572669013269405890631059464489625589308095587592661916618990784677595100472088270933014872952022346068985540586697166761312990351281822466579572203340854407585053260236168650490661580786901180638287830786867341645820895438957396850121469667293403369735841705668837700571242365732017864776400305061110136312575974455165834494273582883292014908616362759381056255278190563505506426688142116058807660871805932786874435090254489288133498402802757673045309711383584696098939682631771734265756745413504476151264062315798441526655304162457201794974033252486540387750218852483848488240900469295808290003503197308928108583452197703159333778225097959768589157149209797909481934902018471504361530846603405647244728465812312008866209628612165259217556183387446437595657163779741400164789922538922681845389072974874576290275834468187254833272592580617084684198204547265844933359682121015455720642273853374949654575910886656830753166216355433288288135129031216423451695181128720122707136232559747312305751036213988391795663782523688329727213610830422605346242881098773487572208743529067141118729703075166247921163663257869031081066275454305776042312874206958883507534283300509359704558972461226328422163463355185343169289223830660714698577856393806326752411441535361919886774865518311485203016072887717521898518468608076978615216384078292106404843751938951165141512142411016566911278814295186660943611941144163927656556190672907337283996023754205142794105912811436056803882704617709645690997258105944883192074388498377606082188124754901041980075879455528981795620181530315982864173680089272982174160524288060445906589186062818558491893387570121767018307822506943031449820867245040968650285256122175123176028743493617610639271444455528067729478508241961261719984699488717863957529333226115560540936152089947970107424104614102375278798153010450801143197826374565162614421277465250625608104505732552489555229980279458390869766440158220257490895004933602181318939149448462194895704610932528186699294425098340626645120648423603151277364130292851375377922594819848851947356855117455154716813070538450916390267153609523599481144709480330728389298849907314992449354922354460465811211522198329848113420514382982178856524070009166334746996019818917807616274402093471581022769296980489151732716340328061933166702524352497143106249530625814127417577455540299929345882035463035658640182276710929873495081730648021599696543469754525100289437078883100742498968098524093486891965342989306152444623325680643805770625880800324451009162781602045516362839444294281840123093906887591358119012636295882458395831706643164470286349918867409269927958436959710994519169158117429888158033150150673571360101961645521273541312947885508432917750862804015827038055122380528982901823479689311134382887368145104980094784704224199027240801244156243651733041790330160608078893587248002960984477898358870350007976222490248749758872395520085226445990903565360949060942701419976502775278351605732747377156037782562448997022927318633427007833103589620319434030746806632488192404504359727367610521225718004666279509676154515875864408842761178239338189475845920366967465333268254699878640253319806012132099435639919520599822115280601695119789030442665967181534020744372834307846471041054221756802440728567035199256149112392357693465625884144180610774456414550785576503457224947904178602536064499091386879373638744767913834949411950469025497727158024388038236494813308860015464470931289025973443954444119345458853500516872470440227767967332814336378716213719064463227849626583795717088354225799484568487526701041939428452306003680163338867534479398782313306807315700212450856820558167993957977627675163721639407335380265194231014842919921492730388782461582686637622583688697578122521557117666150706881611196956939353737763629501891142949087369672293599556965359879429514951709198303283166498760100905713000286543646523549138713684709611351791656112062439038990207308823067801731154841099429717427516457743197692126127213692887722504912039645295481086024484736121542106823965133492378910695968523412476643749847676537097854646223591866534945046845926385027334549111334064462727811878292862957960030644666767500654447916644903906036098844706670801200450383701325174685593970067933567128422304833940582968957300223337885326980855047932050765528930620224214522118355709076311080877085056302483856502151842990749743968626617961503117753454183827789608350764474740245697539693981677961179940403357874093221428690745725356608728876368954003957928312393277624096400691140008899189604144899997337578716996940853905464531925025072181706882883128333402296813710388587533733765170261536335928258551005172415216568535406737604983405820372407678656114377471733792768